Scroller.st
changeset 133 e58c7c979f33
parent 132 596439fe4efd
child 161 a33764a0af35
--- a/Scroller.st	Mon Jul 03 04:34:22 1995 +0200
+++ b/Scroller.st	Sun Jul 23 05:03:13 1995 +0200
@@ -37,7 +37,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libwidg/Scroller.st,v 1.26 1995-07-03 02:33:46 claus Exp $
+$Header: /cvs/stx/stx/libwidg/Scroller.st,v 1.27 1995-07-23 03:02:31 claus Exp $
 '!
 
 !Scroller class methodsFor:'documentation'!
@@ -58,7 +58,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libwidg/Scroller.st,v 1.26 1995-07-03 02:33:46 claus Exp $
+$Header: /cvs/stx/stx/libwidg/Scroller.st,v 1.27 1995-07-23 03:02:31 claus Exp $
 "
 !
 
@@ -150,6 +150,38 @@
 
 examples
 "
+    basic scroller setup:
+
+	|top s|
+
+	top := StandardSystemView new extent:200@200.
+	s := Scroller in:top.
+	s origin:(0.0@0.0) corner:(20@1.0).
+	s thumbHeight:10.  'percent'.     
+	top open
+
+
+    setting its thumb-height:
+	|top s|
+
+	top := StandardSystemView new extent:200@200.
+	s := Scroller in:top.
+	s origin:(0.0@0.0) corner:(20@1.0).
+	s thumbHeight:50.  'percent'.     
+	top open
+
+
+    setting its thumb-origin:
+	|top s|
+
+	top := StandardSystemView new extent:200@200.
+	s := Scroller in:top.
+	s origin:(0.0@0.0) corner:(20@1.0).
+	s thumbHeight:10.  'percent'.     
+	s thumbOrigin:30.  'percent'.     
+	top open
+
+
     a scroller with action block (ST/X style):
 
 	|top s|
@@ -871,7 +903,7 @@
      delta needFullDraw 
      bgLeft bgTop bgWidth bgHeight|
 
-    newOrigin := aNumber - rangeStart / (rangeEnd - rangeStart / 100).
+    newOrigin := (aNumber - rangeStart) asFloat / (rangeEnd - rangeStart / 100).
 
     ((newOrigin + thumbHeight) > 100) ifTrue:[
 	realNewOrigin := 100 - thumbHeight
@@ -1272,8 +1304,49 @@
 !
 
 start:start stop:stop
+    "set the scrollers range"
+
     rangeStart := start.
     rangeEnd := stop
+!
+
+start:start
+    "set the scrollers range start"
+
+    rangeStart := start.
+!
+
+stop:stop
+    "set the scrollers range stop"
+
+    rangeEnd := stop
+!
+
+step:step
+    "set the scrollers range step"
+
+    rangeStep := step
+!
+
+start 
+    "return the scrollers range min"
+    ^ rangeStart
+!
+
+stop
+    "return the scrollers range max"
+    ^ rangeEnd
+!
+
+step
+    "return the scrollers range step"
+    ^ rangeStep
+!
+
+orientation 
+    "return the scrollers orientation (#vertical or #horizontal)"
+
+    ^ orientation
 ! !
 
 !Scroller methodsFor:'queries'!
@@ -1435,6 +1508,13 @@
 "/    inset := 1.
 
 "/    self computeThumbFrame
+!
+
+realize
+    super realize.
+    model notNil ifTrue:[
+	self thumbOrigin:(model value).
+    ].
 ! !
 
 !Scroller methodsFor:'forwarding changed origin'!