more changes to allow for non-class/selector (i.e. spec-only) use
authorClaus Gittinger <cg@exept.de>
Mon, 18 Feb 2008 09:37:55 +0100
changeset 2277 342f25e2c276
parent 2276 485bda17023f
child 2278 8ff3bd6f0820
more changes to allow for non-class/selector (i.e. spec-only) use
UIPainter.st
--- a/UIPainter.st	Mon Feb 18 09:37:53 2008 +0100
+++ b/UIPainter.st	Mon Feb 18 09:37:55 2008 +0100
@@ -64,8 +64,14 @@
         UIBuilder
         ApplicationModel
         UISpecification
+
+    [instance variables:]                                                  
+        isSpecOnlyPainter       true if this painter is for a spec only (as used by expecco),
+                                as opposed to a regular painter, which stores the spec in a class.
+                                A spec-only painter has no class to store additional specs (esp.
+                                menu- and tabSpecs) and should not offer postBuild and other
+                                callback functions.
 "
-
 ! !
 
 !UIPainter class methodsFor:'instance creation'!
@@ -1233,123 +1239,10 @@
      #(Menu
         (
          (MenuItem
-            enabled: enableChannel
             label: '&File'
             translateLabel: true
-            submenu: 
-           (Menu
-              (
-               (MenuItem
-                  activeHelpKey: fileNew
-                  label: 'New'
-                  itemValue: doNew
-                  translateLabel: true
-                  isVisible: isStandAlone
-                )
-               (MenuItem
-                  label: '-'
-                  isVisible: isStandAlone
-                )
-               (MenuItem
-                  activeHelpKey: fileLoad
-                  label: 'Load...'
-                  itemValue: doLoad
-                  translateLabel: true
-                  isVisible: isStandAlone
-                )
-               (MenuItem
-                  activeHelpKey: fileLoadSubspec
-                  label: 'Load Subspec...'
-                  itemValue: doLoadSubspec
-                  translateLabel: true
-                  isVisible: isStandAlone
-                )
-               (MenuItem
-                  label: '-'
-                  isVisible: isStandAlone
-                )
-               (MenuItem
-                  activeHelpKey: fileSave
-                  label: 'Save'
-                  itemValue: doSave
-                  translateLabel: true
-                )
-               (MenuItem
-                  activeHelpKey: fileSaveAs
-                  label: 'Save As...'
-                  itemValue: doSaveAs
-                  translateLabel: true
-                )
-               (MenuItem
-                  label: '-'
-                )
-               (MenuItem
-                  activeHelpKey: fileSaveAs
-                  label: 'Define Class and Selector...'
-                  itemValue: doDefineClassAndSelector
-                  translateLabel: true
-                  isVisible: isStandAlone
-                )
-               (MenuItem
-                  activeHelpKey: filePickAnInterface
-                  label: 'Pick a Window Spec...'
-                  itemValue: doPickAView
-                  translateLabel: true
-                )
-               (MenuItem
-                  label: '-'
-                )
-               (MenuItem
-                  label: 'Launch'
-                  itemValue: doStartApplication
-                  translateLabel: true
-                )
-               (MenuItem
-                  enabled: canInstallAsWebPageHolder
-                  label: 'Install as WebPage'
-                  itemValue: doInstallAsWebPage
-                  translateLabel: true
-                )
-               (MenuItem
-                  label: '-'
-                )
-               (MenuItem
-                  activeHelpKey: fileShowWindowSpec
-                  label: 'Show Window Spec'
-                  itemValue: doWindowSpec
-                  translateLabel: true
-                  isVisible: isStandAlone
-                )
-               (MenuItem
-                  activeHelpKey: fileBrowseClass
-                  enabled: hasSpecClass
-                  label: 'Browse Applications Class'
-                  itemValue: doBrowseClass
-                  translateLabel: true
-                  isVisible: isStandAlone
-                )
-               (MenuItem
-                  activeHelpKey: fileBrowseAspectMethods
-                  enabled: hasSpecClass
-                  label: 'Browse Applications Aspect Methods'
-                  itemValue: doBrowseAspectMethods
-                  translateLabel: true
-                )
-               (MenuItem
-                  label: '-'
-                  isVisible: isStandAlone
-                )
-               (MenuItem
-                  activeHelpKey: fileExit
-                  label: 'Exit'
-                  itemValue: closeRequest
-                  translateLabel: true
-                  isVisible: isStandAlone
-                )
-               )
-              nil
-              nil
-            )
+            submenuChannel: menuFile
+            keepLinkedMenu: true
           )
          (MenuItem
             label: 'Edit'
@@ -1498,7 +1391,7 @@
                   translateLabel: true
                 )
                (MenuItem
-                  label: 'Use Sketch...'
+                  label: 'Load Sketch as Background...'
                   itemValue: useSketch
                   translateLabel: true
                 )
@@ -1985,6 +1878,136 @@
       )
 !
 
+menuFile
+    "This resource specification was automatically generated
+     by the MenuEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the MenuEditor may not be able to read the specification."
+
+    "
+     MenuEditor new openOnClass:UIPainter andSelector:#menuFile
+     (Menu new fromLiteralArrayEncoding:(UIPainter menuFile)) startUp
+    "
+
+    <resource: #menu>
+
+    ^ 
+     #(Menu
+              (
+               (MenuItem
+                  activeHelpKey: fileNew
+                  label: 'New'
+                  itemValue: doNew
+                  translateLabel: true
+                  isVisible: isStandAlone
+                )
+               (MenuItem
+                  label: '-'
+                  isVisible: isStandAlone
+                )
+               (MenuItem
+                  activeHelpKey: fileLoad
+                  label: 'Load...'
+                  itemValue: doLoad
+                  translateLabel: true
+                  isVisible: isStandAlone
+                )
+               (MenuItem
+                  activeHelpKey: fileLoadSubspec
+                  label: 'Load Subspec...'
+                  itemValue: doLoadSubspec
+                  translateLabel: true
+                  isVisible: isStandAlone
+                )
+               (MenuItem
+                  label: '-'
+                  isVisible: isStandAlone
+                )
+               (MenuItem
+                  activeHelpKey: fileSave
+                  label: 'Save'
+                  itemValue: doSave
+                  translateLabel: true
+                )
+               (MenuItem
+                  activeHelpKey: fileSaveAs
+                  label: 'Save As...'
+                  itemValue: doSaveAs
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  activeHelpKey: fileSaveAs
+                  label: 'Define Class and Selector...'
+                  itemValue: doDefineClassAndSelector
+                  translateLabel: true
+                  isVisible: isStandAlone
+                )
+               (MenuItem
+                  activeHelpKey: filePickAnInterface
+                  label: 'Pick a Window Spec...'
+                  itemValue: doPickAView
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Launch'
+                  itemValue: doStartApplication
+                  translateLabel: true
+                )
+               (MenuItem
+                  enabled: canInstallAsWebPageHolder
+                  label: 'Install as WebPage'
+                  itemValue: doInstallAsWebPage
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  activeHelpKey: fileShowWindowSpec
+                  label: 'Show Window Spec'
+                  itemValue: doWindowSpec
+                  translateLabel: true
+                  isVisible: isStandAlone
+                )
+               (MenuItem
+                  activeHelpKey: fileBrowseClass
+                  enabled: hasSpecClass
+                  label: 'Browse Applications Class'
+                  itemValue: doBrowseClass
+                  translateLabel: true
+                  isVisible: isStandAlone
+                )
+               (MenuItem
+                  activeHelpKey: fileBrowseAspectMethods
+                  enabled: hasSpecClass
+                  label: 'Browse Applications Aspect Methods'
+                  itemValue: doBrowseAspectMethods
+                  translateLabel: true
+                )
+               (MenuItem
+                  label: '-'
+                  isVisible: isStandAlone
+                )
+               (MenuItem
+                  activeHelpKey: fileExit
+                  label: 'Exit'
+                  itemValue: closeRequest
+                  translateLabel: true
+                  isVisible: isStandAlone
+                )
+               )
+              nil
+              nil
+            )
+!
+
 menuMove
     "This resource specification was automatically generated
      by the MenuEditor of ST/X."
@@ -3417,6 +3440,10 @@
     ^ false
 !
 
+isEditingSpecOnly
+    ^ self isNotEditingSpecOnly not
+!
+
 isHelpToolSelected
     "answers whether the current selected section in the noteBook is the Help Tool"
 
@@ -3936,9 +3963,11 @@
     galleryWindow iconLabel:'GUI Gallery'.
     galleryWindow icon:icon.
     
-    topView bePartner.
-    painterView bePartner.
-    galleryWindow bePartner.
+    topView isModal ifFalse:[
+        topView bePartner.
+        painterView bePartner.
+        galleryWindow bePartner.
+    ]
 !
 
 setupPainter
@@ -5164,7 +5193,7 @@
         winSpec copyValuesFromSpec:windowSpec.
     ].    
     winSpec name: winSpec label.
-    ^ fullSpec literalArrayEncoding.
+    ^ fullSpec.
 !
 
 setAttributesFromWindowSpec:aWindowSpec