checkin from browser
authorClaus Gittinger <cg@exept.de>
Mon, 26 Jul 1999 09:33:21 +0200
changeset 1198 6b7cfe55105b
parent 1197 ef91ed58b7d4
child 1199 5460de03e215
checkin from browser
UIHelpTool.st
UILayoutTool.st
--- a/UIHelpTool.st	Thu Jul 15 14:31:34 1999 +0200
+++ b/UIHelpTool.st	Mon Jul 26 09:33:21 1999 +0200
@@ -758,39 +758,36 @@
 
     ((aClass class implements: specSelector)
     and: [(helpSpecSuperClass := aClass allSuperclasses detect: [:cls| cls class implements: specSelector] ifNone: nil) notNil])
-    ifTrue:
-    [                  
+    ifTrue:[                  
         superHelpSpecKeys := helpSpecSuperClass helpSpec keys.
         helpSpec := Dictionary new.
-        aClass helpSpec associationsDo:
-        [:asso|
-            (superHelpSpecKeys includes: asso key) ifFalse: [helpSpec at: asso key put: asso value]
+        aClass helpSpec keysAndValuesDo:[:key :value |
+            (superHelpSpecKeys includes:key) ifFalse: [
+                helpSpec at:key put:value
+            ]
         ].          
-        ^dictionary := helpSpec
+        ^ dictionary := helpSpec
     ].
-    ^dictionary := Dictionary new 
+    ^ dictionary := Dictionary new 
 !
 
 findHelpSpecForKey: aHelpKey
     "finds the help spec class including aHelpKey in its help dictionary and make it current"
 
-    |dictTemp|
+    |dictTemp listOfHelpSpecClasses|
 
     aHelpKey isNil ifTrue: [^nil].
+
     dictTemp := dictionary.
-    self listOfHelpSpecClasses value do:
-    [:clsName|            
-        (dictionary := dictionaries at: clsName ifAbsent: nil) isNil
-        ifTrue:
-        [        
+    listOfHelpSpecClasses := self listOfHelpSpecClasses.
+    listOfHelpSpecClasses value do:[:clsName|            
+        (dictionary := dictionaries at: clsName ifAbsent: nil) isNil ifTrue:[        
             dictionary := dictionaries at: clsName put: (self extractHelpSpecForClass: (Smalltalk at: clsName))
         ].
-        (dictionary includesKey: aHelpKey asSymbol)  
-        ifTrue:
-        [            
+        (dictionary includesKey: aHelpKey asSymbol) ifTrue:[            
             self updateList.
             ^(builder componentAt: #listOfHelpSpecClassesView) selection: 
-                (self listOfHelpSpecClasses value indexOf: clsName).
+                (listOfHelpSpecClasses value indexOf: clsName).
         ]
     ].
     dictionary := dictTemp
--- a/UILayoutTool.st	Thu Jul 15 14:31:34 1999 +0200
+++ b/UILayoutTool.st	Mon Jul 26 09:33:21 1999 +0200
@@ -20,7 +20,14 @@
 	category:'Interface-UIPainter'
 !
 
-ApplicationModel subclass:#AlignmentOrigin
+ApplicationModel subclass:#LayoutOrigin
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:UILayoutTool
+!
+
+ApplicationModel subclass:#Rectangle
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
@@ -34,14 +41,7 @@
 	privateIn:UILayoutTool
 !
 
-ApplicationModel subclass:#LayoutFrame
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:UILayoutTool
-!
-
-ApplicationModel subclass:#LayoutOrigin
+ApplicationModel subclass:#AlignmentOrigin
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
@@ -55,7 +55,7 @@
 	privateIn:UILayoutTool
 !
 
-ApplicationModel subclass:#Rectangle
+ApplicationModel subclass:#LayoutFrame
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
@@ -620,17 +620,19 @@
 !UILayoutTool methodsFor:'converting absolute'!
 
 absolute:what xOrY:xOrY
-    |extent fraction offset fractSymb offsetSymb|
+    |extent fraction offset fractSymb offsetSymb fractHolder offsetHolder|
 
     extent     := (self layoutView superView computeExtent) perform:xOrY.
     fractSymb  := (what, 'Fraction') asSymbol.
     offsetSymb := (what,   'Offset') asSymbol.
-    fraction   := (self aspectFor:fractSymb)  value.
-    offset     := (self aspectFor:offsetSymb) value.
+    fractHolder := (self aspectFor:fractSymb).
+    offsetHolder := (self aspectFor:offsetSymb).
+    fraction   := fractHolder  value.
+    offset     := offsetHolder value.
     offset     := offset + ((fraction * extent) asInteger).
 
-    (self aspectFor:offsetSymb) value:offset.
-    (self aspectFor:fractSymb)  value:0.
+    offsetHolder value:offset.
+    fractHolder  value:0.
 
 
 
@@ -659,20 +661,22 @@
 !UILayoutTool methodsFor:'converting relative'!
 
 relative:what xOrY:xOrY
-    |extent fraction offset fractSymb offsetSymb|
+    |extent fraction offset fractSymb offsetSymb fractHolder offsetHolder|
 
     extent     := (self layoutView superView computeExtent) perform:xOrY.
     fractSymb  := (what, 'Fraction') asSymbol.
     offsetSymb := (what,   'Offset') asSymbol.
-    fraction   := (self aspectFor:fractSymb)  value.
-    offset     := (self aspectFor:offsetSymb) value.
+    fractHolder := (self aspectFor:fractSymb).
+    offsetHolder := (self aspectFor:offsetSymb).
+    fraction   := fractHolder  value.
+    offset     := offsetHolder value.
     fraction   := (fraction + (offset / extent)) asFloat.
 
     (fraction > 1.0) ifTrue:[ fraction := 1.0 ].
     (fraction < 0.0) ifTrue:[ fraction := 0 ].
 
-    (self aspectFor:offsetSymb) value:0.
-    (self aspectFor:fractSymb)  value:fraction.
+    offsetHolder value:0.
+    fractHolder  value:fraction.
 
 
 
@@ -782,6 +786,358 @@
 
 ! !
 
+!UILayoutTool::LayoutOrigin class methodsFor:'interface specs'!
+
+windowSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:UILayoutTool::LayoutOrigin andSelector:#windowSpec
+     UILayoutTool::LayoutOrigin new openInterface:#windowSpec
+     UILayoutTool::LayoutOrigin open
+    "
+
+    <resource: #canvas>
+
+    ^
+     
+       #(#FullSpec
+          #window: 
+           #(#WindowSpec
+              #name: 'UILayoutTool-LayoutOrigin'
+              #layout: #(#LayoutFrame 290 0 420 0 647 0 565 0)
+              #label: 'UILayoutTool-LayoutOrigin'
+              #min: #(#Point 10 10)
+              #max: #(#Point 1152 900)
+              #bounds: #(#Rectangle 290 420 648 566)
+              #usePreferredExtent: false
+          )
+          #component: 
+           #(#SpecCollection
+              #collection: 
+               #(
+                 #(#UISubSpecification
+                    #name: 'layoutOriginSpec'
+                    #layout: #(#LayoutFrame 1 0.0 6 0 0 1.0 110 0)
+                    #majorKey: #UILayoutTool
+                    #minorKey: #layoutOriginSpec
+                )
+              )
+          )
+      )
+! !
+
+!UILayoutTool::LayoutOrigin methodsFor:'accessing'!
+
+fetch:aView spec:aSpec
+    "fetch layoutOrigin
+    "
+    |layout|
+
+    layout  := UIPainterView asLayoutFrameFromView:aView.
+
+    (self aspectFor:#leftOffset)   value:(layout leftOffset).
+    (self aspectFor:#leftFraction) value:(layout leftFraction).
+    (self aspectFor:#topOffset)    value:(layout topOffset).
+    (self aspectFor:#topFraction)  value:(layout topFraction).
+
+
+!
+
+layout
+    "returns current layout as layoutOrigin
+    "
+    |layout|
+
+    layout  := Smalltalk::LayoutOrigin new.
+
+    layout   leftOffset:((self aspectFor:#leftOffset)   value) ? 0.
+    layout    topOffset:((self aspectFor:#topOffset)    value) ? 0.
+    layout leftFraction:((self aspectFor:#leftFraction) value) ? 0.
+    layout  topFraction:((self aspectFor:#topFraction)  value) ? 0.
+
+  ^ layout
+
+! !
+
+!UILayoutTool::Rectangle class methodsFor:'interface specs'!
+
+windowSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:UILayoutTool::Rectangle andSelector:#windowSpec
+     UILayoutTool::Rectangle new openInterface:#windowSpec
+     UILayoutTool::Rectangle open
+    "
+
+    <resource: #canvas>
+
+    ^
+     
+       #(#FullSpec
+          #window: 
+           #(#WindowSpec
+              #name: 'UILayoutTool-Rectangle'
+              #layout: #(#LayoutFrame 291 0 130 0 632 0 328 0)
+              #label: 'UILayoutTool-Rectangle'
+              #min: #(#Point 10 10)
+              #max: #(#Point 1152 900)
+              #bounds: #(#Rectangle 291 130 633 329)
+              #usePreferredExtent: false
+          )
+          #component: 
+           #(#SpecCollection
+              #collection: 
+               #(
+                 #(#UISubSpecification
+                    #name: 'subSpecification'
+                    #layout: #(#LayoutFrame 1 0.0 6 0 0 1.0 96 0)
+                    #majorKey: #UILayoutTool
+                    #minorKey: #layoutPointSpec
+                )
+                 #(#FramedBoxSpec
+                    #name: 'FramedBox'
+                    #layout: #(#LayoutFrame 1 0.0 99 0 0 1.0 194 0)
+                    #component: 
+                     #(#SpecCollection
+                        #collection: 
+                         #(
+                           #(#LabelSpec
+                              #name: 'labelCornerY'
+                              #layout: #(#AlignmentOrigin 83 0 16 0 1 0)
+                              #label: 'Right:'
+                              #adjust: #left
+                          )
+                           #(#InputFieldSpec
+                              #name: 'fieldCornerX'
+                              #layout: #(#LayoutFrame 85 0 13 0 135 0 35 0)
+                              #activeHelpKey: #cornerX
+                              #tabable: true
+                              #model: #rightOffset
+                              #group: #inputGroup
+                              #type: #numberOrNil
+                              #acceptOnLostFocus: true
+                    #acceptChannel: #acceptChannel
+                    #modifiedChannel: #modifiedChannel
+                          )
+                           #(#LabelSpec
+                              #name: 'labelCornerX'
+                              #layout: #(#AlignmentOrigin 83 0 41 0 1 0)
+                              #label: 'Bottom:'
+                              #adjust: #left
+                          )
+                           #(#InputFieldSpec
+                              #name: 'fieldCornerY'
+                              #layout: #(#LayoutFrame 85 0 38 0 135 0 60 0)
+                              #activeHelpKey: #cornerY
+                              #tabable: true
+                              #model: #bottomOffset
+                              #group: #inputGroup
+                              #type: #numberOrNil
+                              #acceptOnLostFocus: true
+                    #acceptChannel: #acceptChannel
+                    #modifiedChannel: #modifiedChannel
+                          )
+                        )
+                    )
+                    #label: 'Corner'
+                    #labelPosition: #topLeft
+                )
+              )
+          )
+      )
+
+    "Modified: / 13.8.1998 / 19:59:16 / cg"
+! !
+
+!UILayoutTool::Rectangle methodsFor:'accessing'!
+
+fetch:aView spec:aSpec
+    "fetch rectangle
+    "
+    |origin corner|
+
+    origin := aView computeOrigin.
+    corner := aView computeCorner.
+
+    (self aspectFor:#leftOffset)   value:(origin x).
+    (self aspectFor:#rightOffset)  value:(corner x).
+    (self aspectFor:#topOffset)    value:(origin y).
+    (self aspectFor:#bottomOffset) value:(corner y).
+
+
+!
+
+layout
+    "returns current layout as rectangle
+    "
+  ^ Smalltalk::Rectangle left:(((self aspectFor:#leftOffset)   value) ? 0)
+                          top:(((self aspectFor:#topOffset)    value) ? 0)
+                        right:(((self aspectFor:#rightOffset)  value) ? 0)
+                       bottom:(((self aspectFor:#bottomOffset) value) ? 0)
+
+
+! !
+
+!UILayoutTool::Extent class methodsFor:'help specs'!
+
+helpSpec
+    "This resource specification was automatically generated
+     by the UIHelpTool of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIHelpTool may not be able to read the specification."
+
+    "
+     UIHelpTool openOnClass:UILayoutTool::Extent    
+    "
+
+    <resource: #help>
+
+    ^super helpSpec addPairsFrom:#(
+
+#hrzExtent
+'Horizontal extent of the selected widget.'
+
+#vrtExtent
+'Vertical extent of the selected widget.'
+
+)
+! !
+
+!UILayoutTool::Extent class methodsFor:'interface specs'!
+
+windowSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:UILayoutTool::Extent andSelector:#windowSpec
+     UILayoutTool::Extent new openInterface:#windowSpec
+     UILayoutTool::Extent open
+    "
+
+    <resource: #canvas>
+
+    ^
+     
+       #(#FullSpec
+          #name: #windowSpec
+          #window: 
+           #(#WindowSpec
+              #name: 'UILayoutTool-Extent'
+              #layout: #(#LayoutFrame 216 0 173 0 541 0 321 0)
+              #level: 0
+              #label: 'UILayoutTool-Extent'
+              #min: #(#Point 10 10)
+              #max: #(#Point 1152 900)
+              #bounds: #(#Rectangle 216 173 542 322)
+              #usePreferredExtent: false
+              #returnIsOKInDialog: true
+              #escapeIsCancelInDialog: true
+          )
+          #component: 
+           #(#SpecCollection
+              #collection: 
+               #(
+                 #(#FramedBoxSpec
+                    #name: 'FramedBox'
+                    #layout: #(#LayoutFrame 0 0.0 6 0.0 0 1.0 137 0)
+                    #component: 
+                     #(#SpecCollection
+                        #collection: 
+                         #(
+                           #(#LabelSpec
+                              #name: 'labelWidth'
+                              #layout: #(#AlignmentOrigin 89 0 24 0 1 0.5)
+                              #label: 'Width:'
+                              #adjust: #right
+                          )
+                           #(#InputFieldSpec
+                              #name: 'fieldLeftOffset'
+                              #layout: #(#LayoutFrame 90 0 13 0 140 0 35 0)
+                              #activeHelpKey: #hrzExtent
+                              #enableChannel: #notUsingDefaultExtent
+                              #tabable: true
+                              #model: #leftOffset
+                              #group: #inputGroup
+                              #type: #numberOrNil
+                              #acceptOnLostFocus: true
+                              #acceptChannel: #acceptChannel
+                              #modifiedChannel: #modifiedChannel
+                          )
+                           #(#LabelSpec
+                              #name: 'labelHeight'
+                              #layout: #(#AlignmentOrigin 89 0 49 0 1 0.5)
+                              #label: 'Height:'
+                              #adjust: #right
+                          )
+                           #(#InputFieldSpec
+                              #name: 'fieldRightOffset'
+                              #layout: #(#LayoutFrame 90 0 38 0 140 0 60 0)
+                              #activeHelpKey: #vrtExtent
+                              #enableChannel: #notUsingDefaultExtent
+                              #tabable: true
+                              #model: #rightOffset
+                              #group: #inputGroup
+                              #type: #numberOrNil
+                              #acceptOnLostFocus: true
+                              #acceptChannel: #acceptChannel
+                              #modifiedChannel: #modifiedChannel
+                          )
+                           #(#CheckBoxSpec
+                              #name: 'useDefaultExtentCheckBox'
+                              #layout: #(#LayoutFrame -1 0 75 0 296 0 97 0)
+                              #model: #useDefaultExtent
+                              #label: 'Use Widgets Default Extent'
+                              #translateLabel: true
+                              #enableChannel: #defaultExtentEnabled
+                          )
+                        )
+                    )
+                    #label: 'Extent'
+                    #labelPosition: #topLeft
+                )
+              )
+          )
+      )
+! !
+
+!UILayoutTool::Extent methodsFor:'accessing'!
+
+fetch:aView spec:aSpec
+    "fetch extent
+    "
+    |extent|
+
+    extent  := aView computeExtent.
+
+    (self aspectFor:#leftOffset)  value:(extent x).
+    (self aspectFor:#rightOffset) value:(extent y).
+
+    (self aspectFor:#useDefaultExtent) value:aSpec useDefaultExtent 
+!
+
+layout
+    "returns current extent
+    "
+  ^ Smalltalk::Point x:(((self aspectFor:#leftOffset)   value) ? 0)
+                     y:(((self aspectFor:#rightOffset)  value) ? 0)
+
+! !
+
 !UILayoutTool::AlignmentOrigin class methodsFor:'help specs'!
 
 helpSpec
@@ -1007,32 +1363,41 @@
 fetch:aView spec:aSpec
     "fetch alignmentOrigin
     "
-    |layout type|
+    |layout type 
+     leftAlignmentFractionHolder topAlignmentFractionHolder
+     leftOffsetHolder leftFractionHolder topOffsetHolder topFractionHolder|
 
     type   := UIPainterView layoutType:aView.
     layout := aView geometryLayout.
 
+    leftOffsetHolder := (self aspectFor:#leftOffset).
+    leftFractionHolder := (self aspectFor:#leftFraction).
+    topOffsetHolder := (self aspectFor:#topOffset).
+    topFractionHolder := (self aspectFor:#topFraction).
+    leftAlignmentFractionHolder := (self aspectFor:#leftAlignmentFraction).
+    topAlignmentFractionHolder := (self aspectFor:#topAlignmentFraction).
+
     layout isLayout ifTrue:[
-        (self aspectFor:#leftOffset)   value:(layout leftOffset).
-        (self aspectFor:#leftFraction) value:(layout leftFraction).
-        (self aspectFor:#topOffset)    value:(layout topOffset).
-        (self aspectFor:#topFraction)  value:(layout topFraction).
+        leftOffsetHolder   value:(layout leftOffset).
+        leftFractionHolder value:(layout leftFraction).
+        topOffsetHolder    value:(layout topOffset).
+        topFractionHolder  value:(layout topFraction).
 
         type == #AlignmentOrigin ifTrue:[
-            (self aspectFor:#leftAlignmentFraction) value:(layout leftAlignmentFraction).
-            (self aspectFor:#topAlignmentFraction)  value:(layout topAlignmentFraction).
+            leftAlignmentFractionHolder value:(layout leftAlignmentFraction).
+            topAlignmentFractionHolder  value:(layout topAlignmentFraction).
           ^ self
         ]
     ] ifFalse:[
         layout := aView computeOrigin.
 
-        (self aspectFor:#leftOffset)   value:(layout x).
-        (self aspectFor:#leftFraction) value:0.
-        (self aspectFor:#topOffset)    value:(layout y).
-        (self aspectFor:#topFraction)  value:0.
+        leftOffsetHolder   value:(layout x).
+        leftFractionHolder value:0.
+        topOffsetHolder    value:(layout y).
+        topFractionHolder  value:0.
     ].
-    (self aspectFor:#leftAlignmentFraction) value:0.
-    (self aspectFor:#topAlignmentFraction)  value:0.
+    leftAlignmentFractionHolder value:0.
+    topAlignmentFractionHolder  value:0.
 
 
 !
@@ -1112,23 +1477,23 @@
 !
 
 makeAlignLeft:leftAlignmentFraction top:topAlignmentFraction
-    |lAF tAF lO tO ext|
+    |lAF tAF lO tO ext lAHolder tAHolder lOHolder tOHolder|
 
-    lAF     := (self aspectFor:#leftAlignmentFraction) value ? 0.
-    tAF     := (self aspectFor:#topAlignmentFraction)  value ? 0.
+    lAF     := (lAHolder := self aspectFor:#leftAlignmentFraction) value ? 0.
+    tAF     := (tAHolder := self aspectFor:#topAlignmentFraction)  value ? 0.
     ext     := (self aspectFor:#layoutView) computeExtent.
 
-    (self aspectFor:#leftAlignmentFraction) value:leftAlignmentFraction.
-    (self aspectFor:#topAlignmentFraction)  value:topAlignmentFraction.
+    lAHolder value:leftAlignmentFraction.
+    tAHolder  value:topAlignmentFraction.
 
-    lO := (self aspectFor:#leftOffset) value ? 0.
-    tO := (self aspectFor:#topOffset)  value ? 0.
+    lO := (lOHolder := self aspectFor:#leftOffset) value ? 0.
+    tO := (tOHolder := self aspectFor:#topOffset)  value ? 0.
 
     lO := lO + (ext x * (leftAlignmentFraction - lAF)).
     tO := tO + (ext y * (topAlignmentFraction  - tAF)).
 
-    (self aspectFor:#leftOffset) value:(lO rounded).
-    (self aspectFor:#topOffset)  value:(tO rounded).
+    lOHolder value:(lO rounded).
+    tOHolder value:(tO rounded).
 
 !
 
@@ -1138,33 +1503,7 @@
 
 ! !
 
-!UILayoutTool::Extent class methodsFor:'help specs'!
-
-helpSpec
-    "This resource specification was automatically generated
-     by the UIHelpTool of ST/X."
-
-    "Do not manually edit this!! If it is corrupted,
-     the UIHelpTool may not be able to read the specification."
-
-    "
-     UIHelpTool openOnClass:UILayoutTool::Extent    
-    "
-
-    <resource: #help>
-
-    ^super helpSpec addPairsFrom:#(
-
-#hrzExtent
-'Horizontal extent of the selected widget.'
-
-#vrtExtent
-'Vertical extent of the selected widget.'
-
-)
-! !
-
-!UILayoutTool::Extent class methodsFor:'interface specs'!
+!UILayoutTool::Point class methodsFor:'interface specs'!
 
 windowSpec
     "This resource specification was automatically generated
@@ -1174,9 +1513,9 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:UILayoutTool::Extent andSelector:#windowSpec
-     UILayoutTool::Extent new openInterface:#windowSpec
-     UILayoutTool::Extent open
+     UIPainter new openOnClass:UILayoutTool::Point andSelector:#windowSpec
+     UILayoutTool::Point new openInterface:#windowSpec
+     UILayoutTool::Point open
     "
 
     <resource: #canvas>
@@ -1184,107 +1523,51 @@
     ^
      
        #(#FullSpec
-          #name: #windowSpec
           #window: 
            #(#WindowSpec
-              #name: 'UILayoutTool-Extent'
-              #layout: #(#LayoutFrame 216 0 173 0 541 0 321 0)
-              #level: 0
-              #label: 'UILayoutTool-Extent'
+              #name: 'UILayoutTool-Point'
+              #layout: #(#LayoutFrame 324 0 410 0 618 0 547 0)
+              #label: 'UILayoutTool-Point'
               #min: #(#Point 10 10)
               #max: #(#Point 1152 900)
-              #bounds: #(#Rectangle 216 173 542 322)
+              #bounds: #(#Rectangle 324 410 619 548)
               #usePreferredExtent: false
-              #returnIsOKInDialog: true
-              #escapeIsCancelInDialog: true
           )
           #component: 
            #(#SpecCollection
               #collection: 
                #(
-                 #(#FramedBoxSpec
-                    #name: 'FramedBox'
-                    #layout: #(#LayoutFrame 0 0.0 6 0.0 0 1.0 137 0)
-                    #component: 
-                     #(#SpecCollection
-                        #collection: 
-                         #(
-                           #(#LabelSpec
-                              #name: 'labelWidth'
-                              #layout: #(#AlignmentOrigin 89 0 24 0 1 0.5)
-                              #label: 'Width:'
-                              #adjust: #right
-                          )
-                           #(#InputFieldSpec
-                              #name: 'fieldLeftOffset'
-                              #layout: #(#LayoutFrame 90 0 13 0 140 0 35 0)
-                              #activeHelpKey: #hrzExtent
-                              #enableChannel: #notUsingDefaultExtent
-                              #tabable: true
-                              #model: #leftOffset
-                              #group: #inputGroup
-                              #type: #numberOrNil
-                              #acceptOnLostFocus: true
-                              #acceptChannel: #acceptChannel
-                              #modifiedChannel: #modifiedChannel
-                          )
-                           #(#LabelSpec
-                              #name: 'labelHeight'
-                              #layout: #(#AlignmentOrigin 89 0 49 0 1 0.5)
-                              #label: 'Height:'
-                              #adjust: #right
-                          )
-                           #(#InputFieldSpec
-                              #name: 'fieldRightOffset'
-                              #layout: #(#LayoutFrame 90 0 38 0 140 0 60 0)
-                              #activeHelpKey: #vrtExtent
-                              #enableChannel: #notUsingDefaultExtent
-                              #tabable: true
-                              #model: #rightOffset
-                              #group: #inputGroup
-                              #type: #numberOrNil
-                              #acceptOnLostFocus: true
-                              #acceptChannel: #acceptChannel
-                              #modifiedChannel: #modifiedChannel
-                          )
-                           #(#CheckBoxSpec
-                              #name: 'useDefaultExtentCheckBox'
-                              #layout: #(#LayoutFrame -1 0 75 0 296 0 97 0)
-                              #model: #useDefaultExtent
-                              #label: 'Use Widgets Default Extent'
-                              #translateLabel: true
-                              #enableChannel: #defaultExtentEnabled
-                          )
-                        )
-                    )
-                    #label: 'Extent'
-                    #labelPosition: #topLeft
+                 #(#UISubSpecification
+                    #name: 'layoutPointSpec'
+                    #layout: #(#LayoutFrame 1 0.0 6 0 0 1.0 100 0)
+                    #majorKey: #UILayoutTool
+                    #minorKey: #layoutPointSpec
                 )
               )
           )
       )
 ! !
 
-!UILayoutTool::Extent methodsFor:'accessing'!
+!UILayoutTool::Point methodsFor:'accessing'!
 
 fetch:aView spec:aSpec
-    "fetch extent
+    "fetch point
     "
-    |extent|
+    |origin|
 
-    extent  := aView computeExtent.
+    origin  := aView computeOrigin.
 
-    (self aspectFor:#leftOffset)  value:(extent x).
-    (self aspectFor:#rightOffset) value:(extent y).
+    (self aspectFor:#leftOffset) value:(origin x).
+    (self aspectFor:#topOffset)  value:(origin y).
 
-    (self aspectFor:#useDefaultExtent) value:aSpec useDefaultExtent 
+
 !
 
 layout
-    "returns current extent
+    "returns current layout as point
     "
-  ^ Smalltalk::Point x:(((self aspectFor:#leftOffset)   value) ? 0)
-                     y:(((self aspectFor:#rightOffset)  value) ? 0)
+  ^ Smalltalk::Point x:(((self aspectFor:#leftOffset) value) ? 0)
+                     y:(((self aspectFor:#topOffset)  value) ? 0)
 
 ! !
 
@@ -1945,276 +2228,6 @@
         bottom:0.5       offset:0
 ! !
 
-!UILayoutTool::LayoutOrigin class methodsFor:'interface specs'!
-
-windowSpec
-    "This resource specification was automatically generated
-     by the UIPainter of ST/X."
-
-    "Do not manually edit this!! If it is corrupted,
-     the UIPainter may not be able to read the specification."
-
-    "
-     UIPainter new openOnClass:UILayoutTool::LayoutOrigin andSelector:#windowSpec
-     UILayoutTool::LayoutOrigin new openInterface:#windowSpec
-     UILayoutTool::LayoutOrigin open
-    "
-
-    <resource: #canvas>
-
-    ^
-     
-       #(#FullSpec
-          #window: 
-           #(#WindowSpec
-              #name: 'UILayoutTool-LayoutOrigin'
-              #layout: #(#LayoutFrame 290 0 420 0 647 0 565 0)
-              #label: 'UILayoutTool-LayoutOrigin'
-              #min: #(#Point 10 10)
-              #max: #(#Point 1152 900)
-              #bounds: #(#Rectangle 290 420 648 566)
-              #usePreferredExtent: false
-          )
-          #component: 
-           #(#SpecCollection
-              #collection: 
-               #(
-                 #(#UISubSpecification
-                    #name: 'layoutOriginSpec'
-                    #layout: #(#LayoutFrame 1 0.0 6 0 0 1.0 110 0)
-                    #majorKey: #UILayoutTool
-                    #minorKey: #layoutOriginSpec
-                )
-              )
-          )
-      )
-! !
-
-!UILayoutTool::LayoutOrigin methodsFor:'accessing'!
-
-fetch:aView spec:aSpec
-    "fetch layoutOrigin
-    "
-    |layout|
-
-    layout  := UIPainterView asLayoutFrameFromView:aView.
-
-    (self aspectFor:#leftOffset)   value:(layout leftOffset).
-    (self aspectFor:#leftFraction) value:(layout leftFraction).
-    (self aspectFor:#topOffset)    value:(layout topOffset).
-    (self aspectFor:#topFraction)  value:(layout topFraction).
-
-
-!
-
-layout
-    "returns current layout as layoutOrigin
-    "
-    |layout|
-
-    layout  := Smalltalk::LayoutOrigin new.
-
-    layout   leftOffset:((self aspectFor:#leftOffset)   value) ? 0.
-    layout    topOffset:((self aspectFor:#topOffset)    value) ? 0.
-    layout leftFraction:((self aspectFor:#leftFraction) value) ? 0.
-    layout  topFraction:((self aspectFor:#topFraction)  value) ? 0.
-
-  ^ layout
-
-! !
-
-!UILayoutTool::Point class methodsFor:'interface specs'!
-
-windowSpec
-    "This resource specification was automatically generated
-     by the UIPainter of ST/X."
-
-    "Do not manually edit this!! If it is corrupted,
-     the UIPainter may not be able to read the specification."
-
-    "
-     UIPainter new openOnClass:UILayoutTool::Point andSelector:#windowSpec
-     UILayoutTool::Point new openInterface:#windowSpec
-     UILayoutTool::Point open
-    "
-
-    <resource: #canvas>
-
-    ^
-     
-       #(#FullSpec
-          #window: 
-           #(#WindowSpec
-              #name: 'UILayoutTool-Point'
-              #layout: #(#LayoutFrame 324 0 410 0 618 0 547 0)
-              #label: 'UILayoutTool-Point'
-              #min: #(#Point 10 10)
-              #max: #(#Point 1152 900)
-              #bounds: #(#Rectangle 324 410 619 548)
-              #usePreferredExtent: false
-          )
-          #component: 
-           #(#SpecCollection
-              #collection: 
-               #(
-                 #(#UISubSpecification
-                    #name: 'layoutPointSpec'
-                    #layout: #(#LayoutFrame 1 0.0 6 0 0 1.0 100 0)
-                    #majorKey: #UILayoutTool
-                    #minorKey: #layoutPointSpec
-                )
-              )
-          )
-      )
-! !
-
-!UILayoutTool::Point methodsFor:'accessing'!
-
-fetch:aView spec:aSpec
-    "fetch point
-    "
-    |origin|
-
-    origin  := aView computeOrigin.
-
-    (self aspectFor:#leftOffset) value:(origin x).
-    (self aspectFor:#topOffset)  value:(origin y).
-
-
-!
-
-layout
-    "returns current layout as point
-    "
-  ^ Smalltalk::Point x:(((self aspectFor:#leftOffset) value) ? 0)
-                     y:(((self aspectFor:#topOffset)  value) ? 0)
-
-! !
-
-!UILayoutTool::Rectangle class methodsFor:'interface specs'!
-
-windowSpec
-    "This resource specification was automatically generated
-     by the UIPainter of ST/X."
-
-    "Do not manually edit this!! If it is corrupted,
-     the UIPainter may not be able to read the specification."
-
-    "
-     UIPainter new openOnClass:UILayoutTool::Rectangle andSelector:#windowSpec
-     UILayoutTool::Rectangle new openInterface:#windowSpec
-     UILayoutTool::Rectangle open
-    "
-
-    <resource: #canvas>
-
-    ^
-     
-       #(#FullSpec
-          #window: 
-           #(#WindowSpec
-              #name: 'UILayoutTool-Rectangle'
-              #layout: #(#LayoutFrame 291 0 130 0 632 0 328 0)
-              #label: 'UILayoutTool-Rectangle'
-              #min: #(#Point 10 10)
-              #max: #(#Point 1152 900)
-              #bounds: #(#Rectangle 291 130 633 329)
-              #usePreferredExtent: false
-          )
-          #component: 
-           #(#SpecCollection
-              #collection: 
-               #(
-                 #(#UISubSpecification
-                    #name: 'subSpecification'
-                    #layout: #(#LayoutFrame 1 0.0 6 0 0 1.0 96 0)
-                    #majorKey: #UILayoutTool
-                    #minorKey: #layoutPointSpec
-                )
-                 #(#FramedBoxSpec
-                    #name: 'FramedBox'
-                    #layout: #(#LayoutFrame 1 0.0 99 0 0 1.0 194 0)
-                    #component: 
-                     #(#SpecCollection
-                        #collection: 
-                         #(
-                           #(#LabelSpec
-                              #name: 'labelCornerY'
-                              #layout: #(#AlignmentOrigin 83 0 16 0 1 0)
-                              #label: 'Right:'
-                              #adjust: #left
-                          )
-                           #(#InputFieldSpec
-                              #name: 'fieldCornerX'
-                              #layout: #(#LayoutFrame 85 0 13 0 135 0 35 0)
-                              #activeHelpKey: #cornerX
-                              #tabable: true
-                              #model: #rightOffset
-                              #group: #inputGroup
-                              #type: #numberOrNil
-                              #acceptOnLostFocus: true
-                    #acceptChannel: #acceptChannel
-                    #modifiedChannel: #modifiedChannel
-                          )
-                           #(#LabelSpec
-                              #name: 'labelCornerX'
-                              #layout: #(#AlignmentOrigin 83 0 41 0 1 0)
-                              #label: 'Bottom:'
-                              #adjust: #left
-                          )
-                           #(#InputFieldSpec
-                              #name: 'fieldCornerY'
-                              #layout: #(#LayoutFrame 85 0 38 0 135 0 60 0)
-                              #activeHelpKey: #cornerY
-                              #tabable: true
-                              #model: #bottomOffset
-                              #group: #inputGroup
-                              #type: #numberOrNil
-                              #acceptOnLostFocus: true
-                    #acceptChannel: #acceptChannel
-                    #modifiedChannel: #modifiedChannel
-                          )
-                        )
-                    )
-                    #label: 'Corner'
-                    #labelPosition: #topLeft
-                )
-              )
-          )
-      )
-
-    "Modified: / 13.8.1998 / 19:59:16 / cg"
-! !
-
-!UILayoutTool::Rectangle methodsFor:'accessing'!
-
-fetch:aView spec:aSpec
-    "fetch rectangle
-    "
-    |origin corner|
-
-    origin := aView computeOrigin.
-    corner := aView computeCorner.
-
-    (self aspectFor:#leftOffset)   value:(origin x).
-    (self aspectFor:#rightOffset)  value:(corner x).
-    (self aspectFor:#topOffset)    value:(origin y).
-    (self aspectFor:#bottomOffset) value:(corner y).
-
-
-!
-
-layout
-    "returns current layout as rectangle
-    "
-  ^ Smalltalk::Rectangle left:(((self aspectFor:#leftOffset)   value) ? 0)
-                          top:(((self aspectFor:#topOffset)    value) ? 0)
-                        right:(((self aspectFor:#rightOffset)  value) ? 0)
-                       bottom:(((self aspectFor:#bottomOffset) value) ? 0)
-
-
-! !
-
 !UILayoutTool class methodsFor:'documentation'!
 
 version