HorizontalPanelView.st
author Claus Gittinger <cg@exept.de>
Thu, 23 Nov 1995 19:19:24 +0100
changeset 205 6814c0bf8df8
parent 202 01f3cbb8e20e
child 340 f820bcd29a51
permissions -rw-r--r--
checkin from browser
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
202
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    14
	 instanceVariableNames:''
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    15
	 classVariableNames:''
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    16
	 poolDictionaries:''
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    17
	 category:'Views-Layout'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    18
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    19
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    20
!HorizontalPanelView class methodsFor:'documentation'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    21
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    22
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    23
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    24
 COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    25
	      All Rights Reserved
38
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
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    28
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    30
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    31
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    32
 hereby transferred.
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
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    35
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    36
documentation
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    37
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    38
    a View which arranges its child-views in a horizontal row.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    39
    All real work is done in PanelView - only the layout computation is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    40
    redefined here.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
    41
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
    42
    The layout is controlled the instance variables: 
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
    43
	horizontalLayout and verticalLayout
127
claus
parents: 125
diff changeset
    44
    in addition to 
claus
parents: 125
diff changeset
    45
	horizontalSpace and verticalSpace.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
    46
133
claus
parents: 131
diff changeset
    47
    HorizontalSpace and verticalSpace control the spacing between elements;
claus
parents: 131
diff changeset
    48
    they default to some 1mm.
claus
parents: 131
diff changeset
    49
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    50
    The horizontal layout can be any of:
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    51
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    52
	#left           arrange elements at the left
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    53
	#leftSpace      arrange elements at the left, start with spacing
118
claus
parents: 77
diff changeset
    54
	#fixLeft        same as #left, but do not reduce spacing in case of no fit
claus
parents: 77
diff changeset
    55
	#fixLeftSpace   same as #leftSpace, but do not reduce spacing in case of no fit
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    56
	#right          arrange elements at the right
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    57
	#rightSpace     arrange elements at the right, start with spacing
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    58
	#center         arrange elements in the center
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    59
	#spread         spread elements evenly
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
    60
	#spreadSpace    spread elements evenly with spacing at the ends
133
claus
parents: 131
diff changeset
    61
	#fit            like #spread, but resize elements for tight packing
claus
parents: 131
diff changeset
    62
	#fitSpace       like #fit, with additional spacing at the far ends
claus
parents: 131
diff changeset
    63
	#leftFit        like #left, but extend the last element to the right
claus
parents: 131
diff changeset
    64
	#leftSpaceFit   like #leftSpace, but extend the last element to the right
claus
parents: 131
diff changeset
    65
claus
parents: 131
diff changeset
    66
	#leftMax        like corresponding non-Max layouts,
claus
parents: 131
diff changeset
    67
	#leftSpaceMax   but resize all components to width of widest components
claus
parents: 131
diff changeset
    68
	#rightMax
claus
parents: 131
diff changeset
    69
	#rightSpaceMax
claus
parents: 131
diff changeset
    70
	#centerMax
claus
parents: 131
diff changeset
    71
	#spreadMax
claus
parents: 131
diff changeset
    72
	#spreadSpaceMax
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    73
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    74
    the vertical layout can be:
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    75
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    76
	#top            place element at the top
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    77
	#topSpace       place element at the top, offset by verticalSpace
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    78
	#center         place it horizontally centered
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    79
	#bottom         place it at the bottom
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    80
	#bottomSpace    place it at the bottom, offset by verticalSpace
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    81
	#fit            resize elements vertically to fit this panel
133
claus
parents: 131
diff changeset
    82
	#fitSpace       like #fit, but with spacing
claus
parents: 131
diff changeset
    83
claus
parents: 131
diff changeset
    84
	#topMax         like #top, but resize all views vertically to max height
claus
parents: 131
diff changeset
    85
	#topSpaceMax    like #topSpace, but resize all views vertically to max height
claus
parents: 131
diff changeset
    86
	#bottomMax      like #bottom, but resize all views vertically to max height
claus
parents: 131
diff changeset
    87
	#bottomSpaceMax like #bottomSpace, but resize all views vertically to max height
claus
parents: 131
diff changeset
    88
	#centerMax      like #center, but resize all views vertically to max height
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    89
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
    90
    The defaults is #center for both directions.
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    91
    The layout is changed by the messages #verticalLayout: and #horizontalLayout:.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    92
    For backward compatibility (to times, where only hLayout existed), the simple
133
claus
parents: 131
diff changeset
    93
    #layout: does the same as #horizontalLayout:. 
claus
parents: 131
diff changeset
    94
    Do not use this old method; it will vanish and currently outpus a warning.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
    95
127
claus
parents: 125
diff changeset
    96
    The panel assumes, that the elements do not resize themselfes, after it
claus
parents: 125
diff changeset
    97
    became visible. This is not true for all widgets (buttons or labels may
claus
parents: 125
diff changeset
    98
    like to change). If you have changing elements, tell this to the panel
claus
parents: 125
diff changeset
    99
    with 'aPanel elementsChangeSize:true'. In that case, the panel will react
133
claus
parents: 131
diff changeset
   100
    to size changes of its elements, and reorganize things.
127
claus
parents: 125
diff changeset
   101
118
claus
parents: 77
diff changeset
   102
    By combining Horizontal- and VerticalPanels (i.e. place a hPanel into a
claus
parents: 77
diff changeset
   103
    vPanel), most layouts should be implementable.
133
claus
parents: 131
diff changeset
   104
    However, iff none of these layout/space combinations is exactly what you need 
118
claus
parents: 77
diff changeset
   105
    in your application, create a subclass, and redefine the setChildPositions 
claus
parents: 77
diff changeset
   106
    method there.
125
claus
parents: 118
diff changeset
   107
claus
parents: 118
diff changeset
   108
    TODO: for completeness, support #fixRight, #fixRightSpace,
claus
parents: 118
diff changeset
   109
	  #rightFit, #rightSpaceFit layouts
127
claus
parents: 125
diff changeset
   110
claus
parents: 125
diff changeset
   111
    CAVEAT: this class started with #left and no vertical alignments;
133
claus
parents: 131
diff changeset
   112
    as time went by, more layouts were added (by users requests)
claus
parents: 131
diff changeset
   113
    and noew, many layout combinations are possible.
claus
parents: 131
diff changeset
   114
    Reflecting this, the setup should be changed to use different selectors 
claus
parents: 131
diff changeset
   115
    for space-on/off, max-resize and alignment
127
claus
parents: 125
diff changeset
   116
    (i.e. having more and more layout symbols makes things a bit confusing ...)
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   117
"
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   118
!
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   119
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   120
examples
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   121
"
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   122
    These examples show the effect of various horizontalLayout and
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   123
    verticalLayout settings. Try them all. Especially, notice the
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   124
    differences between the xxx and xxxSpace layouts and the effect of
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   125
    setting different values for the spacing.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   126
    Try resizing the view and see how the elements get rearranged.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   127
118
claus
parents: 77
diff changeset
   128
    Most of the examples below place 3 buttons onto a panel; Of course,
claus
parents: 77
diff changeset
   129
    you can put any other view into a panel ... the last examples show this.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   130
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   131
127
claus
parents: 125
diff changeset
   132
    example: default layout (center)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   133
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   134
	|v p b1 b2 b3|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   135
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   136
	v := StandardSystemView new.
118
claus
parents: 77
diff changeset
   137
	v label:'default: center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   138
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   139
	p := HorizontalPanelView in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   140
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   141
	b1 := Button label:'button1' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   142
	b2 := Button label:'button2' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   143
	b3 := Button label:'button3' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   144
	v extent:300 @ 100.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   145
	v open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   146
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   147
133
claus
parents: 131
diff changeset
   148
    example: same (default center layout) with different sized elements
claus
parents: 131
diff changeset
   149
claus
parents: 131
diff changeset
   150
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   151
claus
parents: 131
diff changeset
   152
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   153
	v label:'default: center'.
claus
parents: 131
diff changeset
   154
claus
parents: 131
diff changeset
   155
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   156
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   157
	b1 := Button label:'but1' in:p. b1 font:(b1 font size:8).
claus
parents: 131
diff changeset
   158
	b2 := Button label:'b2' in:p.      b2 font:(b1 font size:24).
claus
parents: 131
diff changeset
   159
	b3 := Button label:'button3' in:p.
claus
parents: 131
diff changeset
   160
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   161
	v open
claus
parents: 131
diff changeset
   162
claus
parents: 131
diff changeset
   163
claus
parents: 131
diff changeset
   164
    example: horizontal default (center); vertical centerMax
claus
parents: 131
diff changeset
   165
claus
parents: 131
diff changeset
   166
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   167
claus
parents: 131
diff changeset
   168
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   169
	v label:'vL=centerMax'.
claus
parents: 131
diff changeset
   170
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   171
	p verticalLayout:#centerMax.
claus
parents: 131
diff changeset
   172
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   173
	b1 := Button label:'but1' in:p. b1 font:(b1 font size:8).
claus
parents: 131
diff changeset
   174
	b2 := Button label:'b2' in:p.      b2 font:(b1 font size:24).
claus
parents: 131
diff changeset
   175
	b3 := Button label:'button3' in:p.
claus
parents: 131
diff changeset
   176
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   177
	v open
claus
parents: 131
diff changeset
   178
claus
parents: 131
diff changeset
   179
claus
parents: 131
diff changeset
   180
    example: horizontal default (center); vertical topMax
claus
parents: 131
diff changeset
   181
claus
parents: 131
diff changeset
   182
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   183
claus
parents: 131
diff changeset
   184
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   185
	v label:'vL=topMax'.
claus
parents: 131
diff changeset
   186
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   187
	p verticalLayout:#topMax.
claus
parents: 131
diff changeset
   188
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   189
	b1 := Button label:'but1' in:p. b1 font:(b1 font size:8).
claus
parents: 131
diff changeset
   190
	b2 := Button label:'b2' in:p.      b2 font:(b1 font size:24).
claus
parents: 131
diff changeset
   191
	b3 := Button label:'button3' in:p.
claus
parents: 131
diff changeset
   192
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   193
	v open
claus
parents: 131
diff changeset
   194
claus
parents: 131
diff changeset
   195
claus
parents: 131
diff changeset
   196
    example: horizontal default (center); vertical topSpaceMax
claus
parents: 131
diff changeset
   197
claus
parents: 131
diff changeset
   198
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   199
claus
parents: 131
diff changeset
   200
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   201
	v label:'vL=topSpaceMax'.
claus
parents: 131
diff changeset
   202
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   203
	p verticalLayout:#topSpaceMax.
claus
parents: 131
diff changeset
   204
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   205
	b1 := Button label:'but1' in:p. b1 font:(b1 font size:8).
claus
parents: 131
diff changeset
   206
	b2 := Button label:'b2' in:p.      b2 font:(b1 font size:24).
claus
parents: 131
diff changeset
   207
	b3 := Button label:'button3' in:p.
claus
parents: 131
diff changeset
   208
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   209
	v open
claus
parents: 131
diff changeset
   210
claus
parents: 131
diff changeset
   211
claus
parents: 131
diff changeset
   212
    example: horizontal default (center); vertical bottomMax
claus
parents: 131
diff changeset
   213
claus
parents: 131
diff changeset
   214
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   215
claus
parents: 131
diff changeset
   216
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   217
	v label:'vL=bottomMax'.
claus
parents: 131
diff changeset
   218
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   219
	p verticalLayout:#bottomMax.
claus
parents: 131
diff changeset
   220
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   221
	b1 := Button label:'but1' in:p. b1 font:(b1 font size:8).
claus
parents: 131
diff changeset
   222
	b2 := Button label:'b2' in:p.      b2 font:(b1 font size:24).
claus
parents: 131
diff changeset
   223
	b3 := Button label:'button3' in:p.
claus
parents: 131
diff changeset
   224
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   225
	v open
claus
parents: 131
diff changeset
   226
claus
parents: 131
diff changeset
   227
claus
parents: 131
diff changeset
   228
    example: horizontal default (center); vertical bottomSpaceMax
claus
parents: 131
diff changeset
   229
claus
parents: 131
diff changeset
   230
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   231
claus
parents: 131
diff changeset
   232
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   233
	v label:'vL=bottomSpaceMax'.
claus
parents: 131
diff changeset
   234
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   235
	p verticalLayout:#bottomSpaceMax.
claus
parents: 131
diff changeset
   236
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   237
	b1 := Button label:'but1' in:p. b1 font:(b1 font size:8).
claus
parents: 131
diff changeset
   238
	b2 := Button label:'b2' in:p.      b2 font:(b1 font size:24).
claus
parents: 131
diff changeset
   239
	b3 := Button label:'button3' in:p.
claus
parents: 131
diff changeset
   240
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   241
	v open
claus
parents: 131
diff changeset
   242
claus
parents: 131
diff changeset
   243
127
claus
parents: 125
diff changeset
   244
    example: left-layout (vertical is default -> center)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   245
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   246
	|v p b1 b2 b3|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   247
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   248
	v := StandardSystemView new.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   249
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   250
	v label:'hL=left; vL=default (center)'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   251
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   252
	p horizontalLayout:#left.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   253
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   254
	b1 := Button label:'button1' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   255
	b2 := Button label:'button2' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   256
	b3 := Button label:'button3' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   257
	v extent:300 @ 100.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   258
	v open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   259
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   260
127
claus
parents: 125
diff changeset
   261
    example: left starting with spacing (vertical is default -> center)
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   262
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   263
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   264
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   265
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   266
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   267
	v label:'hL=leftSpace; vL=center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   268
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   269
	p horizontalLayout:#leftSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   270
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   271
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   272
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   273
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   274
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   275
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   276
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   277
127
claus
parents: 125
diff changeset
   278
    example: leftFit-layout (vertical is default -> center)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   279
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   280
	|v p b1 b2 b3|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   281
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   282
	v := StandardSystemView new.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   283
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   284
	v label:'hL=leftFit; vL=center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   285
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   286
	p horizontalLayout:#leftFit.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   287
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   288
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   289
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   290
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   291
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   292
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   293
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   294
127
claus
parents: 125
diff changeset
   295
    example: leftSpaceFit-layout (vertical is default -> center)
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   296
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   297
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   298
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   299
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   300
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   301
	v label:'hL=leftSpaceFit; vL=center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   302
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   303
	p horizontalLayout:#leftSpaceFit.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   304
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   305
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   306
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   307
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   308
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   309
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   310
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   311
127
claus
parents: 125
diff changeset
   312
    example: right-layout (vertical is default -> center)
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   313
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   314
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   315
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   316
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   317
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   318
	v label:'hL=right; vL=center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   319
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   320
	p horizontalLayout:#right.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   321
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   322
	b1 := Button label:'button1' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   323
	b2 := Button label:'button2' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   324
	b3 := Button label:'button3' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   325
	v extent:300 @ 100.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   326
	v open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   327
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   328
127
claus
parents: 125
diff changeset
   329
    example: right with initial spacing (vertical is default -> center)
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   330
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   331
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   332
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   333
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   334
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   335
	v label:'hL=rightSpace; vL=center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   336
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   337
	p horizontalLayout:#rightSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   338
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   339
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   340
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   341
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   342
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   343
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   344
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   345
127
claus
parents: 125
diff changeset
   346
    example: fit-layout (vertical is default -> center)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   347
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   348
	|v p b1 b2 b3|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   349
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   350
	v := StandardSystemView new.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   351
	p := HorizontalPanelView in:v.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   352
	p horizontalLayout:#fit.
118
claus
parents: 77
diff changeset
   353
	v label:'hL=fit; vL=center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   354
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   355
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   356
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   357
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   358
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   359
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   360
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   361
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   362
127
claus
parents: 125
diff changeset
   363
    example: full fit i.e. no spacing (vertical is default -> center)
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   364
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   365
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   366
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   367
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   368
	p := HorizontalPanelView in:v.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   369
	p horizontalLayout:#fit.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   370
	p horizontalSpace:0.
118
claus
parents: 77
diff changeset
   371
	v label:'hL=fit hS=0; vL=center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   372
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   373
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   374
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   375
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   376
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   377
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   378
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   379
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   380
127
claus
parents: 125
diff changeset
   381
    example: fit with spacing (vertical is default -> center)
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   382
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   383
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   384
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   385
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   386
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   387
	v label:'hL=fitSpace; vL=center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   388
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   389
	p horizontalLayout:#fitSpace.
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   390
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   391
	b1 := Button label:'button1' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   392
	b2 := Button label:'button2' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   393
	b3 := Button label:'button3' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   394
	v extent:300 @ 100.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   395
	v open
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   396
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   397
127
claus
parents: 125
diff changeset
   398
    example: spread-layout (vertical is default -> center)
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   399
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   400
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   401
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   402
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   403
	p := HorizontalPanelView in:v.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   404
	p horizontalLayout:#spread.
118
claus
parents: 77
diff changeset
   405
	v label:'hL=spread; vL=center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   406
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   407
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   408
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   409
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   410
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   411
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   412
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   413
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   414
127
claus
parents: 125
diff changeset
   415
    example: spread with spacing (vertical is default -> center)
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   416
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   417
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   418
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   419
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   420
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   421
	v label:'hL=spreadSpace; vL=center'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   422
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   423
	p horizontalLayout:#spreadSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   424
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   425
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   426
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   427
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   428
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   429
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   430
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   431
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   432
    example: spread with spacing; vertical fit
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   433
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   434
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   435
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   436
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   437
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   438
	v label:'hL=spreadSpace; vL=fit'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   439
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   440
	p horizontalLayout:#spreadSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   441
	p verticalLayout:#fit.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   442
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   443
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   444
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   445
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   446
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   447
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   448
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   449
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   450
    example: spread with spacing; vertical fit with spacing
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   451
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   452
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   453
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   454
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   455
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   456
	v label:'hL=spreadSpace; vL=fitSpace'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   457
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   458
	p horizontalLayout:#spreadSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   459
	p verticalLayout:#fitSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   460
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   461
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   462
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   463
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   464
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   465
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   466
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   467
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   468
    example: fit - top
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   469
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   470
	|v p b1 b2 b3|
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   471
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   472
	v := StandardSystemView new.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   473
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   474
	v label:'hL=fit; vL=top'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   475
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   476
	p horizontalLayout:#fit.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   477
	p verticalLayout:#top.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   478
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   479
	b1 := Button label:'button1' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   480
	b2 := Button label:'button2' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   481
	b3 := Button label:'button3' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   482
	v extent:300 @ 100.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   483
	v open
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   484
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   485
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   486
    example: fit with initial spacing
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   487
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   488
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   489
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   490
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   491
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   492
	v label:'hL=fitSpace; vL=top'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   493
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   494
	p horizontalLayout:#fitSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   495
	p verticalLayout:#top.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   496
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   497
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   498
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   499
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   500
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   501
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   502
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   503
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   504
    example: fit with initial spacing in both directions
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   505
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   506
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   507
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   508
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   509
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   510
	v label:'hL=fitSpace; vL=fitSpace'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   511
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   512
	p horizontalLayout:#fitSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   513
	p verticalLayout:#fitSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   514
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   515
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   516
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   517
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   518
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   519
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   520
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   521
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   522
    example: fit without spacing in both directions
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   523
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   524
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   525
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   526
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   527
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   528
	v label:'hL=fit hS=0; vL=fit'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   529
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   530
	p horizontalLayout:#fit.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   531
	p verticalLayout:#fit.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   532
	p horizontalSpace:0.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   533
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   534
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   535
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   536
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   537
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   538
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   539
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   540
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   541
    example: fit with initial spacing; top with spacing
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   542
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   543
	|v p b1 b2 b3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   544
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   545
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   546
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   547
	v label:'hL=fitSpace; vL=topSpace'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   548
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   549
	p horizontalLayout:#fitSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   550
	p verticalLayout:#topSpace.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   551
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   552
	b1 := Button label:'button1' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   553
	b2 := Button label:'button2' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   554
	b3 := Button label:'button3' in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   555
	v extent:300 @ 100.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   556
	v open
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   557
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   558
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   559
    example: fit - top without spacing
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   560
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   561
	|v p b1 b2 b3|
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   562
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   563
	v := StandardSystemView new.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   564
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   565
	v label:'hL=fit; vL=top'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   566
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   567
	p horizontalLayout:#fit.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   568
	p verticalLayout:#top.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   569
	p horizontalSpace:0.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   570
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   571
	b1 := Button label:'button1' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   572
	b2 := Button label:'button2' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   573
	b3 := Button label:'button3' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   574
	v extent:300 @ 100.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   575
	v open
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   576
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   577
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   578
    example: fit - bottom with spacing and bottomSpace
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   579
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   580
	|v p b1 b2 b3|
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   581
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   582
	v := StandardSystemView new.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   583
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   584
	v label:'hL=fitSpace; vL=bottomSpace'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   585
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   586
	p horizontalLayout:#fitSpace.
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   587
	p verticalLayout:#bottomSpace.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   588
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   589
	b1 := Button label:'button1' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   590
	b2 := Button label:'button2' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   591
	b3 := Button label:'button3' in:p.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   592
	v extent:300 @ 100.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   593
	v open
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   594
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   595
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   596
    example: fit no horizontal space - bottom with spacing and bottomSpace
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   597
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   598
	|v p b1 b2 b3|
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   599
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   600
	v := StandardSystemView new.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   601
	p := HorizontalPanelView in:v.
118
claus
parents: 77
diff changeset
   602
	v label:'hL=fit; vL=bottomSpace'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   603
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   604
	p horizontalLayout:#fit.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   605
	p verticalLayout:#bottomSpace.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   606
	p horizontalSpace:0.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   607
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   608
	b1 := Button label:'button1' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   609
	b2 := Button label:'button2' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   610
	b3 := Button label:'button3' in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   611
	v extent:300 @ 100.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   612
	v open
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   613
133
claus
parents: 131
diff changeset
   614
    example: leftMax - vertical default
claus
parents: 131
diff changeset
   615
claus
parents: 131
diff changeset
   616
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   617
claus
parents: 131
diff changeset
   618
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   619
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   620
	v label:'hL=leftMax; vL=default'.
claus
parents: 131
diff changeset
   621
claus
parents: 131
diff changeset
   622
	p horizontalLayout:#leftMax.
claus
parents: 131
diff changeset
   623
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   624
	b1 := Button label:'button1' in:p.
claus
parents: 131
diff changeset
   625
	b2 := Button label:'b2' in:p.
claus
parents: 131
diff changeset
   626
	b3 := Button label:'but3' in:p.
claus
parents: 131
diff changeset
   627
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   628
	v open
claus
parents: 131
diff changeset
   629
claus
parents: 131
diff changeset
   630
claus
parents: 131
diff changeset
   631
    example: leftSpaceMax - vertical default
claus
parents: 131
diff changeset
   632
claus
parents: 131
diff changeset
   633
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   634
claus
parents: 131
diff changeset
   635
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   636
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   637
	v label:'hL=leftSpaceMax; vL=default'.
claus
parents: 131
diff changeset
   638
claus
parents: 131
diff changeset
   639
	p horizontalLayout:#leftSpaceMax.
claus
parents: 131
diff changeset
   640
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   641
	b1 := Button label:'button1' in:p.
claus
parents: 131
diff changeset
   642
	b2 := Button label:'b2' in:p.
claus
parents: 131
diff changeset
   643
	b3 := Button label:'but3' in:p.
claus
parents: 131
diff changeset
   644
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   645
	v open
claus
parents: 131
diff changeset
   646
claus
parents: 131
diff changeset
   647
claus
parents: 131
diff changeset
   648
    example: rightMax - vertical default
claus
parents: 131
diff changeset
   649
claus
parents: 131
diff changeset
   650
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   651
claus
parents: 131
diff changeset
   652
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   653
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   654
	v label:'hL=rightMax; vL=default'.
claus
parents: 131
diff changeset
   655
claus
parents: 131
diff changeset
   656
	p horizontalLayout:#rightMax.
claus
parents: 131
diff changeset
   657
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   658
	b1 := Button label:'button1' in:p.
claus
parents: 131
diff changeset
   659
	b2 := Button label:'b2' in:p.
claus
parents: 131
diff changeset
   660
	b3 := Button label:'but3' in:p.
claus
parents: 131
diff changeset
   661
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   662
	v open
claus
parents: 131
diff changeset
   663
claus
parents: 131
diff changeset
   664
claus
parents: 131
diff changeset
   665
    example: rightSpaceMax - vertical default
claus
parents: 131
diff changeset
   666
claus
parents: 131
diff changeset
   667
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   668
claus
parents: 131
diff changeset
   669
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   670
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   671
	v label:'hL=rightSpaceMax; vL=default'.
claus
parents: 131
diff changeset
   672
claus
parents: 131
diff changeset
   673
	p horizontalLayout:#rightSpaceMax.
claus
parents: 131
diff changeset
   674
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   675
	b1 := Button label:'button1' in:p.
claus
parents: 131
diff changeset
   676
	b2 := Button label:'b2' in:p.
claus
parents: 131
diff changeset
   677
	b3 := Button label:'but3' in:p.
claus
parents: 131
diff changeset
   678
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   679
	v open
claus
parents: 131
diff changeset
   680
claus
parents: 131
diff changeset
   681
claus
parents: 131
diff changeset
   682
    example: centerMax - vertical default
claus
parents: 131
diff changeset
   683
claus
parents: 131
diff changeset
   684
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   685
claus
parents: 131
diff changeset
   686
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   687
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   688
	v label:'hL=centerMax; vL=default'.
claus
parents: 131
diff changeset
   689
claus
parents: 131
diff changeset
   690
	p horizontalLayout:#centerMax.
claus
parents: 131
diff changeset
   691
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   692
	b1 := Button label:'button1' in:p.
claus
parents: 131
diff changeset
   693
	b2 := Button label:'b2' in:p.
claus
parents: 131
diff changeset
   694
	b3 := Button label:'but3' in:p.
claus
parents: 131
diff changeset
   695
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   696
	v open
claus
parents: 131
diff changeset
   697
claus
parents: 131
diff changeset
   698
claus
parents: 131
diff changeset
   699
    example: spreadMax - vertical default
claus
parents: 131
diff changeset
   700
claus
parents: 131
diff changeset
   701
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   702
claus
parents: 131
diff changeset
   703
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   704
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   705
	v label:'hL=spreadMax; vL=default'.
claus
parents: 131
diff changeset
   706
claus
parents: 131
diff changeset
   707
	p horizontalLayout:#spreadMax.
claus
parents: 131
diff changeset
   708
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   709
	b1 := Button label:'button1' in:p.
claus
parents: 131
diff changeset
   710
	b2 := Button label:'b2' in:p.
claus
parents: 131
diff changeset
   711
	b3 := Button label:'but3' in:p.
claus
parents: 131
diff changeset
   712
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   713
	v open
claus
parents: 131
diff changeset
   714
claus
parents: 131
diff changeset
   715
claus
parents: 131
diff changeset
   716
    example: spreadSpaceMax - vertical default
claus
parents: 131
diff changeset
   717
claus
parents: 131
diff changeset
   718
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   719
claus
parents: 131
diff changeset
   720
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   721
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   722
	v label:'hL=spreadSpaceMax; vL=default'.
claus
parents: 131
diff changeset
   723
claus
parents: 131
diff changeset
   724
	p horizontalLayout:#spreadSpaceMax.
claus
parents: 131
diff changeset
   725
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   726
	b1 := Button label:'button1' in:p.
claus
parents: 131
diff changeset
   727
	b2 := Button label:'b2' in:p.
claus
parents: 131
diff changeset
   728
	b3 := Button label:'but3' in:p.
claus
parents: 131
diff changeset
   729
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   730
	v open
claus
parents: 131
diff changeset
   731
claus
parents: 131
diff changeset
   732
claus
parents: 131
diff changeset
   733
    example: maximize elements in both directions and center
claus
parents: 131
diff changeset
   734
claus
parents: 131
diff changeset
   735
	|v p b1 b2 b3|
claus
parents: 131
diff changeset
   736
claus
parents: 131
diff changeset
   737
	v := StandardSystemView new.
claus
parents: 131
diff changeset
   738
	v label:'hL=centerMax; vL=centerMax'.
claus
parents: 131
diff changeset
   739
claus
parents: 131
diff changeset
   740
	p := HorizontalPanelView in:v.
claus
parents: 131
diff changeset
   741
	p horizontalLayout:#centerMax.
claus
parents: 131
diff changeset
   742
	p verticalLayout:#centerMax.
claus
parents: 131
diff changeset
   743
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 131
diff changeset
   744
	b1 := Button label:'but1' in:p. b1 font:(b1 font size:8).
claus
parents: 131
diff changeset
   745
	b2 := Button label:'b2' in:p.      b2 font:(b1 font size:24).
claus
parents: 131
diff changeset
   746
	b3 := Button label:'button3' in:p.
claus
parents: 131
diff changeset
   747
	v extent:300 @ 100.
claus
parents: 131
diff changeset
   748
	v open
claus
parents: 131
diff changeset
   749
claus
parents: 131
diff changeset
   750
118
claus
parents: 77
diff changeset
   751
    example: placing hPanels into a vPanel
claus
parents: 77
diff changeset
   752
claus
parents: 77
diff changeset
   753
	|v vP hP1 hP2 hP3 b1 b2 b3 b4 b5 b6 b7 b8 b9|
claus
parents: 77
diff changeset
   754
claus
parents: 77
diff changeset
   755
	v := StandardSystemView new.
claus
parents: 77
diff changeset
   756
	vP := VerticalPanelView in:v.
claus
parents: 77
diff changeset
   757
	vP origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
claus
parents: 77
diff changeset
   758
	vP verticalLayout:#fit;
claus
parents: 77
diff changeset
   759
	   verticalSpace:0;
claus
parents: 77
diff changeset
   760
	   horizontalLayout:#fit.
claus
parents: 77
diff changeset
   761
claus
parents: 77
diff changeset
   762
	hP1 := HorizontalPanelView in:vP.
claus
parents: 77
diff changeset
   763
	hP1 horizontalLayout:#fitSpace;
claus
parents: 77
diff changeset
   764
	    verticalLayout:#center.
claus
parents: 77
diff changeset
   765
	b1 := Button label:'button1' in:hP1.
claus
parents: 77
diff changeset
   766
	b2 := Button label:'button2' in:hP1.
claus
parents: 77
diff changeset
   767
	b3 := Button label:'button3' in:hP1.
claus
parents: 77
diff changeset
   768
claus
parents: 77
diff changeset
   769
	hP2 := HorizontalPanelView in:vP.
claus
parents: 77
diff changeset
   770
	hP2 horizontalLayout:#fitSpace;
claus
parents: 77
diff changeset
   771
	    verticalLayout:#center.
claus
parents: 77
diff changeset
   772
	b4 := Button label:'button4' in:hP2.
claus
parents: 77
diff changeset
   773
	b5 := Button label:'button5' in:hP2.
claus
parents: 77
diff changeset
   774
	b6 := Button label:'button6' in:hP2.
claus
parents: 77
diff changeset
   775
claus
parents: 77
diff changeset
   776
	hP3 := HorizontalPanelView in:vP.
claus
parents: 77
diff changeset
   777
	hP3 horizontalLayout:#fitSpace;
claus
parents: 77
diff changeset
   778
	    verticalLayout:#center.
claus
parents: 77
diff changeset
   779
	b7 := Button label:'button7' in:hP3.
claus
parents: 77
diff changeset
   780
	b8 := Button label:'button8' in:hP3.
claus
parents: 77
diff changeset
   781
	b9 := Button label:'button9' in:hP3.
claus
parents: 77
diff changeset
   782
claus
parents: 77
diff changeset
   783
	v extent:300 @ 300.
claus
parents: 77
diff changeset
   784
	v open
claus
parents: 77
diff changeset
   785
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   786
    example: a browser like table, where the rightmost list
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   787
	     extends to the far right.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   788
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   789
	|v p l1 l2 l3|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   790
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   791
	v := StandardSystemView new.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   792
	p := HorizontalPanelView in:v.
125
claus
parents: 118
diff changeset
   793
	v label:'hL=leftFit hS=0; vL=fit'.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   794
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   795
	p horizontalLayout:#leftFit.
125
claus
parents: 118
diff changeset
   796
	p horizontalSpace:0.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   797
	p verticalLayout:#fit.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   798
	p origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   799
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   800
	l1 := ScrollableView for:FileSelectionList in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   801
	l1 stayInDirectory:true.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   802
	l1 ignoreParentDirectory:true.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   803
	l1 directory:'/'.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   804
	l1 action:[:selection | l2 directory:(l1 selectedPathname)].
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   805
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   806
	l2 := ScrollableView for:FileSelectionList in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   807
	l2 stayInDirectory:true.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   808
	l2 directory:nil.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   809
	l2 ignoreParentDirectory:true.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   810
	l2 action:[:selection | l3 directory:(l2 selectedPathname)].
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   811
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   812
	l3 := ScrollableView for:FileSelectionList in:p.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   813
	l3 directory:nil.
118
claus
parents: 77
diff changeset
   814
	l3 ignoreParentDirectory:false.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   815
	v extent:400 @ 300.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   816
	v open
125
claus
parents: 118
diff changeset
   817
claus
parents: 118
diff changeset
   818
claus
parents: 118
diff changeset
   819
    trouble example: self resizing elements may cause trouble
claus
parents: 118
diff changeset
   820
claus
parents: 118
diff changeset
   821
	|v p l1 l2 l3|
claus
parents: 118
diff changeset
   822
claus
parents: 118
diff changeset
   823
	v := StandardSystemView new.
claus
parents: 118
diff changeset
   824
	p := HorizontalPanelView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:v.
claus
parents: 118
diff changeset
   825
claus
parents: 118
diff changeset
   826
	l1 := (Label label:'one' in:p) level:-1.
claus
parents: 118
diff changeset
   827
	l2 := (Label label:'two' in:p) level:-1.
claus
parents: 118
diff changeset
   828
	l3 := (Label label:'three' in:p) level:-1.
claus
parents: 118
diff changeset
   829
claus
parents: 118
diff changeset
   830
	v extent:400 @ 300.
claus
parents: 118
diff changeset
   831
	v open.
claus
parents: 118
diff changeset
   832
claus
parents: 118
diff changeset
   833
	(Delay forSeconds:5) wait.
claus
parents: 118
diff changeset
   834
claus
parents: 118
diff changeset
   835
	l1 label:'oneone'.
claus
parents: 118
diff changeset
   836
	l2 label:'twotwo'.
claus
parents: 118
diff changeset
   837
	l3 label:'threethree'.
claus
parents: 118
diff changeset
   838
claus
parents: 118
diff changeset
   839
claus
parents: 118
diff changeset
   840
    fixed trouble example: tell the panel that this situation may happen
claus
parents: 118
diff changeset
   841
claus
parents: 118
diff changeset
   842
	|v p l1 l2 l3|
claus
parents: 118
diff changeset
   843
claus
parents: 118
diff changeset
   844
	v := StandardSystemView new.
claus
parents: 118
diff changeset
   845
	p := HorizontalPanelView origin:(0.0 @ 0.0) corner:(1.0 @ 1.0) in:v.
claus
parents: 118
diff changeset
   846
	p elementsChangeSize:true.
claus
parents: 118
diff changeset
   847
claus
parents: 118
diff changeset
   848
	l1 := (Label label:'one' in:p) level:-1.
claus
parents: 118
diff changeset
   849
	l2 := (Label label:'two' in:p) level:-1.
claus
parents: 118
diff changeset
   850
	l3 := (Label label:'three' in:p) level:-1.
claus
parents: 118
diff changeset
   851
claus
parents: 118
diff changeset
   852
	v extent:400 @ 300.
claus
parents: 118
diff changeset
   853
	v open.
claus
parents: 118
diff changeset
   854
claus
parents: 118
diff changeset
   855
	(Delay forSeconds:5) wait.
claus
parents: 118
diff changeset
   856
claus
parents: 118
diff changeset
   857
	l1 label:'oneone'.
claus
parents: 118
diff changeset
   858
	l2 label:'twotwo'.
claus
parents: 118
diff changeset
   859
	l3 label:'threethree'.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   860
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 5
diff changeset
   861
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   862
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   863
!HorizontalPanelView methodsFor:'accessing'!
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   864
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   865
horizontalLayout
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   866
    "return the horizontal layout as symbol.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   867
     the returned value is one of
133
claus
parents: 131
diff changeset
   868
	#left           arrange elements at the left
claus
parents: 131
diff changeset
   869
	#leftSpace      arrange elements at the left, start with spacing
claus
parents: 131
diff changeset
   870
	#fixLeft        same as #left, but do not reduce spacing in case of no fit
claus
parents: 131
diff changeset
   871
	#fixLeftSpace   same as #leftSpace, but do not reduce spacing in case of no fit
claus
parents: 131
diff changeset
   872
	#right          arrange elements at the right
claus
parents: 131
diff changeset
   873
	#rightSpace     arrange elements at the right, start with spacing
claus
parents: 131
diff changeset
   874
	#center         arrange elements in the center
claus
parents: 131
diff changeset
   875
	#spread         spread elements evenly
claus
parents: 131
diff changeset
   876
	#spreadSpace    spread elements evenly with spacing at the ends
claus
parents: 131
diff changeset
   877
	#fit            like #spread, but resize elements for tight packing
claus
parents: 131
diff changeset
   878
	#fitSpace       like #fit, with additional spacing at the far ends
claus
parents: 131
diff changeset
   879
	#leftFit        like #left, but extend the last element to the right
claus
parents: 131
diff changeset
   880
	#leftSpaceFit   like #leftSpace, but extend the last element to the right
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   881
      the default is #center
118
claus
parents: 77
diff changeset
   882
      See the class documentation for  the meanings.
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   883
    "
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   884
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   885
    ^ hLayout
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   886
!
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   887
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   888
horizontalLayout:aSymbol
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   889
    "change the horizontal layout as symbol.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   890
     The argument, aSymbol must be one of:
133
claus
parents: 131
diff changeset
   891
	#left           arrange elements at the left
claus
parents: 131
diff changeset
   892
	#leftSpace      arrange elements at the left, start with spacing
claus
parents: 131
diff changeset
   893
	#fixLeft        same as #left, but do not reduce spacing in case of no fit
claus
parents: 131
diff changeset
   894
	#fixLeftSpace   same as #leftSpace, but do not reduce spacing in case of no fit
claus
parents: 131
diff changeset
   895
	#right          arrange elements at the right
claus
parents: 131
diff changeset
   896
	#rightSpace     arrange elements at the right, start with spacing
claus
parents: 131
diff changeset
   897
	#center         arrange elements in the center
claus
parents: 131
diff changeset
   898
	#spread         spread elements evenly
claus
parents: 131
diff changeset
   899
	#spreadSpace    spread elements evenly with spacing at the ends
claus
parents: 131
diff changeset
   900
	#fit            like #spread, but resize elements for tight packing
claus
parents: 131
diff changeset
   901
	#fitSpace       like #fit, with additional spacing at the far ends
claus
parents: 131
diff changeset
   902
	#leftFit        like #left, but extend the last element to the right
claus
parents: 131
diff changeset
   903
	#leftSpaceFit   like #leftSpace, but extend the last element to the right
118
claus
parents: 77
diff changeset
   904
      the default (if never changed) is #center.
claus
parents: 77
diff changeset
   905
      See the class documentation for  the meanings.
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   906
    "
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   907
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   908
    (hLayout ~~ aSymbol) ifTrue:[
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   909
	hLayout := aSymbol.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   910
	self layoutChanged
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   911
    ]
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   912
!
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   913
202
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   914
layout
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   915
    "leftover for historic reasons - do not use any more"
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   916
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   917
    self obsoleteMethodWarning:'use #horizontalLayout'.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   918
    ^ self horizontalLayout
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   919
!
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   920
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   921
layout:something
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   922
    "OBSOLETE compatibility interface. Will vanish.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   923
     leftover for historic reasons - do not use any more.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   924
     In the meantime, try to figure out what is meant ... a kludge"
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   925
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   926
    something isLayout ifTrue:[^ super layout:something].
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   927
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   928
    self obsoleteMethodWarning:'use #horizontalLayout:'.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   929
    ^ self horizontalLayout:something
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   930
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   931
    "Modified: 31.8.1995 / 23:07:33 / claus"
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   932
!
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   933
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   934
verticalLayout
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   935
    "return the vertical layout as a symbol.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   936
     the returned value is one of
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   937
	#top            place element at the top
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   938
	#topSpace       place element at the top, offset by verticalSpace
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   939
	#center         place it horizontally centered
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   940
	#bottom         place it at the bottom
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   941
	#bottomSpace    place it at the bottom, offset by verticalSpace
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   942
	#fit            resize elements vertically to fit this panel
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   943
	#fitSpace       like #fit, but with spacing
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   944
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   945
	#topMax         like #top, but resize all views vertically to max height
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   946
	#topSpaceMax    like #topSpace, but resize all views vertically to max height
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   947
	#bottomMax      like #bottom, but resize all views vertically to max height
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   948
	#bottomSpaceMax like #bottomSpace, but resize all views vertically to max height
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   949
	#centerMax      like #center, but resize all views vertically to max height
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   950
      the default is #center
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   951
      See the class documentation for  the meanings.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   952
    "
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   953
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   954
    ^ vLayout
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   955
!
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   956
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   957
verticalLayout:aSymbol
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   958
    "change the vertical layout as a symbol.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   959
     The argument, aSymbol must be one of:
133
claus
parents: 131
diff changeset
   960
	#top            place element at the top
claus
parents: 131
diff changeset
   961
	#topSpace       place element at the top, offset by verticalSpace
claus
parents: 131
diff changeset
   962
	#center         place it horizontally centered
claus
parents: 131
diff changeset
   963
	#bottom         place it at the bottom
claus
parents: 131
diff changeset
   964
	#bottomSpace    place it at the bottom, offset by verticalSpace
claus
parents: 131
diff changeset
   965
	#fit            resize elements vertically to fit this panel
claus
parents: 131
diff changeset
   966
	#fitSpace       like #fit, but with spacing
claus
parents: 131
diff changeset
   967
claus
parents: 131
diff changeset
   968
	#topMax         like #top, but resize all views vertically to max height
claus
parents: 131
diff changeset
   969
	#topSpaceMax    like #topSpace, but resize all views vertically to max height
claus
parents: 131
diff changeset
   970
	#bottomMax      like #bottom, but resize all views vertically to max height
claus
parents: 131
diff changeset
   971
	#bottomSpaceMax like #bottomSpace, but resize all views vertically to max height
claus
parents: 131
diff changeset
   972
	#centerMax      like #center, but resize all views vertically to max height
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   973
      the default (if never changed) is #center
118
claus
parents: 77
diff changeset
   974
      See the class documentation for  the meanings.
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   975
    "
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   976
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   977
    (vLayout ~~ aSymbol) ifTrue:[
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   978
	vLayout := aSymbol.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   979
	self layoutChanged
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
   980
    ]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   981
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   982
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   983
!HorizontalPanelView methodsFor:'layout'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   984
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   985
setChildPositions
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   986
    "(re)compute position of every child whenever childs are added or
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   987
     my size has changed"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   988
133
claus
parents: 131
diff changeset
   989
    |xpos space sumOfWidths numChilds l wEach wInside hL vL resizeToMaxV 
162
claus
parents: 155
diff changeset
   990
     resizeToMaxH maxHeight maxWidth d|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   991
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   992
    subViews isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   993
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   994
    space := horizontalSpace.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   995
    numChilds := subViews size.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   996
    wInside := width - (margin * 2) + (borderWidth*2) - subViews last borderWidth.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   997
118
claus
parents: 77
diff changeset
   998
    hL := hLayout.
claus
parents: 77
diff changeset
   999
    vL := vLayout.
claus
parents: 77
diff changeset
  1000
133
claus
parents: 131
diff changeset
  1001
    resizeToMaxH := false.
claus
parents: 131
diff changeset
  1002
    (hL endsWith:'Max') ifTrue:[
claus
parents: 131
diff changeset
  1003
	wEach := maxWidth := subViews inject:0 into:[:maxSoFar :child | maxSoFar max:child widthIncludingBorder].
claus
parents: 131
diff changeset
  1004
	hL := (hL copyWithoutLast:3) asSymbol.
claus
parents: 131
diff changeset
  1005
	resizeToMaxH := true.
claus
parents: 131
diff changeset
  1006
    ].
claus
parents: 131
diff changeset
  1007
118
claus
parents: 77
diff changeset
  1008
    hL == #fitSpace ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
  1009
	"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
  1010
	 adjust childs extents and set origins.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
  1011
	 Be careful to avoid accumulation of rounding errors
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
  1012
	"
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1013
	wEach := (wInside - (numChilds + 1 * space)) / numChilds.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
  1014
	xpos := space + margin - borderWidth.
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1015
    ] ifFalse:[
118
claus
parents: 77
diff changeset
  1016
	hL == #fit ifTrue:[
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1017
	    "
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1018
	     adjust childs extents and set origins.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1019
	     Be careful to avoid accumulation of rounding errors
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1020
	    "
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1021
	    wEach := (wInside - (numChilds - 1 * space)) / numChilds.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1022
	    xpos := margin - borderWidth.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1023
	] ifFalse:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1024
	    "
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1025
	     compute net width needed
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1026
	    "
133
claus
parents: 131
diff changeset
  1027
	    resizeToMaxH ifTrue:[
claus
parents: 131
diff changeset
  1028
		sumOfWidths := subViews inject:0 into:[:sumSoFar :child | sumSoFar + maxWidth + (child borderWidth*2)].
claus
parents: 131
diff changeset
  1029
	    ] ifFalse:[
claus
parents: 131
diff changeset
  1030
		sumOfWidths := subViews inject:0 into:[:sumSoFar :child | sumSoFar + child widthIncludingBorder].
claus
parents: 131
diff changeset
  1031
	    ].
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1032
118
claus
parents: 77
diff changeset
  1033
	    l := hL.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1034
	    ((l == #center) and:[numChilds == 1]) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1035
		l := #spread
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1036
	    ].
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1037
	    (l == #spread and:[numChilds == 1]) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1038
		l := #spreadSpace
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1039
	    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1040
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1041
	    "
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1042
	     compute position of leftmost subview and space between them;
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1043
	     if they do hardly fit, leave no space between them 
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1044
	    "
118
claus
parents: 77
diff changeset
  1045
	    ((sumOfWidths >= (width - (margin * 2))) 
claus
parents: 77
diff changeset
  1046
	    and:[l ~~ #fixLeftSpace and:[l ~~ #fixLeft]]) ifTrue:[
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1047
		xpos := 0.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1048
		space := 0
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1049
	    ] ifFalse: [
118
claus
parents: 77
diff changeset
  1050
		l == #fixLeftSpace ifTrue:[
claus
parents: 77
diff changeset
  1051
		    l := #leftSpace
claus
parents: 77
diff changeset
  1052
		] ifFalse:[
claus
parents: 77
diff changeset
  1053
		    l == #fixLeft ifTrue:[
claus
parents: 77
diff changeset
  1054
			l := #left
claus
parents: 77
diff changeset
  1055
		    ]
claus
parents: 77
diff changeset
  1056
		].
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1057
		((l == #right) or:[l == #rightSpace]) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1058
		    xpos := width - (space * (numChilds - 1)) - sumOfWidths.
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1059
	"
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1060
		    borderWidth == 0 ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1061
			xpos := xpos + space 
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1062
		    ].
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1063
	"
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1064
		    l == #rightSpace ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1065
			xpos >= space ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1066
			    xpos := xpos - space
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1067
			]
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1068
		    ].
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1069
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1070
		    xpos < 0 ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1071
			space := space min:(width - sumOfWidths) // (numChilds + 1).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1072
			xpos := width - (space * numChilds) - sumOfWidths.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
  1073
		    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
  1074
		] ifFalse:[
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1075
		    (l == #spread) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1076
			space := (width - sumOfWidths) // (numChilds - 1).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1077
			xpos := 0.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1078
			(space == 0) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1079
			    xpos := (width - sumOfWidths) // 2
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1080
			]
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1081
		    ] ifFalse:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1082
		      (l == #spreadSpace) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1083
			space := (width - sumOfWidths) // (numChilds + 1).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1084
			xpos := space.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1085
			(space == 0) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1086
			    xpos := (width - sumOfWidths) // 2
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1087
			]
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1088
		      ] ifFalse:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1089
			((l == #left) 
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1090
			or:[l == #leftSpace
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1091
			or:[l == #leftFit
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1092
			or:[l == #leftSpaceFit]]]) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1093
			    space := space min:(width - sumOfWidths) // (numChilds + 1).
118
claus
parents: 77
diff changeset
  1094
			    (hL == #fixLeft or:[hL == #fixLeftSpace]) ifTrue:[
claus
parents: 77
diff changeset
  1095
				space := space max:horizontalSpace.
claus
parents: 77
diff changeset
  1096
			    ] ifFalse:[
claus
parents: 77
diff changeset
  1097
				space := space max:0.
claus
parents: 77
diff changeset
  1098
			    ].
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1099
			    (l == #leftSpace 
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1100
			    or:[l == #leftSpaceFit]) ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1101
				xpos := space.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1102
			    ] ifFalse:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1103
				xpos := 0
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1104
			    ]
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1105
	"
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1106
			    borderWidth == 0 ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1107
				xpos := 0 
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1108
			    ].
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1109
	"
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1110
			] ifFalse:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1111
			    "center"
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1112
			    xpos := (width - (sumOfWidths
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1113
					      + ((numChilds - 1) * space))) // 2.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1114
			    xpos < 0 ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1115
				space := (width - sumOfWidths) // (numChilds + 1).
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1116
				xpos := (width - (sumOfWidths
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1117
					       + ((numChilds - 1) * space))) // 2.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1118
			    ]
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1119
			]
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1120
		      ]
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1121
		    ]
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
  1122
		]
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1123
	    ].
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1124
	].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1125
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1126
133
claus
parents: 131
diff changeset
  1127
    vL := vLayout.
claus
parents: 131
diff changeset
  1128
    resizeToMaxV := false.
claus
parents: 131
diff changeset
  1129
    (vLayout endsWith:'Max') ifTrue:[
claus
parents: 131
diff changeset
  1130
	resizeToMaxV := true.
claus
parents: 131
diff changeset
  1131
	maxHeight := subViews inject:0 into:[:maxSoFar :child | maxSoFar max:child heightIncludingBorder].
claus
parents: 131
diff changeset
  1132
	vL == #centerMax ifTrue:[vL := #center].
claus
parents: 131
diff changeset
  1133
	vL == #bottomMax ifTrue:[vL := #bottom].
claus
parents: 131
diff changeset
  1134
	vL == #bottomSpaceMax ifTrue:[vL := #bottomSpace].
claus
parents: 131
diff changeset
  1135
	vL == #topMax ifTrue:[vL := #top].
claus
parents: 131
diff changeset
  1136
	vL == #topSpaceMax ifTrue:[vL := #topSpace].
claus
parents: 131
diff changeset
  1137
    ].
claus
parents: 131
diff changeset
  1138
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1139
    "now set positions"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1140
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1141
    subViews keysAndValuesDo:[:index :child |
133
claus
parents: 131
diff changeset
  1142
	|ypos advance bwChild hChild|
claus
parents: 131
diff changeset
  1143
claus
parents: 131
diff changeset
  1144
	hChild := child heightIncludingBorder.
claus
parents: 131
diff changeset
  1145
	bwChild := child borderWidth.
claus
parents: 131
diff changeset
  1146
claus
parents: 131
diff changeset
  1147
	resizeToMaxV ifTrue:[
claus
parents: 131
diff changeset
  1148
	    child height:(hChild := maxHeight - (bwChild  * 2)).
claus
parents: 131
diff changeset
  1149
	].
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1150
118
claus
parents: 77
diff changeset
  1151
	vL == #top ifTrue:[
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1152
	    ypos := 0
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1153
	] ifFalse:[
118
claus
parents: 77
diff changeset
  1154
	    vL == #topSpace ifTrue:[
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1155
		ypos := verticalSpace
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1156
	    ] ifFalse:[
118
claus
parents: 77
diff changeset
  1157
		vL == #bottom ifTrue:[
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1158
		    ypos := height - child heightIncludingBorder
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1159
		] ifFalse:[
118
claus
parents: 77
diff changeset
  1160
		    vL == #bottomSpace ifTrue:[
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1161
			ypos := height - verticalSpace - child heightIncludingBorder.
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1162
		    ] ifFalse:[
118
claus
parents: 77
diff changeset
  1163
			vL == #fitSpace ifTrue:[
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1164
			    ypos := verticalSpace.
133
claus
parents: 131
diff changeset
  1165
			    child height:(height - (verticalSpace + bwChild * 2))
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1166
			] ifFalse:[
118
claus
parents: 77
diff changeset
  1167
			    vL == #fit ifTrue:[
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1168
				ypos := 0.
133
claus
parents: 131
diff changeset
  1169
				child height:(height - (bwChild * 2))
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1170
			    ] ifFalse:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1171
				"centered"
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1172
				ypos := (height - child heightIncludingBorder) // 2.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1173
			    ]
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1174
			]
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1175
		    ]
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1176
		]
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1177
	    ]
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1178
	].
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
  1179
	(ypos < 0) ifTrue:[ypos := 0].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1180
133
claus
parents: 131
diff changeset
  1181
	(hL == #fit 
claus
parents: 131
diff changeset
  1182
	 or:[hL == #fitSpace
claus
parents: 131
diff changeset
  1183
	 or:[resizeToMaxH]]) ifTrue:[
162
claus
parents: 155
diff changeset
  1184
	    child sizeFixed ifTrue:[
claus
parents: 155
diff changeset
  1185
		d := wEach - (child widthIncludingBorder) // 2.
claus
parents: 155
diff changeset
  1186
		child origin:(xpos truncated + d @ ypos)
claus
parents: 155
diff changeset
  1187
	    ] ifFalse:[
claus
parents: 155
diff changeset
  1188
		child origin:(xpos truncated @ ypos)
claus
parents: 155
diff changeset
  1189
		      corner:(xpos + wEach - (child borderWidth) - 1) truncated
claus
parents: 155
diff changeset
  1190
			     @ (ypos + child height - 1).
claus
parents: 155
diff changeset
  1191
	    ].
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1192
	    advance := wEach.
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1193
	] ifFalse:[
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1194
	    child origin:(xpos @ ypos).
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1195
	    advance := child widthIncludingBorder
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1196
	].
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1197
	xpos := xpos + advance + space.
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1198
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1199
	index == numChilds ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1200
	    |x|
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1201
118
claus
parents: 77
diff changeset
  1202
	    hL == #leftFit ifTrue:[
155
claus
parents: 133
diff changeset
  1203
		x := width - margin - 1.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1204
	    ].
118
claus
parents: 77
diff changeset
  1205
	    hL == #leftSpaceFit ifTrue:[
155
claus
parents: 133
diff changeset
  1206
		x := width - margin - 1 - space
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1207
	    ].
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1208
	    x notNil ifTrue:[
155
claus
parents: 133
diff changeset
  1209
		subViews last corner:(x @ (ypos + child height - 1))
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1210
	    ]
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
  1211
	]
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
  1212
    ].
155
claus
parents: 133
diff changeset
  1213
claus
parents: 133
diff changeset
  1214
    "Modified: 4.9.1995 / 18:43:10 / claus"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1215
! !
202
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1216
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1217
!HorizontalPanelView methodsFor:'queries'!
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1218
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1219
preferredExtent
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1220
    "return a good extent, one that makes subviews fit"
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1221
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1222
    |sumOfWidths maxHeight maxWidth|
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1223
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1224
    subViews isNil ifTrue:[^ horizontalSpace @ verticalSpace].
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1225
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1226
    "compute net height needed"
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1227
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1228
    sumOfWidths := 0.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1229
    maxHeight := 0.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1230
    maxWidth := 0.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1231
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1232
    subViews do:[:child |
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1233
	|childsPreference|
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1234
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1235
	"/ better to use component's preferredExtent ...
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1236
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1237
	childsPreference := child preferredExtent.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1238
	sumOfWidths := sumOfWidths + childsPreference x.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1239
	maxHeight := maxHeight max:childsPreference y.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1240
	maxWidth := maxWidth max:childsPreference x.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1241
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1242
	"/ ... instead of actual extent
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1243
"/        sumOfWidths := sumOfWidths + child widthIncludingBorder.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1244
"/        maxHeight := maxHeight max:(child heightIncludingBorder).
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1245
"/        maxWidth := maxWidth max:(child widthIncludingBorder).
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1246
    ].
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1247
    borderWidth ~~ 0 ifTrue:[
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1248
	sumOfWidths := sumOfWidths + (horizontalSpace * 2).
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1249
	maxHeight := maxHeight + (verticalSpace * 2).
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1250
    ].
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1251
    (hLayout == #fit 
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1252
    or:[hLayout == #fitSpace
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1253
    or:[hLayout endsWith:'Max']]) ifTrue:[
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1254
	sumOfWidths := maxWidth * subViews size.
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1255
	borderWidth ~~ 0 ifTrue:[
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1256
	    sumOfWidths := sumOfWidths + (horizontalSpace * 2).
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1257
	]
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1258
    ] ifFalse:[
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1259
	sumOfWidths := sumOfWidths + ((subViews size - 1) * horizontalSpace).
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1260
	hLayout == #leftSpace ifTrue:[
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1261
	    sumOfWidths := sumOfWidths + horizontalSpace
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1262
	] ifFalse:[
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1263
	    ((hLayout == #center) or:[hLayout == #spread]) ifTrue:[
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1264
		sumOfWidths := sumOfWidths + (horizontalSpace * 2)
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1265
	    ]
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1266
	].
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1267
    ].
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1268
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1269
    ((vLayout == #topSpace) or:[vLayout == #bottomSpace]) ifTrue:[
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1270
	maxHeight := maxHeight + verticalSpace
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1271
    ] ifFalse:[
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1272
	((vLayout == #fitSpace)  or:[vLayout == #center]) ifTrue:[
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1273
	    maxHeight := maxHeight + (verticalSpace * 2)
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1274
	]        
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1275
    ].
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1276
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1277
    ^ sumOfWidths @ maxHeight
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1278
! !
01f3cbb8e20e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1279
205
6814c0bf8df8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 202
diff changeset
  1280
!HorizontalPanelView class methodsFor:'documentation'!
6814c0bf8df8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 202
diff changeset
  1281
6814c0bf8df8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 202
diff changeset
  1282
version
6814c0bf8df8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 202
diff changeset
  1283
    ^ '$Header: /cvs/stx/stx/libwidg/HorizontalPanelView.st,v 1.19 1995-11-23 18:17:29 cg Exp $'
6814c0bf8df8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 202
diff changeset
  1284
! !