ToolApplicationModel.st
changeset 748 1d7cf4eb02a4
parent 745 9a306f58ea68
--- a/ToolApplicationModel.st	Mon Dec 08 18:37:47 1997 +0100
+++ b/ToolApplicationModel.st	Mon Dec 08 22:12:11 1997 +0100
@@ -2,7 +2,7 @@
 	instanceVariableNames:'activeHelp timeBlock'
 	classVariableNames:''
 	poolDictionaries:''
-	category:'Interface-Framework'
+	category:'Interface-Advanced-Tools'
 !
 
 ToolApplicationModel class instanceVariableNames:'history'
@@ -20,8 +20,8 @@
 
 documentation
 "
-    standard framework for tools; provides hooks for about menu,
-    help menu etc.
+    standard framework for tools; provides hooks for history management,
+    about menu, help menu etc.
     See concrete subclasses for examples.
 
     [see also:]
@@ -40,11 +40,6 @@
     ^'unknown'
 !
 
-defaultIcon
-
-    ^Launcher aboutIcon
-!
-
 label
 
     |label|
@@ -59,10 +54,9 @@
 
 !ToolApplicationModel class methodsFor:'history'!
 
-history
+getHistory
 
-    history isNil ifTrue: [history := OrderedCollection new].
-    ^history
+    ^history ? (history := OrderedCollection new)
 
 !
 
@@ -156,10 +150,94 @@
 
 !ToolApplicationModel class methodsFor:'resources'!
 
+compressChanges
+
+    <resource: #image>
+    ^(Depth2Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 255 255 255 255 192 0 0 3 252 0 0 3 240 0 0 3 240 0 0 0 240 0 0 3 240 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 240 0 0 0 128 0 0 0 240 0 0 0 128 0 0 0 240 0 0 0 0 0 0 3 240 0 0 15 255 255 255 255 192 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) ; colorMap:(((Array new:4) at:1 put:((Color black)); at:2 put:((Color black)); at:3 put:((Color grey:49.0196)); at:4 put:((Color red:44.3137 green:50.5882 blue:56.8627)); yourself)); mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 31 255 248 0 63 255 252 0 63 255 254 0 62 0 30 0 62 0 30 0 127 0 30 0 127 0 30 0 0 0 30 53 37 118 222 69 87 68 158 71 119 86 222 69 87 84 94 53 85 118 222 0 0 0 30 0 127 0 30 0 127 0 30 0 62 0 30 0 28 0 30 0 28 0 30 0 127 255 254 0 127 255 252 0 127 255 248 0 28 0 0 1 28 64 0 1 156 192 0 1 255 192 0 1 156 192 0 1 28 64 0 0 0 0 0 0 0 0 0]) ; yourself); yourself!
+
+compressChangesIcon
+
+    <resource: #image>
+    ^(Depth2Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 42 170 170 168 0 0 40 0 0 8 0 0 40 0 0 8 0 1 0 0 0 8 0 0 0 0 0 8 0 0 0 0 0 8 0 0 0 0 0 8 0 0 0 0 0 8 0 0 0 0 0 8 0 0 0 0 0 8 0 0 0 0 0 8 0 1 0 0 0 8 0 0 64 0 0 8 0 0 16 0 0 8 0 0 0 0 0 8 0 0 170 170 170 168 0 0 0 0 0 0 0 0 16 0 0 0 0 0 16 0 0 0 0 0 16 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0]) ; colorMap:((OrderedCollection new add:(Color black); add:(Color grey:49.0196); add:(Color red:44.3137 green:50.5882 blue:56.8627); add:(Color white); yourself)); mask:((ImageMask new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 0 127 254 0 255 255 0 255 255 0 240 7 1 248 7 0 0 7 217 54 223 154 180 151 155 182 215 154 182 151 218 182 247 0 0 7 1 248 7 0 240 7 0 96 7 1 255 255 1 255 255 1 255 254 0 96 0 2 100 0 3 252 0 2 100 0 0 0 0]) ; yourself); yourself!
+
+garbageCollectIcon
+
+    <resource: #image>
+    ^(Depth4Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(#[17 0 0 0 0 1 17 17 17 17 17 17 17 0 0 0 0 1 17 17 17 17 17 17 17 0 0 2 34 34 17 17 17 17 17 17 17 0 0 34 34 34 33 18 0 0 17 17 17 0 2 34 0 2 34 34 0 0 17 17 17 0 2 32 0 1 34 34 16 0 0 17 17 0 2 32 0 1 34 34 16 254 0 17 17 0 2 32 0 2 34 34 17 15 224 17 17 0 34 34 0 1 17 17 17 16 254 1 17 2 2 32 32 1 17 17 0 0 15 1 17 32 32 2 2 1 17 0 238 238 224 1 17 0 0 0 0 1 17 1 0 0 15 1 16 0 0 0 0 0 0 1 17 31 255 1 16 0 0 0 0 0 0 1 15 255 14 1 16 0 0 0 0 0 0 1 15 15 14 1 16 0 0 0 0 0 0 1 15 15 14 1 16 0 0 0 0 0 0 1 15 15 14 1 16 0 0 0 0 17 0 1 15 15 14 1 16 0 0 0 0 16 0 1 15 15 14 1 16 0 0 0 0 0 0 1 15 15 14 1 0 0 0 0 0 0 17 1 255 15 254 1 16 0 0 0 0 0 17 0 254 238 224 1 17 17 17 0 0 17 17 17 0 0 1 17 17 17 17 17 16 1 17 17 17 17 17 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) ; colorMap:((OrderedCollection new add:(Color black); add:(Color white); add:(Color red:100.0 green:0.0 blue:0.0); add:(Color red:0.0 green:100.0 blue:0.0); add:(Color red:0.0 green:0.0 blue:100.0); add:(Color red:0.0 green:100.0 blue:100.0); add:(Color red:100.0 green:100.0 blue:0.0); add:(Color red:100.0 green:0.0 blue:100.0); add:(Color red:49.9977 green:0.0 blue:0.0); add:(Color red:0.0 green:49.9977 blue:0.0); add:(Color red:0.0 green:0.0 blue:49.9977); add:(Color red:0.0 green:49.9977 blue:49.9977); add:(Color red:49.9977 green:49.9977 blue:0.0); add:(Color red:49.9977 green:0.0 blue:49.9977); add:(Color grey:49.9977); add:(Color grey:66.9978); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 1 240 0 3 249 0 7 31 0 6 15 112 6 15 120 6 31 60 15 0 30 22 128 254 41 67 254 0 3 254 0 163 254 3 243 254 1 67 254 7 227 254 2 131 254 20 3 254 126 83 254 41 251 254 252 163 254 83 243 254 1 64 248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) ; yourself); yourself!
+
 icon
 
+    |iconSelector|
+    (super respondsTo: (iconSelector := ('start', self name, 'Icon') asSymbol)) ifFalse: [^self stxIcon].
+    ^(self perform: iconSelector) subImageIn: (0@0 extent: (24@16))
+!
+
+newProjectIcon
+
     <resource: #image>
-    ^(Depth2Image new) width: 19; height: 19; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(#[0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 5 0 0 64 0 5 0 1 65 0 1 64 0 0 0 1 64 20 0 0 0 80 64 0 0 0 81 64 3 0 0 21 0 0 0 0 20 0 0 0 0 84 0 0 0 1 65 0 3 0 5 0 64 0 0 20 0 64 0 1 80 0 0 0 1 80 0 4 3 0 0 0 0 1 0 0 0 0 0]) ; colorMap:((OrderedCollection new add:(Color grey:9.41176); add:(Color red:0.0 green:80.7843 blue:18.8235); add:(Color black); add:(Color white); yourself)); yourself! !
+    ^(Depth4Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(#[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 0 0 0 0 0 0 0 0 17 17 17 17 0 0 0 0 0 0 0 0 16 17 17 17 0 0 0 0 0 0 0 0 16 1 17 17 0 0 0 0 0 0 0 0 17 17 17 17 0 0 0 0 0 0 0 0 0 0 17 17 0 0 0 0 0 0 0 0 0 0 17 17 0 0 0 0 0 0 0 0 0 0 17 17 1 17 1 16 0 16 0 0 0 0 17 17 1 1 1 1 1 1 0 0 0 0 17 17 1 17 1 16 1 1 1 17 0 0 17 17 1 0 1 1 1 1 0 0 0 0 17 17 1 0 1 1 0 16 0 0 0 0 17 17 0 0 0 0 0 0 0 0 0 0 17 17 0 0 0 0 0 0 0 0 0 0 17 17 1 17 1 17 0 17 1 17 0 0 17 17 0 1 1 0 1 0 0 16 0 0 17 17 0 1 1 16 1 0 0 16 0 0 17 17 0 1 1 0 1 0 0 16 0 0 17 17 1 16 1 17 0 17 0 16 0 0 17 17 0 0 0 0 0 0 0 0 0 0 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17]) ; colorMap:((OrderedCollection new add:(Color white); add:(Color black); add:(Color red:100.0 green:0.0 blue:0.0); add:(Color red:0.0 green:100.0 blue:0.0); add:(Color red:0.0 green:0.0 blue:100.0); add:(Color red:0.0 green:100.0 blue:100.0); add:(Color red:100.0 green:100.0 blue:0.0); add:(Color red:100.0 green:0.0 blue:100.0); add:(Color red:49.9962 green:0.0 blue:0.0); add:(Color red:0.0 green:49.9962 blue:0.0); add:(Color red:0.0 green:0.0 blue:49.9962); add:(Color red:0.0 green:49.9962 blue:49.9962); add:(Color red:49.9962 green:49.9962 blue:0.0); add:(Color red:49.9962 green:0.0 blue:49.9962); add:(Color grey:49.9962); add:(Color grey:66.9978); add:(Color black); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 127 255 224 127 255 240 127 255 248 127 255 252 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) ; yourself); yourself
+
+!
+
+removeProjectIcon
+
+    <resource: #image>
+    ^(Depth2Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(#[85 85 85 85 85 85 85 85 85 85 85 85 90 0 0 0 5 85 90 128 0 0 4 85 82 160 0 0 4 21 80 168 0 0 37 85 80 42 0 0 168 5 80 10 128 2 160 5 80 2 160 10 128 5 81 81 168 106 0 5 81 17 42 168 0 5 81 81 74 161 80 5 81 1 26 160 0 5 81 1 42 168 0 5 80 0 168 42 0 5 80 2 160 10 128 5 81 90 144 82 160 5 80 42 1 0 168 5 80 169 65 0 106 5 82 161 1 0 74 133 90 129 80 80 66 165 90 0 0 0 0 165 85 85 85 85 85 85 85 85 85 85 85 85]) ; colorMap:((OrderedCollection new add:(Color white); add:(Color black); add:(Color grey:49.9992); add:(Color red:100.0 green:0.0 blue:0.0); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 127 255 224 127 255 240 127 255 248 127 255 252 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) ; yourself); yourself!
+
+saveIcon
+
+    <resource: #image>
+    ^(Depth2Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(#[85 85 85 85 85 85 89 0 0 0 3 169 105 0 0 0 3 169 105 0 0 0 3 153 105 0 0 0 3 153 105 0 0 0 3 169 105 0 0 0 3 169 105 0 0 0 3 169 105 0 0 0 3 169 105 0 0 0 3 169 105 0 0 0 3 169 105 0 0 0 3 169 105 0 0 0 3 169 107 255 255 255 255 169 106 170 170 170 170 169 106 170 170 170 170 169 106 165 85 85 86 169 106 167 255 255 111 169 106 167 83 255 107 169 106 167 99 255 107 169 106 167 99 255 107 169 106 167 3 255 107 169 90 167 255 255 107 165 85 85 85 85 85 85]) ; colorMap:(((Array new:4) at:1 put:((Color white)); at:2 put:((Color black)); at:3 put:((Color grey:49.9962)); at:4 put:((Color grey:66.9978)); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 63 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 63 255 252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) ; yourself); yourself
+!
+
+startFileBrowserIcon
+
+    <resource: #image>
+    ^(Depth2Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 0 0 0 10 170 170 170 170 160 0 0 0 0 0 0 5 85 84 85 85 80 5 85 84 85 85 80 5 85 84 85 85 80 5 85 84 85 85 80 0 0 0 0 0 0 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 0 0 0 0 0 0 0 0 0 0 0 0 0 16 65 0 16 16 1 80 65 1 81 80 1 0 65 1 1 0 0 16 65 0 64 64 1 80 65 1 64 16 1 0 65 1 0 16 1 0 64 16 16 80 1 0 65 81 81 64]) ; colorMap:((OrderedCollection new add:(Color black); add:(Color white); add:(Color red:0.0 green:49.9962 blue:49.9962); add:(Color red:100.0 green:0.0 blue:0.0); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 0 0 0 61 179 220 61 179 252 49 179 48 61 179 152 61 179 140 49 179 12 49 191 252 16 157 216]) ; yourself); yourself!
+
+startGUIBuilderIcon
+
+    <resource: #image>
+    ^(Depth4Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 204 204 204 204 204 192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 34 32 17 18 33 16 0 0 0 0 0 39 255 32 34 34 34 32 0 0 0 0 0 34 255 240 34 34 34 32 0 0 0 0 0 39 255 32 34 34 34 32 0 0 0 0 0 34 255 32 34 34 34 32 0 0 0 0 0 39 255 240 34 34 34 32 0 0 0 0 0 34 34 32 255 255 255 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 17 17 17 17 17 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33 17 16 1 0 1 0 1 16 0 0 0 16 0 0 1 0 1 0 1 0 0 0 0 16 0 0 1 0 1 0 1 0 0 0 0 16 16 16 1 0 1 0 1 0 0 0 0 16 0 16 1 0 1 0 1 0 0 0 0 0 0 16 0 0 17 0 0 0 0 0 0 1 17 16 0 17 16 0 17 16 0 0]) ; colorMap:((OrderedCollection new add:(Color black); add:(Color white); add:(Color grey:66.9978); add:(Color red:100.0 green:0.0 blue:0.0); add:(Color red:0.0 green:100.0 blue:0.0); add:(Color red:0.0 green:0.0 blue:100.0); add:(Color red:0.0 green:100.0 blue:100.0); add:(Color red:100.0 green:100.0 blue:0.0); add:(Color red:100.0 green:0.0 blue:100.0); add:(Color red:49.9962 green:0.0 blue:0.0); add:(Color red:0.0 green:49.9962 blue:0.0); add:(Color red:0.0 green:0.0 blue:49.9962); add:(Color red:0.0 green:49.9962 blue:49.9962); add:(Color red:49.9962 green:49.9962 blue:0.0); add:(Color red:49.9962 green:0.0 blue:49.9962); add:(Color grey:49.9962); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 127 255 0 127 255 0 127 255 32 127 255 48 127 255 56 127 255 60 127 255 62 127 255 56 127 255 40 127 255 4 127 255 4 127 255 2 127 255 2 0 0 0 0 0 0 60 137 192 126 204 224 96 204 192 124 204 192 110 204 192 102 204 192 62 125 192 30 56 224]) ; yourself); yourself!
+
+startImageEditorIcon
+
+    <resource: #image>
+    ^(Depth4Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 204 204 204 204 204 192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 34 32 68 64 101 96 0 0 0 0 0 33 17 32 68 64 86 80 0 0 0 0 0 63 255 32 68 64 101 96 0 0 0 0 0 79 255 32 0 0 0 0 0 0 0 0 0 95 255 32 131 128 119 112 0 0 0 0 0 241 17 16 56 48 119 112 0 0 0 0 0 241 17 16 131 128 119 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 34 34 34 34 34 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 16 0 0 16 1 0 0 16 0 17 16 0 16 16 16 16 16 1 1 0 16 16 0 0 16 16 16 16 0 1 1 0 0 0 0 0 16 16 0 16 17 1 1 0 16 17 0 0 16 16 0 16 16 1 1 0 16 16 0 0 16 16 0 16 16 1 0 0 16 0 0 0 16 16 0 16 16 1 0 17 16 17 16]) ; colorMap:((OrderedCollection new add:(Color black); add:(Color white); add:(Color grey:66.9978); add:(Color red:100.0 green:0.0 blue:0.0); add:(Color red:0.0 green:100.0 blue:0.0); add:(Color red:0.0 green:0.0 blue:100.0); add:(Color red:0.0 green:100.0 blue:100.0); add:(Color red:100.0 green:100.0 blue:0.0); add:(Color red:100.0 green:0.0 blue:100.0); add:(Color red:49.9962 green:0.0 blue:0.0); add:(Color red:0.0 green:49.9962 blue:0.0); add:(Color red:0.0 green:0.0 blue:49.9962); add:(Color red:0.0 green:49.9962 blue:49.9962); add:(Color red:49.9962 green:49.9962 blue:0.0); add:(Color red:49.9962 green:0.0 blue:49.9962); add:(Color grey:49.9962); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 127 255 0 127 255 0 127 255 32 127 255 48 127 255 56 127 255 60 127 255 62 127 255 56 127 255 40 127 255 4 127 255 4 127 255 2 127 255 2 0 0 0 0 0 0 113 49 156 123 218 222 127 239 56 123 255 216 121 255 124 121 239 120 121 237 252 40 164 238]) ; yourself); yourself!
+
+startLibraryBuilderIcon
+
+    <resource: #image>
+    ^(Depth4Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 68 68 68 68 68 68 64 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 98 82 80 37 37 37 32 0 0 0 0 0 101 37 32 82 82 82 80 0 0 0 0 0 98 82 80 37 37 37 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33 18 33 18 33 18 32 0 0 0 0 0 34 34 34 34 34 34 32 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 17 17 17 17 17 16 0 0 0 0 0 17 17 17 17 17 17 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 16 16 0 0 0 0 0 0 0 0 16 16 16 16 16 17 16 0 0 0 16 16 16 16 16 2 16 18 0 0 0 0 16 0 16 0 16 1 16 2 0 0 0 0 16 0 16 16 16 16 16 17 0 0 0 0 16 0 16 16 16 16 16 16 0 0 0 0 16 0 16 16 16 16 16 0 0 0 0 0 16 0 16 16 16 16 17 17 16 0 0]) ; colorMap:((OrderedCollection new add:(Color black); add:(Color white); add:(Color grey:66.9978); add:(Color red:100.0 green:100.0 blue:0.0); add:(Color red:0.0 green:49.9962 blue:49.9962); add:(Color grey:49.9962); add:(Color red:100.0 green:0.0 blue:0.0); add:(Color red:0.0 green:100.0 blue:0.0); add:(Color red:0.0 green:0.0 blue:100.0); add:(Color red:0.0 green:100.0 blue:100.0); add:(Color red:100.0 green:0.0 blue:100.0); add:(Color red:49.9962 green:0.0 blue:0.0); add:(Color red:0.0 green:49.9962 blue:0.0); add:(Color red:0.0 green:0.0 blue:49.9962); add:(Color red:0.0 green:49.9962 blue:49.9962); add:(Color red:49.9962 green:49.9962 blue:0.0); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 127 255 0 127 255 0 127 255 96 127 255 48 127 255 56 127 255 60 127 255 62 127 255 56 127 255 104 127 255 4 127 255 4 127 255 2 127 255 2 0 0 0 0 0 0 70 189 192 111 255 224 127 255 192 103 255 192 103 255 192 103 255 128 103 255 192 34 171 224]) ; yourself); yourself!
+
+startMenuEditorIcon
+
+    <resource: #image>
+    ^(Depth4Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 68 68 68 68 68 68 64 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 50 34 32 17 18 33 16 0 0 0 0 0 35 85 32 34 34 34 32 0 0 0 0 0 34 85 80 34 34 34 32 0 0 0 0 0 35 85 32 34 34 34 32 0 0 0 0 0 34 85 32 34 34 34 32 0 0 0 0 0 35 85 80 34 34 34 32 2 0 0 0 0 34 34 32 34 34 34 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 17 17 17 17 17 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 16 0 1 0 0 0 0 0 0 0 16 17 16 1 1 1 0 16 0 0 16 16 16 16 0 1 1 1 0 16 0 0 16 16 16 0 0 0 1 1 0 16 0 0 16 0 16 17 0 16 1 1 0 16 0 0 16 0 16 16 0 16 1 1 0 16 0 0 16 0 16 0 0 16 1 0 0 16 0 0 16 0 16 17 16 16 1 0 17 0 0]) ; colorMap:((OrderedCollection new add:(Color black); add:(Color white); add:(Color grey:66.9978); add:(Color red:100.0 green:100.0 blue:0.0); add:(Color red:0.0 green:49.9962 blue:49.9962); add:(Color grey:49.9962); add:(Color red:100.0 green:0.0 blue:0.0); add:(Color red:0.0 green:100.0 blue:0.0); add:(Color red:0.0 green:0.0 blue:100.0); add:(Color red:0.0 green:100.0 blue:100.0); add:(Color red:100.0 green:0.0 blue:100.0); add:(Color red:49.9962 green:0.0 blue:0.0); add:(Color red:0.0 green:49.9962 blue:0.0); add:(Color red:0.0 green:0.0 blue:49.9962); add:(Color red:0.0 green:49.9962 blue:49.9962); add:(Color red:49.9962 green:49.9962 blue:0.0); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 127 255 0 127 255 0 127 255 96 127 255 48 127 255 56 127 255 60 127 255 62 127 255 56 127 255 104 127 255 4 127 255 4 127 255 2 127 255 2 0 0 0 0 0 0 71 243 144 111 255 216 127 159 216 111 159 216 103 223 216 103 159 216 103 219 104 34 233 48]) ; yourself); yourself!
+
+startNewChangesBrowserIcon
+
+    <resource: #image>
+    ^(Depth2Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 0 0 0 10 170 170 170 170 160 0 0 0 0 0 0 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 0 0 0 0 0 0 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 52 68 192 68 84 81 16 68 68 4 64 65 16 4 4 4 0 0 16 68 68 4 68 80 16 68 68 68 68 64 0 68 68 68 4 0 4 68 68 68 84 81]) ; colorMap:(((Array new:4) at:1 put:((Color black)); at:2 put:((Color white)); at:3 put:((Color red:0.0 green:49.9962 blue:49.9962)); at:4 put:((Color grey:66.9978)); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 0 0 0 84 149 219 255 223 255 223 255 155 223 255 219 223 255 253 223 255 249 95 255 251 42 170 237]) ; yourself); yourself
+!
+
+startSourceCodeBrowserIcon
+
+    <resource: #image>
+    ^(Depth2Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 0 0 0 10 170 170 170 170 160 0 0 0 0 0 0 5 85 84 85 85 80 5 85 84 85 85 80 5 85 84 85 85 80 5 85 84 85 85 80 0 0 0 0 0 0 5 85 84 85 85 80 5 85 84 85 85 80 5 85 84 85 85 80 5 85 84 85 85 80 5 85 84 85 85 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 192 192 0 0 13 76 68 68 77 21 4 4 68 68 68 16 0 4 68 67 68 0 0 4 68 68 68 20 0 68 68 68 68 16 3 67 67 68 64 0 5 1 1 4 65 21]) ; colorMap:(((Array new:4) at:1 put:((Color black)); at:2 put:((Color white)); at:3 put:((Color red:0.0 green:49.9962 blue:49.9962)); at:4 put:((Color grey:66.9978)); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 0 0 0 50 222 46 127 255 255 103 255 236 39 255 236 23 255 238 31 255 236 123 191 174 49 18 151]) ; yourself); yourself!
+
+startSystemBrowserIcon
+
+    <resource: #image>
+    ^(Depth2Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(#[0 0 0 0 0 0 0 0 0 0 0 0 10 170 170 170 170 160 0 0 0 0 0 0 5 81 84 85 21 80 5 81 84 85 21 80 5 80 0 85 21 80 5 81 84 85 21 80 0 0 0 0 0 0 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 5 85 85 85 85 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53 16 192 81 69 21 16 16 68 65 4 16 16 16 4 48 192 0 16 16 68 16 69 17 16 16 68 16 68 1 0 0 64 0 64 1 5 21 69 85 69 85]) ; colorMap:(((Array new:4) at:1 put:((Color black)); at:2 put:((Color white)); at:3 put:((Color red:0.0 green:49.9962 blue:49.9962)); at:4 put:((Color grey:66.9993)); yourself)); mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(#[0 0 0 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 127 255 254 0 0 0 104 159 254 253 223 255 205 251 108 205 255 238 205 237 247 205 237 227 111 255 255 55 191 191]) ; yourself); yourself
+
+!
+
+stxIcon
+
+    <resource: #image>
+    ^(Depth2Image new) width: 19; height: 19; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(#[0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 5 0 0 64 0 5 0 1 65 0 1 64 0 0 0 1 64 20 0 0 0 80 64 0 0 0 81 64 3 0 0 21 0 0 0 0 20 0 0 0 0 84 0 0 0 1 65 0 3 0 5 0 64 0 0 20 0 64 0 1 80 0 0 0 1 80 0 4 3 0 0 0 0 1 0 0 0 0 0]) ; colorMap:((OrderedCollection new add:(Color grey:9.41176); add:(Color red:0.0 green:80.7843 blue:18.8235); add:(Color black); add:(Color white); yourself)); yourself
+! !
 
 !ToolApplicationModel methodsFor:'accessing menu'!
 
@@ -182,7 +260,6 @@
 valueOfInfoLabel
 
     |holder|
-
     (holder := builder bindingAt:#valueOfInfoLabel) isNil ifTrue:[
         builder aspectAt:#valueOfInfoLabel put:(holder :=  ValueHolder new).
     ].
@@ -193,7 +270,6 @@
 valueOfTimeLabel
 
     |holder|
-
     (holder := builder bindingAt:#valueOfTimeLabel) isNil ifTrue:[
         builder aspectAt:#valueOfTimeLabel put:(holder :=  ValueHolder new).
     ].
@@ -204,13 +280,13 @@
 !ToolApplicationModel methodsFor:'help'!
 
 activeHelp
-    "Answer whether active help is turned on for current application"
+    "Answer whether active help is turned on/off"
 
     ^activeHelp
 !
 
 activeHelp: aValue
-    "toggle active help for current application"
+    "toggle active help"
 
     (activeHelp := aValue)
         ifTrue: [ActiveHelp startFor: self]
@@ -299,14 +375,13 @@
 
 history
 
-    ^self class history
+    ^self class getHistory
 !
 
 menuHistory
 
     |menu a|
     menu := Menu new receiver: self.
-
     (self history collect: [:histEntry| histEntry value]) asSet asOrderedCollection do:
     [:historyEntryType|    
         menu addItemGroup: ((a := self history select: [:histEntry| histEntry value = historyEntryType]) collect: [:histEntry|  MenuItem new label: histEntry key; value: histEntry value; argument: histEntry key]).
@@ -319,23 +394,38 @@
 removeFromHistory: aHistoryEntry
 
     self history remove: (self history detect: [:histEntry| histEntry key = aHistoryEntry key] ifNone: nil) ifAbsent: nil.
-    [self history size > self class historyMaxSize] whileTrue: [self history removeLast]
+    [self history size > self historyMaxSize] whileTrue: [self history removeLast]
 ! !
 
 !ToolApplicationModel methodsFor:'startup / release'!
 
+close
+
+    activeHelp ifTrue: [ActiveHelp stopFor: self].
+    Processor removeTimedBlock:timeBlock.
+    timeBlock := nil.
+    super close
+!
+
 closeRequest
 
     activeHelp ifTrue: [ActiveHelp stopFor: self].
     Processor removeTimedBlock:timeBlock.
+    timeBlock := nil.
     super closeRequest
 !
 
 initialize
 
     activeHelp := false.
+    timeBlock := nil.
     timeBlock := [self showTime].
-    Processor addTimedBlock: timeBlock afterSeconds: 1
+    self showTime
+!
+
+restarted
+
+    self initialize
 ! !
 
 !ToolApplicationModel methodsFor:'window events'!
@@ -343,8 +433,9 @@
 showTime
 
     |hours minutes suffix|
-    suffix := ' am '.
-    (hours := Time now hours) >= 12 ifTrue: [hours := hours - 12. suffix := ' pm '].
+    suffix := ' am '.  
+    (hours := Time now hours) > 12 ifTrue: [hours := hours - 12].
+    Time now hours >= 12 ifTrue: [suffix := ' pm '].
     (minutes := Time now minutes printString) size = 1 ifTrue: [minutes := '0', minutes printString].
     self valueOfTimeLabel value: hours printString, ':', minutes, suffix.
     Processor addTimedBlock: timeBlock afterSeconds: 1
@@ -354,5 +445,5 @@
 !ToolApplicationModel class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview2/ToolApplicationModel.st,v 1.2 1997-12-03 14:15:18 tz Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/ToolApplicationModel.st,v 1.3 1997-12-08 21:12:11 tz Exp $'
 ! !