VariableHorizontalPanel.st
author claus
Mon, 28 Nov 1994 22:05:43 +0100
changeset 70 14443a9ea4ec
parent 63 f4eaf04d1eaf
child 95 7535cfca9509
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     1
"
5
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1992 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
VariableVerticalPanel subclass:#VariableHorizontalPanel
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    14
	 instanceVariableNames:''
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    15
	 classVariableNames:''
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    16
	 poolDictionaries:''
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    17
	 category:'Views-Layout'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    18
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    19
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    20
VariableHorizontalPanel comment:'
5
claus
parents: 3
diff changeset
    21
COPYRIGHT (c) 1992 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    22
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    23
70
14443a9ea4ec *** empty log message ***
claus
parents: 63
diff changeset
    24
$Header: /cvs/stx/stx/libwidg/VariableHorizontalPanel.st,v 1.10 1994-11-28 21:05:37 claus Exp $
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    25
'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    26
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    27
!VariableHorizontalPanel class methodsFor:'documentation'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    28
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    29
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    30
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    31
 COPYRIGHT (c) 1992 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    32
	      All Rights Reserved
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    33
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    34
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    35
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    36
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    37
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    38
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    39
 hereby transferred.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    40
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    41
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    42
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    43
version
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    44
"
70
14443a9ea4ec *** empty log message ***
claus
parents: 63
diff changeset
    45
$Header: /cvs/stx/stx/libwidg/VariableHorizontalPanel.st,v 1.10 1994-11-28 21:05:37 claus Exp $
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    46
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    47
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    48
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    49
documentation
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    50
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    51
    a View to separate its subviews horizontally by a movable bar
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    52
    to adjust the size-ratios.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    53
    The bar-handle is either an exposed knob (knobStyle == #motif)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    54
    or the forms defined in Scroller (knobStyle ~~ #motif)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    55
    or nothing.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    56
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    57
    The subvies dimensions MUST be given as relative sizes;
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    58
    typically creation is done as:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    59
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    60
	p := VariableHorizontalPanel in:superView.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    61
	v1 := <someViewClass> origin:0.0 @ 0.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    62
			      corner:0.5 @ 1.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    63
				  in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    64
	v2 := <someViewClass> origin:0.5 @ 0.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    65
			      corner:0.8 @ 1.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    66
				  in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    67
	v3 := <someViewClass> origin:0.8 @ 0.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    68
			      corner:1.0 @ 1.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    69
				  in:p.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    70
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    71
"
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    72
!
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    73
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    74
examples
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    75
"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    76
   example:
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    77
	|top p v1 v2 v3|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
    78
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    79
	top := StandardSystemView new.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    80
	top extent:300@200.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    81
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    82
	p := VariableHorizontalPanel 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    83
		 origin:0.0 @ 0.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    84
		 corner:1.0 @ 1.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    85
		 in:top.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    86
	v1 := SelectionInListView 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    87
		 origin:0.0 @ 0.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    88
		 corner:0.5 @ 1.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    89
		 in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    90
	v2 := EditTextView 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    91
		 origin:0.5 @ 0.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    92
		 corner:0.8 @ 1.0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    93
		 in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    94
	v3 := ScrollableView 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    95
		 for:TextView 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    96
		 in:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    97
	v3 origin:0.8 @ 0.0 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    98
	   corner:1.0 @ 1.0.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    99
	top open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
   100
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
   101
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   102
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   103
!VariableHorizontalPanel methodsFor:'initializing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   104
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   105
initCursor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   106
    "set the cursor - a horizontal double arrow"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   107
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
   108
    cursor := Cursor sourceForm:(Form fromFile:'VHPanel.xbm')
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   109
		     maskForm:(Form fromFile:'VHPanel_m.xbm')
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   110
		     hotX:8
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   111
		     hotY:8.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
   112
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
   113
     if bitmaps are not available, use a standard cursor
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
   114
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
   115
    cursor isNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   116
	"which one looks better ?"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   117
	cursor := Cursor leftRightArrow
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   118
	"cursor := Cursor leftLimitArrow"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
   119
    ]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   120
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   121
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   122
!VariableHorizontalPanel methodsFor:'private'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   123
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   124
handleOriginsFrom:start to:stop do:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   125
    "evaluate the argument block for some handle-origins"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   126
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   127
    |y hh vDelta|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   128
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   129
    subViews notNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   130
	shadowForm notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   131
	    hh := shadowForm height
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   132
	] ifFalse:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   133
	    hh := barWidth
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   134
	].
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   135
	(handleStyle ~~ #normal and:[handleStyle ~~ #mswindows]) ifTrue:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   136
	    vDelta := barWidth // 2.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   137
	] ifFalse:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   138
	    vDelta := 0
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   139
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   140
	(handlePosition == #left) ifTrue:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   141
	    y := vDelta
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   142
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   143
	    (handlePosition == #right) ifTrue:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   144
		y := height - hh - margin - vDelta
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   145
	    ] ifFalse:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   146
		y := height - barWidth // 2
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   147
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   148
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   149
	(start + 1) to:stop do:[:index |
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   150
	    |x view|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   151
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   152
	    view := subViews at:index.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   153
	    x := view origin x - barHeight + 1.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   154
	    aBlock value:(x @ y)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   155
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   156
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   157
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   158
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   159
setupSubviewSizes
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   160
    "setup subviews sizes (in case of non-relative sizes)"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   161
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   162
    |x w |
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   163
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   164
    self anyNonRelativeSubviews ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   165
	"there is at least one subview without
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   166
	 relative origin/extent - setup all subviews
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   167
	 to spread evenly ..."
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   168
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   169
	x := 0.0.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   170
	w := 1.0 / (subViews size).
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   171
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   172
	1 to:(subViews size) do:[:index |
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   173
	    |view|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   174
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   175
	    view := subViews at:index.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   176
	    index == subViews size ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   177
		view origin:(x @ 0.0) corner:(1.0 @ 1.0)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   178
	    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   179
		view origin:(x @ 0.0) corner:((x + w) @ 1.0)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   180
	    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   181
	    x := x + w
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   182
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   183
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   184
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   185
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   186
resizeSubviewsFrom:start to:stop
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   187
    "readjust size of some subviews"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   188
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   189
    |step nSubviews|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   190
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   191
    subViews notNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   192
	(start <= stop) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   193
	    step := 1
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   194
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   195
	    step := -1
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   196
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   197
	nSubviews := subViews size.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   198
	start to:stop by:step do:[:index |
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   199
	    |bw view o1 o2 relCorner relOrg newCorner newOrg|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   200
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   201
	    view := subViews at:index.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   202
	    bw := view borderWidth.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   203
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   204
	    index == 1 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   205
		o1 := 0.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   206
	    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   207
		o1 := barHeight // 2 - bw
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   208
	    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   209
	    index ==  nSubviews ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   210
		o2 := 0.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   211
	    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   212
		o2 := barHeight // 2 - bw
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   213
	    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   214
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   215
	    relCorner := view relativeCorner.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   216
	    relCorner isNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   217
		self error:'subview must have relative corner'
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   218
	    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   219
	    newCorner := view cornerFromRelativeCorner.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   220
	    newCorner notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   221
		newCorner x:(newCorner x - o2)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   222
	    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   223
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   224
	    relOrg := view relativeOrigin.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   225
	    relOrg isNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   226
		self error:'subview must have relative origin'
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   227
	    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   228
	    newOrg := view originFromRelativeOrigin.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   229
	    newOrg notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   230
		(index ~~ 1) ifTrue:[  
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   231
		    newOrg x:(newOrg x + o1)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   232
		].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   233
	    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   234
	    view pixelOrigin:newOrg corner:newCorner
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   235
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   236
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   237
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   238
70
14443a9ea4ec *** empty log message ***
claus
parents: 63
diff changeset
   239
!VariableHorizontalPanel methodsFor:'event handling'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   240
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   241
buttonPress:button x:bx y:by
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   242
    "button was pressed - if it hits a handle, start move"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   243
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   244
    |handle|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   245
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
   246
    ((button == 1) or:[button == #select]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   247
	handle := 1.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   248
	self handleOriginsDo:[:hPoint |
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   249
	    |hx|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   250
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   251
	    hx := hPoint x.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   252
	    (bx between:hx and:(hx + barHeight)) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   253
		movedHandle := handle.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   254
		prev := hx.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   255
		start := bx - hx.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   256
		self noClipByChildren.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   257
		self xoring:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   258
		    trackLine ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   259
			self displayLineFromX:hx+(barHeight // 2) y:0
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   260
					  toX:hx+(barHeight // 2) y:height.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   261
		    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   262
			self fillRectangleX:hx y:0 width:barHeight height:height
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   263
		    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   264
		].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   265
		self clipByChildren.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   266
		^ self
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   267
	    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   268
	    handle := handle + 1
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   269
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   270
	movedHandle := nil
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   271
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   272
	super buttonPress:button x:bx y:by
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   273
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   274
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   275
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   276
buttonMotion:buttonMask x:bx y:by
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   277
    "mouse-button was moved while pressed;
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   278
     clear prev handleBar and draw handle bar at new position" 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   279
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   280
    |xpos limitTop limitBot|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   281
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   282
    movedHandle isNil ifTrue: [^ self].          "should not happen"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   283
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   284
    "speedup - if there is already another movement, 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   285
     ignore thisone ... "
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   286
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   287
    device synchronizeOutput.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   288
    self buttonMotionEventPending ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   289
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   290
    xpos := bx - start.
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   291
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   292
    "see comment in VariableVerticalPanel>>buttonMotion:x:y:"
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   293
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   294
"/    limitTop := barHeight // 2.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   295
"/    limitBot := self width - barHeight.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   296
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   297
    limitTop := 0.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   298
    limitBot := self innerWidth.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   299
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   300
    movedHandle > 1 ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   301
	limitTop := (subViews at:movedHandle) origin x + (barHeight // 2)
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   302
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   303
    movedHandle < (subViews size - 1) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   304
	limitBot := (subViews at:(movedHandle + 2)) origin x - barHeight
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   305
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   306
    limitBot := limitBot - barHeight.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   307
    (xpos < limitTop) ifTrue:[ "check against view limits"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   308
	xpos := limitTop
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   309
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   310
	(xpos > limitBot) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   311
	    xpos := limitBot
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   312
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   313
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   314
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   315
    self noClipByChildren.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   316
    self xoring:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   317
	trackLine ifTrue:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   318
	   self displayLineFromX:prev+(barHeight // 2) y:0
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   319
			     toX:prev+(barHeight // 2) y:height.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   320
	   self displayLineFromX:xpos+(barHeight // 2) y:0
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   321
			     toX:xpos+(barHeight // 2) y:height.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   322
	] ifFalse:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   323
	    self fillRectangleX:prev y:0 width:barHeight height:height.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   324
	    self fillRectangleX:xpos y:0 width:barHeight height:height
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   325
	].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   326
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   327
    self clipByChildren.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   328
    prev := xpos
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   329
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   330
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   331
buttonRelease:button x:x y:y
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   332
    "end bar-move"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   333
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   334
    |aboveView belowView aboveIndex belowIndex newX|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   335
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 23
diff changeset
   336
    ((button == 1) or:[button == #select]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   337
	movedHandle isNil ifTrue:[^ self].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   338
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   339
	"undo the last xor"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   340
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   341
	self noClipByChildren.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   342
	self xoring:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   343
	    trackLine ifTrue:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   344
	       self displayLineFromX:prev+(barHeight // 2) y:0
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   345
				 toX:prev+(barHeight // 2) y:height.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   346
	    ] ifFalse:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   347
		self fillRectangleX:prev y:0 width:barHeight height:height
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   348
	    ].
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   349
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   350
	self clipByChildren.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   351
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   352
	"compute the new relative heights"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   353
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   354
	aboveIndex := movedHandle.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   355
	belowIndex := movedHandle + 1.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   356
	aboveView := subViews at:aboveIndex.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   357
	belowView := subViews at:belowIndex.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   358
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   359
	newX := (prev + start / width) asFloat .
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   360
	aboveView relativeCorner:newX @ aboveView relativeCorner y.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   361
	belowView relativeOrigin:newX @ belowView relativeOrigin y.
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   362
	movedHandle := nil.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   363
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   364
	self resizeSubviewsFrom:aboveIndex to:belowIndex.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   365
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   366
	"and redraw handles"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   367
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   368
	self redrawHandlesFrom:aboveIndex to:belowIndex
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   369
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   370
	super buttonRelease:button x:x y:y
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   371
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   372
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   373
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   374
!VariableHorizontalPanel methodsFor:'drawing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   375
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   376
drawHandleAtX:hx y:hy
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   377
    |w x m|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   378
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   379
    shadowForm notNil ifTrue:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   380
	w := shadowForm width
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   381
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   382
	w := barHeight - 4
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   383
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   384
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   385
    self paint:viewBackground.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   386
    self fillRectangleX:hx y:margin 
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   387
		  width:barHeight
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   388
		 height:(height - margin - margin).
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   389
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   390
    (handleStyle ~~ #normal and:[handleStyle ~~ #mswindows]) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   391
	 m := (barHeight - w) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   392
	 shadowForm isNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   393
	    x := hx + (barHeight // 2).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   394
	    separatingLine ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   395
		self paint:shadowColor.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   396
		self displayLineFromX:x y:margin toX:x y:(height - margin).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   397
		x := x + 1.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   398
		self paint:lightColor.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   399
		self displayLineFromX:x y:margin toX:x y:(height - margin).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   400
	    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   401
	    self paint:viewBackground.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   402
	    self fillRectangleX:hx y:(hy - barWidth) 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   403
			  width:w 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   404
			 height:(barWidth + barWidth).
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   405
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   406
	    x := hx.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   407
	    handleStyle == #st80 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   408
		x := x - 1.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   409
	    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   410
	    self drawEdgesForX:(x + m)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   411
			     y:(hy - barWidth)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   412
			 width:w 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   413
			height:(barWidth + barWidth)
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   414
			 level:2.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   415
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   416
	    handleStyle == #iris ifTrue:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   417
		self paint:handleColor.
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   418
		self fillDeviceRectangleX:(x + m + 2)
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   419
					y:(hy - barWidth + 2)
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   420
				    width:w - 4
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   421
				   height:(barWidth + barWidth - 4)
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   422
	    ]
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   423
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   424
	    x := hx.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   425
	    self drawHandleFormAtX:(x + m) y:hy
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   426
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   427
	handleStyle == #st80 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   428
	    x := hx - 1.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   429
	    self paint:lightColor.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   430
	    self displayLineFromX:x y:margin toX:x y:(height - margin).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   431
	    self displayLineFromX:hx y:0 toX:(hx + barHeight - 1) y:0.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   432
	    x := hx + barHeight - 2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   433
	    self paint:shadowColor.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   434
	    self displayLineFromX:x y:margin toX:x y:(height - margin).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   435
		"uncomment the -1 if you dont like the notch at the bottom end"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   436
		"                   VVV"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   437
	    self displayLineFromX:hx" "-1" " y:height-1 toX:(hx + barHeight - 1) y:height-1.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   438
	].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   439
    ] ifFalse:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   440
	x := hx + barHeight - 1.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   441
	self paint:handleColor.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   442
	separatingLine ifTrue:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   443
	    self displayLineFromX:hx+1 y:0 toX:hx+1 y:height.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   444
	    self displayLineFromX:x y:0 toX:x y:height.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   445
	].
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   446
	self fillRectangleX:hx y:hy width:barHeight height:barWidth
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   447
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   448
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   449
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   450
redrawHandlesFrom:start to:stop
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   451
    "redraw some handles"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   452
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   453
    subViews notNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   454
	self handleOriginsFrom:start to:stop do:[:hPoint |
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   455
	    self drawHandleAtX:(hPoint x) y:(hPoint y)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   456
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   457
	movedHandle notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   458
	    self noClipByChildren.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   459
	    self xoring:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   460
		self fillRectangleX:prev y:0 width:barHeight height:height
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   461
	    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   462
	    self clipByChildren
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   463
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   464
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   465
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   466
! !