Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Big clean-up. Adopted new prefix. Fixed support for line and fill col…

…ors. Added license header. Changed -paintViewImageChanged: to paintViewImageDidChange:. Added shape and paint brush tool, renamed old paint brush tool to "freehand". Made a few tools more configurable (roundrect corner roundness etc.). Added comment what it is to each header.
  • Loading branch information...
commit 6a767a74568e882557243bf98832db0a1bd2f69c 1 parent aada1d3
Uli Kusterer authored May 01, 2011

Showing 77 changed files with 4,808 additions and 894 deletions. Show diff stats Hide diff stats

  1. 61  English.lproj/MainMenu.nib/classes.nib
  2. 3,014  English.lproj/MainMenu.nib/designable.nib
  3. 23  English.lproj/MainMenu.nib/info.nib
  4. BIN  English.lproj/MainMenu.nib/keyedobjects.nib
  5. BIN  English.lproj/MainMenu.nib/objects.nib
  6. 0  Info-UKPaintView__Upgraded_.plist → Info-UKPaintView.plist
  7. 19  NSCursor+Box.h
  8. 19  NSCursor+Box.m
  9. 19  NSCursor+CrossHair.h
  10. 19  NSCursor+CrossHair.m
  11. 32  UKLineSizeView.h
  12. 18  UKPaintEraseRectTool.h
  13. 18  UKPaintEraserTool.h
  14. 20  UKPaintLassoTool.h
  15. 18  UKPaintLineTool.h
  16. 43  UKPaintLineTool.m
  17. 18  UKPaintOvalTool.h
  18. 22  UKPaintPathTool.h
  19. 18  UKPaintRectTool.h
  20. 43  UKPaintRectTool.m
  21. 18  UKPaintRoundrectTool.h
  22. 44  UKPaintRoundrectTool.m
  23. 18  UKPaintSelectTool.h
  24. BIN  UKPaintShapeTool.tiff
  25. 18  UKPaintTempArrowTool.h
  26. 18  UKPaintTempLineTool.h
  27. 18  UKPaintTempOvalTool.h
  28. 18  UKPaintTempRectTool.h
  29. 18  UKPaintTempRoundrectTool.h
  30. 20  UKPaintTextTool.h
  31. 355  UKPaintView.xcodeproj/project.pbxproj
  32. 18  UKPaintbrushTool.h
  33. 69  ULILineSizeView.h
  34. 27  UKLineSizeView.m → ULILineSizeView.m
  35. 6  UKPixelPaintbrushTool.h → ULIPaintBrushTool.h
  36. 21  UKPixelPaintbrushTool.m → ULIPaintBrushTool.m
  37. 42  ULIPaintEraseRectTool.h
  38. 25  UKPaintEraseRectTool.m → ULIPaintEraseRectTool.m
  39. 42  ULIPaintEraserTool.h
  40. 31  UKPaintEraserTool.m → ULIPaintEraserTool.m
  41. 41  ULIPaintFreehandTool.h
  42. 27  UKPaintbrushTool.m → ULIPaintFreehandTool.m
  43. 41  ULIPaintLineTool.h
  44. 62  ULIPaintLineTool.m
  45. 41  ULIPaintOvalTool.h
  46. 27  UKPaintOvalTool.m → ULIPaintOvalTool.m
  47. 45  ULIPaintPathTool.h
  48. 28  UKPaintPathTool.m → ULIPaintPathTool.m
  49. 41  ULIPaintRectangleTool.h
  50. 62  ULIPaintRectangleTool.m
  51. 43  ULIPaintRoundedRectangleTool.h
  52. 79  ULIPaintRoundedRectangleTool.m
  53. 45  ULIPaintSelectionLassoTool.h
  54. 25  UKPaintLassoTool.m → ULIPaintSelectionLassoTool.m
  55. 45  ULIPaintSelectionRectangleTool.h
  56. 25  UKPaintSelectTool.m → ULIPaintSelectionRectangleTool.m
  57. 4  UKPaintShapeTool.h → ULIPaintShapeTool.h
  58. 15  UKPaintShapeTool.m → ULIPaintShapeTool.m
  59. 43  ULIPaintTempArrowTool.h
  60. 25  UKPaintTempArrowTool.m → ULIPaintTempArrowTool.m
  61. 43  ULIPaintTempLineTool.h
  62. 25  UKPaintTempLineTool.m → ULIPaintTempLineTool.m
  63. 43  ULIPaintTempOvalTool.h
  64. 25  UKPaintTempOvalTool.m → ULIPaintTempOvalTool.m
  65. 43  ULIPaintTempRectangleTool.h
  66. 27  UKPaintTempRectTool.m → ULIPaintTempRectangleTool.m
  67. 44  ULIPaintTempRoundrectTool.h
  68. 25  UKPaintTempRoundrectTool.m → ULIPaintTempRoundrectTool.m
  69. 44  ULIPaintTextTool.h
  70. 37  UKPaintTextTool.m → ULIPaintTextTool.m
  71. 51  UKPaintTool.h → ULIPaintTool.h
  72. 35  UKPaintTool.m → ULIPaintTool.m
  73. 57  UKPaintView.h → ULIPaintView.h
  74. 100  UKPaintView.m → ULIPaintView.m
  75. 42  UlisBresenham.c
  76. 47  UlisBresenham.h
  77. BIN  brush01.tiff
61  English.lproj/MainMenu.nib/classes.nib
... ...
@@ -1,61 +0,0 @@
1  
-{
2  
-    IBClasses = (
3  
-        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
4  
-        {
5  
-            ACTIONS = {
6  
-                paintViewImageChanged = id; 
7  
-                paintViewToolDidChange = id; 
8  
-                paintViewToolWillChange = id; 
9  
-            }; 
10  
-            CLASS = NSObject; 
11  
-            LANGUAGE = ObjC; 
12  
-        }, 
13  
-        {CLASS = UKFloatingWindow; LANGUAGE = ObjC; SUPERCLASS = NSPanel; }, 
14  
-        {
15  
-            ACTIONS = {setTarget = id; }; 
16  
-            CLASS = UKLineSizeView; 
17  
-            LANGUAGE = ObjC; 
18  
-            OUTLETS = {target = id; }; 
19  
-            SUPERCLASS = NSView; 
20  
-        }, 
21  
-        {CLASS = UKPaintEraseRectTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintTool; }, 
22  
-        {CLASS = UKPaintEraserTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintTool; }, 
23  
-        {CLASS = UKPaintLassoTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintPathTool; }, 
24  
-        {CLASS = UKPaintLineTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintTool; }, 
25  
-        {CLASS = UKPaintOvalTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintTool; }, 
26  
-        {CLASS = UKPaintPathTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintTool; }, 
27  
-        {CLASS = UKPaintRectTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintTool; }, 
28  
-        {CLASS = UKPaintRoundrectTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintTool; }, 
29  
-        {CLASS = UKPaintSelectTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintTool; }, 
30  
-        {CLASS = UKPaintTextTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintTool; }, 
31  
-        {
32  
-            ACTIONS = {chooseTool = id; }; 
33  
-            CLASS = UKPaintTool; 
34  
-            LANGUAGE = ObjC; 
35  
-            OUTLETS = {owner = UKPaintView; toolButton = NSButton; }; 
36  
-            SUPERCLASS = NSObject; 
37  
-        }, 
38  
-        {
39  
-            ACTIONS = {
40  
-                clear = id; 
41  
-                clearMarkersBuffer = id; 
42  
-                clearSelectionBuffer = id; 
43  
-                copy = id; 
44  
-                cut = id; 
45  
-                delete = id; 
46  
-                drawSelectionBuffer = id; 
47  
-                paintToolDidChange = id; 
48  
-                paintToolWillChange = id; 
49  
-                paste = id; 
50  
-                takeLineSizeFromObject = id; 
51  
-                takeToolFromObject = id; 
52  
-            }; 
53  
-            CLASS = UKPaintView; 
54  
-            LANGUAGE = ObjC; 
55  
-            OUTLETS = {currentTool = UKPaintTool; delegate = id; selectionTool = UKPaintTool; }; 
56  
-            SUPERCLASS = NSView; 
57  
-        }, 
58  
-        {CLASS = UKPaintbrushTool; LANGUAGE = ObjC; SUPERCLASS = UKPaintTool; }
59  
-    ); 
60  
-    IBVersion = 1; 
61  
-}
3,014  English.lproj/MainMenu.nib/designable.nib
3014 additions, 0 deletions not shown
23  English.lproj/MainMenu.nib/info.nib
... ...
@@ -1,23 +0,0 @@
1  
-<?xml version="1.0" encoding="UTF-8"?>
2  
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3  
-<plist version="1.0">
4  
-<dict>
5  
-	<key>IBDocumentLocation</key>
6  
-	<string>60 273 356 240 0 0 1280 1002 </string>
7  
-	<key>IBEditorPositions</key>
8  
-	<dict>
9  
-		<key>29</key>
10  
-		<string>95 344 338 44 0 0 1280 1002 </string>
11  
-	</dict>
12  
-	<key>IBFramework Version</key>
13  
-	<string>446.1</string>
14  
-	<key>IBOpenObjects</key>
15  
-	<array>
16  
-		<integer>29</integer>
17  
-		<integer>279</integer>
18  
-		<integer>21</integer>
19  
-	</array>
20  
-	<key>IBSystem Version</key>
21  
-	<string>8L2127</string>
22  
-</dict>
23  
-</plist>
BIN  English.lproj/MainMenu.nib/keyedobjects.nib
Binary file not shown
BIN  English.lproj/MainMenu.nib/objects.nib
Binary file not shown
0  Info-UKPaintView__Upgraded_.plist → Info-UKPaintView.plist
File renamed without changes
19  NSCursor+Box.h
@@ -5,6 +5,25 @@
5 5
 //  Created by Uli Kusterer on Mon Nov 03 2003.
6 6
 //  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7 7
 //
  8
+//	This software is provided 'as-is', without any express or implied
  9
+//	warranty. In no event will the authors be held liable for any damages
  10
+//	arising from the use of this software.
  11
+//
  12
+//	Permission is granted to anyone to use this software for any purpose,
  13
+//	including commercial applications, and to alter it and redistribute it
  14
+//	freely, subject to the following restrictions:
  15
+//
  16
+//	   1. The origin of this software must not be misrepresented; you must not
  17
+//	   claim that you wrote the original software. If you use this software
  18
+//	   in a product, an acknowledgment in the product documentation would be
  19
+//	   appreciated but is not required.
  20
+//
  21
+//	   2. Altered source versions must be plainly marked as such, and must not be
  22
+//	   misrepresented as being the original software.
  23
+//
  24
+//	   3. This notice may not be removed or altered from any source
  25
+//	   distribution.
  26
+//
8 27
 
9 28
 #import <AppKit/AppKit.h>
10 29
 
19  NSCursor+Box.m
@@ -5,6 +5,25 @@
5 5
 //  Created by Uli Kusterer on Mon Nov 03 2003.
6 6
 //  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7 7
 //
  8
+//	This software is provided 'as-is', without any express or implied
  9
+//	warranty. In no event will the authors be held liable for any damages
  10
+//	arising from the use of this software.
  11
+//
  12
+//	Permission is granted to anyone to use this software for any purpose,
  13
+//	including commercial applications, and to alter it and redistribute it
  14
+//	freely, subject to the following restrictions:
  15
+//
  16
+//	   1. The origin of this software must not be misrepresented; you must not
  17
+//	   claim that you wrote the original software. If you use this software
  18
+//	   in a product, an acknowledgment in the product documentation would be
  19
+//	   appreciated but is not required.
  20
+//
  21
+//	   2. Altered source versions must be plainly marked as such, and must not be
  22
+//	   misrepresented as being the original software.
  23
+//
  24
+//	   3. This notice may not be removed or altered from any source
  25
+//	   distribution.
  26
+//
8 27
 
9 28
 #import "NSCursor+Box.h"
10 29
 
19  NSCursor+CrossHair.h
@@ -5,6 +5,25 @@
5 5
 //  Created by Uli Kusterer on Mon Nov 03 2003.
6 6
 //  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7 7
 //
  8
+//	This software is provided 'as-is', without any express or implied
  9
+//	warranty. In no event will the authors be held liable for any damages
  10
+//	arising from the use of this software.
  11
+//
  12
+//	Permission is granted to anyone to use this software for any purpose,
  13
+//	including commercial applications, and to alter it and redistribute it
  14
+//	freely, subject to the following restrictions:
  15
+//
  16
+//	   1. The origin of this software must not be misrepresented; you must not
  17
+//	   claim that you wrote the original software. If you use this software
  18
+//	   in a product, an acknowledgment in the product documentation would be
  19
+//	   appreciated but is not required.
  20
+//
  21
+//	   2. Altered source versions must be plainly marked as such, and must not be
  22
+//	   misrepresented as being the original software.
  23
+//
  24
+//	   3. This notice may not be removed or altered from any source
  25
+//	   distribution.
  26
+//
8 27
 
9 28
 #import <AppKit/AppKit.h>
10 29
 
19  NSCursor+CrossHair.m
@@ -5,6 +5,25 @@
5 5
 //  Created by Uli Kusterer on Mon Nov 03 2003.
6 6
 //  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7 7
 //
  8
+//	This software is provided 'as-is', without any express or implied
  9
+//	warranty. In no event will the authors be held liable for any damages
  10
+//	arising from the use of this software.
  11
+//
  12
+//	Permission is granted to anyone to use this software for any purpose,
  13
+//	including commercial applications, and to alter it and redistribute it
  14
+//	freely, subject to the following restrictions:
  15
+//
  16
+//	   1. The origin of this software must not be misrepresented; you must not
  17
+//	   claim that you wrote the original software. If you use this software
  18
+//	   in a product, an acknowledgment in the product documentation would be
  19
+//	   appreciated but is not required.
  20
+//
  21
+//	   2. Altered source versions must be plainly marked as such, and must not be
  22
+//	   misrepresented as being the original software.
  23
+//
  24
+//	   3. This notice may not be removed or altered from any source
  25
+//	   distribution.
  26
+//
8 27
 
9 28
 #import "NSCursor+CrossHair.h"
10 29
 
32  UKLineSizeView.h
... ...
@@ -1,32 +0,0 @@
1  
-//
2  
-//  UKLineSizeView.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Mon Nov 03 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <AppKit/AppKit.h>
10  
-
11  
-
12  
-@interface UKLineSizeView : NSView
13  
-{
14  
-	float		floatValue;	// Current line size value.
15  
-	float		maxValue;	// Maximum line size we display (used for swatch widths).
16  
-	SEL			action;		// Action to send to the target when our value changes through user input.
17  
-	id			target;		// Object to notify when user changes our value.
18  
-}
19  
-
20  
--(float)	floatValue;
21  
--(void)		setFloatValue: (float)v;
22  
-
23  
--(float)	maxValue;
24  
--(void)		setMaxValue: (float)v;
25  
-
26  
--(id)		target;
27  
--(void)		setTarget: (id)anObject;
28  
-
29  
--(SEL)		action;
30  
--(void)		setAction: (SEL)aSelector;
31  
-
32  
-@end
18  UKPaintEraseRectTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintEraseRectTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintEraseRectTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
18  UKPaintEraserTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintEraserTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Fri Oct 31 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintEraserTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
20  UKPaintLassoTool.h
... ...
@@ -1,20 +0,0 @@
1  
-//
2  
-//  UKPaintLassoTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Fri Oct 31 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-/* This tool lets the user draw an arbitrarily-shaped selection. */
10  
-
11  
-#import <Foundation/Foundation.h>
12  
-#import "UKPaintPathTool.h"
13  
-
14  
-
15  
-@interface UKPaintLassoTool : UKPaintPathTool
16  
-{
17  
-	BOOL	dragNotCreate;
18  
-}
19  
-
20  
-@end
18  UKPaintLineTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintLineTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintLineTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
43  UKPaintLineTool.m
... ...
@@ -1,43 +0,0 @@
1  
-//
2  
-//  UKPaintLineTool.m
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import "UKPaintLineTool.h"
10  
-#import "UKPaintView.h"
11  
-
12  
-
13  
-@implementation UKPaintLineTool
14  
-
15  
-/* Override this to draw a shape during tracking:
16  
-	The drawings you do in here will be undone before you're called again.
17  
-	This is also called when tracking has finished by drawFinalToolShapeFrom:to: by default. */
18  
--(void)			drawTemporaryTrackingToolShapeFrom: (NSPoint*)prevPos to: (NSPoint)currPos
19  
-{
20  
-	NSRect		box = [self rectFrom: [owner initialPos] to: currPos];
21  
-	NSRect		oldBox = [self rectWithLineSizeFrom: [owner initialPos] to: *prevPos];
22  
-	
23  
-	[[owner lineColor] set];
24  
-	[NSBezierPath setDefaultLineWidth: [owner lineSize].width];
25  
-	[NSBezierPath strokeLineFromPoint: [owner initialPos] toPoint: currPos];
26  
-	
27  
-	box = [self rectWithLineSizeFrom: [owner initialPos] to: currPos];
28  
-	
29  
-	[owner setNeedsDisplayInRect: oldBox];
30  
-	[owner setNeedsDisplayInRect: box];
31  
-	
32  
-	*prevPos = currPos;
33  
-}
34  
-
35  
-
36  
--(NSString*)	toolIconName
37  
-{
38  
-	return @"UKPaintLineTool";
39  
-}
40  
-
41  
-
42  
-
43  
-@end
18  UKPaintOvalTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintOvalTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintOvalTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
22  UKPaintPathTool.h
... ...
@@ -1,22 +0,0 @@
1  
-//
2  
-//  UKPaintPathTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Fri Oct 31 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-/* This tool lets the user draw a path, i.e. an arbitrarily-shaped closed
10  
-	region that is mathematically described and can thus be used for clipping,
11  
-	selection and lots of other useful things. I.e. this is a vector shape. */
12  
-
13  
-#import <Foundation/Foundation.h>
14  
-#import "UKPaintTool.h"
15  
-
16  
-
17  
-@interface UKPaintPathTool : UKPaintTool
18  
-{
19  
-	NSBezierPath*		currentPath;
20  
-}
21  
-
22  
-@end
18  UKPaintRectTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintRectTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintRectTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
43  UKPaintRectTool.m
... ...
@@ -1,43 +0,0 @@
1  
-//
2  
-//  UKPaintRectTool.m
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import "UKPaintRectTool.h"
10  
-#import "UKPaintView.h"
11  
-
12  
-
13  
-@implementation UKPaintRectTool
14  
-
15  
-/* Override this to draw a shape during tracking:
16  
-	The drawings you do in here will be undone before you're called again.
17  
-	This is also called when tracking has finished by drawFinalToolShapeFrom:to: by default. */
18  
--(void)			drawTemporaryTrackingToolShapeFrom: (NSPoint*)prevPos to: (NSPoint)currPos
19  
-{
20  
-	NSRect		box = [self rectFrom: [owner initialPos] to: currPos];
21  
-	NSRect		oldBox = [self rectWithLineSizeFrom: [owner initialPos] to: *prevPos];
22  
-	
23  
-	[[owner lineColor] set];
24  
-	[NSBezierPath setDefaultLineWidth: [owner lineSize].width];
25  
-	[NSBezierPath strokeRect: box];
26  
-	
27  
-	box = [self rectWithLineSizeFrom: [owner initialPos] to: currPos];
28  
-	
29  
-	[owner setNeedsDisplayInRect: oldBox];
30  
-	[owner setNeedsDisplayInRect: box];
31  
-	
32  
-	*prevPos = currPos;
33  
-}
34  
-
35  
-
36  
--(NSString*)	toolIconName
37  
-{
38  
-	return @"UKPaintRectTool";
39  
-}
40  
-
41  
-
42  
-
43  
-@end
18  UKPaintRoundrectTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintRoundrectTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Wed Feb 04 2004.
6  
-//  Copyright (c) 2004 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <AppKit/AppKit.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintRoundrectTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
44  UKPaintRoundrectTool.m
... ...
@@ -1,44 +0,0 @@
1  
-//
2  
-//  UKPaintRoundrectTool.m
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Wed Feb 04 2004.
6  
-//  Copyright (c) 2004 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import "UKPaintRoundrectTool.h"
10  
-#import "UKPaintView.h"
11  
-#import "NSBezierPath+RoundRect.h"
12  
-
13  
-
14  
-@implementation UKPaintRoundrectTool
15  
-
16  
-/* Override this to draw a shape during tracking:
17  
-	The drawings you do in here will be undone before you're called again.
18  
-	This is also called when tracking has finished by drawFinalToolShapeFrom:to: by default. */
19  
--(void)			drawTemporaryTrackingToolShapeFrom: (NSPoint*)prevPos to: (NSPoint)currPos
20  
-{
21  
-	NSRect		box = [self rectFrom: [owner initialPos] to: currPos];
22  
-	NSRect		oldBox = [self rectWithLineSizeFrom: [owner initialPos] to: *prevPos];
23  
-	
24  
-	[[owner lineColor] set];
25  
-	[NSBezierPath setDefaultLineWidth: [owner lineSize].width];
26  
-	[NSBezierPath strokeRoundRectInRect: box radius: 8];
27  
-	
28  
-	box = [self rectWithLineSizeFrom: [owner initialPos] to: currPos];
29  
-	
30  
-	[owner setNeedsDisplayInRect: oldBox];
31  
-	[owner setNeedsDisplayInRect: box];
32  
-	
33  
-	*prevPos = currPos;
34  
-}
35  
-
36  
-
37  
--(NSString*)	toolIconName
38  
-{
39  
-	return @"UKPaintRoundrectTool";
40  
-}
41  
-
42  
-
43  
-
44  
-@end
18  UKPaintSelectTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintSelectTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2007 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintSelectTool : UKPaintTool
14  
-{
15  
-	BOOL		dragNotCreate;
16  
-}
17  
-
18  
-@end
BIN  UKPaintShapeTool.tiff
Binary file not shown
18  UKPaintTempArrowTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintTempArrowTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintTempArrowTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
18  UKPaintTempLineTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintTempLineTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintTempLineTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
18  UKPaintTempOvalTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintTempOvalTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintTempOvalTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
18  UKPaintTempRectTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintTempRectTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintTempRectTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
18  UKPaintTempRoundrectTool.h
... ...
@@ -1,18 +0,0 @@
1  
-//
2  
-//  UKPaintTempRoundrectTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Wed Feb 04 2004.
6  
-//  Copyright (c) 2004 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintTempRoundrectTool : UKPaintTool
14  
-{
15  
-
16  
-}
17  
-
18  
-@end
20  UKPaintTextTool.h
... ...
@@ -1,20 +0,0 @@
1  
-//
2  
-//  UKPaintTextTool.h
3  
-//  UKPaintView
4  
-//
5  
-//  Created by Uli Kusterer on Sat Nov 01 2003.
6  
-//  Copyright (c) 2003 M. Uli Kusterer. All rights reserved.
7  
-//
8  
-
9  
-#import <Foundation/Foundation.h>
10  
-#import "UKPaintTool.h"
11  
-
12  
-
13  
-@interface UKPaintTextTool : UKPaintTool
14  
-{
15  
-	NSTextView*		textbox;
16  
-}
17  
-
18  
--(void)		toolFinished;
19  
-
20  
-@end
355  UKPaintView.xcodeproj/project.pbxproj
@@ -7,18 +7,18 @@
7 7
 	objects = {
8 8
 
9 9
 /* Begin PBXBuildFile section */
10  
-		3D5F94380BA5BC9F0037BC78 /* UKPaintView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD149420552F8AA00000202 /* UKPaintView.h */; };
11  
-		3D5F94390BA5BC9F0037BC78 /* UKPaintTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD1494605531A9300000202 /* UKPaintTool.h */; };
12  
-		3D5F943A0BA5BC9F0037BC78 /* UKPaintbrushTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD1494A05531FF800000202 /* UKPaintbrushTool.h */; };
13  
-		3D5F943B0BA5BC9F0037BC78 /* UKPaintRectTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD1495705532B2900000202 /* UKPaintRectTool.h */; };
14  
-		3D5F943C0BA5BC9F0037BC78 /* UKPaintTextTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D1DCC320553CE7500000202 /* UKPaintTextTool.h */; };
15  
-		3D5F943D0BA5BC9F0037BC78 /* UKPaintEraseRectTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3CB39F05567A6700000202 /* UKPaintEraseRectTool.h */; };
16  
-		3D5F943E0BA5BC9F0037BC78 /* UKPaintEraserTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3CB3A105567A6700000202 /* UKPaintEraserTool.h */; };
  10
+		3D5F94380BA5BC9F0037BC78 /* ULIPaintView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD149420552F8AA00000202 /* ULIPaintView.h */; };
  11
+		3D5F94390BA5BC9F0037BC78 /* ULIPaintTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD1494605531A9300000202 /* ULIPaintTool.h */; };
  12
+		3D5F943A0BA5BC9F0037BC78 /* ULIPaintFreehandTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD1494A05531FF800000202 /* ULIPaintFreehandTool.h */; };
  13
+		3D5F943B0BA5BC9F0037BC78 /* ULIPaintRectangleTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD1495705532B2900000202 /* ULIPaintRectangleTool.h */; };
  14
+		3D5F943C0BA5BC9F0037BC78 /* ULIPaintTextTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D1DCC320553CE7500000202 /* ULIPaintTextTool.h */; };
  15
+		3D5F943D0BA5BC9F0037BC78 /* ULIPaintEraseRectTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3CB39F05567A6700000202 /* ULIPaintEraseRectTool.h */; };
  16
+		3D5F943E0BA5BC9F0037BC78 /* ULIPaintEraserTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3CB3A105567A6700000202 /* ULIPaintEraserTool.h */; };
17 17
 		3D5F943F0BA5BC9F0037BC78 /* NSCursor+CrossHair.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3CB3A70556823100000202 /* NSCursor+CrossHair.h */; };
18 18
 		3D5F94400BA5BC9F0037BC78 /* NSCursor+Box.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3CB3AC055686B400000202 /* NSCursor+Box.h */; };
19 19
 		3D5F94410BA5BC9F0037BC78 /* UlisBresenham.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3CB3AF0556917600000202 /* UlisBresenham.h */; };
20  
-		3D5F94420BA5BC9F0037BC78 /* UKLineSizeView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3CC14305570BF400000202 /* UKLineSizeView.h */; };
21  
-		3D5F94430BA5BC9F0037BC78 /* UKPaintLineTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DA9B23E055A941F00F486B9 /* UKPaintLineTool.h */; };
  20
+		3D5F94420BA5BC9F0037BC78 /* ULILineSizeView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D3CC14305570BF400000202 /* ULILineSizeView.h */; };
  21
+		3D5F94430BA5BC9F0037BC78 /* ULIPaintLineTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DA9B23E055A941F00F486B9 /* ULIPaintLineTool.h */; };
22 22
 		3D5F94450BA5BC9F0037BC78 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
23 23
 		3D5F94460BA5BC9F0037BC78 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
24 24
 		3D5F94470BA5BC9F0037BC78 /* UKPaintbrushTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3DC4520F0553447100000202 /* UKPaintbrushTool.tiff */; };
@@ -28,35 +28,35 @@
28 28
 		3D5F944B0BA5BC9F0037BC78 /* UKPaintEraserTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3D3CB39C05567A1C00000202 /* UKPaintEraserTool.tiff */; };
29 29
 		3D5F944C0BA5BC9F0037BC78 /* UKPaintLineTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3D5F942F0BA5BBF40037BC78 /* UKPaintLineTool.tiff */; };
30 30
 		3D5F944E0BA5BC9F0037BC78 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
31  
-		3D5F944F0BA5BC9F0037BC78 /* UKPaintView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD149430552F8AA00000202 /* UKPaintView.m */; };
32  
-		3D5F94500BA5BC9F0037BC78 /* UKPaintTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD1494705531A9300000202 /* UKPaintTool.m */; };
33  
-		3D5F94510BA5BC9F0037BC78 /* UKPaintbrushTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD1494B05531FF800000202 /* UKPaintbrushTool.m */; };
34  
-		3D5F94520BA5BC9F0037BC78 /* UKPaintRectTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD1495805532B2900000202 /* UKPaintRectTool.m */; };
35  
-		3D5F94530BA5BC9F0037BC78 /* UKPaintTextTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1DCC340553CE7500000202 /* UKPaintTextTool.m */; };
36  
-		3D5F94540BA5BC9F0037BC78 /* UKPaintEraserTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3CB3A005567A6700000202 /* UKPaintEraserTool.m */; };
37  
-		3D5F94550BA5BC9F0037BC78 /* UKPaintEraseRectTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3CB3A205567A6700000202 /* UKPaintEraseRectTool.m */; };
  31
+		3D5F944F0BA5BC9F0037BC78 /* ULIPaintView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD149430552F8AA00000202 /* ULIPaintView.m */; };
  32
+		3D5F94500BA5BC9F0037BC78 /* ULIPaintTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD1494705531A9300000202 /* ULIPaintTool.m */; };
  33
+		3D5F94510BA5BC9F0037BC78 /* ULIPaintFreehandTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD1494B05531FF800000202 /* ULIPaintFreehandTool.m */; };
  34
+		3D5F94520BA5BC9F0037BC78 /* ULIPaintRectangleTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD1495805532B2900000202 /* ULIPaintRectangleTool.m */; };
  35
+		3D5F94530BA5BC9F0037BC78 /* ULIPaintTextTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1DCC340553CE7500000202 /* ULIPaintTextTool.m */; };
  36
+		3D5F94540BA5BC9F0037BC78 /* ULIPaintEraserTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3CB3A005567A6700000202 /* ULIPaintEraserTool.m */; };
  37
+		3D5F94550BA5BC9F0037BC78 /* ULIPaintEraseRectTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3CB3A205567A6700000202 /* ULIPaintEraseRectTool.m */; };
38 38
 		3D5F94560BA5BC9F0037BC78 /* NSCursor+CrossHair.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3CB3A80556823100000202 /* NSCursor+CrossHair.m */; };
39 39
 		3D5F94570BA5BC9F0037BC78 /* NSCursor+Box.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3CB3AB055686B400000202 /* NSCursor+Box.m */; };
40 40
 		3D5F94580BA5BC9F0037BC78 /* UlisBresenham.c in Sources */ = {isa = PBXBuildFile; fileRef = 3D3CB3B10556917F00000202 /* UlisBresenham.c */; };
41  
-		3D5F94590BA5BC9F0037BC78 /* UKLineSizeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3CC14405570BF400000202 /* UKLineSizeView.m */; };
42  
-		3D5F945A0BA5BC9F0037BC78 /* UKPaintLineTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DA9B23F055A941F00F486B9 /* UKPaintLineTool.m */; };
  41
+		3D5F94590BA5BC9F0037BC78 /* ULILineSizeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D3CC14405570BF400000202 /* ULILineSizeView.m */; };
  42
+		3D5F945A0BA5BC9F0037BC78 /* ULIPaintLineTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DA9B23F055A941F00F486B9 /* ULIPaintLineTool.m */; };
43 43
 		3D5F945C0BA5BC9F0037BC78 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
44  
-		3D910C970BAF62320039C0AD /* UKPaintPathTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D910C950BAF62320039C0AD /* UKPaintPathTool.m */; };
45  
-		3D910C980BAF62320039C0AD /* UKPaintPathTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D910C960BAF62320039C0AD /* UKPaintPathTool.h */; };
  44
+		3D910C970BAF62320039C0AD /* ULIPaintPathTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D910C950BAF62320039C0AD /* ULIPaintPathTool.m */; };
  45
+		3D910C980BAF62320039C0AD /* ULIPaintPathTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D910C960BAF62320039C0AD /* ULIPaintPathTool.h */; };
46 46
 		3D910C9A0BAF62430039C0AD /* UKPaintPathTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3D910C990BAF62430039C0AD /* UKPaintPathTool.tiff */; };
47  
-		3D910D1B0BAF67390039C0AD /* UKPaintLassoTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D910D190BAF67390039C0AD /* UKPaintLassoTool.m */; };
48  
-		3D910D1C0BAF67390039C0AD /* UKPaintLassoTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D910D1A0BAF67390039C0AD /* UKPaintLassoTool.h */; };
  47
+		3D910D1B0BAF67390039C0AD /* ULIPaintSelectionLassoTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D910D190BAF67390039C0AD /* ULIPaintSelectionLassoTool.m */; };
  48
+		3D910D1C0BAF67390039C0AD /* ULIPaintSelectionLassoTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D910D1A0BAF67390039C0AD /* ULIPaintSelectionLassoTool.h */; };
49 49
 		3D910D1E0BAF673F0039C0AD /* UKPaintLassoTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3D910D1D0BAF673F0039C0AD /* UKPaintLassoTool.tiff */; };
50 50
 		3D910DBC0BAF70F70039C0AD /* TODO.txt in Resources */ = {isa = PBXBuildFile; fileRef = 3D910DBB0BAF70F70039C0AD /* TODO.txt */; };
51 51
 		3DD4B9000BAB598C0066C1AE /* UKPaintSelectTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3DD4B8FF0BAB598C0066C1AE /* UKPaintSelectTool.tiff */; };
52  
-		3DD4B9030BAB599C0066C1AE /* UKPaintSelectTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD4B9010BAB599C0066C1AE /* UKPaintSelectTool.h */; };
53  
-		3DD4B9040BAB599C0066C1AE /* UKPaintSelectTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD4B9020BAB599C0066C1AE /* UKPaintSelectTool.m */; };
  52
+		3DD4B9030BAB599C0066C1AE /* ULIPaintSelectionRectangleTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD4B9010BAB599C0066C1AE /* ULIPaintSelectionRectangleTool.h */; };
  53
+		3DD4B9040BAB599C0066C1AE /* ULIPaintSelectionRectangleTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD4B9020BAB599C0066C1AE /* ULIPaintSelectionRectangleTool.m */; };
54 54
 		3DD4BDB40BAC02FF0066C1AE /* UKFloatingWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DD4BDB20BAC02FF0066C1AE /* UKFloatingWindow.h */; };
55 55
 		3DD4BDB50BAC02FF0066C1AE /* UKFloatingWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD4BDB30BAC02FF0066C1AE /* UKFloatingWindow.m */; };
56  
-		3DF9B8040BA5C133001A72D2 /* UKPaintRoundrectTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B8020BA5C133001A72D2 /* UKPaintRoundrectTool.m */; };
57  
-		3DF9B8050BA5C133001A72D2 /* UKPaintRoundrectTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B8030BA5C133001A72D2 /* UKPaintRoundrectTool.h */; };
58  
-		3DF9B80A0BA5C1A9001A72D2 /* UKPaintOvalTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B8080BA5C1A9001A72D2 /* UKPaintOvalTool.m */; };
59  
-		3DF9B80B0BA5C1A9001A72D2 /* UKPaintOvalTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B8090BA5C1A9001A72D2 /* UKPaintOvalTool.h */; };
  56
+		3DF9B8040BA5C133001A72D2 /* ULIPaintRoundedRectangleTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B8020BA5C133001A72D2 /* ULIPaintRoundedRectangleTool.m */; };
  57
+		3DF9B8050BA5C133001A72D2 /* ULIPaintRoundedRectangleTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B8030BA5C133001A72D2 /* ULIPaintRoundedRectangleTool.h */; };
  58
+		3DF9B80A0BA5C1A9001A72D2 /* ULIPaintOvalTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B8080BA5C1A9001A72D2 /* ULIPaintOvalTool.m */; };
  59
+		3DF9B80B0BA5C1A9001A72D2 /* ULIPaintOvalTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B8090BA5C1A9001A72D2 /* ULIPaintOvalTool.h */; };
60 60
 		3DF9B80E0BA5C1F4001A72D2 /* UKPaintOvalTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3DF9B80C0BA5C1F4001A72D2 /* UKPaintOvalTool.tiff */; };
61 61
 		3DF9B80F0BA5C1F4001A72D2 /* UKPaintRoundrectTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3DF9B80D0BA5C1F4001A72D2 /* UKPaintRoundrectTool.tiff */; };
62 62
 		3DF9B8150BA5C25C001A72D2 /* UKPaintTempArrowTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3DF9B8100BA5C25C001A72D2 /* UKPaintTempArrowTool.tiff */; };
@@ -64,18 +64,26 @@
64 64
 		3DF9B8170BA5C25C001A72D2 /* UKPaintTempOvalTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3DF9B8120BA5C25C001A72D2 /* UKPaintTempOvalTool.tiff */; };
65 65
 		3DF9B8180BA5C25C001A72D2 /* UKPaintTempRectTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3DF9B8130BA5C25C001A72D2 /* UKPaintTempRectTool.tiff */; };
66 66
 		3DF9B8190BA5C25C001A72D2 /* UKPaintTempRoundrectTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 3DF9B8140BA5C25C001A72D2 /* UKPaintTempRoundrectTool.tiff */; };
67  
-		3DF9B8240BA5C2BC001A72D2 /* UKPaintTempRoundrectTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B81A0BA5C2BC001A72D2 /* UKPaintTempRoundrectTool.m */; };
68  
-		3DF9B8250BA5C2BC001A72D2 /* UKPaintTempRectTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B81B0BA5C2BC001A72D2 /* UKPaintTempRectTool.h */; };
69  
-		3DF9B8260BA5C2BC001A72D2 /* UKPaintTempRectTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B81C0BA5C2BC001A72D2 /* UKPaintTempRectTool.m */; };
70  
-		3DF9B8270BA5C2BC001A72D2 /* UKPaintTempRoundrectTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B81D0BA5C2BC001A72D2 /* UKPaintTempRoundrectTool.h */; };
71  
-		3DF9B8280BA5C2BC001A72D2 /* UKPaintTempOvalTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B81E0BA5C2BC001A72D2 /* UKPaintTempOvalTool.h */; };
72  
-		3DF9B8290BA5C2BC001A72D2 /* UKPaintTempOvalTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B81F0BA5C2BC001A72D2 /* UKPaintTempOvalTool.m */; };
73  
-		3DF9B82A0BA5C2BC001A72D2 /* UKPaintTempLineTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B8200BA5C2BC001A72D2 /* UKPaintTempLineTool.h */; };
74  
-		3DF9B82B0BA5C2BC001A72D2 /* UKPaintTempLineTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B8210BA5C2BC001A72D2 /* UKPaintTempLineTool.m */; };
75  
-		3DF9B82C0BA5C2BC001A72D2 /* UKPaintTempArrowTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B8220BA5C2BC001A72D2 /* UKPaintTempArrowTool.h */; };
76  
-		3DF9B82D0BA5C2BC001A72D2 /* UKPaintTempArrowTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B8230BA5C2BC001A72D2 /* UKPaintTempArrowTool.m */; };
  67
+		3DF9B8240BA5C2BC001A72D2 /* ULIPaintTempRoundrectTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B81A0BA5C2BC001A72D2 /* ULIPaintTempRoundrectTool.m */; };
  68
+		3DF9B8250BA5C2BC001A72D2 /* ULIPaintTempRectangleTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B81B0BA5C2BC001A72D2 /* ULIPaintTempRectangleTool.h */; };
  69
+		3DF9B8260BA5C2BC001A72D2 /* ULIPaintTempRectangleTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B81C0BA5C2BC001A72D2 /* ULIPaintTempRectangleTool.m */; };
  70
+		3DF9B8270BA5C2BC001A72D2 /* ULIPaintTempRoundrectTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B81D0BA5C2BC001A72D2 /* ULIPaintTempRoundrectTool.h */; };
  71
+		3DF9B8280BA5C2BC001A72D2 /* ULIPaintTempOvalTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B81E0BA5C2BC001A72D2 /* ULIPaintTempOvalTool.h */; };
  72
+		3DF9B8290BA5C2BC001A72D2 /* ULIPaintTempOvalTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B81F0BA5C2BC001A72D2 /* ULIPaintTempOvalTool.m */; };
  73
+		3DF9B82A0BA5C2BC001A72D2 /* ULIPaintTempLineTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B8200BA5C2BC001A72D2 /* ULIPaintTempLineTool.h */; };
  74
+		3DF9B82B0BA5C2BC001A72D2 /* ULIPaintTempLineTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B8210BA5C2BC001A72D2 /* ULIPaintTempLineTool.m */; };
  75
+		3DF9B82C0BA5C2BC001A72D2 /* ULIPaintTempArrowTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B8220BA5C2BC001A72D2 /* ULIPaintTempArrowTool.h */; };
  76
+		3DF9B82D0BA5C2BC001A72D2 /* ULIPaintTempArrowTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B8230BA5C2BC001A72D2 /* ULIPaintTempArrowTool.m */; };
77 77
 		3DF9B8380BA5C4B4001A72D2 /* NSBezierPath+RoundRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DF9B8360BA5C4B4001A72D2 /* NSBezierPath+RoundRect.h */; };
78 78
 		3DF9B8390BA5C4B4001A72D2 /* NSBezierPath+RoundRect.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DF9B8370BA5C4B4001A72D2 /* NSBezierPath+RoundRect.m */; };
  79
+		55039F74136C9EDB0082E32E /* ULIPaintShapeTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 55039F72136C9ECF0082E32E /* ULIPaintShapeTool.h */; };
  80
+		55039F75136C9EDB0082E32E /* ULIPaintShapeTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 55039F73136C9ED30082E32E /* ULIPaintShapeTool.m */; };
  81
+		55039F78136C9EEB0082E32E /* ULIPaintBrushTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 55039F76136C9EE30082E32E /* ULIPaintBrushTool.h */; };
  82
+		55039F79136C9EEB0082E32E /* ULIPaintBrushTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 55039F77136C9EE70082E32E /* ULIPaintBrushTool.m */; };
  83
+		55039F7C136CA4330082E32E /* NSBezierPath+ULIRegularPolygon.h in Headers */ = {isa = PBXBuildFile; fileRef = 55039F7A136CA42A0082E32E /* NSBezierPath+ULIRegularPolygon.h */; };
  84
+		55039F7D136CA4330082E32E /* NSBezierPath+ULIRegularPolygon.m in Sources */ = {isa = PBXBuildFile; fileRef = 55039F7B136CA42F0082E32E /* NSBezierPath+ULIRegularPolygon.m */; };
  85
+		55039F7F136CA6150082E32E /* UKPaintShapeTool.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 55039F7E136CA6150082E32E /* UKPaintShapeTool.tiff */; };
  86
+		55039F81136CC84B0082E32E /* brush01.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 55039F80136CC84A0082E32E /* brush01.tiff */; };
79 87
 /* End PBXBuildFile section */
80 88
 
81 89
 /* Begin PBXFileReference section */
@@ -85,55 +93,55 @@
85 93
 		29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
86 94
 		29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
87 95
 		29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
88  
-		3D1DCC320553CE7500000202 /* UKPaintTextTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintTextTool.h; sourceTree = "<group>"; };
  96
+		3D1DCC320553CE7500000202 /* ULIPaintTextTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintTextTool.h; sourceTree = "<group>"; };
89 97
 		3D1DCC330553CE7500000202 /* UKPaintTextTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintTextTool.tiff; sourceTree = "<group>"; };
90  
-		3D1DCC340553CE7500000202 /* UKPaintTextTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintTextTool.m; sourceTree = "<group>"; };
  98
+		3D1DCC340553CE7500000202 /* ULIPaintTextTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintTextTool.m; sourceTree = "<group>"; };
91 99
 		3D3CB39B05567A1C00000202 /* UKPaintEraseRectTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintEraseRectTool.tiff; sourceTree = "<group>"; };
92 100
 		3D3CB39C05567A1C00000202 /* UKPaintEraserTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintEraserTool.tiff; sourceTree = "<group>"; };
93  
-		3D3CB39F05567A6700000202 /* UKPaintEraseRectTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintEraseRectTool.h; sourceTree = "<group>"; };
94  
-		3D3CB3A005567A6700000202 /* UKPaintEraserTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintEraserTool.m; sourceTree = "<group>"; };
95  
-		3D3CB3A105567A6700000202 /* UKPaintEraserTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintEraserTool.h; sourceTree = "<group>"; };
96  
-		3D3CB3A205567A6700000202 /* UKPaintEraseRectTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintEraseRectTool.m; sourceTree = "<group>"; };
  101
+		3D3CB39F05567A6700000202 /* ULIPaintEraseRectTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintEraseRectTool.h; sourceTree = "<group>"; };
  102
+		3D3CB3A005567A6700000202 /* ULIPaintEraserTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintEraserTool.m; sourceTree = "<group>"; };
  103
+		3D3CB3A105567A6700000202 /* ULIPaintEraserTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintEraserTool.h; sourceTree = "<group>"; };
  104
+		3D3CB3A205567A6700000202 /* ULIPaintEraseRectTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintEraseRectTool.m; sourceTree = "<group>"; };
97 105
 		3D3CB3A70556823100000202 /* NSCursor+CrossHair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSCursor+CrossHair.h"; sourceTree = "<group>"; };
98 106
 		3D3CB3A80556823100000202 /* NSCursor+CrossHair.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSCursor+CrossHair.m"; sourceTree = "<group>"; };
99 107
 		3D3CB3AB055686B400000202 /* NSCursor+Box.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSCursor+Box.m"; sourceTree = "<group>"; };
100 108
 		3D3CB3AC055686B400000202 /* NSCursor+Box.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSCursor+Box.h"; sourceTree = "<group>"; };
101 109
 		3D3CB3AF0556917600000202 /* UlisBresenham.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UlisBresenham.h; sourceTree = "<group>"; };
102 110
 		3D3CB3B10556917F00000202 /* UlisBresenham.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = UlisBresenham.c; sourceTree = "<group>"; };
103  
-		3D3CC14305570BF400000202 /* UKLineSizeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UKLineSizeView.h; sourceTree = "<group>"; };
104  
-		3D3CC14405570BF400000202 /* UKLineSizeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UKLineSizeView.m; sourceTree = "<group>"; };
  111
+		3D3CC14305570BF400000202 /* ULILineSizeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ULILineSizeView.h; sourceTree = "<group>"; };
  112
+		3D3CC14405570BF400000202 /* ULILineSizeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ULILineSizeView.m; sourceTree = "<group>"; };
105 113
 		3D5F942F0BA5BBF40037BC78 /* UKPaintLineTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintLineTool.tiff; sourceTree = "<group>"; };
106  
-		3D5F94610BA5BC9F0037BC78 /* Info-UKPaintView__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "Info-UKPaintView__Upgraded_.plist"; sourceTree = "<group>"; };
  114
+		3D5F94610BA5BC9F0037BC78 /* Info-UKPaintView.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-UKPaintView.plist"; sourceTree = "<group>"; };
107 115
 		3D5F94620BA5BC9F0037BC78 /* UKPaintView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = UKPaintView.app; sourceTree = BUILT_PRODUCTS_DIR; };
108  
-		3D910C950BAF62320039C0AD /* UKPaintPathTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintPathTool.m; sourceTree = "<group>"; };
109  
-		3D910C960BAF62320039C0AD /* UKPaintPathTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintPathTool.h; sourceTree = "<group>"; };
  116
+		3D910C950BAF62320039C0AD /* ULIPaintPathTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintPathTool.m; sourceTree = "<group>"; };
  117
+		3D910C960BAF62320039C0AD /* ULIPaintPathTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintPathTool.h; sourceTree = "<group>"; };
110 118
 		3D910C990BAF62430039C0AD /* UKPaintPathTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintPathTool.tiff; sourceTree = "<group>"; };
111  
-		3D910D190BAF67390039C0AD /* UKPaintLassoTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintLassoTool.m; sourceTree = "<group>"; };
112  
-		3D910D1A0BAF67390039C0AD /* UKPaintLassoTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintLassoTool.h; sourceTree = "<group>"; };
  119
+		3D910D190BAF67390039C0AD /* ULIPaintSelectionLassoTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintSelectionLassoTool.m; sourceTree = "<group>"; };
  120
+		3D910D1A0BAF67390039C0AD /* ULIPaintSelectionLassoTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintSelectionLassoTool.h; sourceTree = "<group>"; };
113 121
 		3D910D1D0BAF673F0039C0AD /* UKPaintLassoTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintLassoTool.tiff; sourceTree = "<group>"; };
114 122
 		3D910DBB0BAF70F70039C0AD /* TODO.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TODO.txt; sourceTree = "<group>"; };
115  
-		3DA9B23E055A941F00F486B9 /* UKPaintLineTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintLineTool.h; sourceTree = "<group>"; };
116  
-		3DA9B23F055A941F00F486B9 /* UKPaintLineTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintLineTool.m; sourceTree = "<group>"; };
  123
+		3DA9B23E055A941F00F486B9 /* ULIPaintLineTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintLineTool.h; sourceTree = "<group>"; };
  124
+		3DA9B23F055A941F00F486B9 /* ULIPaintLineTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintLineTool.m; sourceTree = "<group>"; };
117 125
 		3DC4520F0553447100000202 /* UKPaintbrushTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintbrushTool.tiff; sourceTree = "<group>"; };
118 126
 		3DC452100553447100000202 /* UKPaintRectTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintRectTool.tiff; sourceTree = "<group>"; };
119 127
 		3DCA62F20BB36F180015B87E /* TODO.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = TODO.txt; sourceTree = "<group>"; };
120  
-		3DD149420552F8AA00000202 /* UKPaintView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UKPaintView.h; sourceTree = "<group>"; };
121  
-		3DD149430552F8AA00000202 /* UKPaintView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UKPaintView.m; sourceTree = "<group>"; };
122  
-		3DD1494605531A9300000202 /* UKPaintTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UKPaintTool.h; sourceTree = "<group>"; };
123  
-		3DD1494705531A9300000202 /* UKPaintTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UKPaintTool.m; sourceTree = "<group>"; };
124  
-		3DD1494A05531FF800000202 /* UKPaintbrushTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UKPaintbrushTool.h; sourceTree = "<group>"; };
125  
-		3DD1494B05531FF800000202 /* UKPaintbrushTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UKPaintbrushTool.m; sourceTree = "<group>"; };
126  
-		3DD1495705532B2900000202 /* UKPaintRectTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UKPaintRectTool.h; sourceTree = "<group>"; };
127  
-		3DD1495805532B2900000202 /* UKPaintRectTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UKPaintRectTool.m; sourceTree = "<group>"; };
  128
+		3DD149420552F8AA00000202 /* ULIPaintView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ULIPaintView.h; sourceTree = "<group>"; };
  129
+		3DD149430552F8AA00000202 /* ULIPaintView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ULIPaintView.m; sourceTree = "<group>"; };
  130
+		3DD1494605531A9300000202 /* ULIPaintTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ULIPaintTool.h; sourceTree = "<group>"; };
  131
+		3DD1494705531A9300000202 /* ULIPaintTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ULIPaintTool.m; sourceTree = "<group>"; };
  132
+		3DD1494A05531FF800000202 /* ULIPaintFreehandTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ULIPaintFreehandTool.h; sourceTree = "<group>"; };
  133
+		3DD1494B05531FF800000202 /* ULIPaintFreehandTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ULIPaintFreehandTool.m; sourceTree = "<group>"; };
  134
+		3DD1495705532B2900000202 /* ULIPaintRectangleTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ULIPaintRectangleTool.h; sourceTree = "<group>"; };
  135
+		3DD1495805532B2900000202 /* ULIPaintRectangleTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ULIPaintRectangleTool.m; sourceTree = "<group>"; };
128 136
 		3DD4B8FF0BAB598C0066C1AE /* UKPaintSelectTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintSelectTool.tiff; sourceTree = "<group>"; };
129  
-		3DD4B9010BAB599C0066C1AE /* UKPaintSelectTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintSelectTool.h; sourceTree = "<group>"; };
130  
-		3DD4B9020BAB599C0066C1AE /* UKPaintSelectTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintSelectTool.m; sourceTree = "<group>"; };
  137
+		3DD4B9010BAB599C0066C1AE /* ULIPaintSelectionRectangleTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintSelectionRectangleTool.h; sourceTree = "<group>"; };
  138
+		3DD4B9020BAB599C0066C1AE /* ULIPaintSelectionRectangleTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintSelectionRectangleTool.m; sourceTree = "<group>"; };
131 139
 		3DD4BDB20BAC02FF0066C1AE /* UKFloatingWindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = UKFloatingWindow.h; path = ../UliKit/UKFloatingWindow.h; sourceTree = "<group>"; };
132 140
 		3DD4BDB30BAC02FF0066C1AE /* UKFloatingWindow.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = UKFloatingWindow.m; path = ../UliKit/UKFloatingWindow.m; sourceTree = "<group>"; };
133  
-		3DF9B8020BA5C133001A72D2 /* UKPaintRoundrectTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintRoundrectTool.m; sourceTree = "<group>"; };
134  
-		3DF9B8030BA5C133001A72D2 /* UKPaintRoundrectTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintRoundrectTool.h; sourceTree = "<group>"; };
135  
-		3DF9B8080BA5C1A9001A72D2 /* UKPaintOvalTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintOvalTool.m; sourceTree = "<group>"; };
136  
-		3DF9B8090BA5C1A9001A72D2 /* UKPaintOvalTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintOvalTool.h; sourceTree = "<group>"; };
  141
+		3DF9B8020BA5C133001A72D2 /* ULIPaintRoundedRectangleTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintRoundedRectangleTool.m; sourceTree = "<group>"; };
  142
+		3DF9B8030BA5C133001A72D2 /* ULIPaintRoundedRectangleTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintRoundedRectangleTool.h; sourceTree = "<group>"; };
  143
+		3DF9B8080BA5C1A9001A72D2 /* ULIPaintOvalTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintOvalTool.m; sourceTree = "<group>"; };
  144
+		3DF9B8090BA5C1A9001A72D2 /* ULIPaintOvalTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintOvalTool.h; sourceTree = "<group>"; };
137 145
 		3DF9B80C0BA5C1F4001A72D2 /* UKPaintOvalTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintOvalTool.tiff; sourceTree = "<group>"; };
138 146
 		3DF9B80D0BA5C1F4001A72D2 /* UKPaintRoundrectTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintRoundrectTool.tiff; sourceTree = "<group>"; };
139 147
 		3DF9B8100BA5C25C001A72D2 /* UKPaintTempArrowTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintTempArrowTool.tiff; sourceTree = "<group>"; };
@@ -141,18 +149,26 @@
141 149
 		3DF9B8120BA5C25C001A72D2 /* UKPaintTempOvalTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintTempOvalTool.tiff; sourceTree = "<group>"; };
142 150
 		3DF9B8130BA5C25C001A72D2 /* UKPaintTempRectTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintTempRectTool.tiff; sourceTree = "<group>"; };
143 151
 		3DF9B8140BA5C25C001A72D2 /* UKPaintTempRoundrectTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintTempRoundrectTool.tiff; sourceTree = "<group>"; };
144  
-		3DF9B81A0BA5C2BC001A72D2 /* UKPaintTempRoundrectTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintTempRoundrectTool.m; sourceTree = "<group>"; };
145  
-		3DF9B81B0BA5C2BC001A72D2 /* UKPaintTempRectTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintTempRectTool.h; sourceTree = "<group>"; };
146  
-		3DF9B81C0BA5C2BC001A72D2 /* UKPaintTempRectTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintTempRectTool.m; sourceTree = "<group>"; };
147  
-		3DF9B81D0BA5C2BC001A72D2 /* UKPaintTempRoundrectTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintTempRoundrectTool.h; sourceTree = "<group>"; };
148  
-		3DF9B81E0BA5C2BC001A72D2 /* UKPaintTempOvalTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintTempOvalTool.h; sourceTree = "<group>"; };
149  
-		3DF9B81F0BA5C2BC001A72D2 /* UKPaintTempOvalTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintTempOvalTool.m; sourceTree = "<group>"; };
150  
-		3DF9B8200BA5C2BC001A72D2 /* UKPaintTempLineTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintTempLineTool.h; sourceTree = "<group>"; };
151  
-		3DF9B8210BA5C2BC001A72D2 /* UKPaintTempLineTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintTempLineTool.m; sourceTree = "<group>"; };
152  
-		3DF9B8220BA5C2BC001A72D2 /* UKPaintTempArrowTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UKPaintTempArrowTool.h; sourceTree = "<group>"; };
153  
-		3DF9B8230BA5C2BC001A72D2 /* UKPaintTempArrowTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UKPaintTempArrowTool.m; sourceTree = "<group>"; };
  152
+		3DF9B81A0BA5C2BC001A72D2 /* ULIPaintTempRoundrectTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintTempRoundrectTool.m; sourceTree = "<group>"; };
  153
+		3DF9B81B0BA5C2BC001A72D2 /* ULIPaintTempRectangleTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintTempRectangleTool.h; sourceTree = "<group>"; };
  154
+		3DF9B81C0BA5C2BC001A72D2 /* ULIPaintTempRectangleTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintTempRectangleTool.m; sourceTree = "<group>"; };
  155
+		3DF9B81D0BA5C2BC001A72D2 /* ULIPaintTempRoundrectTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintTempRoundrectTool.h; sourceTree = "<group>"; };
  156
+		3DF9B81E0BA5C2BC001A72D2 /* ULIPaintTempOvalTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintTempOvalTool.h; sourceTree = "<group>"; };
  157
+		3DF9B81F0BA5C2BC001A72D2 /* ULIPaintTempOvalTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintTempOvalTool.m; sourceTree = "<group>"; };
  158
+		3DF9B8200BA5C2BC001A72D2 /* ULIPaintTempLineTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintTempLineTool.h; sourceTree = "<group>"; };
  159
+		3DF9B8210BA5C2BC001A72D2 /* ULIPaintTempLineTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintTempLineTool.m; sourceTree = "<group>"; };
  160
+		3DF9B8220BA5C2BC001A72D2 /* ULIPaintTempArrowTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ULIPaintTempArrowTool.h; sourceTree = "<group>"; };
  161
+		3DF9B8230BA5C2BC001A72D2 /* ULIPaintTempArrowTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ULIPaintTempArrowTool.m; sourceTree = "<group>"; };
154 162
 		3DF9B8360BA5C4B4001A72D2 /* NSBezierPath+RoundRect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+RoundRect.h"; path = "../UliKit/NSBezierPath+RoundRect.h"; sourceTree = SOURCE_ROOT; };
155 163
 		3DF9B8370BA5C4B4001A72D2 /* NSBezierPath+RoundRect.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+RoundRect.m"; path = "../UliKit/NSBezierPath+RoundRect.m"; sourceTree = SOURCE_ROOT; };
  164
+		55039F72136C9ECF0082E32E /* ULIPaintShapeTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ULIPaintShapeTool.h; sourceTree = "<group>"; };
  165
+		55039F73136C9ED30082E32E /* ULIPaintShapeTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ULIPaintShapeTool.m; sourceTree = "<group>"; };
  166
+		55039F76136C9EE30082E32E /* ULIPaintBrushTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ULIPaintBrushTool.h; sourceTree = "<group>"; };
  167
+		55039F77136C9EE70082E32E /* ULIPaintBrushTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ULIPaintBrushTool.m; sourceTree = "<group>"; };
  168
+		55039F7A136CA42A0082E32E /* NSBezierPath+ULIRegularPolygon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+ULIRegularPolygon.h"; path = "../UliKit/NSBezierPath+ULIRegularPolygon.h"; sourceTree = "<group>"; };
  169
+		55039F7B136CA42F0082E32E /* NSBezierPath+ULIRegularPolygon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+ULIRegularPolygon.m"; path = "../UliKit/NSBezierPath+ULIRegularPolygon.m"; sourceTree = "<group>"; };
  170
+		55039F7E136CA6150082E32E /* UKPaintShapeTool.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = UKPaintShapeTool.tiff; sourceTree = "<group>"; };
  171
+		55039F80136CC84A0082E32E /* brush01.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = brush01.tiff; sourceTree = "<group>"; };
156 172
 /* End PBXFileReference section */
157 173
 
158 174
 /* Begin PBXFrameworksBuildPhase section */
@@ -170,12 +186,12 @@
170 186
 		080E96DDFE201D6D7F000001 /* Classes */ = {
171 187
 			isa = PBXGroup;
172 188
 			children = (
173  
-				3DD149420552F8AA00000202 /* UKPaintView.h */,
174  
-				3DD149430552F8AA00000202 /* UKPaintView.m */,
175  
-				3DD1494605531A9300000202 /* UKPaintTool.h */,
176  
-				3DD1494705531A9300000202 /* UKPaintTool.m */,
177  
-				3D3CC14305570BF400000202 /* UKLineSizeView.h */,
178  
-				3D3CC14405570BF400000202 /* UKLineSizeView.m */,
  189
+				3DD149420552F8AA00000202 /* ULIPaintView.h */,
  190
+				3DD149430552F8AA00000202 /* ULIPaintView.m */,
  191
+				3DD1494605531A9300000202 /* ULIPaintTool.h */,
  192
+				3DD1494705531A9300000202 /* ULIPaintTool.m */,
  193
+				3D3CC14305570BF400000202 /* ULILineSizeView.h */,
  194
+				3D3CC14405570BF400000202 /* ULILineSizeView.m */,
179 195
 				3DD1494E0553201D00000202 /* Tools */,
180 196
 				3DD4BDF40BAC04630066C1AE /* UliKit */,
181 197
 			);
@@ -216,7 +232,7 @@
216 232
 				29B97317FDCFA39411CA2CEA /* Resources */,
217 233
 				29B97323FDCFA39411CA2CEA /* Frameworks */,
218 234
 				19C28FACFE9D520D11CA2CBB /* Products */,
219  
-				3D5F94610BA5BC9F0037BC78 /* Info-UKPaintView__Upgraded_.plist */,
  235
+				3D5F94610BA5BC9F0037BC78 /* Info-UKPaintView.plist */,
220 236
 				3D910DBB0BAF70F70039C0AD /* TODO.txt */,
221 237
 			);
222 238
 			name = UKPaintView;
@@ -259,6 +275,8 @@
259 275
 				3DD4B8FF0BAB598C0066C1AE /* UKPaintSelectTool.tiff */,
260 276
 				3D910C990BAF62430039C0AD /* UKPaintPathTool.tiff */,
261 277
 				3D910D1D0BAF673F0039C0AD /* UKPaintLassoTool.tiff */,
  278
+				55039F7E136CA6150082E32E /* UKPaintShapeTool.tiff */,
  279
+				55039F80136CC84A0082E32E /* brush01.tiff */,
262 280
 			);
263 281
 			name = Resources;
264 282
 			sourceTree = "<group>";
@@ -275,38 +293,42 @@
275 293
 		3DD1494E0553201D00000202 /* Tools */ = {
276 294
 			isa = PBXGroup;
277 295
 			children = (
278  
-				3DD1494A05531FF800000202 /* UKPaintbrushTool.h */,
279  
-				3DD1494B05531FF800000202 /* UKPaintbrushTool.m */,
280  
-				3DD1495705532B2900000202 /* UKPaintRectTool.h */,
281  
-				3DD1495805532B2900000202 /* UKPaintRectTool.m */,
282  
-				3DF9B8030BA5C133001A72D2 /* UKPaintRoundrectTool.h */,
283  
-				3DF9B8020BA5C133001A72D2 /* UKPaintRoundrectTool.m */,
284  
-				3DF9B8080BA5C1A9001A72D2 /* UKPaintOvalTool.m */,
285  
-				3DF9B8090BA5C1A9001A72D2 /* UKPaintOvalTool.h */,
286  
-				3D1DCC320553CE7500000202 /* UKPaintTextTool.h */,
287  
-				3D1DCC340553CE7500000202 /* UKPaintTextTool.m */,
288  
-				3D3CB39F05567A6700000202 /* UKPaintEraseRectTool.h */,
289  
-				3D3CB3A205567A6700000202 /* UKPaintEraseRectTool.m */,
290  
-				3D3CB3A105567A6700000202 /* UKPaintEraserTool.h */,
291  
-				3D3CB3A005567A6700000202 /* UKPaintEraserTool.m */,
292  
-				3DA9B23E055A941F00F486B9 /* UKPaintLineTool.h */,
293  
-				3DA9B23F055A941F00F486B9 /* UKPaintLineTool.m */,
294  
-				3DF9B81B0BA5C2BC001A72D2 /* UKPaintTempRectTool.h */,
295  
-				3DF9B81C0BA5C2BC001A72D2 /* UKPaintTempRectTool.m */,
296  
-				3DF9B81D0BA5C2BC001A72D2 /* UKPaintTempRoundrectTool.h */,
297  
-				3DF9B81A0BA5C2BC001A72D2 /* UKPaintTempRoundrectTool.m */,
298  
-				3DF9B81E0BA5C2BC001A72D2 /* UKPaintTempOvalTool.h */,
299  
-				3DF9B81F0BA5C2BC001A72D2 /* UKPaintTempOvalTool.m */,
300  
-				3DF9B8200BA5C2BC001A72D2 /* UKPaintTempLineTool.h */,
301  
-				3DF9B8210BA5C2BC001A72D2 /* UKPaintTempLineTool.m */,
302  
-				3DF9B8220BA5C2BC001A72D2 /* UKPaintTempArrowTool.h */,
303  
-				3DF9B8230BA5C2BC001A72D2 /* UKPaintTempArrowTool.m */,
304  
-				3DD4B9010BAB599C0066C1AE /* UKPaintSelectTool.h */,
305  
-				3DD4B9020BAB599C0066C1AE /* UKPaintSelectTool.m */,
306  
-				3D910C960BAF62320039C0AD /* UKPaintPathTool.h */,
307  
-				3D910C950BAF62320039C0AD /* UKPaintPathTool.m */,
308  
-				3D910D1A0BAF67390039C0AD /* UKPaintLassoTool.h */,
309  
-				3D910D190BAF67390039C0AD /* UKPaintLassoTool.m */,
  296
+				3DD1494A05531FF800000202 /* ULIPaintFreehandTool.h */,
  297
+				3DD1494B05531FF800000202 /* ULIPaintFreehandTool.m */,
  298
+				3DD1495705532B2900000202 /* ULIPaintRectangleTool.h */,
  299
+				3DD1495805532B2900000202 /* ULIPaintRectangleTool.m */,
  300
+				3DF9B8030BA5C133001A72D2 /* ULIPaintRoundedRectangleTool.h */,
  301
+				3DF9B8020BA5C133001A72D2 /* ULIPaintRoundedRectangleTool.m */,
  302
+				3DF9B8090BA5C1A9001A72D2 /* ULIPaintOvalTool.h */,
  303
+				3DF9B8080BA5C1A9001A72D2 /* ULIPaintOvalTool.m */,
  304
+				3D1DCC320553CE7500000202 /* ULIPaintTextTool.h */,
  305
+				3D1DCC340553CE7500000202 /* ULIPaintTextTool.m */,
  306
+				3D3CB39F05567A6700000202 /* ULIPaintEraseRectTool.h */,
  307
+				3D3CB3A205567A6700000202 /* ULIPaintEraseRectTool.m */,
  308
+				3D3CB3A105567A6700000202 /* ULIPaintEraserTool.h */,
  309
+				3D3CB3A005567A6700000202 /* ULIPaintEraserTool.m */,
  310
+				3DA9B23E055A941F00F486B9 /* ULIPaintLineTool.h */,
  311
+				3DA9B23F055A941F00F486B9 /* ULIPaintLineTool.m */,
  312
+				3DF9B81B0BA5C2BC001A72D2 /* ULIPaintTempRectangleTool.h */,
  313
+				3DF9B81C0BA5C2BC001A72D2 /* ULIPaintTempRectangleTool.m */,
  314
+				3DF9B81D0BA5C2BC001A72D2 /* ULIPaintTempRoundrectTool.h */,
  315
+				3DF9B81A0BA5C2BC001A72D2 /* ULIPaintTempRoundrectTool.m */,
  316
+				3DF9B81E0BA5C2BC001A72D2 /* ULIPaintTempOvalTool.h */,
  317
+				3DF9B81F0BA5C2BC001A72D2 /* ULIPaintTempOvalTool.m */,
  318
+				3DF9B8200BA5C2BC001A72D2 /* ULIPaintTempLineTool.h */,
  319
+				3DF9B8210BA5C2BC001A72D2 /* ULIPaintTempLineTool.m */,
  320
+				3DF9B8220BA5C2BC001A72D2 /* ULIPaintTempArrowTool.h */,
  321
+				3DF9B8230BA5C2BC001A72D2 /* ULIPaintTempArrowTool.m */,
  322
+				3DD4B9010BAB599C0066C1AE /* ULIPaintSelectionRectangleTool.h */,
  323
+				3DD4B9020BAB599C0066C1AE /* ULIPaintSelectionRectangleTool.m */,
  324
+				3D910D1A0BAF67390039C0AD /* ULIPaintSelectionLassoTool.h */,
  325
+				3D910D190BAF67390039C0AD /* ULIPaintSelectionLassoTool.m */,
  326
+				3D910C960BAF62320039C0AD /* ULIPaintPathTool.h */,
  327
+				3D910C950BAF62320039C0AD /* ULIPaintPathTool.m */,
  328
+				55039F72136C9ECF0082E32E /* ULIPaintShapeTool.h */,
  329
+				55039F73136C9ED30082E32E /* ULIPaintShapeTool.m */,