# HG changeset patch # User Claus Gittinger # Date 867172435 -7200 # Node ID eefd69a52f5bcdcd2db1d9844283064ff467a77e # Parent a9e5b1615761651bbb62b7ae231698f4fd13d114 fixed setup of class/selector when picking/fetching via menu. diff -r a9e5b1615761 -r eefd69a52f5b UIPainter.st --- 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