--- a/UIPainterView.st Mon Feb 17 18:23:19 1997 +0100
+++ b/UIPainterView.st Tue Feb 18 11:38:57 1997 +0100
@@ -11,7 +11,7 @@
"
UIObjectView subclass:#UIPainterView
- instanceVariableNames:'fontPanel code viewProperties superclassName className methodName
+ instanceVariableNames:'fontPanel viewProperties superclassName className methodName
categoryName'
classVariableNames:'HandCursor'
poolDictionaries:''
@@ -86,6 +86,13 @@
"Modified: 5.9.1995 / 18:47:17 / claus"
!
+className:aClassName superclassName:aSuperclassName selector:aSelector
+ className := aClassName.
+ superclassName := aSuperclassName.
+ methodName := aSelector.
+
+!
+
methodName
^ methodName
@@ -132,7 +139,7 @@
! !
-!UIPainterView methodsFor:'code manipulation'!
+!UIPainterView ignoredMethodsFor:'code manipulation'!
changeClass
|box classNameHolder superclassNameHolder|
@@ -240,7 +247,7 @@
].
! !
-!UIPainterView methodsFor:'generating output'!
+!UIPainterView ignoredMethodsFor:'generating output'!
generateClassDefinition
|defCode|
@@ -253,21 +260,29 @@
defCode := defCode , ' category:''' , categoryName , '''\'.
defCode := defCode , Character excla asString , '\\'.
- code := code , (defCode withCRs)
+ ^ defCode withCRs
-!
+! !
+
+!UIPainterView methodsFor:'generating output'!
generateCode
+ "generate code for the windowSpec method"
+
+ |code|
+
code := ''.
- (Smalltalk classNamed:className) isNil ifTrue:[
- self generateClassDefinition.
- ].
-"/ self generateInitMethod.
- code := code , self generateWindowSpec.
- self generateOutlets.
+"/ (Smalltalk classNamed:className asSymbol) isNil ifTrue:[
+"/ code := code , self generateClassDefinition.
+"/ ].
+"/ code := code , self generateInitMethod.
+
+ code := code , self generateWindowSpecMethodSource.
+
+"/ code := code , self generateAspectMethods.
^ code withCRs
@@ -277,10 +292,12 @@
!UIPainterView ignoredMethodsFor:'generating output'!
generateInitCodeForGroup:aGroup
- |c name p objects outlets moreCode sym typ val|
+ |code c name p objects outlets moreCode sym typ val|
" <name> := <GroupClass> in:<name-of-superview>"
+ code := ''.
+
p := self propertyOfGroup:aGroup.
name := p at:#variableName.
c := ' ' , name , ' := ' , (aGroup class name) , ' new.\'.
@@ -291,9 +308,9 @@
objects := p at:#controlledObjects ifAbsent:[nil].
objects notNil ifTrue:[
- objects do:[:controlledObject |
- c := c , name , ' add:' , (self variableNameOf:controlledObject) , '.\'
- ]
+ objects do:[:controlledObject |
+ c := c , name , ' add:' , (self variableNameOf:controlledObject) , '.\'
+ ]
].
code := code , c withCRs
@@ -305,38 +322,43 @@
!
generateInitCodeForOtherStuff
- |g c name p outlets moreCode sym typ val|
+ |code g c name p outlets moreCode sym typ val|
+
+ code := ''.
"generate code for groups"
viewProperties do:[:props |
- g := props at:#group ifAbsent:[nil].
- g notNil ifTrue:[
- self generateInitCodeForGroup:g
- ]
- ]
+ g := props at:#group ifAbsent:[nil].
+ g notNil ifTrue:[
+ code := code , (self generateInitCodeForGroup:g)
+ ]
+ ].
+ ^ code
!
generateInitCodeForView:aView
- |c name p outlets moreCode sym typ val|
+ |code c name p outlets moreCode sym typ val|
" <name> := <ViewClass> in:<name-of-superview>"
+ code := ''.
+
p := self propertyOfView:aView.
name := p at:#variableName.
c := ' ' , name , ' := ' ,
- (aView class name) , ' in:' , (self variableNameOf:(aView superView)) , '.\'.
+ (aView class name) , ' in:' , (self variableNameOf:(aView superView)) , '.\'.
" <name> origin:(...) extent:(...)"
c := c , ' ' , name , ' origin:(', aView origin printString , ')'
- , ' extent:(', aView extent printString , ').\'.
+ , ' extent:(', aView extent printString , ').\'.
moreCode := p at:#initCode ifAbsent:nil.
moreCode notNil ifTrue:[
- c := c , moreCode , '\' withCRs
+ c := c , moreCode , '\' withCRs
].
code := code , c withCRs.
@@ -345,51 +367,52 @@
outlets := p at:#outlets ifAbsent:[nil].
outlets notNil ifTrue:[
- outlets do:[:selectorOutlet |
- sym := selectorOutlet at:#selector.
- typ := selectorOutlet at:#type.
- val := selectorOutlet at:#value.
- c := ' ' , name , ' ' , sym.
- (typ == #number) ifTrue:[
- c := c , val printString
- ].
- (typ == #string) ifTrue:[
- c := c , '''' , val , ''''
- ].
- (typ == #text) ifTrue:[
- c := c , '''' , val asString , ''''
- ].
- (typ == #strings) ifTrue:[
- c := c , '#( '.
- val asText do:[:aString |
- c := c , '''' , aString , ''' '
- ].
- c := c , ')'
- ].
- (typ == #block) ifTrue:[
- c := c , val
- ].
- (typ == #color) ifTrue:[
- c := c , '(Color name:''' , val , ''')'
- ].
- c := c , '.' , Character cr asString.
- code := code , c
- ]
+ outlets do:[:selectorOutlet |
+ sym := selectorOutlet at:#selector.
+ typ := selectorOutlet at:#type.
+ val := selectorOutlet at:#value.
+ c := ' ' , name , ' ' , sym.
+ (typ == #number) ifTrue:[
+ c := c , val printString
+ ].
+ (typ == #string) ifTrue:[
+ c := c , '''' , val , ''''
+ ].
+ (typ == #text) ifTrue:[
+ c := c , '''' , val asString , ''''
+ ].
+ (typ == #strings) ifTrue:[
+ c := c , '#( '.
+ val asText do:[:aString |
+ c := c , '''' , aString , ''' '
+ ].
+ c := c , ')'
+ ].
+ (typ == #block) ifTrue:[
+ c := c , val
+ ].
+ (typ == #color) ifTrue:[
+ c := c , '(Color name:''' , val , ''')'
+ ].
+ c := c , '.' , Character cr asString.
+ code := code , c
+ ]
].
self subviewsOf:aView do:[:v |
- self generateInitCodeForView:v
- ]
+ code := code , (self generateInitCodeForView:v)
+ ].
+ ^ code.
"Modified: 5.9.1995 / 20:06:07 / claus"
!
generateInitMethod
- |defCode|
+ |defCode code|
defCode := Character excla asString ,
- className , ' methodsFor:''initialization''' ,
- Character excla asString , '\\'.
+ className , ' methodsFor:''initialization''' ,
+ Character excla asString , '\\'.
defCode := defCode , 'initialize\'.
defCode := defCode , ' super initialize.\'.
@@ -398,13 +421,13 @@
defCode := defCode , Character excla asString , '\\'.
defCode := defCode , 'setupSubViews\'.
- code := code , defCode withCRs.
+ code := defCode withCRs.
self subviewsOf:self do:[:v |
- self generateInitCodeForView:v
+ code := code , (self generateInitCodeForView:v)
].
- self generateInitCodeForOtherStuff.
+ code := code , (self generateInitCodeForOtherStuff).
code := code , ' ^ self\' withCRs.
@@ -412,22 +435,22 @@
defCode := defCode , 'setupLocalStuff\'.
defCode := defCode , ' ^ self\'.
defCode := defCode , Character excla asString , ' ' ,
- Character excla asString , '\\'.
+ Character excla asString , '\\'.
- code := code , defCode withCRs
-
+ code := code , defCode withCRs.
+ ^ code.
+!
+
+generateOutlets
+ ^ self
! !
!UIPainterView methodsFor:'generating output'!
-generateOutlets
- ^ self
-!
-
generateSpecFor:something
"generate a spec for a view or collection of views
"
@@ -449,8 +472,8 @@
^ spec
!
-generateWindowSpec
- |spec specArray str|
+generateWindowSpecMethodSource
+ |spec specArray str code|
subViews remove:inputView.
[
@@ -458,8 +481,8 @@
] valueNowOrOnUnwindDo:[
subViews addFirst:inputView.
].
+ specArray := spec literalArrayEncoding.
- specArray := spec literalArrayEncoding.
str := WriteStream on:String new.
self prettyPrintSpecArray:specArray on:str indent:5.
@@ -491,11 +514,15 @@
^ code withCRs
"Modified: 5.9.1995 / 21:01:35 / claus"
-!
+! !
+
+!UIPainterView ignoredMethodsFor:'generating output'!
nameOfClass
^ 'NewView'
-!
+! !
+
+!UIPainterView methodsFor:'generating output'!
outletValueOf:aSymbol for:aView
"/ |c name p outlets moreCode sym typ val|
@@ -619,7 +646,9 @@
newSpec name:name
].
-!
+! !
+
+!UIPainterView ignoredMethodsFor:'generating output'!
subviewVariableNames
|names|
@@ -627,7 +656,9 @@
names := ''.
viewProperties do:[:p| names := names , ' ' , (p name)].
^ names
-!
+! !
+
+!UIPainterView methodsFor:'generating output'!
subviewsOf:aView do:aBlock
|subs v|
@@ -725,7 +756,6 @@
className := 'NewApplication'.
methodName := 'windowSpec'.
categoryName := 'Applications'.
-
viewProperties := OrderedCollection new.
HandCursor := Cursor leftHand.