UIPropertyView.st
changeset 70 4e667db10910
parent 68 889c3877baf0
child 72 a5a7054e2b7d
--- a/UIPropertyView.st	Fri Feb 28 18:04:09 1997 +0100
+++ b/UIPropertyView.st	Fri Feb 28 20:25:14 1997 +0100
@@ -1469,14 +1469,13 @@
 
         layoutType notNil ifTrue:[
             self modified:true.
+            self perform:(('fetch',  layoutType asString) asSymbol).
             spec := ('specification', layoutType asString) asSymbol.
             spec := self class perform:spec.
         ].
         self showSpec:spec.
         self changed:#layoutType.
     ].
-
-    "Modified: 28.2.1997 / 13:07:10 / cg"
 !
 
 layoutTypeList
@@ -1491,7 +1490,7 @@
 showAndFetchLayout
     "fetch and show layout specification assigned to current view
     "
-    |type|
+    |type spec|
 
     self modified:false.
     modified := true.
@@ -1500,11 +1499,25 @@
         type := builderView class layoutType:currentView.
 
         type notNil ifTrue:[
-            layoutAspects do:[:aValue| aValue value:nil ].
-            self perform:(('fetch', type asString) asSymbol)
+            self perform:(('fetch', type asString) asSymbol).
+
+            type notNil ifTrue:[
+                spec := ('specification', type asString) asSymbol.
+                spec := self class perform:spec.
+            ]
         ]
     ].
-    self layoutType:type.
+
+    type ~~ layoutType ifTrue:[
+        layoutType := type.
+        self changed:#layoutType
+    ].
+    self showSpec:spec.
+
+    type ~~ layoutType ifTrue:[
+        layoutType := type.
+        self changed:#layoutType
+    ].
     modified := false.
 
 !
@@ -1528,20 +1541,40 @@
 fetchAlignmentOrigin
     "fetch alignmentOrigin
     "
-    |aLayout|
+    |layout type extent|
+
+    type   := builderView class layoutType:currentView.
+    layout := currentView geometryLayout.
 
-    aLayout := currentView geometryLayout.
+    layout isLayout ifTrue:[
+        (layoutAspects at:#leftOffset)   value:(layout leftOffset).
+        (layoutAspects at:#leftFraction) value:(layout leftFraction).
+        (layoutAspects at:#topOffset)    value:(layout topOffset).
+        (layoutAspects at:#topFraction)  value:(layout topFraction).
 
-    (layoutAspects at:#leftAlignmentFraction) value:(aLayout leftAlignmentFraction).
-    (layoutAspects at:#topAlignmentFraction)  value:(aLayout topAlignmentFraction).
+        type == #AlignmentOrigin ifTrue:[
+            (layoutAspects at:#leftAlignmentFraction) value:(layout leftAlignmentFraction).
+            (layoutAspects at:#topAlignmentFraction)  value:(layout topAlignmentFraction).
+          ^ self
+        ]
+    ] ifFalse:[
+        layout := currentView computeOrigin.
 
-    self fetchLayoutOrigin
+        (layoutAspects at:#leftOffset)   value:(layout x).
+        (layoutAspects at:#leftFraction) value:0.
+        (layoutAspects at:#topOffset)    value:(layout y).
+        (layoutAspects at:#topFraction)  value:0.
+    ].
+    (layoutAspects at:#leftAlignmentFraction) value:0.
+    (layoutAspects at:#topAlignmentFraction)  value:0.
+
+
 !
 
 fetchExtent
     |extent|
 
-    extent := currentView extent.
+    extent := currentView computeExtent.
     (layoutAspects at:#leftOffset)  value:(extent x).
     (layoutAspects at:#rightOffset) value:(extent y).
 !
@@ -1549,93 +1582,56 @@
 fetchLayoutFrame
     "fetch layoutFrame
     "
-    |aLayout org|
+    |layout|
 
-    aLayout := currentView geometryLayout.
-    org := currentView computeOrigin.
-
-    (layoutAspects at:#absLeft) value:(org x).
-    (layoutAspects at:#absTop)  value:(org y).
+    layout := builderView class asLayoutFrameFromView:currentView.
 
-    (layoutAspects at:#leftOffset)     value:(aLayout leftOffset).
-    (layoutAspects at:#leftFraction)   value:(aLayout leftFraction).
-    (layoutAspects at:#topOffset)      value:(aLayout topOffset).
-    (layoutAspects at:#topFraction)    value:(aLayout topFraction).
-    (layoutAspects at:#rightOffset)    value:(aLayout rightOffset).
-    (layoutAspects at:#bottomOffset)   value:(aLayout bottomOffset).
-    (layoutAspects at:#rightFraction)  value:(aLayout rightFraction).
-    (layoutAspects at:#bottomFraction) value:(aLayout bottomFraction).
-
-    "Modified: 28.2.1997 / 12:58:37 / cg"
+    (layoutAspects at:#leftOffset)     value:(layout leftOffset).
+    (layoutAspects at:#leftFraction)   value:(layout leftFraction).
+    (layoutAspects at:#topOffset)      value:(layout topOffset).
+    (layoutAspects at:#topFraction)    value:(layout topFraction).
+    (layoutAspects at:#rightOffset)    value:(layout rightOffset).
+    (layoutAspects at:#bottomOffset)   value:(layout bottomOffset).
+    (layoutAspects at:#rightFraction)  value:(layout rightFraction).
+    (layoutAspects at:#bottomFraction) value:(layout bottomFraction).
 !
 
 fetchLayoutOrigin
     "fetch layoutOrigin
     "
-    |extent aLayout leftFraction topFraction leftOffset topOffset org|
+    |layout|
 
-    extent  := currentView extent.
-    aLayout := currentView geometryLayout.
-    org := currentView computeOrigin.
-
-    (layoutAspects at:#absLeft) value:(org x).
-    (layoutAspects at:#absTop)  value:(org y).
+    layout := builderView class asLayoutFrameFromView:currentView.
 
-    leftFraction := aLayout leftFraction.
-    topFraction  := aLayout topFraction.
-    leftOffset   := aLayout leftOffset.
-    topOffset    := aLayout topOffset.
+    (layoutAspects at:#leftOffset)   value:(layout leftOffset).
+    (layoutAspects at:#leftFraction) value:(layout leftFraction).
+    (layoutAspects at:#topOffset)    value:(layout topOffset).
+    (layoutAspects at:#topFraction)  value:(layout topFraction).
 
-    (layoutAspects at:#leftOffset)   value:leftOffset.
-    (layoutAspects at:#leftFraction) value:leftFraction.
-    (layoutAspects at:#topOffset)    value:topOffset.
-    (layoutAspects at:#topFraction)  value:topFraction.
-
-    (layoutAspects at:#rightFraction)  value:leftFraction.
-    (layoutAspects at:#rightOffset)    value:(leftOffset + extent x).
-    (layoutAspects at:#bottomFraction) value:topFraction.
-    (layoutAspects at:#bottomOffset)   value:(topOffset  + extent y).
-
-    "Modified: 28.2.1997 / 12:58:49 / cg"
 !
 
 fetchPoint
     "fetch point
     "
-    |e x y p|
-
-    p := currentView geometryLayout.
-    x := p x.
-    y := p y.
-    e := currentView computeExtent.
+    |origin|
 
-    (layoutAspects at:#absLeft) value:x.
-    (layoutAspects at:#absTop)  value:y.
-
-    (layoutAspects at:#leftOffset)   value:x.
-    (layoutAspects at:#topOffset)    value:y.
-    (layoutAspects at:#rightOffset)  value:(x + e x).
-    (layoutAspects at:#bottomOffset) value:(y + e y).
-
-    "Modified: 28.2.1997 / 12:59:26 / cg"
+    origin := currentView computeOrigin.
+    (layoutAspects at:#absLeft) value:(origin x).
+    (layoutAspects at:#absTop)  value:(origin y).
 !
 
 fetchRectangle
     "fetch rectangle
     "
-    |aRectangle|
+    |origin corner|
 
-    aRectangle := currentView geometryLayout.
-
-    (layoutAspects at:#absLeft) value:(aRectangle left).
-    (layoutAspects at:#absTop)  value:(aRectangle top).
+    origin := currentView computeOrigin.
+    corner := currentView computeCorner.
 
-    (layoutAspects at:#leftOffset)   value:(aRectangle left).
-    (layoutAspects at:#rightOffset)  value:(aRectangle right).
-    (layoutAspects at:#topOffset)    value:(aRectangle top).
-    (layoutAspects at:#bottomOffset) value:(aRectangle bottom).
-
-    "Modified: 28.2.1997 / 12:59:09 / cg"
+    (layoutAspects at:#leftOffset)   value:(origin x).
+    (layoutAspects at:#rightOffset)  value:(corner x).
+    (layoutAspects at:#topOffset)    value:(origin y).
+    (layoutAspects at:#bottomOffset) value:(corner y).
 ! !
 
 !UIPropertyView methodsFor:'private layout write'!
@@ -1753,23 +1749,24 @@
 
 !
 
-makeAlignLeft:leftFraction top:topFraction
-    |lA tA lO tO|
+makeAlignLeft:leftAlignmentFraction top:topAlignmentFraction
+    |lAF tAF lO tO ext|
 
-    lA := (layoutAspects at:#leftAlignmentFraction) value ? 0.
-    tA := (layoutAspects at:#topAlignmentFraction) value ? 0.
-
-    (layoutAspects at:#leftAlignmentFraction) value:leftFraction.
-    (layoutAspects at:#topAlignmentFraction)  value:topFraction.
+    lAF := (layoutAspects at:#leftAlignmentFraction) value ? 0.
+    tAF := (layoutAspects at:#topAlignmentFraction)  value ? 0.
+    ext := currentView computeExtent.
 
-    lO := (layoutAspects at:#leftOffset) value.
-    tO := (layoutAspects at:#topOffset) value.
+    (layoutAspects at:#leftAlignmentFraction) value:leftAlignmentFraction.
+    (layoutAspects at:#topAlignmentFraction)  value:topAlignmentFraction.
+
+    lO := (layoutAspects at:#leftOffset) value ? 0.
+    tO := (layoutAspects at:#topOffset)  value ? 0.
 
-    lO := lO + (currentView computeExtent x * (leftFraction - lA)).
-    tO := tO + (currentView computeExtent y * (topFraction - tA)).
+    lO := lO + (ext x * (leftAlignmentFraction - lAF)).
+    tO := tO + (ext y * (topAlignmentFraction  - tAF)).
 
-    (layoutAspects at:#leftOffset) value:lO.
-    (layoutAspects at:#topOffset) value:tO.
+    (layoutAspects at:#leftOffset) value:(lO rounded).
+    (layoutAspects at:#topOffset)  value:(tO rounded).
 !
 
 makeAlignLeftCenter
@@ -1798,41 +1795,27 @@
 !
 
 makeLayout:what xOrY:xOrY offset:aBool
-    |layout extent fraction offset fractSymb offsetSymb|
+    |extent fraction offset fractSymb offsetSymb|
 
-    currentView isNil ifTrue:[
-        ^ self
-    ].
-    layout := currentView geometryLayout.
-
-    layout isLayout ifFalse:[
-        ^ self
-    ].
+    extent     := (currentView superView computeExtent) perform:xOrY.
     fractSymb  := (what, 'Fraction') asSymbol.
     offsetSymb := (what,   'Offset') asSymbol.
 
-    (    (layout respondsTo:fractSymb)
-     and:[layout respondsTo:offsetSymb]
-    ) ifTrue:[
-
-        fraction := layout perform:fractSymb.
-        offset   := layout perform:offsetSymb.
-        extent   := (currentView superView computeExtent) perform:xOrY.
+    fraction := (layoutAspects at:fractSymb)  value.
+    offset   := (layoutAspects at:offsetSymb) value.
 
-        aBool ifTrue:[
-            offset := offset + ((fraction * extent) asInteger).
-            (layoutAspects at:offsetSymb) value:offset.
-            (layoutAspects at:fractSymb)  value:0.
-        ] ifFalse:[
-            fraction   := (fraction + (offset / extent)) asFloat.
+    aBool ifTrue:[
+        offset   := offset + ((fraction * extent) asInteger).
+        fraction := 0.
+    ] ifFalse:[
+        fraction   := (fraction + (offset / extent)) asFloat.
 
-            (fraction > 1.0) ifTrue:[ fraction := 1.0 ].
-            (fraction < 0.0) ifTrue:[ fraction := 0.0 ].
-
-            (layoutAspects at:offsetSymb) value:0.
-            (layoutAspects at:fractSymb)  value:fraction.
-        ]
-    ]
+        (fraction > 1.0) ifTrue:[ fraction := 1.0 ].
+        (fraction < 0.0) ifTrue:[ fraction := 0 ].
+        offset := 0.
+    ].
+    (layoutAspects at:offsetSymb) value:offset.
+    (layoutAspects at:fractSymb)  value:fraction.
 
 
 !