VerticalPanelView.st
author claus
Mon, 10 Oct 1994 04:03:47 +0100
changeset 59 450ce95a72a4
parent 38 4b9b70b2cc87
child 63 f4eaf04d1eaf
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:#VerticalPanelView
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
VerticalPanelView 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/VerticalPanelView.st,v 1.5 1994-10-10 03:03:18 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
!VerticalPanelView 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/VerticalPanelView.st,v 1.5 1994-10-10 03:03:18 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 vertical column.
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 := VerticalPanelView 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:100 @ 300.
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 := VerticalPanelView in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    75
	p layout:#top.
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:100 @ 300.
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 := VerticalPanelView in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    90
	p layout:#bottom.
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:100 @ 300.
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 := VerticalPanelView 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:100 @ 300.
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
!VerticalPanelView 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
    |sumOfHeights maxWidth maxHeight|
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
    sumOfHeights := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   127
    maxWidth := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   128
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   129
    subViews do:[:child |
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   130
	sumOfHeights := sumOfHeights + child heightIncludingBorder.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   131
	maxWidth := maxWidth max:(child widthIncludingBorder).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   132
	maxHeight := maxHeight max:(child heightIncludingBorder).
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   133
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   134
    borderWidth ~~ 0 ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   135
	sumOfHeights := sumOfHeights + (horizontalSpace * 2).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   136
	maxWidth := maxWidth + (horizontalSpace * 2).
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   137
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   138
    sumOfHeights := sumOfHeights + ((subViews size - 1) * verticalSpace).
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   139
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   140
    ^ maxWidth @ sumOfHeights
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   141
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   142
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   143
!VerticalPanelView methodsFor:'layout'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   144
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   145
setChildPositions
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   146
    "(re)compute position of every child"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   147
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   148
    |xpos ypos space sumOfHeights numChilds l hEach|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   149
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   150
    subViews isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   151
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   152
    space := verticalSpace.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   153
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   154
    numChilds := subViews size.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   155
    layout == #fit ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   156
	"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   157
	 adjust childs extents and set origins.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   158
	 Be careful to avoid accumulation of rounding errors
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   159
	"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   160
	hEach := (height - (margin * 2) - (numChilds + 1 * space) + borderWidth) / numChilds.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   161
	ypos := space + margin - borderWidth.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   162
	subViews do:[:child |
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   163
	    xpos := (width - child widthIncludingBorder) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   164
	    (xpos < 0) ifTrue:[xpos := 0].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   165
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   166
	    child origin:(xpos @ ypos rounded)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   167
		  corner:(xpos + (child width))
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   168
			 @ (ypos + hEach - (child borderWidth)) rounded.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   169
	    ypos := ypos + hEach + "(child borderWidth * 2) +" space
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   170
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   171
	^ self
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   172
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   173
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   174
    "compute net height needed"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   175
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   176
    sumOfHeights := subViews inject:0 into:[:sumSoFar :child | sumSoFar + child heightIncludingBorder].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   177
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   178
    l := layout.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   179
    ((l == #center) and:[numChilds == 1]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   180
	l := #spread
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   181
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   182
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   183
    "compute position of topmost subview and space between them;
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   184
     if they do hardly fit, leave no space between them "
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   185
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   186
    (sumOfHeights >= (height - (margin * 2))) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   187
	ypos := 0.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   188
	space := 0
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   189
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   190
	(l == #bottom) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   191
	    ypos := height - (space * numChilds) - sumOfHeights.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   192
"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   193
	    borderWidth == 0 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   194
		ypos := ypos + space 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   195
	    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   196
"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   197
	    ypos < 0 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   198
		space := space min:(height - sumOfHeights) // (numChilds + 1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   199
		ypos := height - (space * numChilds) - sumOfHeights.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   200
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   201
	] ifFalse: [
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   202
	    (l == #spread) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   203
		space := (height - sumOfHeights) // (numChilds + 1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   204
		ypos := space.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   205
		(space == 0) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   206
		    ypos := (height - sumOfHeights) // 2
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   207
		]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   208
	    ] ifFalse: [
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   209
		(l == #center) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   210
		    ypos := (height - (sumOfHeights
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   211
				       + ((numChilds - 1) * space))) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   212
		    ypos < 0 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   213
			space := (height - sumOfHeights) // (numChilds + 1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   214
			ypos := (height - (sumOfHeights
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   215
				       + ((numChilds - 1) * space))) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   216
		    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   217
		] ifFalse:[
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   218
"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   219
		    borderWidth == 0 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   220
			ypos := 0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   221
		    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   222
			ypos := verticalSpace
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   223
		    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   224
"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   225
		    space := space min:(height - sumOfHeights) // (numChilds + 1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   226
		    ypos := space.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   227
		]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   228
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   229
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   230
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   231
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   232
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   233
    "now set positions"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   234
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   235
    subViews do:[:childView |
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   236
	xpos := (width - childView widthIncludingBorder) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   237
	(xpos < 0) ifTrue:[ xpos := 0 ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   238
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   239
	childView origin:(xpos@ypos).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   240
	ypos := ypos + (childView heightIncludingBorder) + space
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   241
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   242
! !