--- a/VerticalRuler.st Thu Nov 17 15:42:58 1994 +0100
+++ b/VerticalRuler.st Mon Nov 21 17:49:32 1994 +0100
@@ -23,7 +23,7 @@
a VerticalRuler for page layout.
-$Header: /cvs/stx/stx/libwidg2/VerticalRuler.st,v 1.1 1994-11-17 14:42:58 claus Exp $
+$Header: /cvs/stx/stx/libwidg2/VerticalRuler.st,v 1.2 1994-11-21 16:48:22 claus Exp $
written oct 91 by claus
'!
@@ -51,14 +51,13 @@
!VerticalRuler methodsFor:'redrawing'!
redraw
- "redraw scale"
+ "redraw the scale"
|y pixelPerMM pixelPerInch mod pos shortLen veryShortLen longLen charX
left paperHeightMM paperHeightPixel yOrigin labelBot marg fontHeight|
shown ifFalse:[^ self].
-"/ self fill:viewBackground.
self clear.
yOrigin := self viewOrigin y.
@@ -95,18 +94,21 @@
y := (pixelPerMM * pos - yOrigin) rounded.
[(y < height) and:[pos <= paperHeightMM]] whileTrue:[
- (mod == 1) ifTrue:[
- self displayLineFromX:left y:y
- toX:(left + shortLen) y:y
- ] ifFalse:[
+ |l|
+
+ l := shortLen.
+ (mod ~~ 1) ifTrue:[
y < labelBot ifFalse:[
- self displayLineFromX:left y:y
- toX:(left + longLen) y:y.
- self displayString:(pos // 10) printString
- x:charX
- y:(y + marg + fontHeight)
+ l := longLen
]
].
+ self displayLineFromX:left y:y toX:(left + l) y:y.
+
+ (mod ~~ 1 and:[y >= labelBot]) ifTrue:[
+ self displayString:(pos // 10) printString
+ x:charX
+ y:(y + marg + fontHeight)
+ ].
mod := (mod + 1) \\ 2.
pos := pos + 5.
y := (pixelPerMM * pos - yOrigin) rounded
@@ -124,22 +126,26 @@
y := (pixelPerInch * pos - yOrigin) rounded.
veryShortLen := longLen // 4.
[(y < height) and:[pos <= paperHeight]] whileTrue:[
+ |l|
+
+ l := shortLen.
(mod == 0) ifTrue:[
y < labelBot ifFalse:[
- self displayLineFromX:left y:y
- toX:(left + longLen) y:y.
+ l := longLen.
+ ]
+ ] ifFalse:[
+ (mod == 2) ifFalse:[
+ l := veryShortLen
+ ]
+ ].
+ self displayLineFromX:left y:y toX:(left + l) y:y.
+
+ (mod == 0) ifTrue:[
+ y < labelBot ifFalse:[
self displayString:pos asInteger printString
x:charX
y:(y + marg + fontHeight)
]
- ] ifFalse:[
- (mod == 2) ifTrue:[
- self displayLineFromX:left y:y
- toX:(left + shortLen) y:y
- ] ifFalse:[
- self displayLineFromX:left y:y
- toX:(left + veryShortLen) y:y
- ]
].
mod := (mod + 1) \\ 4.
pos := pos + 0.25.