--- a/UILayoutTool.st Wed Feb 09 16:48:15 2000 +0100
+++ b/UILayoutTool.st Wed Feb 09 17:16:30 2000 +0100
@@ -21,42 +21,49 @@
category:'Interface-UIPainter'
!
-ApplicationModel subclass:#Rectangle
+ApplicationModel subclass:#AnyLayout
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:UILayoutTool
!
-ApplicationModel subclass:#AlignmentOrigin
+UILayoutTool::AnyLayout subclass:#AlignmentOrigin
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:UILayoutTool
+!
+
+UILayoutTool::AnyLayout subclass:#LayoutOrigin
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:UILayoutTool
!
-ApplicationModel subclass:#LayoutOrigin
+UILayoutTool::AnyLayout subclass:#LayoutFrame
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:UILayoutTool
!
-ApplicationModel subclass:#Point
+UILayoutTool::AnyLayout subclass:#Point
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:UILayoutTool
!
-ApplicationModel subclass:#LayoutFrame
+UILayoutTool::AnyLayout subclass:#Rectangle
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:UILayoutTool
!
-ApplicationModel subclass:#Extent
+UILayoutTool::AnyLayout subclass:#Extent
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
@@ -194,7 +201,7 @@
#name: 'UILayoutTool'
#min: #(#Point 10 10)
#max: #(#Point 1152 900)
- #bounds: #(#Rectangle 37 37 382 219)
+ #bounds: #(#Rectangle 12 22 357 204)
)
#component:
#(#SpecCollection
@@ -223,10 +230,11 @@
#layout: #(#AlignmentOrigin 68 0 27 0 1 0)
)
#(#ActionButtonSpec
- #label: '>'
+ #label: 'imageFractX'
#name: 'actionRelativeLeft'
#layout: #(#LayoutFrame 77 0 24 0 99 0 46 0)
#activeHelpKey: #makeLeftRelative
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #relativeLeft
)
@@ -243,10 +251,11 @@
#acceptOnPointerLeave: false
)
#(#ActionButtonSpec
- #label: '<'
+ #label: 'imageAbsXFromRight'
#name: 'actionRightRelativeLeft'
- #layout: #(#LayoutFrame 158 0 24 0 180 0 46 0)
+ #layout: #(#LayoutFrame 257 0 24 0 279 0 46 0)
#activeHelpKey: #makeLeftRelativeFromRight
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #rightRelativeLeft
)
@@ -263,10 +272,11 @@
#acceptOnPointerLeave: false
)
#(#ActionButtonSpec
- #label: '>'
+ #label: 'imageAbsX'
#name: 'actionAbsoluteLeft'
- #layout: #(#LayoutFrame 258 0 24 0 280 0 46 0)
+ #layout: #(#LayoutFrame 178 0 24 0 200 0 46 0)
#activeHelpKey: #makeLeftAbsolute
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #absoluteLeft
)
@@ -276,10 +286,11 @@
#layout: #(#AlignmentOrigin 68 0 54 0 1 0)
)
#(#ActionButtonSpec
- #label: 'v'
+ #label: 'imageFractY'
#name: 'actionRelativeTop'
#layout: #(#LayoutFrame 77 0 51 0 99 0 73 0)
#activeHelpKey: #makeTopRelative
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #relativeTop
)
@@ -296,10 +307,11 @@
#acceptOnPointerLeave: false
)
#(#ActionButtonSpec
- #label: '^'
+ #label: 'imageAbsYFromBottom'
#name: 'actionBottomRelativeTop'
- #layout: #(#LayoutFrame 158 0 51 0 180 0 73 0)
+ #layout: #(#LayoutFrame 257 0 51 0 279 0 73 0)
#activeHelpKey: #makeTopRelativeFromBottom
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #bottomRelativeTop
)
@@ -316,10 +328,11 @@
#acceptOnPointerLeave: false
)
#(#ActionButtonSpec
- #label: 'v'
+ #label: 'imageAbsY'
#name: 'actionAbsoluteTop'
- #layout: #(#LayoutFrame 258 0 51 0 280 0 73 0)
+ #layout: #(#LayoutFrame 178 0 51 0 200 0 73 0)
#activeHelpKey: #makeTopAbsolute
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #absoluteTop
)
@@ -663,8 +676,8 @@
newOffset := offset + ((fraction * extent) asInteger).
newFraction := 0.
- offsetHolder value:offset.
fractHolder value:newFraction.
+ offsetHolder value:newOffset.
!
absoluteBottom
@@ -907,129 +920,121 @@
"Modified: / 4.2.2000 / 22:31:41 / cg"
! !
-!UILayoutTool::Rectangle class methodsFor:'interface specs'!
-
-windowSpec
+!UILayoutTool::AnyLayout class methodsFor:'image specs'!
+
+imageAbsX
"This resource specification was automatically generated
- by the UIPainter of ST/X."
+ by the ImageEditor of ST/X."
"Do not manually edit this!! If it is corrupted,
- the UIPainter may not be able to read the specification."
+ the ImageEditor may not be able to read the specification."
+
+ "
+ self imageAbsX inspect
+ ImageEditor openOnClass:self andSelector:#imageAbsX
+ "
+
+ <resource: #image>
+
+ ^Icon
+ constantNamed:#'UILayoutTool imageAbsX'
+ ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+<@BP@I@N$L*P*)BZ''8*@@(@B''8*P&)B*$L*PC)@@<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'<@C0@O@N<L;0;/C>??;??/?>??;0?/C.<L;0C/@@<@@b') ; yourself); yourself]!
+
+imageAbsXFromRight
+ "This resource specification was automatically generated
+ by the ImageEditor of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the ImageEditor may not be able to read the specification."
+
+ "
+ self imageAbsXFromRight inspect
+ ImageEditor openOnClass:self andSelector:#imageAbsXFromRight
+ "
+
+ <resource: #image>
+
+ ^Icon
+ constantNamed:#'UILayoutTool imageAbsXFromRight'
+ ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@<@BW@IT0%UBU$IT_%@@T@AT_%YBUTIT0%0BP@I@@<b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@<@C7@O\0=7C7<O_?=??7??_?=?C7\O\0=0C0@O@@<b') ; yourself); yourself]!
+
+imageAbsY
+ "This resource specification was automatically generated
+ by the ImageEditor of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the ImageEditor may not be able to read the specification."
"
- UIPainter new openOnClass:UILayoutTool::Rectangle andSelector:#windowSpec
- UILayoutTool::Rectangle new openInterface:#windowSpec
- UILayoutTool::Rectangle open
+ self imageAbsY inspect
+ ImageEditor openOnClass:self andSelector:#imageAbsY
+ "
+
+ <resource: #image>
+
+ ^Icon
+ constantNamed:#'UILayoutTool imageAbsY'
+ ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A?''<BP@I@@$@BPA98D@ HD@P O''0 AC?<@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??????????<C0@O@@<@C0A?8G? O<@_ O?0??C?<@@@b') ; yourself); yourself]!
+
+imageAbsYFromBottom
+ "This resource specification was automatically generated
+ by the ImageEditor of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the ImageEditor may not be able to read the specification."
+
+ "
+ self imageAbsYFromBottom inspect
+ ImageEditor openOnClass:self andSelector:#imageAbsYFromBottom
"
- <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
+ <resource: #image>
+
+ ^Icon
+ constantNamed:#'UILayoutTool imageAbsYFromBottom'
+ ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@??B@DO''0DH@ PD@ ^^@I@@$@BP@I@?''>@@X@A??<b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@??C?<O?0G8@?0G? _>@O@@<@C0@O@??????????<b') ; yourself); yourself]!
+
+imageFractX
+ "This resource specification was automatically generated
+ by the ImageEditor of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the ImageEditor may not be able to read the specification."
+
+ "
+ self imageFractX inspect
+ ImageEditor openOnClass:self andSelector:#imageFractX
"
- |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
+
+ <resource: #image>
+
+ ^Icon
+ constantNamed:#'UILayoutTool::AnyLayout imageFractX'
+ ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+<@>PBY@I&A&TJYII$X&@@X@A$X&RRYP)&A&PBY@I<@<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'<@?0C?@O>A?<O?9????????????>_?0?>A?0C?@O<@<b') ; yourself); yourself]!
+
+imageFractY
+ "This resource specification was automatically generated
+ by the ImageEditor of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the ImageEditor may not be able to read the specification."
+
"
- ^ 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)
-
-
-! !
+ self imageFractY inspect
+ ImageEditor openOnClass:self andSelector:#imageFractY
+ "
+
+ <resource: #image>
+
+ ^Icon
+ constantNamed:#'UILayoutTool::AnyLayout imageFractY'
+ ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A?''<PB@ PAB@BP@I@AB@HDA@H?''>@@X@A??<b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??????????<_>@?0A>@C0@O@A>@O<A?8??????????<b') ; yourself); yourself]! !
!UILayoutTool::AlignmentOrigin class methodsFor:'help specs'!
@@ -1525,74 +1530,6 @@
! !
-!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::LayoutFrame class methodsFor:'help specs'!
helpSpec
@@ -1881,7 +1818,7 @@
#name: 'UILayoutTool-LayoutFrame'
#min: #(#Point 10 10)
#max: #(#Point 1152 900)
- #bounds: #(#Rectangle 12 36 411 339)
+ #bounds: #(#Rectangle 12 22 411 325)
#forceRecursiveBackground: false
)
#component:
@@ -1907,10 +1844,11 @@
#layout: #(#AlignmentOrigin 68 0 25 0 1 0.5)
)
#(#ActionButtonSpec
- #label: '>'
+ #label: 'imageFractX'
#name: 'actionRelativeRight'
#layout: #(#LayoutFrame 78 0 14 0 100 0 36 0)
#activeHelpKey: #makeRightRelative
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #relativeRight
)
@@ -1928,10 +1866,11 @@
#acceptOnPointerLeave: false
)
#(#ActionButtonSpec
- #label: '<'
+ #label: 'imageAbsXFromRight'
#name: 'actionRightRelativeRight'
- #layout: #(#LayoutFrame 158 0 14 0 180 0 36 0)
+ #layout: #(#LayoutFrame 257 0 14 0 279 0 36 0)
#activeHelpKey: #makeRightRelativeFromRight
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #rightRelativeRight
)
@@ -1949,10 +1888,11 @@
#acceptOnPointerLeave: false
)
#(#ActionButtonSpec
- #label: '>'
+ #label: 'imageAbsX'
#name: 'actionAbsoluteRight'
- #layout: #(#LayoutFrame 258 0 14 0 280 0 36 0)
+ #layout: #(#LayoutFrame 178 0 14 0 200 0 36 0)
#activeHelpKey: #makeRightAbsolute
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #absoluteRight
)
@@ -1962,10 +1902,11 @@
#layout: #(#AlignmentOrigin 68 0 53 0 1 0.5)
)
#(#ActionButtonSpec
- #label: 'v'
+ #label: 'imageFractY'
#name: 'actionRelativeBottom'
#layout: #(#LayoutFrame 78 0 42 0 100 0 64 0)
#activeHelpKey: #makeBottomRelative
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #relativeBottom
)
@@ -1983,10 +1924,11 @@
#acceptOnPointerLeave: false
)
#(#ActionButtonSpec
- #label: '^'
+ #label: 'imageAbsYFromBottom'
#name: 'actionBottomRelativeBottom'
- #layout: #(#LayoutFrame 158 0 42 0 180 0 64 0)
+ #layout: #(#LayoutFrame 257 0 42 0 279 0 64 0)
#activeHelpKey: #makeBottomRelativeFromBottom
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #bottomRelativeBottom
)
@@ -2004,10 +1946,11 @@
#acceptOnPointerLeave: false
)
#(#ActionButtonSpec
- #label: 'v'
+ #label: 'imageAbsY'
#name: 'actionAbsoluteBottom'
- #layout: #(#LayoutFrame 258 0 42 0 280 0 64 0)
+ #layout: #(#LayoutFrame 178 0 42 0 200 0 64 0)
#activeHelpKey: #makeBottomAbsolute
+ #hasCharacterOrientedLabel: false
#tabable: true
#model: #absoluteBottom
)
@@ -2283,6 +2226,198 @@
bottom:0.5 offset:0
! !
+!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::Extent class methodsFor:'help specs'!
helpSpec