ScrollBar.st
author claus
Thu, 17 Nov 1994 15:38:53 +0100
changeset 63 f4eaf04d1eaf
parent 60 f3c738c24ce6
child 77 565b052f5277
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     1
"
5
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
     3
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     4
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    11
"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    12
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    13
View subclass:#ScrollBar
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    14
       instanceVariableNames:'thumb button1 button2 layout elementSpacing'
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    15
       classVariableNames:'DefaultButtonPositions DefaultLevel 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    16
			   DefaultElementSpacing DefaultScrollerBordered'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    17
       poolDictionaries:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    18
       category:'Views-Interactors'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    19
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    20
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    21
ScrollBar comment:'
5
claus
parents: 3
diff changeset
    22
COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    23
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    24
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    25
$Header: /cvs/stx/stx/libwidg/ScrollBar.st,v 1.9 1994-11-17 14:38:27 claus Exp $
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    26
'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    27
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    28
!ScrollBar class methodsFor:'documentation'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    29
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    30
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    31
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    32
 COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    33
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    34
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    35
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    36
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    37
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    38
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    39
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    40
 hereby transferred.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    41
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    42
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    43
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    44
version
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    45
"
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    46
$Header: /cvs/stx/stx/libwidg/ScrollBar.st,v 1.9 1994-11-17 14:38:27 claus Exp $
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    47
"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    48
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    49
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    50
documentation
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    51
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    52
    this class implements vertical scrollbars with scroller and
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    53
    2 step-scroll buttons. when moved or stepped, it performs a
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    54
    predefined action.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    55
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    56
    The action is specified by:                 the block to be evaluated for step-up
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    57
	aScrollBar scrollUpAction:aBlock 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    58
	(scrollLeftAction for hor-Scrollbars)
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    59
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    60
	aScrollBar scrollDownAction:aBlock      the block to be evaluated for step-down
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    61
	(scrollRightAction for hor-Scrollbars)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    62
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    63
	aScrollbar scrollAction:aBlock          the block to be evaluated for scroll
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    64
						passing percentage as argument.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    65
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    66
    Scrollbars can scroll syncronous (i.e. every movement is notified immediately via the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    67
    scrollAction) or asynchronous (i.e. only one notification takes place at the end of the movement).
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    68
    The choice is up to the user of the scrollbar (typically, views which are complicated to redraw,
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    69
    will set it to asynchronous.)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    70
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    71
    Most often scrollbars are used hidden with ScrollableView or HVScrollableView (i.e. you
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    72
    dont have to care for all the details).
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    73
"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    74
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    75
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    76
!ScrollBar class methodsFor:'style changes'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    77
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    78
updateStyleCache
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    79
    DefaultButtonPositions := StyleSheet at:'scrollBarButtonPositions' default:#bottom.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    80
    DefaultLevel := StyleSheet at:'scrollBarLevel'.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    81
    DefaultScrollerBordered := StyleSheet at:'scrollBarScrollerBordered' default:false.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    82
    DefaultElementSpacing := StyleSheet at:'scrollBarElementSpacing' 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    83
					default:(StyleSheet is3D ifTrue:[1] ifFalse:[0]).
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    84
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    85
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    86
!ScrollBar methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    87
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    88
initialize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    89
    "setup; create the 2 buttons and a scroller"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    90
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
    91
    |clr|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    92
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    93
    super initialize.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    94
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    95
    self createElements.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    96
21
9ef599238fea *** empty log message ***
claus
parents: 7
diff changeset
    97
    button1 autoRepeat.
9ef599238fea *** empty log message ***
claus
parents: 7
diff changeset
    98
    button2 autoRepeat.
9ef599238fea *** empty log message ***
claus
parents: 7
diff changeset
    99
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   100
    self computeInitialExtent.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   101
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   102
    button1 borderWidth:borderWidth.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   103
    DefaultScrollerBordered ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   104
	thumb borderWidth:borderWidth.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   105
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   106
    button2 borderWidth:borderWidth.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   107
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   108
    ((StyleSheet name = #iris) and:[Display hasGreyscales]) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   109
	"have to change some of Buttons defaults"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   110
	clr := (Color grey:25) on:device.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   111
	button1 offLevel:2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   112
	button2 offLevel:2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   113
	button1 foregroundColor:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   114
	button1 activeForegroundColor:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   115
	button1 enteredForegroundColor:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   116
	button2 foregroundColor:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   117
	button2 activeForegroundColor:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   118
	button2 enteredForegroundColor:clr.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   119
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   120
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   121
    self setElementPositions.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   122
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   123
    StyleSheet name = #motif ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   124
	clr := thumb thumbColor.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   125
	button1 foregroundColor:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   126
	button2 foregroundColor:clr.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   127
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   128
	clr := thumb viewBackground.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   129
	button1 viewBackground:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   130
	button2 viewBackground:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   131
	button1 backgroundColor:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   132
	button2 backgroundColor:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   133
	button1 activeBackgroundColor:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   134
	button2 activeBackgroundColor:clr.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   135
	device hasGreyscales ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   136
	    button1 activeForegroundColor:Black.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   137
	    button2 activeForegroundColor:Black.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   138
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   139
    ]
3
claus
parents: 0
diff changeset
   140
!
claus
parents: 0
diff changeset
   141
claus
parents: 0
diff changeset
   142
initStyle
claus
parents: 0
diff changeset
   143
    super initStyle.
claus
parents: 0
diff changeset
   144
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   145
    layout := DefaultButtonPositions.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   146
    DefaultLevel notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   147
	self level:DefaultLevel
3
claus
parents: 0
diff changeset
   148
    ].
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   149
    elementSpacing := DefaultElementSpacing
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   150
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   151
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   152
createElements
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   153
    button1 := ArrowButton upIn:self.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   154
    button2 := ArrowButton downIn:self.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   155
    thumb := Scroller in:self.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   156
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   157
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   158
setElementPositions
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   159
    "position sub-components"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   160
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   161
    |bwn|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   162
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   163
    bwn := borderWidth negated + margin.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   164
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   165
    (layout == #top) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   166
	button1 origin:(bwn @ bwn).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   167
	button1 viewGravity:#North.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   168
	button2 origin:(bwn @ (button1 height)).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   169
	button2 viewGravity:#North.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   170
	thumb origin:(bwn @ (button1 height 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   171
			     + borderWidth 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   172
			     + button2 height 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   173
			     + elementSpacing 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   174
			     + elementSpacing)).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   175
	thumb viewGravity:#North.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   176
	^ self
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   177
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   178
    (layout == #bottom) ifTrue:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   179
	device supportsViewGravity ifTrue:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   180
	    button1 viewGravity:#South. 
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   181
	    button2 viewGravity:#South. 
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   182
	    thumb viewGravity:#North.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   183
	].
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   184
	thumb origin:(bwn @ bwn).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   185
	^ self
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   186
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   187
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   188
    "layout == #around"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   189
    button1 origin:(bwn @ bwn).
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   190
    button1 viewGravity:#North.
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   191
"/    button2 viewGravity:#North.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   192
    thumb origin:(bwn @ (button1 height + elementSpacing)).
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   193
    thumb viewGravity:#North
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   194
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   195
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   196
computeInitialExtent
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   197
    "compute my extent from sub-components"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   198
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   199
    |w h upForm downForm
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   200
     upHeight   "{ Class: SmallInteger }"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   201
     downHeight "{ Class: SmallInteger }"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   202
     upWidth downWidth|
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   203
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   204
    "need fix - this is a kludge;
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   205
     the if should not be needed ..."
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   206
    style == #mswindows ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   207
	w := button1 width max:button2 width.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   208
	h := button1 height + button2 height + (Scroller defaultExtent y).
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   209
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   210
	upForm  := ArrowButton upArrowButtonForm:style on:device.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   211
	downForm := ArrowButton downArrowButtonForm:style on:device.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   212
	upForm isNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   213
	    upHeight := upWidth := 16.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   214
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   215
	    upHeight := upForm height.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   216
	    upWidth := upForm width
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   217
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   218
	downForm isNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   219
	    downHeight := downWidth := 16
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   220
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   221
	    downHeight := downForm height.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   222
	    downWidth := downForm width
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   223
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   224
	h := upHeight + downHeight + (1 * 2) + (Scroller defaultExtent y).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   225
	w := upWidth max:downWidth.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   226
	style ~~ #normal ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   227
	    h := h + 4.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   228
	    w := w + 4
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   229
	].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   230
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   231
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   232
    self extent:w @ h.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   233
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   234
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   235
!ScrollBar methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   236
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   237
scrollAction:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   238
    "set the action, aBlock to be performed when the scroller is moved"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   239
 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   240
    thumb scrollAction:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   241
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   242
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   243
scrollUpAction:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   244
    "set the action, aBlock to be performed when the up-button is pressed"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   245
 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   246
    button1 action:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   247
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   248
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   249
scrollDownAction:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   250
    "set the action, aBlock to be performed when the down-button is pressed"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   251
 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   252
    button2 action:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   253
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   254
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   255
thumbColor:aColor
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   256
    "set the thumbs color"
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   257
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   258
    thumb thumbColor:aColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   259
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   260
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   261
thumbOrigin
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   262
    "return position of (top of) thumb in percent"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   263
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   264
    ^ thumb thumbOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   265
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   266
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   267
thumbOrigin:newOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   268
    "set position of (top of) thumb in percent"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   269
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   270
    ^ thumb thumbOrigin:newOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   271
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   272
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   273
thumbHeight
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   274
    "return height of thumb in percent"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   275
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   276
    ^ thumb thumbHeight
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   277
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   278
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   279
thumbHeight:newHeight
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   280
    "set height of thumb in percent"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   281
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   282
    ^ thumb thumbHeight:newHeight
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   283
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   284
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   285
thumbOrigin:newOrigin thumbHeight:newHeight
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   286
    "set origin and height of thumb in percent"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   287
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   288
    ^ thumb thumbOrigin:newOrigin thumbHeight:newHeight
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   289
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   290
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   291
setThumbFor:aView
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   292
    "adjust thumb for aView"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   293
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   294
    thumb setThumbFor:aView
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   295
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   296
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   297
setThumbHeightFor:aView
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   298
    "adjust thumbs height for aView"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   299
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   300
    thumb setThumbHeightFor:aView
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   301
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   302
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   303
setThumbOriginFor:aView
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   304
    "adjust thumbs origin for aView"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   305
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   306
    thumb setThumbOriginFor:aView
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   307
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   308
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   309
asynchronousOperation
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   310
    "set asynchronous-mode - scroll action is performed after movement
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   311
     of scroller (i.e. when mouse-button is finally released)"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   312
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   313
    thumb asynchronousOperation
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   314
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   315
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   316
synchronousOperation
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   317
    "set synchronous-mode - scroll action is performed for every movement
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   318
     of scroller"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   319
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   320
    thumb synchronousOperation
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   321
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   322
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   323
!ScrollBar methodsFor:'forced scroll'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   324
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   325
pageUp
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   326
    "page up/left"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   327
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   328
    thumb pageUp
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   329
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   330
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   331
pageDown
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   332
    "page down/right"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   333
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   334
    thumb pageDown
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   335
! !
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   336
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   337
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   338
!ScrollBar methodsFor:'events'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   339
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   340
sizeChanged:how
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   341
    "when my size changes, I have to resize/reposition the subviews"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   342
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   343
    |upHeight downHeight thumbHeight upAndDownHeight bwn sep2
3
claus
parents: 0
diff changeset
   344
     thumbWidth w|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   345
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   346
    button1 isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   347
    thumb isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   348
    button2 isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   349
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   350
    upHeight := button1 height + borderWidth.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   351
    downHeight := button2 height + borderWidth.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   352
    upAndDownHeight := upHeight + downHeight.
3
claus
parents: 0
diff changeset
   353
    bwn := borderWidth negated + margin.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   354
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   355
    thumbHeight := height - upAndDownHeight - borderWidth - (elementSpacing * 3).
3
claus
parents: 0
diff changeset
   356
"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   357
    ((layout ~~ #top) and:[layout ~~ #bottom]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   358
	thumbHeight := thumbHeight - borderWidth
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   359
    ].
3
claus
parents: 0
diff changeset
   360
"
claus
parents: 0
diff changeset
   361
    layout == #around ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   362
	thumbHeight := thumbHeight + borderWidth
3
claus
parents: 0
diff changeset
   363
    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   364
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   365
    "if I become too small, hide buttons and thumb"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   366
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   367
    height < (upHeight + downHeight) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   368
	button1 shown ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   369
	    button1 unrealize.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   370
	    button2 unrealize.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   371
	    thumb unrealize
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   372
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   373
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   374
	shown ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   375
	    button1 shown ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   376
		button1 realize.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   377
		button2 realize.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   378
		thumb realize
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   379
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   380
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   381
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   382
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   383
    (thumbHeight < 10) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   384
	thumb shown ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   385
	    thumb unrealize
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   386
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   387
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   388
	thumb shown ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   389
	    button1 shown ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   390
		thumb realize
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   391
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   392
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   393
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   394
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   395
    "width of buttons is always my width"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   396
3
claus
parents: 0
diff changeset
   397
    w := width - (margin * 2).
claus
parents: 0
diff changeset
   398
    (w ~~ button1 width) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   399
	button1 width:w.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   400
	button2 width:w
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   401
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   402
3
claus
parents: 0
diff changeset
   403
    thumbWidth := w.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   404
    style == #next ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   405
	thumbWidth := thumbWidth - (thumb borderWidth * 2).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   406
	thumbHeight := thumbHeight - 1
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   407
    ].
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   408
    style == #motif ifTrue:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   409
	thumbHeight := thumbHeight - margin
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   410
    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   411
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   412
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   413
     a kludge: views with width or height of 0 are illegal
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   414
     avoid error from view-creation (it will be hidden anyway)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   415
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   416
    thumbHeight <= 0 ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   417
	thumbHeight := 1
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   418
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   419
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   420
    (layout == #top) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   421
	"buttons at top"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   422
	thumb extent:(thumbWidth @ thumbHeight).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   423
	^ self
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   424
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   425
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   426
    sep2 := elementSpacing * 2.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   427
    (layout == #bottom) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   428
	"buttons at bottom"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   429
	thumbHeight := thumbHeight + borderWidth.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   430
	(how == #smaller) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   431
	    thumb extent:(thumbWidth @ thumbHeight).
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   432
"/            button1 origin:(bwn @ (thumbHeight + sep2)).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   433
"/            button2 origin:(bwn @ (thumbHeight + sep2 + upHeight))
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   434
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   435
	    button1 origin:(bwn @ (thumbHeight + sep2)).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   436
	    button2 origin:(bwn @ (thumbHeight + sep2 + upHeight)).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   437
	    thumb extent:(thumbWidth @ thumbHeight)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   438
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   439
	^ self
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   440
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   441
    "buttons around thumb"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   442
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   443
style == #motif ifTrue:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   444
    sep2 := sep2 + 1
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   445
].
3
claus
parents: 0
diff changeset
   446
    button1 origin:(bwn @ bwn).
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   447
    button2 origin:(bwn @ (upHeight + thumbHeight + sep2 - (margin // 2) "+ borderWidth")).
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   448
    thumb extent:(thumbWidth @ (thumbHeight + margin - (margin // 2))).
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   449
    thumb origin:(bwn @ (upHeight - borderWidth + elementSpacing))
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   450
! !