UIPainter.st
changeset 177 eefd69a52f5b
parent 176 a9e5b1615761
child 179 72eec92090f6
--- a/UIPainter.st	Tue Jun 24 16:14:38 1997 +0200
+++ b/UIPainter.st	Tue Jun 24 19:13:55 1997 +0200
@@ -339,10 +339,10 @@
        #(#FullSpec
           #'window:' 
            #(#WindowSpec
-              #'name:' 'Painter'
+              #'name:' 'uIPainterView'
               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
               #'label:' 'Painter'
-              #'bounds:' #(#Rectangle 0 0 334 158)
+              #'bounds:' #(#Rectangle 0 0 391 170)
           )
           #'component:' 
            #(#SpecCollection
@@ -350,28 +350,28 @@
                #(
                  #(#LabelSpec
                     #'name:' 'classLabel'
-                    #'layout:' #(#AlignmentOrigin 43 0 58 0 0 1)
+                    #'layout:' #(#AlignmentOrigin 45 0.11 51 0 1 0.5)
                     #'label:' 'class:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#LabelSpec
                     #'name:' 'superClassLabel'
-                    #'layout:' #(#AlignmentOrigin 12 0 84 0 0 1)
+                    #'layout:' #(#AlignmentOrigin 45 0.11 77 0 1 0.5)
                     #'label:' 'superclass:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#LabelSpec
                     #'name:' 'selectorLabel'
-                    #'layout:' #(#AlignmentOrigin 27 0 112 0 0 1)
+                    #'layout:' #(#AlignmentOrigin 45 0.11 105 0 1 0.5)
                     #'label:' 'selector:'
                     #'adjust:' #right
                     #'resizeForLabel:' true
                 )
                  #(#InputFieldSpec
                     #'name:' 'methodNameField'
-                    #'layout:' #(#LayoutFrame 90 0 95 0 -5 1.0 117 0)
+                    #'layout:' #(#LayoutFrame 47 0.11 95 0 -5 1.0 117 0)
                     #'tabable:' true
                     #'model:' #methodNameChannel
                 )
@@ -384,13 +384,13 @@
                 )
                  #(#InputFieldSpec
                     #'name:' 'classNameField'
-                    #'layout:' #(#LayoutFrame 90 0 39 0 -5 1.0 61 0)
+                    #'layout:' #(#LayoutFrame 47 0.11 39 0 -5 1.0 61 0)
                     #'tabable:' true
                     #'model:' #classNameChannel
                 )
                  #(#ComboBoxSpec
                     #'name:' 'comboBox1'
-                    #'layout:' #(#LayoutFrame 90 0 67 0 -5 1.0 89 0)
+                    #'layout:' #(#LayoutFrame 47 0.11 67 0 -5 1.0 89 0)
                     #'tabable:' true
                     #'model:' #superclassNameChannel
                     #'comboList:' #superclassNameDefaults
@@ -407,7 +407,7 @@
                               #'label:' 'cancel'
                               #'tabable:' true
                               #'model:' #cancel
-                              #'extent:' #(#Point 162 24)
+                              #'extent:' #(#Point 191 24)
                           )
                            #(#ActionButtonSpec
                               #'name:' 'button2'
@@ -415,7 +415,7 @@
                               #'tabable:' true
                               #'isDefault:' true
                               #'model:' #accept
-                              #'extent:' #(#Point 163 24)
+                              #'extent:' #(#Point 191 24)
                           )
                         )
                     )
@@ -427,6 +427,8 @@
               )
           )
       )
+
+    "Modified: 24.6.1997 / 18:50:14 / cg"
 !
 
 windowSpec
@@ -991,6 +993,28 @@
 raiseUIView:aView
     aView map.
     aView bePartner.
+!
+
+setClass:cls selector:selector
+    |clsName superClassName|
+
+    clsName := cls name.
+    superClassName := cls superclass name.
+
+    (self aspectFor:#classNameChannel) value:clsName.
+    (self aspectFor:#methodNameChannel) value:(selector ? '').
+    (self aspectFor:#superclassNameChannel) value:superClassName.
+
+    self painter 
+            className:clsName 
+            superclassName:superClassName
+            selector:(selector ? '').
+
+    specClass := clsName.
+    specSelector := (selector ? '').
+    specSuperclass := superClassName.
+
+    "Modified: 24.6.1997 / 19:07:01 / cg"
 ! !
 
 !UIPainter methodsFor:'queries'!
@@ -1161,20 +1185,25 @@
 
     aClass notNil ifTrue:[
         painter        := self painter.
-        specClass      := aClass name.
-        specSuperclass := aClass superclass name.
-        specSelector   := aSelector.
 
-        (aspects at:#classNameChannel) value:specClass.
-        (aspects at:#superclassNameChannel) value:specSuperclass.
-        (aspects at:#methodNameChannel) value:specSelector asSymbol.
+        self setClass:aClass selector:aSelector.
+"/        specClass      := aClass name.
+"/        specSuperclass := aClass superclass name.
+"/        specSelector   := aSelector.
+"/
+"/        (aspects at:#classNameChannel) value:specClass.
+"/        (aspects at:#superclassNameChannel) value:specSuperclass.
+"/        (aspects at:#methodNameChannel) value:specSelector asSymbol.
+"/
+"/        painter 
+"/            className:aClass name 
+"/            superclassName:aClass superclass name
+"/            selector:aSelector.
 
-        painter className:aClass name.
-        painter methodName:aSelector.
         painter setupFromSpec:(aClass perform:aSelector).
     ]
 
-    "Modified: 17.6.1997 / 14:41:25 / cg"
+    "Modified: 24.6.1997 / 19:07:05 / cg"
 ! !
 
 !UIPainter methodsFor:'user interaction - dialog'!
@@ -1303,8 +1332,8 @@
         ]
     ].
 
-    className  := '' asValue.
-    methodName := '' asValue.
+    className  := (specClass ? '') asValue.
+    methodName := (specSelector ? '') asValue.
     painter    := self painter.
 
     (s := painter className) notNil ifTrue:[
@@ -1345,16 +1374,18 @@
                         self warn:'not a windowSpec method'    
                     ].
                     "/ ok, got it
-                    painter className:className value.
-                    painter methodName:methodName value.
+                
+                    self setClass:cls selector:sel.
+
                     painter setupFromSpec:spec.
-                  ^ self
+
+                    ^ self
                  ]
             ]
          ]
     ] doWhile:[accepted and:[failed]].
 
-    "Modified: 17.6.1997 / 12:33:36 / cg"
+    "Modified: 24.6.1997 / 18:59:29 / cg"
 !
 
 doInstallAspects
@@ -1452,7 +1483,7 @@
 !
 
 doPickAView
-    |painter view className methodName cls sel accepted spec s|
+    |painter view cls spec|
 
     objectList painter isModified ifTrue:[
         (self confirm:'pick another interface without saving your modifications ?') ifFalse:[
@@ -1466,11 +1497,19 @@
             spec    := UISpecification fromView:view topView.
 
          "/ ok, got it
+
+            view application notNil ifTrue:[
+                cls := view application class
+            ] ifFalse:[
+                cls := view class
+            ].
+            self setClass:cls selector:nil.
+
             painter setupFromSpec:spec.
-            painter className:view class name.
-            painter methodName:#newSpec.
         ]
     ]
+
+    "Modified: 24.6.1997 / 19:02:57 / cg"
 !
 
 doRaise