HorizontalPanelView.st
author claus
Mon, 10 Oct 1994 04:03:47 +0100
changeset 59 450ce95a72a4
parent 38 4b9b70b2cc87
child 62 7cc1e330da47
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     1
"
5
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
     3
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     4
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    11
"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    12
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    13
PanelView subclass:#HorizontalPanelView
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    14
       instanceVariableNames:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    15
       classVariableNames:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    16
       poolDictionaries:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    17
       category:'Views-Layout'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    18
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    19
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    20
HorizontalPanelView comment:'
5
claus
parents: 3
diff changeset
    21
COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    22
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    23
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    24
$Header: /cvs/stx/stx/libwidg/HorizontalPanelView.st,v 1.5 1994-10-10 03:01:39 claus Exp $
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    25
'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    26
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    27
!HorizontalPanelView class methodsFor:'documentation'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    28
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    29
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    30
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    31
 COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    32
	      All Rights Reserved
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    33
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    34
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    35
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    36
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    37
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    38
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    39
 hereby transferred.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    40
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    41
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    42
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    43
version
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    44
"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    45
$Header: /cvs/stx/stx/libwidg/HorizontalPanelView.st,v 1.5 1994-10-10 03:01:39 claus Exp $
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    46
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    47
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    48
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    49
documentation
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    50
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    51
    a View which arranges its child-views in a horizontal row.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    52
    All real work is done in PanelView - only the layout computation is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    53
    redefined here.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    54
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    55
    example: default layout (centered)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    56
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    57
	|v p b1 b2 b3|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    58
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    59
	v := StandardSystemView new.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    60
	p := HorizontalPanelView in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    61
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    62
	b1 := Button label:'button1' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    63
	b2 := Button label:'button2' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    64
	b3 := Button label:'button3' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    65
	v extent:300 @ 100.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    66
	v open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    67
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    68
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    69
    example: left-layout
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    70
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    71
	|v p b1 b2 b3|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    72
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    73
	v := StandardSystemView new.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    74
	p := HorizontalPanelView in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    75
	p layout:#left.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    76
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    77
	b1 := Button label:'button1' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    78
	b2 := Button label:'button2' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    79
	b3 := Button label:'button3' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    80
	v extent:300 @ 100.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    81
	v open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    82
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    83
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    84
    example: right-layout
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    85
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    86
	|v p b1 b2 b3|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    87
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    88
	v := StandardSystemView new.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    89
	p := HorizontalPanelView in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    90
	p layout:#right.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    91
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    92
	b1 := Button label:'button1' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    93
	b2 := Button label:'button2' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    94
	b3 := Button label:'button3' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    95
	v extent:300 @ 100.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    96
	v open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    97
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    98
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    99
    example: spread-layout
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   100
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   101
	|v p b1 b2 b3|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   102
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   103
	v := StandardSystemView new.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   104
	p := HorizontalPanelView in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   105
	p layout:#spread.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   106
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   107
	b1 := Button label:'button1' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   108
	b2 := Button label:'button2' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   109
	b3 := Button label:'button3' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   110
	v extent:300 @ 100.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   111
	v open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   112
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   113
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   114
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   115
!HorizontalPanelView methodsFor:'queries'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   116
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   117
preferedExtent
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   118
    "return a good extent, one that makes subviews fit"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   119
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   120
    |sumOfWidths maxHeight maxWidth|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   121
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   122
    subViews isNil ifTrue:[^ horizontalSpace @ verticalSpace].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   123
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   124
    "compute net height needed"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   125
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   126
    sumOfWidths := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   127
    maxHeight := 0.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   128
    maxWidth := 0.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   129
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   130
    subViews do:[:child |
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   131
	sumOfWidths := sumOfWidths + child widthIncludingBorder.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   132
	maxHeight := maxHeight max:(child heightIncludingBorder).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   133
	maxWidth := maxWidth max:(child widthIncludingBorder).
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   134
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   135
    borderWidth ~~ 0 ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   136
	sumOfWidths := sumOfWidths + (horizontalSpace * 2).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   137
	maxHeight := maxHeight + (verticalSpace * 2).
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   138
    ].
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   139
    layout == #fit ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   140
	sumOfWidths := maxWidth * subViews size.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   141
	borderWidth ~~ 0 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   142
	    sumOfWidths := sumOfWidths + (verticalSpace * 2).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   143
	]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   144
    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   145
	sumOfWidths := sumOfWidths + ((subViews size - 1) * horizontalSpace).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   146
    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   147
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   148
    ^ sumOfWidths @ maxHeight
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   149
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   150
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   151
!HorizontalPanelView methodsFor:'layout'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   152
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   153
setChildPositions
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   154
    "(re)compute position of every child whenever childs are added or
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   155
     my size has changed"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   156
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   157
    |xpos ypos space sumOfWidths numChilds l wEach|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   158
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   159
    subViews isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   160
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   161
    space := horizontalSpace.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   162
    numChilds := subViews size.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   163
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   164
    layout == #fit ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   165
	"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   166
	 adjust childs extents and set origins.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   167
	 Be careful to avoid accumulation of rounding errors
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   168
	"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   169
	wEach := (width - (margin * 2) - (numChilds + 1 * space) + borderWidth) / numChilds.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   170
	xpos := space + margin - borderWidth.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   171
	subViews do:[:child |
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   172
	    ypos := (height - child heightIncludingBorder) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   173
	    (ypos < 0) ifTrue:[ypos := 0].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   174
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   175
	    child origin:(xpos rounded @ ypos)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   176
		  corner:(xpos + wEach - (child borderWidth)) rounded
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   177
			 @ (ypos + child height).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   178
	    xpos := xpos + wEach + space
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   179
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   180
	^ self
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   181
    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   182
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   183
    "compute net width needed"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   184
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   185
    sumOfWidths := subViews inject:0 into:[:sumSoFar :child | sumSoFar + child widthIncludingBorder].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   186
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   187
    l := layout.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   188
    ((l == #center) and:[numChilds == 1]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   189
	l := #spread
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   190
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   191
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   192
    "
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   193
     compute position of leftmost subview and space between them;
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   194
     if they do hardly fit, leave no space between them 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   195
    "
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   196
    (sumOfWidths >= (width - (margin * 2))) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   197
	xpos := 0.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   198
	space := 0
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   199
    ] ifFalse: [
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   200
	(l == #right) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   201
	    xpos := width - (space * numChilds) - sumOfWidths.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   202
"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   203
	    borderWidth == 0 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   204
		xpos := xpos + space 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   205
	    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   206
"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   207
	    xpos < 0 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   208
		space := space min:(width - sumOfWidths) // (numChilds + 1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   209
		xpos := width - (space * numChilds) - sumOfWidths.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   210
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   211
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   212
	    (l == #spread) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   213
		space := (width - sumOfWidths) // (numChilds + 1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   214
		xpos := space.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   215
		(space == 0) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   216
		    xpos := (width - sumOfWidths) // 2
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   217
		]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   218
	    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   219
		(l == #center) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   220
		    xpos := (width - (sumOfWidths
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   221
				      + ((numChilds - 1) * space))) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   222
		    xpos < 0 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   223
			space := (width - sumOfWidths) // (numChilds + 1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   224
			xpos := (width - (sumOfWidths
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   225
				       + ((numChilds - 1) * space))) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   226
		    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   227
		] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   228
		    "left"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   229
		    space := space min:(width - sumOfWidths) // (numChilds + 1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   230
		    xpos := space.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   231
"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   232
		    borderWidth == 0 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   233
			xpos := 0 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   234
		    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   235
"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   236
		]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   237
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   238
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   239
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   240
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   241
    "now set positions"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   242
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   243
    subViews do:[:child |
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   244
	ypos := (height - child heightIncludingBorder) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   245
	(ypos < 0) ifTrue:[ypos := 0].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   246
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   247
	child origin:(xpos @ ypos).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   248
	xpos := xpos + (child widthIncludingBorder) + space
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   249
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   250
! !