ScrollBar.st
author claus
Tue, 06 Jun 1995 06:16:07 +0200
changeset 130 338e856bddc9
parent 128 06a050529335
child 133 e58c7c979f33
permissions -rw-r--r--
.
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
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
    13
'From Smalltalk/X, Version:2.10.5 on 25-mar-1995 at 1:10:33 am'!
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
    14
119
claus
parents: 110
diff changeset
    15
SimpleView subclass:#ScrollBar
130
claus
parents: 128
diff changeset
    16
	 instanceVariableNames:'thumb button1 button2 buttonLayout elementSpacing'
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
    17
	 classVariableNames:'DefaultButtonPositions DefaultLevel DefaultElementSpacing
128
claus
parents: 119
diff changeset
    18
		DefaultScrollerBordered'
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
    19
	 poolDictionaries:''
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
    20
	 category:'Views-Interactors'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    21
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    22
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    23
ScrollBar comment:'
5
claus
parents: 3
diff changeset
    24
COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    25
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    26
130
claus
parents: 128
diff changeset
    27
$Header: /cvs/stx/stx/libwidg/ScrollBar.st,v 1.14 1995-06-06 04:14:58 claus Exp $
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    28
'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    29
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    30
!ScrollBar class methodsFor:'documentation'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    31
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    32
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    33
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    34
 COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    35
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    36
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    37
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    38
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    39
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    40
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    41
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    42
 hereby transferred.
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
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    45
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    46
version
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    47
"
130
claus
parents: 128
diff changeset
    48
$Header: /cvs/stx/stx/libwidg/ScrollBar.st,v 1.14 1995-06-06 04:14:58 claus Exp $
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    49
"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    50
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    51
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    52
documentation
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    53
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    54
    this class implements vertical scrollbars with scroller and
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    55
    2 step-scroll buttons. when moved or stepped, it performs a
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    56
    predefined action.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    57
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    58
    The action is specified by:                 the block to be evaluated for step-up
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    59
	aScrollBar scrollUpAction:aBlock 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    60
	(scrollLeftAction for hor-Scrollbars)
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    61
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    62
	aScrollBar scrollDownAction:aBlock      the block to be evaluated for step-down
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    63
	(scrollRightAction for hor-Scrollbars)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    64
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    65
	aScrollbar scrollAction:aBlock          the block to be evaluated for scroll
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    66
						passing percentage as argument.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    67
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    68
    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
    69
    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
    70
    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
    71
    will set it to asynchronous.)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    72
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    73
    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
    74
    dont have to care for all the details).
128
claus
parents: 119
diff changeset
    75
claus
parents: 119
diff changeset
    76
    The scrollBars and scrollers protocols have been made similar enough to
claus
parents: 119
diff changeset
    77
    allow transparent use of either a scroller or a scrollBar in applications.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    78
"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    79
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    80
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    81
!ScrollBar class methodsFor:'style changes'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    82
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    83
updateStyleCache
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    84
    DefaultButtonPositions := StyleSheet at:'scrollBarButtonPositions' default:#bottom.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    85
    DefaultLevel := StyleSheet at:'scrollBarLevel'.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    86
    DefaultScrollerBordered := StyleSheet at:'scrollBarScrollerBordered' default:false.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    87
    DefaultElementSpacing := StyleSheet at:'scrollBarElementSpacing' 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    88
					default:(StyleSheet is3D ifTrue:[1] ifFalse:[0]).
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    89
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    90
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    91
!ScrollBar methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    92
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    93
setElementPositions
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    94
    "position sub-components"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    95
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    96
    |bwn|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    97
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    98
    bwn := borderWidth negated + margin.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    99
130
claus
parents: 128
diff changeset
   100
    (buttonLayout == #top) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   101
	button1 origin:(bwn @ bwn).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   102
	button1 viewGravity:#North.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   103
	button2 origin:(bwn @ (button1 height)).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   104
	button2 viewGravity:#North.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   105
	thumb origin:(bwn @ (button1 height 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   106
			     + borderWidth 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   107
			     + button2 height 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   108
			     + elementSpacing 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   109
			     + elementSpacing)).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   110
	thumb viewGravity:#North.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   111
	^ self
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   112
    ].
130
claus
parents: 128
diff changeset
   113
    (buttonLayout == #bottom) ifTrue:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   114
	device supportsViewGravity ifTrue:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   115
	    button1 viewGravity:#South. 
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   116
	    button2 viewGravity:#South. 
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   117
	    thumb viewGravity:#North.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   118
	].
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   119
	thumb origin:(bwn @ bwn).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   120
	^ self
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   121
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   122
130
claus
parents: 128
diff changeset
   123
    "buttonLayout == #around"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   124
    button1 origin:(bwn @ bwn).
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   125
    button1 viewGravity:#North.
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   126
"/    button2 viewGravity:#North.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   127
    thumb origin:(bwn @ (button1 height + elementSpacing)).
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   128
    thumb viewGravity:#North
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   129
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   130
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   131
createElements
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   132
    button1 := ArrowButton upIn:self.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   133
    button2 := ArrowButton downIn:self.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   134
    thumb := Scroller in:self.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   135
!
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   136
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   137
initStyle
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   138
    super initStyle.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   139
130
claus
parents: 128
diff changeset
   140
    buttonLayout := DefaultButtonPositions.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   141
    DefaultLevel notNil ifTrue:[
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   142
	self level:DefaultLevel
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   143
    ].
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   144
    elementSpacing := DefaultElementSpacing
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   145
!
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   146
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   147
computeInitialExtent
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   148
    "compute my extent from sub-components"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   149
130
claus
parents: 128
diff changeset
   150
    self extent:(self preferredExtent).
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   151
!
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   152
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   153
initialize
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   154
    "setup; create the 2 buttons and a scroller"
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   155
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   156
    |clr style|
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   157
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   158
    super initialize.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   159
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   160
    self createElements.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   161
130
claus
parents: 128
diff changeset
   162
    (styleSheet at:'scrollBarDisableButtons' default:false) ifTrue:[
128
claus
parents: 119
diff changeset
   163
	thumb addDependent:self
claus
parents: 119
diff changeset
   164
    ].
claus
parents: 119
diff changeset
   165
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   166
    button1 autoRepeat.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   167
    button2 autoRepeat.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   168
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   169
    self computeInitialExtent.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   170
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   171
    button1 borderWidth:borderWidth.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   172
    DefaultScrollerBordered ifFalse:[
128
claus
parents: 119
diff changeset
   173
	thumb borderWidth:borderWidth.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   174
    ].
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   175
    button2 borderWidth:borderWidth.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   176
130
claus
parents: 128
diff changeset
   177
    style := styleSheet name.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   178
    ((style = #iris) and:[Display hasGreyscales]) ifTrue:[
128
claus
parents: 119
diff changeset
   179
	"have to change some of Buttons defaults"
claus
parents: 119
diff changeset
   180
	clr := (Color grey:25) on:device.
claus
parents: 119
diff changeset
   181
	button1 offLevel:2.
claus
parents: 119
diff changeset
   182
	button2 offLevel:2.
claus
parents: 119
diff changeset
   183
	button1 foregroundColor:clr.
claus
parents: 119
diff changeset
   184
	button1 activeForegroundColor:clr.
claus
parents: 119
diff changeset
   185
	button1 enteredForegroundColor:clr.
claus
parents: 119
diff changeset
   186
	button2 foregroundColor:clr.
claus
parents: 119
diff changeset
   187
	button2 activeForegroundColor:clr.
claus
parents: 119
diff changeset
   188
	button2 enteredForegroundColor:clr.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   189
    ].
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   190
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   191
    self setElementPositions.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   192
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   193
    style = #motif ifTrue:[
128
claus
parents: 119
diff changeset
   194
	clr := thumb thumbColor.
claus
parents: 119
diff changeset
   195
	button1 foregroundColor:clr.
claus
parents: 119
diff changeset
   196
	button2 foregroundColor:clr.
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   197
128
claus
parents: 119
diff changeset
   198
	clr := thumb viewBackground.
claus
parents: 119
diff changeset
   199
	button1 viewBackground:clr.
claus
parents: 119
diff changeset
   200
	button2 viewBackground:clr.
claus
parents: 119
diff changeset
   201
	button1 backgroundColor:clr.
claus
parents: 119
diff changeset
   202
	button2 backgroundColor:clr.
claus
parents: 119
diff changeset
   203
	button1 activeBackgroundColor:clr.
claus
parents: 119
diff changeset
   204
	button2 activeBackgroundColor:clr.
claus
parents: 119
diff changeset
   205
	device hasGreyscales ifFalse:[
claus
parents: 119
diff changeset
   206
	    button1 activeForegroundColor:Black.
claus
parents: 119
diff changeset
   207
	    button2 activeForegroundColor:Black.
claus
parents: 119
diff changeset
   208
	]
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   209
    ]
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   210
!
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   211
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   212
reinitialize
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   213
    super reinitialize.
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   214
    self setElementPositions.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   215
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   216
128
claus
parents: 119
diff changeset
   217
!ScrollBar methodsFor:'change & update'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   218
128
claus
parents: 119
diff changeset
   219
update:something with:aParameter from:changedObject
claus
parents: 119
diff changeset
   220
    changedObject == thumb ifTrue:[
claus
parents: 119
diff changeset
   221
	self enableDisableButtons
claus
parents: 119
diff changeset
   222
    ]
claus
parents: 119
diff changeset
   223
! !
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   224
130
claus
parents: 128
diff changeset
   225
!ScrollBar methodsFor:'queries'!
claus
parents: 128
diff changeset
   226
claus
parents: 128
diff changeset
   227
preferredExtent
claus
parents: 128
diff changeset
   228
    "compute my extent from sub-components"
claus
parents: 128
diff changeset
   229
claus
parents: 128
diff changeset
   230
    |w h upForm downForm
claus
parents: 128
diff changeset
   231
     upHeight   "{ Class: SmallInteger }"
claus
parents: 128
diff changeset
   232
     downHeight "{ Class: SmallInteger }"
claus
parents: 128
diff changeset
   233
     upWidth downWidth style|
claus
parents: 128
diff changeset
   234
claus
parents: 128
diff changeset
   235
    "
claus
parents: 128
diff changeset
   236
     need fix - this is a kludge;
claus
parents: 128
diff changeset
   237
     the if should not be needed ...
claus
parents: 128
diff changeset
   238
    "
claus
parents: 128
diff changeset
   239
    style := styleSheet name.
claus
parents: 128
diff changeset
   240
    style == #mswindows ifTrue:[
claus
parents: 128
diff changeset
   241
	w := button1 width max:button2 width.
claus
parents: 128
diff changeset
   242
	h := button1 height + button2 height + (Scroller defaultExtent y).
claus
parents: 128
diff changeset
   243
    ] ifFalse:[
claus
parents: 128
diff changeset
   244
	upForm  := ArrowButton upArrowButtonForm:style on:device.
claus
parents: 128
diff changeset
   245
	downForm := ArrowButton downArrowButtonForm:style on:device.
claus
parents: 128
diff changeset
   246
	upForm isNil ifTrue:[
claus
parents: 128
diff changeset
   247
	    upHeight := upWidth := 16.
claus
parents: 128
diff changeset
   248
	] ifFalse:[
claus
parents: 128
diff changeset
   249
	    upHeight := upForm height.
claus
parents: 128
diff changeset
   250
	    upWidth := upForm width
claus
parents: 128
diff changeset
   251
	].
claus
parents: 128
diff changeset
   252
	downForm isNil ifTrue:[
claus
parents: 128
diff changeset
   253
	    downHeight := downWidth := 16
claus
parents: 128
diff changeset
   254
	] ifFalse:[
claus
parents: 128
diff changeset
   255
	    downHeight := downForm height.
claus
parents: 128
diff changeset
   256
	    downWidth := downForm width
claus
parents: 128
diff changeset
   257
	].
claus
parents: 128
diff changeset
   258
	h := upHeight + downHeight + (1 * 2) + (Scroller defaultExtent y).
claus
parents: 128
diff changeset
   259
	w := upWidth max:downWidth.
claus
parents: 128
diff changeset
   260
	style ~~ #normal ifTrue:[
claus
parents: 128
diff changeset
   261
	    h := h + 4.
claus
parents: 128
diff changeset
   262
	    w := w + 4
claus
parents: 128
diff changeset
   263
	].
claus
parents: 128
diff changeset
   264
    ].
claus
parents: 128
diff changeset
   265
claus
parents: 128
diff changeset
   266
    ^ w @ h.
claus
parents: 128
diff changeset
   267
! !
claus
parents: 128
diff changeset
   268
128
claus
parents: 119
diff changeset
   269
!ScrollBar methodsFor:'private'!
claus
parents: 119
diff changeset
   270
claus
parents: 119
diff changeset
   271
enableDisableButtons
claus
parents: 119
diff changeset
   272
    |e1 e2|
claus
parents: 119
diff changeset
   273
130
claus
parents: 128
diff changeset
   274
    (styleSheet at:'scrollBarDisableButtons' default:false) ifFalse:[^ self].
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   275
128
claus
parents: 119
diff changeset
   276
    e1 := e2 := true.
claus
parents: 119
diff changeset
   277
    thumb thumbHeight >= 99.99999 ifTrue:[
claus
parents: 119
diff changeset
   278
	e1 := false.
claus
parents: 119
diff changeset
   279
	e2 := false
claus
parents: 119
diff changeset
   280
    ] ifFalse:[
claus
parents: 119
diff changeset
   281
	thumb thumbOrigin <= 0.00001 ifTrue:[
claus
parents: 119
diff changeset
   282
	    e1 := false
claus
parents: 119
diff changeset
   283
	] ifFalse:[
claus
parents: 119
diff changeset
   284
	    (thumb thumbOrigin + thumb thumbHeight) >= 99.99999 ifTrue:[
claus
parents: 119
diff changeset
   285
		e2 := false
claus
parents: 119
diff changeset
   286
	    ]
claus
parents: 119
diff changeset
   287
	]
claus
parents: 119
diff changeset
   288
    ].
claus
parents: 119
diff changeset
   289
    e1 ifTrue:[button1 enable] ifFalse:[button1 disable].
claus
parents: 119
diff changeset
   290
    e2 ifTrue:[button2 enable] ifFalse:[button2 disable].
claus
parents: 119
diff changeset
   291
! !
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   292
128
claus
parents: 119
diff changeset
   293
!ScrollBar methodsFor:'accessing-behavior'!
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   294
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   295
scrollAction:aBlock
128
claus
parents: 119
diff changeset
   296
    "set the action, aBlock to be performed when the scroller is moved.
claus
parents: 119
diff changeset
   297
     This is forwarded to the scroller here."
claus
parents: 119
diff changeset
   298
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   299
    thumb scrollAction:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   300
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   301
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   302
scrollUpAction:aBlock
128
claus
parents: 119
diff changeset
   303
    "set the action, aBlock to be performed when the up-button is pressed."
claus
parents: 119
diff changeset
   304
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   305
    button1 action:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   306
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   307
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   308
scrollDownAction:aBlock
128
claus
parents: 119
diff changeset
   309
    "set the action, aBlock to be performed when the down-button is pressed."
claus
parents: 119
diff changeset
   310
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   311
    button2 action:aBlock
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   312
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   313
128
claus
parents: 119
diff changeset
   314
asynchronousOperation
claus
parents: 119
diff changeset
   315
    "set asynchronous-mode - scroll action is performed after movement
claus
parents: 119
diff changeset
   316
     of scroller (i.e. when mouse-button is finally released).
claus
parents: 119
diff changeset
   317
     This is forwarded to the scroller here."
claus
parents: 119
diff changeset
   318
claus
parents: 119
diff changeset
   319
    thumb asynchronousOperation
claus
parents: 119
diff changeset
   320
!
claus
parents: 119
diff changeset
   321
claus
parents: 119
diff changeset
   322
synchronousOperation
claus
parents: 119
diff changeset
   323
    "set synchronous-mode - scroll action is performed for every movement
claus
parents: 119
diff changeset
   324
     of scroller.
claus
parents: 119
diff changeset
   325
     This is forwarded to the scroller here."
claus
parents: 119
diff changeset
   326
claus
parents: 119
diff changeset
   327
    thumb synchronousOperation
claus
parents: 119
diff changeset
   328
! !
claus
parents: 119
diff changeset
   329
claus
parents: 119
diff changeset
   330
!ScrollBar methodsFor:'accessing'!
claus
parents: 119
diff changeset
   331
claus
parents: 119
diff changeset
   332
setThumbFor:aView
claus
parents: 119
diff changeset
   333
    "adjust thumb for aView 
claus
parents: 119
diff changeset
   334
     (i.e. adjust thumbs origin & size for views size & views contents).
claus
parents: 119
diff changeset
   335
     This is forwarded to the scroller here."
claus
parents: 119
diff changeset
   336
claus
parents: 119
diff changeset
   337
    thumb setThumbFor:aView.
claus
parents: 119
diff changeset
   338
    self enableDisableButtons
claus
parents: 119
diff changeset
   339
!
claus
parents: 119
diff changeset
   340
claus
parents: 119
diff changeset
   341
setThumbOriginFor:aView
claus
parents: 119
diff changeset
   342
    "adjust thumbs origin for aViews size & contents.
claus
parents: 119
diff changeset
   343
     This is forwarded to the scroller here."
claus
parents: 119
diff changeset
   344
claus
parents: 119
diff changeset
   345
    thumb setThumbOriginFor:aView.
claus
parents: 119
diff changeset
   346
    self enableDisableButtons
claus
parents: 119
diff changeset
   347
!
claus
parents: 119
diff changeset
   348
claus
parents: 119
diff changeset
   349
setThumbHeightFor:aView
claus
parents: 119
diff changeset
   350
    "adjust thumbs height for aViews size & contents.
claus
parents: 119
diff changeset
   351
     This is forwarded to the scroller here."
claus
parents: 119
diff changeset
   352
claus
parents: 119
diff changeset
   353
    thumb setThumbHeightFor:aView.
claus
parents: 119
diff changeset
   354
    self enableDisableButtons
claus
parents: 119
diff changeset
   355
!
claus
parents: 119
diff changeset
   356
claus
parents: 119
diff changeset
   357
thumbOrigin:newOrigin thumbHeight:newHeight
claus
parents: 119
diff changeset
   358
    "set origin and height of thumb (both in percent)"
claus
parents: 119
diff changeset
   359
claus
parents: 119
diff changeset
   360
    thumb thumbOrigin:newOrigin thumbHeight:newHeight.
claus
parents: 119
diff changeset
   361
    self enableDisableButtons
claus
parents: 119
diff changeset
   362
!
claus
parents: 119
diff changeset
   363
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   364
thumbColor:aColor
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   365
    "set the thumbs color"
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   366
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   367
    thumb thumbColor:aColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   368
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   369
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   370
thumbOrigin
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   371
    "return position of (top of) thumb in percent"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   372
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   373
    ^ thumb thumbOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   374
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   375
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   376
thumbOrigin:newOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   377
    "set position of (top of) thumb in percent"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   378
128
claus
parents: 119
diff changeset
   379
    thumb thumbOrigin:newOrigin.
claus
parents: 119
diff changeset
   380
    self enableDisableButtons
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
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   384
    "return height of thumb in percent"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   385
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   386
    ^ thumb thumbHeight
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   387
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   388
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   389
thumbHeight:newHeight
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   390
    "set height of thumb in percent"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   391
128
claus
parents: 119
diff changeset
   392
    thumb thumbHeight:newHeight.
claus
parents: 119
diff changeset
   393
    self enableDisableButtons
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   394
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   395
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   396
!ScrollBar methodsFor:'events'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   397
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   398
sizeChanged:how
128
claus
parents: 119
diff changeset
   399
    "when my size changes, I have to resize/reposition the subviews.
claus
parents: 119
diff changeset
   400
     Also, if I became too small, hide thumb/buttons."
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   401
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   402
    |upHeight downHeight thumbHeight upAndDownHeight bwn sep2
130
claus
parents: 128
diff changeset
   403
     thumbWidth w style b1Hidden b2Hidden thumbHidden bY|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   404
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   405
    button1 isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   406
    thumb isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   407
    button2 isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   408
130
claus
parents: 128
diff changeset
   409
    style := styleSheet name.
128
claus
parents: 119
diff changeset
   410
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   411
    upHeight := button1 height + borderWidth.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   412
    downHeight := button2 height + borderWidth.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   413
    upAndDownHeight := upHeight + downHeight.
3
claus
parents: 0
diff changeset
   414
    bwn := borderWidth negated + margin.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   415
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   416
    thumbHeight := height - upAndDownHeight - borderWidth - (elementSpacing * 3).
3
claus
parents: 0
diff changeset
   417
"
130
claus
parents: 128
diff changeset
   418
    ((buttonLayout ~~ #top) and:[buttonLayout ~~ #bottom]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   419
	thumbHeight := thumbHeight - borderWidth
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   420
    ].
3
claus
parents: 0
diff changeset
   421
"
130
claus
parents: 128
diff changeset
   422
    buttonLayout == #around ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   423
	thumbHeight := thumbHeight + borderWidth
3
claus
parents: 0
diff changeset
   424
    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   425
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   426
    "if I become too small, hide buttons and thumb"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   427
130
claus
parents: 128
diff changeset
   428
    height < upAndDownHeight ifTrue:[
claus
parents: 128
diff changeset
   429
	b1Hidden := b2Hidden := thumbHidden := true.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   430
    ] ifFalse:[
130
claus
parents: 128
diff changeset
   431
	b1Hidden := b2Hidden := thumbHidden := false.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   432
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   433
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   434
    (thumbHeight < 10) ifTrue:[
130
claus
parents: 128
diff changeset
   435
	thumbHidden := true.
claus
parents: 128
diff changeset
   436
    ] ifFalse:[
claus
parents: 128
diff changeset
   437
	thumbHidden := false.
claus
parents: 128
diff changeset
   438
    ].
claus
parents: 128
diff changeset
   439
claus
parents: 128
diff changeset
   440
    button1 hiddenOnRealize:b1Hidden.
claus
parents: 128
diff changeset
   441
    b1Hidden ifTrue:[
claus
parents: 128
diff changeset
   442
	button1 unrealize
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   443
    ] ifFalse:[
130
claus
parents: 128
diff changeset
   444
	shown ifTrue:[button1 realize]
claus
parents: 128
diff changeset
   445
    ].
claus
parents: 128
diff changeset
   446
    button2 hiddenOnRealize:b1Hidden.
claus
parents: 128
diff changeset
   447
    b2Hidden ifTrue:[
claus
parents: 128
diff changeset
   448
	button2 unrealize
claus
parents: 128
diff changeset
   449
    ] ifFalse:[
claus
parents: 128
diff changeset
   450
	shown ifTrue:[button2 realize]
claus
parents: 128
diff changeset
   451
    ].
claus
parents: 128
diff changeset
   452
    thumb hiddenOnRealize:thumbHidden.
claus
parents: 128
diff changeset
   453
    thumbHidden ifTrue:[
claus
parents: 128
diff changeset
   454
	thumb unrealize
claus
parents: 128
diff changeset
   455
    ] ifFalse:[
claus
parents: 128
diff changeset
   456
	shown ifTrue:[thumb realize]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   457
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   458
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   459
    "width of buttons is always my width"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   460
3
claus
parents: 0
diff changeset
   461
    w := width - (margin * 2).
claus
parents: 0
diff changeset
   462
    (w ~~ button1 width) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   463
	button1 width:w.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   464
	button2 width:w
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   465
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   466
3
claus
parents: 0
diff changeset
   467
    thumbWidth := w.
128
claus
parents: 119
diff changeset
   468
    style == #next ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   469
	thumbWidth := thumbWidth - (thumb borderWidth * 2).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   470
	thumbHeight := thumbHeight - 1
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   471
    ].
128
claus
parents: 119
diff changeset
   472
    style == #motif ifTrue:[
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   473
	thumbHeight := thumbHeight - margin
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   474
    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   475
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   476
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   477
     a kludge: views with width or height of 0 are illegal
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   478
     avoid error from view-creation (it will be hidden anyway)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   479
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   480
    thumbHeight <= 0 ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   481
	thumbHeight := 1
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   482
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   483
130
claus
parents: 128
diff changeset
   484
    (buttonLayout == #top) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   485
	"buttons at top"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   486
	thumb extent:(thumbWidth @ thumbHeight).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   487
	^ self
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   488
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   489
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   490
    sep2 := elementSpacing * 2.
130
claus
parents: 128
diff changeset
   491
    (buttonLayout == #bottom) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   492
	"buttons at bottom"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   493
	thumbHeight := thumbHeight + borderWidth.
130
claus
parents: 128
diff changeset
   494
	thumbHidden ifTrue:[
claus
parents: 128
diff changeset
   495
	    bY := elementSpacing
claus
parents: 128
diff changeset
   496
	] ifFalse:[
claus
parents: 128
diff changeset
   497
	    bY := thumbHeight + sep2.
claus
parents: 128
diff changeset
   498
	].
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   499
	(how == #smaller) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   500
	    thumb extent:(thumbWidth @ thumbHeight).
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   501
"/            button1 origin:(bwn @ (thumbHeight + sep2)).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   502
"/            button2 origin:(bwn @ (thumbHeight + sep2 + upHeight))
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   503
	] ifFalse:[
130
claus
parents: 128
diff changeset
   504
	    button1 origin:(bwn @ bY).
claus
parents: 128
diff changeset
   505
	    button2 origin:(bwn @ (bY + upHeight)).
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   506
	    thumb extent:(thumbWidth @ thumbHeight)
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   507
	].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   508
	^ self
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   509
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   510
    "buttons around thumb"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   511
128
claus
parents: 119
diff changeset
   512
    style == #motif ifTrue:[
claus
parents: 119
diff changeset
   513
	sep2 := sep2 + 1
claus
parents: 119
diff changeset
   514
    ].
3
claus
parents: 0
diff changeset
   515
    button1 origin:(bwn @ bwn).
128
claus
parents: 119
diff changeset
   516
claus
parents: 119
diff changeset
   517
    style == #os2 ifTrue:[
claus
parents: 119
diff changeset
   518
	button2 origin:(bwn @ (upHeight + thumbHeight + sep2 - margin "+ borderWidth")).
claus
parents: 119
diff changeset
   519
	thumb extent:(thumbWidth @ (thumbHeight - margin - margin "+ margin - (margin // 2)")).
claus
parents: 119
diff changeset
   520
	thumb origin:(bwn @ (upHeight - borderWidth + elementSpacing + margin))
claus
parents: 119
diff changeset
   521
    ] ifFalse:[
claus
parents: 119
diff changeset
   522
	button2 origin:(bwn @ (upHeight + thumbHeight + sep2 - (margin // 2) "+ borderWidth")).
claus
parents: 119
diff changeset
   523
	thumb extent:(thumbWidth @ (thumbHeight + margin - (margin // 2))).
claus
parents: 119
diff changeset
   524
	thumb origin:(bwn @ (upHeight - borderWidth + elementSpacing))
claus
parents: 119
diff changeset
   525
    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   526
! !
110
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   527
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   528
!ScrollBar methodsFor:'forced scroll'!
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   529
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   530
pageUp
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   531
    "page up/left"
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   532
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   533
    thumb pageUp
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   534
!
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   535
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   536
pageDown
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   537
    "page down/right"
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   538
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   539
    thumb pageDown
eb59f6e31e84 *** empty log message ***
claus
parents: 77
diff changeset
   540
! !