9 other person. No title to or ownership of the software is |
9 other person. No title to or ownership of the software is |
10 hereby transferred. |
10 hereby transferred. |
11 " |
11 " |
12 |
12 |
13 SimpleView subclass:#Scale |
13 SimpleView subclass:#Scale |
14 instanceVariableNames:'slider range action' |
14 instanceVariableNames:'slider range action' |
15 classVariableNames:'' |
15 classVariableNames:'' |
16 poolDictionaries:'' |
16 poolDictionaries:'' |
17 category:'Views-Interactors' |
17 category:'Views-Interactors' |
18 ! |
18 ! |
19 |
19 |
20 !Scale class methodsFor:'documentation'! |
20 !Scale class methodsFor:'documentation'! |
21 |
21 |
22 copyright |
22 copyright |
48 " |
44 " |
49 |top s1 s2| |
45 |top s1 s2| |
50 |
46 |
51 top := StandardSystemView new. |
47 top := StandardSystemView new. |
52 top extent:200@200. |
48 top extent:200@200. |
53 s1 := Scale origin:0.0 @ 0.0 extent:50 @ 1.0 in:top. |
49 s1 := Scale origin:0.0 @ 0.0 in:top. |
54 s2 := Scale origin:0.5 @ 0.0 extent:50 @ 1.0 in:top. |
50 s1 extent:50 @ 1.0. |
|
51 |
|
52 s2 := Scale origin:0.5 @ 0.0 in:top. |
|
53 s2 extent:50 @ 1.0. |
55 s2 range:(-50 to:50). |
54 s2 range:(-50 to:50). |
56 top open |
55 top open |
57 " |
56 " |
58 ! ! |
|
59 |
|
60 !Scale methodsFor:'slider actions'! |
|
61 |
|
62 scroll:percent |
|
63 |value y label| |
|
64 |
|
65 action notNil ifTrue:[ |
|
66 value := (range last - range first) * (percent / 100). |
|
67 value := value + range first. |
|
68 action value:value. |
|
69 |
|
70 y := slider thumbFrame top + (slider thumbFrame height // 2). |
|
71 self clear. |
|
72 self paint:Black. |
|
73 value := value roundTo:(range last - range first) / 100. |
|
74 label := value asFloat printString. |
|
75 (label endsWith:'.0') ifTrue:[ |
|
76 label := value asInteger printString |
|
77 ]. |
|
78 self displayString:label |
|
79 x:slider width + device horizontalPixelPerMillimeter |
|
80 y:y + (font ascent // 2) |
|
81 ] |
|
82 ! ! |
57 ! ! |
83 |
58 |
84 !Scale methodsFor:'accessing'! |
59 !Scale methodsFor:'accessing'! |
85 |
60 |
86 range:anInterval |
61 range:anInterval |
89 |
64 |
90 scrollAction:aBlock |
65 scrollAction:aBlock |
91 action := aBlock |
66 action := aBlock |
92 ! ! |
67 ! ! |
93 |
68 |
|
69 !Scale methodsFor:'drawing'! |
|
70 |
|
71 redraw |
|
72 |percent value y label| |
|
73 |
|
74 percent := slider thumbOrigin. |
|
75 value := (range last - range first) * (percent / 100). |
|
76 value := value + range first. |
|
77 |
|
78 y := slider thumbFrame top + (slider thumbFrame height // 2). |
|
79 self clear. |
|
80 self paint:Black. |
|
81 value := value roundTo:(range last - range first) / 100. |
|
82 label := value asFloat printString. |
|
83 (label endsWith:'.0') ifTrue:[ |
|
84 label := value asInteger printString |
|
85 ]. |
|
86 self displayString:label |
|
87 x:slider width + device horizontalPixelPerMillimeter |
|
88 y:y + (font ascent // 2) |
|
89 |
|
90 "Created: / 7.3.1999 / 00:12:42 / cg" |
|
91 "Modified: / 7.3.1999 / 00:17:52 / cg" |
|
92 ! ! |
|
93 |
94 !Scale methodsFor:'initialization'! |
94 !Scale methodsFor:'initialization'! |
95 |
95 |
96 initialize |
96 initialize |
97 super initialize. |
97 super initialize. |
98 |
98 |
99 range := (0 to:100). |
99 range := (0 to:100). |
100 slider := Slider in:self. |
100 slider := Slider in:self. |
101 slider fixSize. |
101 "/ slider fixSize. |
102 slider origin:0.0 @ 0.0. |
102 slider origin:0.0 @ 0.0. |
103 slider extent:slider width@ 1.0. |
103 slider height:1.0. |
104 self width:(slider width |
104 |
105 + (font widthOf:'100') |
105 "/ self width:(slider width |
106 + (device horizontalPixelPerMillimeter * 2) rounded). |
106 "/ + (font widthOf:'100') |
|
107 "/ + (device horizontalPixelPerMillimeter * 2) rounded). |
107 |
108 |
108 slider scrollAction:[:percent | self scroll:percent]. |
109 slider scrollAction:[:percent | self scroll:percent]. |
|
110 |
|
111 "Modified: / 7.3.1999 / 00:23:42 / cg" |
109 ! ! |
112 ! ! |
110 |
113 |
|
114 !Scale methodsFor:'queries'! |
|
115 |
|
116 preferredExtent |
|
117 ^ slider preferredExtent + ((font widthOf:'999') @ 0) |
|
118 |
|
119 "Created: / 7.3.1999 / 00:02:25 / cg" |
|
120 ! ! |
|
121 |
|
122 !Scale methodsFor:'slider actions'! |
|
123 |
|
124 scroll:percent |
|
125 |value| |
|
126 |
|
127 value := (range last - range first) * (percent / 100). |
|
128 value := value + range first. |
|
129 action notNil ifTrue:[ |
|
130 action value:value. |
|
131 ]. |
|
132 self redraw |
|
133 |
|
134 "Modified: / 7.3.1999 / 00:17:46 / cg" |
|
135 ! ! |
|
136 |
|
137 !Scale class methodsFor:'documentation'! |
|
138 |
|
139 version |
|
140 ^ '$Header: /cvs/stx/stx/libwidg2/Scale.st,v 1.5 1999-03-07 13:25:33 cg Exp $' |
|
141 ! ! |