--- a/UILayoutTool.st Tue Jan 09 20:59:05 2001 +0100
+++ b/UILayoutTool.st Wed Jan 10 15:31:39 2001 +0100
@@ -30,6 +30,20 @@
privateIn:UILayoutTool
!
+UILayoutTool::AnyLayout subclass:#AlignmentOrigin
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:UILayoutTool
+!
+
+UILayoutTool::AnyLayout subclass:#Extent
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:UILayoutTool
+!
+
UILayoutTool::AnyLayout subclass:#LayoutFrame
instanceVariableNames:''
classVariableNames:''
@@ -37,7 +51,7 @@
privateIn:UILayoutTool
!
-UILayoutTool::AnyLayout subclass:#AlignmentOrigin
+UILayoutTool::AnyLayout subclass:#LayoutOrigin
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
@@ -51,13 +65,6 @@
privateIn:UILayoutTool
!
-UILayoutTool::AnyLayout subclass:#Extent
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:UILayoutTool
-!
-
UILayoutTool::AnyLayout subclass:#Rectangle
instanceVariableNames:''
classVariableNames:''
@@ -65,13 +72,6 @@
privateIn:UILayoutTool
!
-UILayoutTool::AnyLayout subclass:#LayoutOrigin
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:UILayoutTool
-!
-
!UILayoutTool class methodsFor:'documentation'!
copyright
@@ -943,7 +943,8 @@
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]!
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@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
@@ -961,7 +962,8 @@
^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]!
+ 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
@@ -979,7 +981,8 @@
^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]!
+ 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
@@ -997,7 +1000,8 @@
^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]!
+ 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
@@ -1018,7 +1022,8 @@
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]!
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@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
@@ -1036,7 +1041,583 @@
^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]! !
+ 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'!
+
+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::AlignmentOrigin
+ "
+
+ <resource: #help>
+
+ ^super helpSpec addPairsFrom:#(
+
+#alignBottomCenter
+'Aligns the selected widget bottomCenter to location.'
+
+#alignBottomLeft
+'Aligns the selected widget bottomLeft to location.'
+
+#alignBottomRight
+'Aligns the selected widget bottomRight to location.'
+
+#alignCenter
+'Aligns the selected widget center to location.'
+
+#alignHorizontal
+'Horizontal inset to the location point of the selected widget.'
+
+#alignLeftCenter
+'Aligns the selected widget leftCenter to location.'
+
+#alignRightCenter
+'Aligns the selected widget rightCenter to location.'
+
+#alignTopCenter
+'Aligns the selected widget topCenter to location.'
+
+#alignTopLeft
+'Aligns the selected widget topLeft to location.'
+
+#alignTopRight
+'Aligns the selected widget topRight to location.'
+
+#alignVertical
+'Vertical inset to the location point of the widget.'
+
+)
+! !
+
+!UILayoutTool::AlignmentOrigin 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::AlignmentOrigin andSelector:#windowSpec
+ UILayoutTool::AlignmentOrigin new openInterface:#windowSpec
+ UILayoutTool::AlignmentOrigin open
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(#FullSpec
+ #name: #windowSpec
+ #window:
+ #(#WindowSpec
+ #label: 'UILayoutTool-AlignmentOrigin'
+ #name: 'UILayoutTool-AlignmentOrigin'
+ #min: #(#Point 10 10)
+ #max: #(#Point 1152 900)
+ #bounds: #(#Rectangle 42 231 447 438)
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#UISubSpecification
+ #name: 'layoutOriginSpec'
+ #layout: #(#LayoutFrame 1 0.0 6 0 0 1.0 111 0)
+ #majorKey: #UILayoutTool
+ #minorKey: #layoutOriginSpec
+ )
+ #(#FramedBoxSpec
+ #label: 'Alignment'
+ #name: 'FramedBox'
+ #layout: #(#LayoutFrame 1 0.0 113 0 0 1.0 208 0)
+ #labelPosition: #topLeft
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#LabelSpec
+ #label: 'Horizontal:'
+ #name: 'alignHLabel'
+ #layout: #(#AlignmentOrigin 88 0 17 0 1 0)
+ #adjust: #right
+ )
+ #(#InputFieldSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'leftAlignmentFractionField'
+ #layout: #(#LayoutFrame 90 0 14 0 147 0 36 0)
+ #activeHelpKey: #alignHorizontal
+ #tabable: true
+ #model: #leftAlignmentFraction
+ #group: #inputGroup
+ #type: #numberOrNil
+ #acceptOnLostFocus: true
+ #acceptChannel: #acceptChannel
+ #modifiedChannel: #modifiedChannel
+ #acceptOnPointerLeave: false
+ )
+ #(#LabelSpec
+ #label: 'Vertical:'
+ #name: 'alignVLabel'
+ #layout: #(#AlignmentOrigin 88 0 43 0 1 0)
+ #adjust: #right
+ )
+ #(#InputFieldSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'topAlignmentFractionField'
+ #layout: #(#LayoutFrame 90 0 40 0 147 0 62 0)
+ #activeHelpKey: #alignVertical
+ #tabable: true
+ #model: #topAlignmentFraction
+ #group: #inputGroup
+ #type: #numberOrNil
+ #acceptOnLostFocus: true
+ #acceptChannel: #acceptChannel
+ #modifiedChannel: #modifiedChannel
+ #acceptOnPointerLeave: false
+ )
+ #(#DividerSpec
+ #name: 'separator1'
+ #layout: #(#LayoutFrame 204 0 19 0 245 0 22 0)
+ )
+ #(#DividerSpec
+ #name: 'separator2'
+ #layout: #(#LayoutFrame 204 0 55 0 245 0 58 0)
+ )
+ #(#DividerSpec
+ #name: 'separator3'
+ #layout: #(#LayoutFrame 196 0 28 0 199 0 50 0)
+ #orientation: #vertical
+ )
+ #(#DividerSpec
+ #name: 'separator4'
+ #layout: #(#LayoutFrame 250 0 28 0 253 0 50 0)
+ #orientation: #vertical
+ )
+ #(#ActionButtonSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'alignTopLeft'
+ #layout: #(#LayoutFrame 190 0 14 0 204 0 28 0)
+ #activeHelpKey: #alignTopLeft
+ #tabable: true
+ #model: #alignTopLeft
+ )
+ #(#ActionButtonSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'alignTopCenter'
+ #layout: #(#LayoutFrame 217 0 14 0 231 0 28 0)
+ #activeHelpKey: #alignTopCenter
+ #tabable: true
+ #model: #alignTopCenter
+ )
+ #(#ActionButtonSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'alignTopRight'
+ #layout: #(#LayoutFrame 245 0 14 0 259 0 28 0)
+ #activeHelpKey: #alignTopRight
+ #tabable: true
+ #model: #alignTopRight
+ )
+ #(#ActionButtonSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'alignLeftCenter'
+ #layout: #(#LayoutFrame 190 0 32 0 204 0 46 0)
+ #activeHelpKey: #alignLeftCenter
+ #tabable: true
+ #model: #alignLeftCenter
+ )
+ #(#ActionButtonSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'alignCenter'
+ #layout: #(#LayoutFrame 217 0 32 0 231 0 46 0)
+ #activeHelpKey: #alignCenter
+ #tabable: true
+ #model: #alignCenter
+ )
+ #(#ActionButtonSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'alignRightCenter'
+ #layout: #(#LayoutFrame 245 0 32 0 259 0 46 0)
+ #activeHelpKey: #alignRightCenter
+ #tabable: true
+ #model: #alignRightCenter
+ )
+ #(#ActionButtonSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'alignBottomLeft'
+ #layout: #(#LayoutFrame 190 0 50 0 204 0 64 0)
+ #activeHelpKey: #alignBottomLeft
+ #tabable: true
+ #model: #alignBottomLeft
+ )
+ #(#ActionButtonSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'alignBottomCenter'
+ #layout: #(#LayoutFrame 217 0 50 0 231 0 64 0)
+ #activeHelpKey: #alignBottomCenter
+ #tabable: true
+ #model: #alignBottomCenter
+ )
+ #(#ActionButtonSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #name: 'alignBottomRight'
+ #layout: #(#LayoutFrame 245 0 50 0 259 0 64 0)
+ #activeHelpKey: #alignBottomRight
+ #tabable: true
+ #model: #alignBottomRight
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ )
+! !
+
+!UILayoutTool::AlignmentOrigin methodsFor:'accessing'!
+
+fetch:aView spec:aSpec
+ "fetch alignmentOrigin
+ "
+ |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:[
+ leftOffsetHolder value:(layout leftOffset).
+ leftFractionHolder value:(layout leftFraction).
+ topOffsetHolder value:(layout topOffset).
+ topFractionHolder value:(layout topFraction).
+
+ type == #AlignmentOrigin ifTrue:[
+ leftAlignmentFractionHolder value:(layout leftAlignmentFraction).
+ topAlignmentFractionHolder value:(layout topAlignmentFraction).
+ ^ self
+ ]
+ ] ifFalse:[
+ layout := aView computeOrigin.
+
+ leftOffsetHolder value:(layout x).
+ leftFractionHolder value:0.
+ topOffsetHolder value:(layout y).
+ topFractionHolder value:0.
+ ].
+ leftAlignmentFractionHolder value:0.
+ topAlignmentFractionHolder value:0.
+
+
+!
+
+layout
+ "returns current layout as alignmentOrigin
+ "
+ |layout|
+
+ layout := Smalltalk::AlignmentOrigin 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 leftAlignmentFraction:((self aspectFor:#leftAlignmentFraction) value) ? 0.
+ layout topAlignmentFraction:((self aspectFor:#topAlignmentFraction) value) ? 0.
+
+ ^ layout
+! !
+
+!UILayoutTool::AlignmentOrigin methodsFor:'alignment'!
+
+alignBottomCenter
+ self makeAlignLeft:0.5 top:1
+
+
+!
+
+alignBottomLeft
+ self makeAlignLeft:0 top:1
+
+
+!
+
+alignBottomRight
+ self makeAlignLeft:1 top:1
+
+
+!
+
+alignCenter
+ self makeAlignLeft:0.5 top:0.5
+
+
+!
+
+alignLeftCenter
+ self makeAlignLeft:0 top:0.5
+
+
+!
+
+alignRightCenter
+ self makeAlignLeft:1 top:0.5
+
+
+!
+
+alignTopCenter
+ self makeAlignLeft:0.5 top:0
+
+
+!
+
+alignTopLeft
+ self makeAlignLeft:0 top:0
+
+
+!
+
+alignTopRight
+ self makeAlignLeft:1 top:0
+
+
+!
+
+makeAlignLeft:leftAlignmentFraction top:topAlignmentFraction
+ |lAF tAF lO tO ext lAHolder tAHolder lOHolder tOHolder|
+
+ lAF := (lAHolder := self aspectFor:#leftAlignmentFraction) value ? 0.
+ tAF := (tAHolder := self aspectFor:#topAlignmentFraction) value ? 0.
+ ext := (self aspectFor:#layoutView) computeExtent.
+
+ lAHolder value:leftAlignmentFraction.
+ tAHolder value:topAlignmentFraction.
+
+ 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)).
+
+ lOHolder value:(lO rounded).
+ tOHolder value:(tO rounded).
+
+!
+
+makeAlignTopRight
+ self makeAlignLeft:1 top: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
+ #label: 'UILayoutTool-Extent'
+ #name: 'UILayoutTool-Extent'
+ #min: #(#Point 10 10)
+ #max: #(#Point 1152 900)
+ #bounds: #(#Rectangle 506 24 832 173)
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#FramedBoxSpec
+ #label: 'Extent'
+ #name: 'FramedBox'
+ #layout: #(#LayoutFrame 0 0.0 6 0.0 0 1.0 137 0)
+ #labelPosition: #topLeft
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#LabelSpec
+ #label: 'Width:'
+ #name: 'labelWidth'
+ #layout: #(#AlignmentOrigin 89 0 24 0 1 0.5)
+ #adjust: #right
+ )
+ #(#InputFieldSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #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
+ #acceptOnPointerLeave: false
+ )
+ #(#LabelSpec
+ #label: 'Height:'
+ #name: 'labelHeight'
+ #layout: #(#AlignmentOrigin 89 0 49 0 1 0.5)
+ #adjust: #right
+ )
+ #(#InputFieldSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #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
+ #acceptOnPointerLeave: false
+ )
+ #(#CheckBoxSpec
+ #attributes:
+ #(#tabable
+ true
+ )
+ #label: 'Use Widgets Default Extent'
+ #name: 'useDefaultExtentCheckBox'
+ #layout: #(#Point 5 74)
+ #enableChannel: #defaultExtentEnabled
+ #tabable: true
+ #model: #useDefaultExtent
+ #translateLabel: true
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ )
+! !
+
+!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::LayoutFrame class methodsFor:'help specs'!
@@ -1148,7 +1729,8 @@
^Icon
constantNamed:#'UILayoutTool::LayoutFrame setBottomFixPartIcon'
- ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H"H"@BH"H @!!DQD@DQDR@BDQDP@QDQH@H"H"@BH"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @F@@X@A @G???????????????<b') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H"H"@BH"H @!!DQD@DQDR@BDQDP@QDQH@H"H"@BH"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @F@@X@A @G???????????????<b') ; yourself); yourself]
+!
setBottomHalfIcon
"This resource specification was automatically generated
@@ -1166,7 +1748,8 @@
^Icon
constantNamed:#'UILayoutTool::LayoutFrame setBottomHalfIcon'
- ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"H"H"H"H"@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@H"H"H"H"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @F@@_????????????????????<b') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"H"H"H"H"@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@H"H"H"H"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @F@@_????????????????????<b') ; yourself); yourself]
+!
setBottomLeftQuarterIcon
"This resource specification was automatically generated
@@ -1184,7 +1767,8 @@
^Icon
constantNamed:#'UILayoutTool::LayoutFrame setBottomLeftQuarterIcon'
- ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H"H"@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@H"H"@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @G?@_<A?0G?@_<A?0G?@_<A??<b') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H"H"@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@H"H"@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @G?@_<A?0G?@_<A?0G?@_<A??<b') ; yourself); yourself]
+!
setBottomRightQuarterIcon
"This resource specification was automatically generated
@@ -1202,7 +1786,8 @@
^Icon
constantNamed:#'UILayoutTool::LayoutFrame setBottomRightQuarterIcon'
- ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH"H"@@@@@@HQDQH@@@@@@!!DQD @@@@@BDQDR@@@@@@HQDQH@@@@@@"H"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @F@@XG? _>A?8G? _>A?8G???<b') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH"H"@@@@@@HQDQH@@@@@@!!DQD @@@@@BDQDR@@@@@@HQDQH@@@@@@"H"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @F@@XG? _>A?8G? _>A?8G???<b') ; yourself); yourself]
+!
setHorizontalFixPartIcon
"This resource specification was automatically generated
@@ -1222,7 +1807,8 @@
constantNamed:#'UILayoutTool::LayoutFrame setHorizontalFixPartIcon'
ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"H"H@H"H"@BDQDP@QDQH@HQDQ@ADQD @"H"H@H"H"@@@@@@@@@@@@@@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@_???????????????8@A @F@@X@A??<b') ; yourself); yourself]!
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@_???????????????8@A @F@@X@A??<b') ; yourself); yourself]
+!
setLeftFixPartIcon
"This resource specification was automatically generated
@@ -1242,7 +1828,8 @@
constantNamed:#'UILayoutTool::LayoutFrame setLeftFixPartIcon'
ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
@@@@@@@@@@@BH"@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@@@@@@@@@@@@@@@@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQ
-H@@@@@@@@!!D @@@@@@@BDR@@@@@@@@H"H@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???<@_0A?@G<@_0A?@G<@_0A?@G<@_0A?@G<@_0A??<b') ; yourself); yourself]!
+H@@@@@@@@!!D @@@@@@@BDR@@@@@@@@H"H@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???<@_0A?@G<@_0A?@G<@_0A?@G<@_0A?@G<@_0A??<b') ; yourself); yourself]
+!
setLeftHalfIcon
"This resource specification was automatically generated
@@ -1260,7 +1847,8 @@
^Icon
constantNamed:#'UILayoutTool::LayoutFrame setLeftHalfIcon'
- ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@BH"H @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@H"H"@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'????@_<A?0G?@_<A?0G?@_<A?0G?@_<A?0G?@_<A??<b') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@BH"H @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@H"H"@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'????@_<A?0G?@_<A?0G?@_<A?0G?@_<A?0G?@_<A??<b') ; yourself); yourself]
+!
setRightFixPartIcon
"This resource specification was automatically generated
@@ -1280,7 +1868,8 @@
constantNamed:#'UILayoutTool::LayoutFrame setRightFixPartIcon'
ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
@@@@@@@@@@@@@@@@@@H"H@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BDR@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BDR@@@@@@@@HQH@@@
-@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@O8@? C>@O8@? C>@O8@? C>@O8@? C>@O8@???<b') ; yourself); yourself]!
+@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@O8@? C>@O8@? C>@O8@? C>@O8@? C>@O8@???<b') ; yourself); yourself]
+!
setRightHalfIcon
"This resource specification was automatically generated
@@ -1298,7 +1887,8 @@
^Icon
constantNamed:#'UILayoutTool::LayoutFrame setRightHalfIcon'
- ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@"H"H@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BH"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@?8C? O>@?8C? O>@?8C? O>@?8C? O>@?8C???<b') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@"H"H@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BH"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@?8C? O>@?8C? O>@?8C? O>@?8C? O>@?8C???<b') ; yourself); yourself]
+!
setToRightQuarterIcon
"This resource specification was automatically generated
@@ -1316,7 +1906,8 @@
^Icon
constantNamed:#'UILayoutTool::LayoutFrame setToRightQuarterIcon'
- ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@"H"H@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@"H"H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@?8C? O>@?8C? O>@?8C? @F@@X@A @F@@X@A??<b') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@"H"H@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@"H"H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@?8C? O>@?8C? O>@?8C? @F@@X@A @F@@X@A??<b') ; yourself); yourself]
+!
setTopFixPartIcon
"This resource specification was automatically generated
@@ -1334,7 +1925,8 @@
^Icon
constantNamed:#'UILayoutTool::LayoutFrame setTopFixPartIcon'
- ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@BH"H @"H"H@HQDQ@ADQD @!!DQD@DQDR@BH"H @"H"H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???????????????? @F@@X@A @F@@X@A @F@@X@A??<b') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@BH"H @"H"H@HQDQ@ADQD @!!DQD@DQDR@BH"H @"H"H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???????????????? @F@@X@A @F@@X@A @F@@X@A??<b') ; yourself); yourself]
+!
setTopHalfIcon
"This resource specification was automatically generated
@@ -1352,7 +1944,8 @@
^Icon
constantNamed:#'UILayoutTool::LayoutFrame setTopHalfIcon'
- ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@BH"H"H"H"H@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @"H"H"H"H"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'?????????????????????8@A @F@@X@A @F@@X@A??<b') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@BH"H"H"H"H@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @"H"H"H"H"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'?????????????????????8@A @F@@X@A @F@@X@A??<b') ; yourself); yourself]
+!
setTopLeftQuarterIcon
"This resource specification was automatically generated
@@ -1370,7 +1963,8 @@
^Icon
constantNamed:#'UILayoutTool::LayoutFrame setTopLeftQuarterIcon'
- ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@BH"H"@@@@@@HQDQH@@@@@@!!DQD @@@@@BDQDR@@@@@@HQDQH@@@@@@"H"H @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???? _>A?8G? _>A?8G? X@A @F@@X@A @F@@X@A??<b') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@BH"H"@@@@@@HQDQH@@@@@@!!DQD @@@@@BDQDR@@@@@@HQDQH@@@@@@"H"H @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???? _>A?8G? _>A?8G? X@A @F@@X@A @F@@X@A??<b') ; yourself); yourself]
+!
setVerticalFixPartIcon
"This resource specification was automatically generated
@@ -1390,7 +1984,8 @@
constantNamed:#'UILayoutTool::LayoutFrame setVerticalFixPartIcon'
ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
@@@@@@@@@@@@@@@"H @@@@@@@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HQH@@@@@@@@!!D @@@@@@
-@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BH"@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>G8X_!!!!>FG8X_!!!!>FG8X_!!!!>FG8X_!!!!>FG8X_!!??<b') ; yourself); yourself]! !
+@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BH"@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>G8X_!!!!>FG8X_!!!!>FG8X_!!!!>FG8X_!!!!>FG8X_!!??<b') ; yourself); yourself]
+! !
!UILayoutTool::LayoutFrame class methodsFor:'interface specs'!
@@ -1843,8 +2438,8 @@
setRightFixPartFrame
self
- setFrameLeft:1 offset:0
- right:1 offset:-30
+ setFrameLeft:1 offset:-30
+ right:1 offset:0
top:0 offset:0
bottom:1 offset:0
!
@@ -1897,60 +2492,7 @@
bottom:1 offset:0
! !
-!UILayoutTool::AlignmentOrigin 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::AlignmentOrigin
- "
-
- <resource: #help>
-
- ^super helpSpec addPairsFrom:#(
-
-#alignBottomCenter
-'Aligns the selected widget bottomCenter to location.'
-
-#alignBottomLeft
-'Aligns the selected widget bottomLeft to location.'
-
-#alignBottomRight
-'Aligns the selected widget bottomRight to location.'
-
-#alignCenter
-'Aligns the selected widget center to location.'
-
-#alignHorizontal
-'Horizontal inset to the location point of the selected widget.'
-
-#alignLeftCenter
-'Aligns the selected widget leftCenter to location.'
-
-#alignRightCenter
-'Aligns the selected widget rightCenter to location.'
-
-#alignTopCenter
-'Aligns the selected widget topCenter to location.'
-
-#alignTopLeft
-'Aligns the selected widget topLeft to location.'
-
-#alignTopRight
-'Aligns the selected widget topRight to location.'
-
-#alignVertical
-'Vertical inset to the location point of the widget.'
-
-)
-! !
-
-!UILayoutTool::AlignmentOrigin class methodsFor:'interface specs'!
+!UILayoutTool::LayoutOrigin class methodsFor:'interface specs'!
windowSpec
"This resource specification was automatically generated
@@ -1960,356 +2502,71 @@
the UIPainter may not be able to read the specification."
"
- UIPainter new openOnClass:UILayoutTool::AlignmentOrigin andSelector:#windowSpec
- UILayoutTool::AlignmentOrigin new openInterface:#windowSpec
- UILayoutTool::AlignmentOrigin open
+ UIPainter new openOnClass:UILayoutTool::LayoutOrigin andSelector:#windowSpec
+ UILayoutTool::LayoutOrigin new openInterface:#windowSpec
+ UILayoutTool::LayoutOrigin open
"
<resource: #canvas>
- ^
- #(#FullSpec
- #name: #windowSpec
- #window:
- #(#WindowSpec
- #label: 'UILayoutTool-AlignmentOrigin'
- #name: 'UILayoutTool-AlignmentOrigin'
- #min: #(#Point 10 10)
- #max: #(#Point 1152 900)
- #bounds: #(#Rectangle 42 231 447 438)
- )
- #component:
- #(#SpecCollection
- #collection: #(
- #(#UISubSpecification
- #name: 'layoutOriginSpec'
- #layout: #(#LayoutFrame 1 0.0 6 0 0 1.0 111 0)
- #majorKey: #UILayoutTool
- #minorKey: #layoutOriginSpec
- )
- #(#FramedBoxSpec
- #label: 'Alignment'
- #name: 'FramedBox'
- #layout: #(#LayoutFrame 1 0.0 113 0 0 1.0 208 0)
- #labelPosition: #topLeft
- #component:
- #(#SpecCollection
- #collection: #(
- #(#LabelSpec
- #label: 'Horizontal:'
- #name: 'alignHLabel'
- #layout: #(#AlignmentOrigin 88 0 17 0 1 0)
- #adjust: #right
- )
- #(#InputFieldSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'leftAlignmentFractionField'
- #layout: #(#LayoutFrame 90 0 14 0 147 0 36 0)
- #activeHelpKey: #alignHorizontal
- #tabable: true
- #model: #leftAlignmentFraction
- #group: #inputGroup
- #type: #numberOrNil
- #acceptOnLostFocus: true
- #acceptChannel: #acceptChannel
- #modifiedChannel: #modifiedChannel
- #acceptOnPointerLeave: false
- )
- #(#LabelSpec
- #label: 'Vertical:'
- #name: 'alignVLabel'
- #layout: #(#AlignmentOrigin 88 0 43 0 1 0)
- #adjust: #right
- )
- #(#InputFieldSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'topAlignmentFractionField'
- #layout: #(#LayoutFrame 90 0 40 0 147 0 62 0)
- #activeHelpKey: #alignVertical
- #tabable: true
- #model: #topAlignmentFraction
- #group: #inputGroup
- #type: #numberOrNil
- #acceptOnLostFocus: true
- #acceptChannel: #acceptChannel
- #modifiedChannel: #modifiedChannel
- #acceptOnPointerLeave: false
- )
- #(#DividerSpec
- #name: 'separator1'
- #layout: #(#LayoutFrame 204 0 19 0 245 0 22 0)
- )
- #(#DividerSpec
- #name: 'separator2'
- #layout: #(#LayoutFrame 204 0 55 0 245 0 58 0)
- )
- #(#DividerSpec
- #name: 'separator3'
- #layout: #(#LayoutFrame 196 0 28 0 199 0 50 0)
- #orientation: #vertical
- )
- #(#DividerSpec
- #name: 'separator4'
- #layout: #(#LayoutFrame 250 0 28 0 253 0 50 0)
- #orientation: #vertical
- )
- #(#ActionButtonSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'alignTopLeft'
- #layout: #(#LayoutFrame 190 0 14 0 204 0 28 0)
- #activeHelpKey: #alignTopLeft
- #tabable: true
- #model: #alignTopLeft
- )
- #(#ActionButtonSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'alignTopCenter'
- #layout: #(#LayoutFrame 217 0 14 0 231 0 28 0)
- #activeHelpKey: #alignTopCenter
- #tabable: true
- #model: #alignTopCenter
- )
- #(#ActionButtonSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'alignTopRight'
- #layout: #(#LayoutFrame 245 0 14 0 259 0 28 0)
- #activeHelpKey: #alignTopRight
- #tabable: true
- #model: #alignTopRight
- )
- #(#ActionButtonSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'alignLeftCenter'
- #layout: #(#LayoutFrame 190 0 32 0 204 0 46 0)
- #activeHelpKey: #alignLeftCenter
- #tabable: true
- #model: #alignLeftCenter
- )
- #(#ActionButtonSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'alignCenter'
- #layout: #(#LayoutFrame 217 0 32 0 231 0 46 0)
- #activeHelpKey: #alignCenter
- #tabable: true
- #model: #alignCenter
- )
- #(#ActionButtonSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'alignRightCenter'
- #layout: #(#LayoutFrame 245 0 32 0 259 0 46 0)
- #activeHelpKey: #alignRightCenter
- #tabable: true
- #model: #alignRightCenter
- )
- #(#ActionButtonSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'alignBottomLeft'
- #layout: #(#LayoutFrame 190 0 50 0 204 0 64 0)
- #activeHelpKey: #alignBottomLeft
- #tabable: true
- #model: #alignBottomLeft
- )
- #(#ActionButtonSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'alignBottomCenter'
- #layout: #(#LayoutFrame 217 0 50 0 231 0 64 0)
- #activeHelpKey: #alignBottomCenter
- #tabable: true
- #model: #alignBottomCenter
- )
- #(#ActionButtonSpec
- #attributes:
- #(#tabable
- true
- )
- #name: 'alignBottomRight'
- #layout: #(#LayoutFrame 245 0 50 0 259 0 64 0)
- #activeHelpKey: #alignBottomRight
- #tabable: true
- #model: #alignBottomRight
- )
- )
-
+ ^
+
+ #(#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::AlignmentOrigin methodsFor:'accessing'!
+!UILayoutTool::LayoutOrigin methodsFor:'accessing'!
fetch:aView spec:aSpec
- "fetch alignmentOrigin
+ "fetch layoutOrigin
"
- |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:[
- leftOffsetHolder value:(layout leftOffset).
- leftFractionHolder value:(layout leftFraction).
- topOffsetHolder value:(layout topOffset).
- topFractionHolder value:(layout topFraction).
-
- type == #AlignmentOrigin ifTrue:[
- leftAlignmentFractionHolder value:(layout leftAlignmentFraction).
- topAlignmentFractionHolder value:(layout topAlignmentFraction).
- ^ self
- ]
- ] ifFalse:[
- layout := aView computeOrigin.
-
- leftOffsetHolder value:(layout x).
- leftFractionHolder value:0.
- topOffsetHolder value:(layout y).
- topFractionHolder value:0.
- ].
- leftAlignmentFractionHolder value:0.
- topAlignmentFractionHolder value:0.
+ |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 alignmentOrigin
+ "returns current layout as layoutOrigin
"
|layout|
- layout := Smalltalk::AlignmentOrigin new.
+ 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 leftAlignmentFraction:((self aspectFor:#leftAlignmentFraction) value) ? 0.
- layout topAlignmentFraction:((self aspectFor:#topAlignmentFraction) value) ? 0.
-
^ layout
-! !
-
-!UILayoutTool::AlignmentOrigin methodsFor:'alignment'!
-
-alignBottomCenter
- self makeAlignLeft:0.5 top:1
-
-
-!
-
-alignBottomLeft
- self makeAlignLeft:0 top:1
-
-
-!
-
-alignBottomRight
- self makeAlignLeft:1 top:1
-
-
-!
-
-alignCenter
- self makeAlignLeft:0.5 top:0.5
-
-
-!
-
-alignLeftCenter
- self makeAlignLeft:0 top:0.5
-
-
-!
-
-alignRightCenter
- self makeAlignLeft:1 top:0.5
-
-
-!
-
-alignTopCenter
- self makeAlignLeft:0.5 top:0
-
-
-!
-
-alignTopLeft
- self makeAlignLeft:0 top:0
-
-
-!
-
-alignTopRight
- self makeAlignLeft:1 top:0
-
-
-!
-
-makeAlignLeft:leftAlignmentFraction top:topAlignmentFraction
- |lAF tAF lO tO ext lAHolder tAHolder lOHolder tOHolder|
-
- lAF := (lAHolder := self aspectFor:#leftAlignmentFraction) value ? 0.
- tAF := (tAHolder := self aspectFor:#topAlignmentFraction) value ? 0.
- ext := (self aspectFor:#layoutView) computeExtent.
-
- lAHolder value:leftAlignmentFraction.
- tAHolder value:topAlignmentFraction.
-
- 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)).
-
- lOHolder value:(lO rounded).
- tOHolder value:(tO rounded).
-
-!
-
-makeAlignTopRight
- self makeAlignLeft:1 top:0
-
! !
@@ -2381,165 +2638,6 @@
! !
-!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
- #label: 'UILayoutTool-Extent'
- #name: 'UILayoutTool-Extent'
- #min: #(#Point 10 10)
- #max: #(#Point 1152 900)
- #bounds: #(#Rectangle 506 24 832 173)
- )
- #component:
- #(#SpecCollection
- #collection: #(
- #(#FramedBoxSpec
- #label: 'Extent'
- #name: 'FramedBox'
- #layout: #(#LayoutFrame 0 0.0 6 0.0 0 1.0 137 0)
- #labelPosition: #topLeft
- #component:
- #(#SpecCollection
- #collection: #(
- #(#LabelSpec
- #label: 'Width:'
- #name: 'labelWidth'
- #layout: #(#AlignmentOrigin 89 0 24 0 1 0.5)
- #adjust: #right
- )
- #(#InputFieldSpec
- #attributes:
- #(#tabable
- true
- )
- #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
- #acceptOnPointerLeave: false
- )
- #(#LabelSpec
- #label: 'Height:'
- #name: 'labelHeight'
- #layout: #(#AlignmentOrigin 89 0 49 0 1 0.5)
- #adjust: #right
- )
- #(#InputFieldSpec
- #attributes:
- #(#tabable
- true
- )
- #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
- #acceptOnPointerLeave: false
- )
- #(#CheckBoxSpec
- #attributes:
- #(#tabable
- true
- )
- #label: 'Use Widgets Default Extent'
- #name: 'useDefaultExtentCheckBox'
- #layout: #(#Point 5 74)
- #enableChannel: #defaultExtentEnabled
- #tabable: true
- #model: #useDefaultExtent
- #translateLabel: true
- )
- )
-
- )
- )
- )
-
- )
- )
-! !
-
-!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::Rectangle class methodsFor:'interface specs'!
windowSpec
@@ -2664,84 +2762,6 @@
! !
-!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 class methodsFor:'documentation'!
version