HorizontalSteppingSlider.st
changeset 65 40e27e2606b5
parent 49 4dd0f5c3353e
child 71 9f9243f5813b
--- a/HorizontalSteppingSlider.st	Mon Jul 03 04:35:33 1995 +0200
+++ b/HorizontalSteppingSlider.st	Sun Jul 23 05:13:10 1995 +0200
@@ -13,7 +13,7 @@
 'From Smalltalk/X, Version:2.10.3 on 27-sep-1994 at 12:56:30'!
 
 HorizontalScrollBar subclass:#HorizontalSteppingSlider
-	 instanceVariableNames:''
+	 instanceVariableNames:'stepIncrement'
 	 classVariableNames:''
 	 poolDictionaries:''
 	 category:'Views-Interactors'
@@ -23,7 +23,7 @@
 COPYRIGHT (c) 1994 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libwidg2/HorizontalSteppingSlider.st,v 1.2 1995-05-03 00:42:35 claus Exp $
+$Header: /cvs/stx/stx/libwidg2/HorizontalSteppingSlider.st,v 1.3 1995-07-23 03:12:43 claus Exp $
 '!
 
 !HorizontalSteppingSlider class methodsFor:'documentation'!
@@ -44,7 +44,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libwidg2/HorizontalSteppingSlider.st,v 1.2 1995-05-03 00:42:35 claus Exp $
+$Header: /cvs/stx/stx/libwidg2/HorizontalSteppingSlider.st,v 1.3 1995-07-23 03:12:43 claus Exp $
 "
 !
 
@@ -80,20 +80,69 @@
 
 initialize
     super initialize.
-    self scrollDownAction:[|nO|
-			 nO := (thumb thumbOrigin + 1) min:100.         
-			 thumb thumbOrigin:nO.
-			 thumb tellOthers "scrollAction value:nO"].
-    self scrollUpAction:[|nO|
-			 nO := (thumb thumbOrigin - 1) max:0.
-			 thumb thumbOrigin:nO.
-			 thumb tellOthers "scrollAction value:nO"].
+    stepIncrement := 1.
+    self scrollDownAction:[self scrollStepUp].
+    self scrollUpAction:[self scrollStepDown].
 ! !
 
 !HorizontalSteppingSlider methodsFor:'accessing'!
 
 model:aModel
     thumb model:aModel
+!
+
+stepIncrement:aNumber 
+    "set the value used for stepping (defaults to 1)"
+
+    stepIncrement := aNumber
+!
+
+step:aNumber
+    "same as stepIncrement;
+     set the value used for stepping (defaults to 1)"
+
+    stepIncrement := aNumber
+!
+
+step
+    ^ stepIncrement
+!
+
+start:start stop:stop step:step
+    thumb start:start stop:stop.
+    stepIncrement := step
+! !
+
+!HorizontalSteppingSlider methodsFor:'events'!
+
+keyPress:key x:x y:y
+    key == #CursorRight ifTrue:[
+	self scrollStepUp.
+	^ self
+    ].
+    key == #CursorLeft ifTrue:[
+	self scrollStepDown.
+	^ self
+    ].
+    super keyPress:key x:x y:y
+! !
+
+!HorizontalSteppingSlider methodsFor:'private'!
+
+scrollStepUp
+    |nO|
+
+    nO := (thumb thumbOrigin + stepIncrement) min:thumb stop.         
+    thumb thumbOrigin:nO.
+    thumb tellOthers.
+!
+
+scrollStepDown
+    |nO|
+
+    nO := (thumb thumbOrigin - stepIncrement) max:thumb start.
+    thumb thumbOrigin:nO.
+    thumb tellOthers.
 ! !
 
 !HorizontalSteppingSlider methodsFor:'misc'!