MenuEditor.st
changeset 406 a519e0d547f6
parent 398 155310ec83aa
child 407 578a7aaed19e
--- a/MenuEditor.st	Sat Jan 10 12:06:28 1998 +0100
+++ b/MenuEditor.st	Sat Jan 10 12:12:09 1998 +0100
@@ -75,6 +75,13 @@
 
 ! !
 
+!MenuEditor class methodsFor:'initialization'!
+
+initialize
+
+    Painter initialize
+! !
+
 !MenuEditor class methodsFor:'code generation'!
 
 generateCodeFor:aClass menuSelector:aSelector
@@ -222,96 +229,6 @@
 
 !MenuEditor class methodsFor:'interface specs'!
 
-classAndMethodSpec
-    "this window spec was automatically generated by the ST/X UIPainter"
-
-    "do not manually edit this - the painter/builder may not be able to
-     handle the specification if its corrupted."
-
-    "
-     UIPainter new openOnClass:MenuEditor andSelector:#classAndMethodSpec
-     MenuEditor new openInterface:#classAndMethodSpec
-    "
-
-    <resource: #canvas>
-
-    ^
-     
-       #(#FullSpec
-          #'window:' 
-           #(#WindowSpec
-              #'name:' 'MenuEditor'
-              #'layout:' #(#LayoutFrame 197 0 172 0 552 0 258 0)
-              #'label:' 'MenuEditor'
-              #'min:' #(#Point 10 10)
-              #'max:' #(#Point 1152 900)
-              #'bounds:' #(#Rectangle 197 172 553 259)
-              #'usePreferredExtent:' false
-          )
-          #'component:' 
-           #(#SpecCollection
-              #'collection:' 
-               #(
-                 #(#LabelSpec
-                    #'name:' 'classLabel'
-                    #'layout:' #(#LayoutFrame 0 0.0 4 0 150 0 21 0)
-                    #'label:' 'Class for menu code:'
-                    #'adjust:' #right
-                    #'resizeForLabel:' true
-                )
-                 #(#LabelSpec
-                    #'name:' 'selectorLabel'
-                    #'layout:' #(#LayoutFrame 0 0.0 29 0 150 0 46 0)
-                    #'label:' 'Selector for menu code:'
-                    #'adjust:' #right
-                    #'resizeForLabel:' true
-                )
-                 #(#InputFieldSpec
-                    #'name:' 'methodNameField'
-                    #'layout:' #(#LayoutFrame 155 0 27 0 0 1.0 49 0)
-                    #'tabable:' true
-                    #'model:' #methodNameChannel
-                )
-                 #(#InputFieldSpec
-                    #'name:' 'classNameField'
-                    #'layout:' #(#LayoutFrame 155 0 2 0 0 1.0 24 0)
-                    #'tabable:' true
-                    #'model:' #classNameChannel
-                )
-                 #(#HorizontalPanelViewSpec
-                    #'name:' 'commitPanel'
-                    #'layout:' #(#LayoutFrame 10 0.0 -29 1.0 -10 1.0 -5 1.0)
-                    #'component:' 
-                     #(#SpecCollection
-                        #'collection:' 
-                         #(
-                           #(#ActionButtonSpec
-                              #'name:' 'button1'
-                              #'label:' 'cancel'
-                              #'tabable:' true
-                              #'model:' #cancel
-                              #'extent:' #(#Point 163 24)
-                          )
-                           #(#ActionButtonSpec
-                              #'name:' 'button2'
-                              #'label:' 'ok'
-                              #'tabable:' true
-                              #'model:' #accept
-                              #'isDefault:' true
-                              #'extent:' #(#Point 164 24)
-                          )
-                        )
-                    )
-                    #'horizontalLayout:' #fitSpace
-                    #'verticalLayout:' #fit
-                    #'horizontalSpace:' 3
-                    #'verticalSpace:' 3
-                )
-              )
-          )
-      )
-!
-
 classDefineSpec
     "this window spec was automatically generated by the ST/X UIPainter"
 
@@ -427,18 +344,18 @@
                           #'value:' #doNew
                       )
                        #(#MenuItem
+                          #'label:' '-'
+                      )
+                       #(#MenuItem
                           #'label:' 'Load From Class...'
                           #'translateLabel:' true
                           #'value:' #doFromClass
                           #'enabled:' #isStandAlone
                       )
                        #(#MenuItem
-                          #'label:' '-'
-                      )
-                       #(#MenuItem
-                          #'label:' 'Pick A Menu'
-                          #'value:' #doPickAMenu
-                          #'enabled:' #isStandAlone
+                          #'label:' 'Load From Class With Superclass...'
+                          #'translateLabel:' true
+                          #'value:' #loadFromClassWithSuperclass
                       )
                        #(#MenuItem
                           #'label:' '-'
@@ -456,12 +373,17 @@
                           #'label:' '-'
                       )
                        #(#MenuItem
+                          #'label:' 'Pick A Menu'
+                          #'value:' #doPickAMenu
+                          #'enabled:' #isStandAlone
+                      )
+                       #(#MenuItem
                           #'label:' 'Define Class...'
                           #'value:' #doDefineClass
                           #'enabled:' #isStandAlone
                       )
                        #(#MenuItem
-                          #'label:' 'Browse Application Class'
+                          #'label:' 'Browse Class'
                           #'value:' #doBrowseAppClass
                       )
                        #(#MenuItem
@@ -719,11 +641,11 @@
           #'window:' 
            #(#WindowSpec
               #'name:' 'Menu Builder'
-              #'layout:' #(#LayoutFrame 102 0 166 0 681 0 549 0)
+              #'layout:' #(#LayoutFrame 227 0 195 0 806 0 578 0)
               #'label:' 'Menu Builder'
               #'min:' #(#Point 10 10)
               #'max:' #(#Point 1152 900)
-              #'bounds:' #(#Rectangle 102 166 682 550)
+              #'bounds:' #(#Rectangle 227 195 807 579)
               #'menu:' #menu
               #'usePreferredExtent:' false
           )
@@ -805,14 +727,14 @@
                 )
                  #(#LabelSpec
                     #'name:' 'infoLabel'
-                    #'layout:' #(#LayoutFrame 0 0.0 -22 1 -65 1.0 0 1.0)
+                    #'layout:' #(#LayoutFrame 0 0.0 -22 1 -80 1.0 0 1.0)
                     #'labelChannel:' #valueOfInfoLabel
                     #'level:' 1
                     #'adjust:' #left
                 )
                  #(#LabelSpec
                     #'name:' 'timeLabel'
-                    #'layout:' #(#LayoutFrame -65 1 -22 1 0 1.0 0 1.0)
+                    #'layout:' #(#LayoutFrame -80 1 -22 1 0 1.0 0 1.0)
                     #'labelChannel:' #valueOfTimeLabel
                     #'level:' 1
                     #'adjust:' #right
@@ -886,11 +808,11 @@
           #'window:' 
            #(#WindowSpec
               #'name:' 'unnamed canvas'
-              #'layout:' #(#LayoutFrame 197 0 172 0 463 0 490 0)
+              #'layout:' #(#LayoutFrame 454 0 288 0 720 0 606 0)
               #'label:' 'unnamed canvas'
               #'min:' #(#Point 10 10)
               #'max:' #(#Point 1160 870)
-              #'bounds:' #(#Rectangle 197 172 464 491)
+              #'bounds:' #(#Rectangle 454 288 721 607)
               #'usePreferredExtent:' false
           )
           #'component:' 
@@ -899,14 +821,14 @@
                #(
                  #(#LabelSpec
                     #'name:' 'nameKeyLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
                     #'label:' 'NameKey:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'nameKeyField'
-                    #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
+                    #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
                     #'activeHelpKey:' #nameKey
                     #'tabable:' true
                     #'model:' #nameKey
@@ -914,28 +836,28 @@
                 )
                  #(#LabelSpec
                     #'name:' 'labelLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 51 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5)
                     #'label:' 'Label:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'labelField'
-                    #'layout:' #(#LayoutFrame 90 0 40 0 0 1.0 62 0)
+                    #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0)
                     #'activeHelpKey:' #label
                     #'tabable:' true
                     #'model:' #label
                 )
                  #(#LabelSpec
                     #'name:' 'valueLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 90 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 90 0 1 0.5)
                     #'label:' 'Value:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'valueField'
-                    #'layout:' #(#LayoutFrame 90 0 79 0 0 1.0 101 0)
+                    #'layout:' #(#LayoutFrame 110 0 79 0 0 1.0 101 0)
                     #'activeHelpKey:' #value
                     #'tabable:' true
                     #'model:' #value
@@ -943,14 +865,14 @@
                 )
                  #(#LabelSpec
                     #'name:' 'argumentLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 115 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 115 0 1 0.5)
                     #'label:' 'Argument:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'argumentField'
-                    #'layout:' #(#LayoutFrame 90 0 104 0 0 1.0 126 0)
+                    #'layout:' #(#LayoutFrame 110 0 104 0 0 1.0 126 0)
                     #'activeHelpKey:' #argument
                     #'tabable:' true
                     #'model:' #argument
@@ -958,14 +880,14 @@
                 )
                  #(#LabelSpec
                     #'name:' 'indicationLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 155 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 155 0 1 0.5)
                     #'label:' 'Indication:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'indicationField'
-                    #'layout:' #(#LayoutFrame 90 0 144 0 0 1.0 166 0)
+                    #'layout:' #(#LayoutFrame 110 0 144 0 0 1.0 166 0)
                     #'activeHelpKey:' #indication
                     #'tabable:' true
                     #'model:' #indication
@@ -1009,11 +931,11 @@
           #'window:' 
            #(#WindowSpec
               #'name:' 'unnamed canvas'
-              #'layout:' #(#LayoutFrame 197 0 172 0 463 0 490 0)
+              #'layout:' #(#LayoutFrame 585 0 331 0 851 0 649 0)
               #'label:' 'unnamed canvas'
               #'min:' #(#Point 10 10)
               #'max:' #(#Point 1280 1024)
-              #'bounds:' #(#Rectangle 197 172 464 491)
+              #'bounds:' #(#Rectangle 585 331 852 650)
               #'usePreferredExtent:' false
           )
           #'component:' 
@@ -1022,7 +944,7 @@
                #(
                  #(#LabelSpec
                     #'name:' 'nameKeyLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
                     #'activeHelpKey:' #nameKey
                     #'label:' 'NameKey:'
                     #'adjust:' #right
@@ -1030,7 +952,7 @@
                 )
                  #(#InputFieldSpec
                     #'name:' 'nameKeyField'
-                    #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
+                    #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
                     #'activeHelpKey:' #nameKey
                     #'tabable:' true
                     #'model:' #nameKey
@@ -1038,20 +960,20 @@
                 )
                  #(#LabelSpec
                     #'name:' 'labelLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 51 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5)
                     #'label:' 'Label:'
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'labelField'
-                    #'layout:' #(#LayoutFrame 90 0 40 0 0 1.0 62 0)
+                    #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0)
                     #'activeHelpKey:' #label
                     #'tabable:' true
                     #'model:' #label
                 )
                  #(#InputFieldSpec
                     #'name:' 'menuField'
-                    #'layout:' #(#LayoutFrame 90 0 65 0 0 1.0 87 0)
+                    #'layout:' #(#LayoutFrame 110 0 65 0 0 1.0 87 0)
                     #'activeHelpKey:' #submenuChannel
                     #'tabable:' true
                     #'model:' #submenuChannel
@@ -1059,7 +981,7 @@
                 )
                  #(#LabelSpec
                     #'name:' 'menuLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 76 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 76 0 1 0.5)
                     #'label:' 'Menu:'
                     #'resizeForLabel:' true
                 )
@@ -1087,11 +1009,11 @@
           #'window:' 
            #(#WindowSpec
               #'name:' 'unnamed canvas'
-              #'layout:' #(#LayoutFrame 197 0 172 0 463 0 490 0)
+              #'layout:' #(#LayoutFrame 381 0 278 0 647 0 596 0)
               #'label:' 'unnamed canvas'
               #'min:' #(#Point 10 10)
               #'max:' #(#Point 1280 1024)
-              #'bounds:' #(#Rectangle 197 172 464 491)
+              #'bounds:' #(#Rectangle 381 278 648 597)
               #'usePreferredExtent:' false
           )
           #'component:' 
@@ -1100,14 +1022,14 @@
                #(
                  #(#LabelSpec
                     #'name:' 'nameKeyLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
                     #'label:' 'NameKey:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'nameKeyField'
-                    #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
+                    #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
                     #'activeHelpKey:' #nameKey
                     #'tabable:' true
                     #'model:' #nameKey
@@ -1115,14 +1037,14 @@
                 )
                  #(#LabelSpec
                     #'name:' 'labelLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 51 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5)
                     #'label:' 'Label:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'labelField'
-                    #'layout:' #(#LayoutFrame 90 0 40 0 0 1.0 62 0)
+                    #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0)
                     #'activeHelpKey:' #label
                     #'tabable:' true
                     #'model:' #label
@@ -1158,11 +1080,11 @@
           #'window:' 
            #(#WindowSpec
               #'name:' 'unnamed canvas'
-              #'layout:' #(#LayoutFrame 197 0 172 0 463 0 490 0)
+              #'layout:' #(#LayoutFrame 427 0 345 0 693 0 663 0)
               #'label:' 'unnamed canvas'
               #'min:' #(#Point 10 10)
               #'max:' #(#Point 1280 1024)
-              #'bounds:' #(#Rectangle 197 172 464 491)
+              #'bounds:' #(#Rectangle 427 345 694 664)
               #'usePreferredExtent:' false
           )
           #'component:' 
@@ -1171,14 +1093,14 @@
                #(
                  #(#LabelSpec
                     #'name:' 'selectorLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
                     #'label:' 'Selector:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'selectorField'
-                    #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
+                    #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
                     #'activeHelpKey:' #menuSelector
                     #'tabable:' true
                     #'model:' #label
@@ -1256,11 +1178,11 @@
           #'window:' 
            #(#WindowSpec
               #'name:' 'unnamed canvas'
-              #'layout:' #(#LayoutFrame 367 0 108 0 625 0 395 0)
+              #'layout:' #(#LayoutFrame 196 0 489 0 454 0 776 0)
               #'label:' 'unnamed canvas'
               #'min:' #(#Point 10 10)
               #'max:' #(#Point 1280 1024)
-              #'bounds:' #(#Rectangle 367 108 626 396)
+              #'bounds:' #(#Rectangle 196 489 455 777)
               #'usePreferredExtent:' false
           )
           #'component:' 
@@ -1269,14 +1191,14 @@
                #(
                  #(#LabelSpec
                     #'name:' 'shortcutKeyLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
                     #'label:' 'Accelerator:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'shortcutKeyField'
-                    #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
+                    #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
                     #'activeHelpKey:' #shortcutKey
                     #'tabable:' true
                     #'model:' #shortcutKey
@@ -1284,14 +1206,14 @@
                 )
                  #(#LabelSpec
                     #'name:' 'enabledLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 51 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5)
                     #'label:' 'Enabled:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'enabledField'
-                    #'layout:' #(#LayoutFrame 90 0 40 0 0 1.0 62 0)
+                    #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0)
                     #'activeHelpKey:' #enbled
                     #'tabable:' true
                     #'model:' #enabled
@@ -1299,14 +1221,14 @@
                 )
                  #(#LabelSpec
                     #'name:' 'accessCharLabel'
-                    #'layout:' #(#AlignmentOrigin 171 0 90 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 217 0 90 0 1 0.5)
                     #'label:' 'Access Character Position:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'accessCharField'
-                    #'layout:' #(#LayoutFrame 177 0 79 0 0 1.0 101 0)
+                    #'layout:' #(#LayoutFrame 220 0 79 0 0 1.0 101 0)
                     #'activeHelpKey:' #accessCharaterPos
                     #'tabable:' true
                     #'model:' #accessCharaterPos
@@ -1336,11 +1258,11 @@
           #'window:' 
            #(#WindowSpec
               #'name:' 'unnamed canvas'
-              #'layout:' #(#LayoutFrame 197 0 172 0 441 0 313 0)
+              #'layout:' #(#LayoutFrame 424 0 309 0 668 0 450 0)
               #'label:' 'unnamed canvas'
               #'min:' #(#Point 10 10)
               #'max:' #(#Point 1280 1024)
-              #'bounds:' #(#Rectangle 197 172 442 314)
+              #'bounds:' #(#Rectangle 424 309 669 451)
               #'usePreferredExtent:' false
           )
           #'component:' 
@@ -1349,14 +1271,14 @@
                #(
                  #(#LabelSpec
                     #'name:' 'retrieverLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 26 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5)
                     #'label:' 'Retriever:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'retrieverField'
-                    #'layout:' #(#LayoutFrame 90 0 15 0 0 1.0 37 0)
+                    #'layout:' #(#LayoutFrame 110 0 15 0 0 1.0 37 0)
                     #'activeHelpKey:' #retriever
                     #'tabable:' true
                     #'model:' #retriever
@@ -1364,14 +1286,14 @@
                 )
                  #(#LabelSpec
                     #'name:' 'iconLabel'
-                    #'layout:' #(#AlignmentOrigin 87 0 51 0 1 0.5)
+                    #'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5)
                     #'label:' 'Selector:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'iconField'
-                    #'layout:' #(#LayoutFrame 90 0 40 0 0 1.0 62 0)
+                    #'layout:' #(#LayoutFrame 110 0 40 0 0 1.0 62 0)
                     #'activeHelpKey:' #icon
                     #'tabable:' true
                     #'model:' #icon
@@ -1387,7 +1309,7 @@
                 )
                  #(#ActionButtonSpec
                     #'name:' 'imageEditorButton'
-                    #'layout:' #(#LayoutFrame 90 0 66 0 0 1 90 0)
+                    #'layout:' #(#LayoutFrame 110 0 66 0 0 1 90 0)
                     #'label:' 'Image Editor'
                     #'model:' #doEditImage
                 )
@@ -1911,7 +1833,8 @@
 
 loadFromMessage: aMessage
 
-    self checkModified ifTrue:
+    ((aMessage size > 0) and: [self checkModified])
+    ifTrue:
     [
         |readStream aClass aSelector|
         readStream := aMessage readStream.
@@ -2013,13 +1936,14 @@
 
 doFromClass
 
-    aspects at:#classNameChannel  put:(self specClass asValue).
+    "aspects at:#classNameChannel  put:(self specClass asValue).
     aspects at:#methodNameChannel put:(self painter selectorName asValue).
 
     (self openDialogInterface:#classAndMethodSpec) ifTrue:[
         self buildFrom:(aspects at:#classNameChannel) value
            andSelector:(aspects at:#methodNameChannel) value
-    ].
+    ]."
+    self loadFromInClassesOf:  #Object
 !
 
 doInstallHelp
@@ -2149,6 +2073,36 @@
     "
     self painter selectedNodeChangeSequenceOrder:-1.
     isModified := true.
+!
+
+loadFromClassWithSuperclass
+
+    |box|
+    box := EnterBox new.
+    box title:'Name of superclass:'.
+    box okText:'OK'.
+    box abortText:'Cancel'.
+    box initialText: 'ApplicationModel'.
+    box showAtPointer.
+    box accepted
+    ifTrue:
+    [            
+        self loadFromInClassesOf: box contents asSymbol
+    ].
+
+
+
+!
+
+loadFromInClassesOf: aSuperclassOrSymbol
+
+    self loadFromMessage: 
+        (ResourceSelectionBrowser
+            request: 'Load Menu From Class'
+            onSuperclass: aSuperclassOrSymbol
+            andClass: specClass
+            andSelector: nil
+            withResourceTypes: #(menu))
 ! !
 
 !MenuEditor methodsFor:'values'!
@@ -2424,6 +2378,15 @@
 
 ! !
 
+!MenuEditor::Painter class methodsFor:'initialization'!
+
+initialize
+
+    super initialize.
+
+    Images := nil
+! !
+
 !MenuEditor::Painter class methodsFor:'resources'!
 
 closedSubmenuImage
@@ -2784,3 +2747,4 @@
 version
     ^ '$Header$'
 ! !
+MenuEditor initialize!