author | Claus Gittinger <cg@exept.de> |
Thu, 12 Dec 1996 14:35:26 +0100 | |
changeset 267 | f534e60f85e3 |
parent 184 | 13a2f3677c68 |
child 400 | d176fd820716 |
permissions | -rw-r--r-- |
23 | 1 |
" |
2 |
COPYRIGHT (c) 1994 by Claus Gittinger |
|
49 | 3 |
All Rights Reserved |
23 | 4 |
|
5 |
This software is furnished under a license and may be used |
|
6 |
only in accordance with the terms of that license and with the |
|
7 |
inclusion of the above copyright notice. This software may not |
|
8 |
be provided or otherwise made available to, or used by, any |
|
9 |
other person. No title to or ownership of the software is |
|
10 |
hereby transferred. |
|
11 |
" |
|
12 |
||
13 |
HorizontalScrollBar subclass:#HorizontalSteppingSlider |
|
122 | 14 |
instanceVariableNames:'stepIncrement' |
15 |
classVariableNames:'' |
|
16 |
poolDictionaries:'' |
|
17 |
category:'Views-Interactors' |
|
23 | 18 |
! |
19 |
||
20 |
!HorizontalSteppingSlider class methodsFor:'documentation'! |
|
21 |
||
22 |
copyright |
|
23 |
" |
|
24 |
COPYRIGHT (c) 1994 by Claus Gittinger |
|
49 | 25 |
All Rights Reserved |
23 | 26 |
|
27 |
This software is furnished under a license and may be used |
|
28 |
only in accordance with the terms of that license and with the |
|
29 |
inclusion of the above copyright notice. This software may not |
|
30 |
be provided or otherwise made available to, or used by, any |
|
31 |
other person. No title to or ownership of the software is |
|
32 |
hereby transferred. |
|
33 |
" |
|
34 |
! |
|
35 |
||
36 |
documentation |
|
37 |
" |
|
38 |
HorizontalSteppingSliders are like HorizontalSliders, but add step-up and step-down |
|
39 |
buttons (which increment/decrement the value). |
|
40 |
" |
|
49 | 41 |
! |
42 |
||
43 |
examples |
|
44 |
" |
|
45 |
|top sl| |
|
46 |
||
47 |
top := StandardSystemView extent:200@200. |
|
48 |
sl := HorizontalSteppingSlider in:top. |
|
49 |
sl origin:(0.0@0.0) corner:(1.0@sl height). |
|
184 | 50 |
sl scrollAction:[:pos | Transcript showCR:pos]. |
49 | 51 |
top open |
52 |
" |
|
23 | 53 |
! ! |
54 |
||
122 | 55 |
!HorizontalSteppingSlider methodsFor:'accessing'! |
56 |
||
57 |
model:aModel |
|
267
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
58 |
"set the model; this will get the thumbs origin |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
59 |
via #value: messages" |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
60 |
|
122 | 61 |
thumb model:aModel |
62 |
! |
|
63 |
||
64 |
start:start stop:stop step:step |
|
267
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
65 |
"set the range and stepIncrement" |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
66 |
|
122 | 67 |
thumb start:start stop:stop. |
68 |
stepIncrement := step |
|
69 |
! |
|
70 |
||
71 |
step |
|
267
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
72 |
"retrieve the stepIncrement" |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
73 |
|
122 | 74 |
^ stepIncrement |
75 |
! |
|
76 |
||
77 |
step:aNumber |
|
78 |
"same as stepIncrement; |
|
79 |
set the value used for stepping (defaults to 1)" |
|
80 |
||
81 |
stepIncrement := aNumber |
|
82 |
! |
|
83 |
||
84 |
stepIncrement:aNumber |
|
85 |
"set the value used for stepping (defaults to 1)" |
|
86 |
||
87 |
stepIncrement := aNumber |
|
88 |
! ! |
|
89 |
||
90 |
!HorizontalSteppingSlider methodsFor:'events'! |
|
91 |
||
92 |
keyPress:key x:x y:y |
|
93 |
(key == #CursorRight or:[key == #CursorUp]) ifTrue:[ |
|
94 |
self scrollStepUp. |
|
95 |
^ self |
|
96 |
]. |
|
97 |
(key == #CursorLeft or:[key == #CursorDown]) ifTrue:[ |
|
98 |
self scrollStepDown. |
|
99 |
^ self |
|
100 |
]. |
|
101 |
super keyPress:key x:x y:y |
|
102 |
! ! |
|
23 | 103 |
|
104 |
!HorizontalSteppingSlider methodsFor:'initialization'! |
|
105 |
||
106 |
createElements |
|
107 |
button1 := ArrowButton leftIn:self. |
|
108 |
button1 name:'LeftButton'. |
|
109 |
button2 := ArrowButton rightIn:self. |
|
110 |
button2 name:'RightButton'. |
|
111 |
thumb := HorizontalSlider in:self. |
|
112 |
! |
|
113 |
||
114 |
initialize |
|
115 |
super initialize. |
|
65 | 116 |
stepIncrement := 1. |
117 |
self scrollDownAction:[self scrollStepUp]. |
|
118 |
self scrollUpAction:[self scrollStepDown]. |
|
49 | 119 |
! ! |
120 |
||
122 | 121 |
!HorizontalSteppingSlider methodsFor:'misc'! |
65 | 122 |
|
122 | 123 |
doesNotUnderstand:aMessage |
267
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
124 |
"delegate any unknown messages to my thumb" |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
125 |
|
122 | 126 |
^ aMessage sendTo:thumb |
65 | 127 |
! ! |
128 |
||
129 |
!HorizontalSteppingSlider methodsFor:'private'! |
|
130 |
||
267
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
131 |
scrollStep:delta |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
132 |
"step by some delta" |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
133 |
|
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
134 |
|oldOrg newOrg| |
122 | 135 |
|
267
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
136 |
oldOrg := thumb thumbOrigin. |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
137 |
newOrg := ((oldOrg + delta) max:thumb start) min:thumb stop. |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
138 |
oldOrg ~= newOrg ifTrue:[ |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
139 |
thumb thumbOrigin:newOrg. |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
140 |
thumb tellOthers. |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
141 |
] |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
142 |
! |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
143 |
|
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
144 |
scrollStepDown |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
145 |
"stepDown" |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
146 |
|
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
147 |
self scrollStep:stepIncrement negated |
122 | 148 |
! |
149 |
||
65 | 150 |
scrollStepUp |
267
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
151 |
"step up" |
65 | 152 |
|
267
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
153 |
self scrollStep:stepIncrement |
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
154 |
|
23 | 155 |
! ! |
156 |
||
122 | 157 |
!HorizontalSteppingSlider class methodsFor:'documentation'! |
23 | 158 |
|
122 | 159 |
version |
267
f534e60f85e3
dont send change message, if nothing changed;
Claus Gittinger <cg@exept.de>
parents:
184
diff
changeset
|
160 |
^ '$Header: /cvs/stx/stx/libwidg2/HorizontalSteppingSlider.st,v 1.9 1996-12-12 13:35:26 cg Exp $' |
23 | 161 |
! ! |