|
18 | 18 | draw-hover |
19 | 19 | draw-item-bg |
20 | 20 | draw-border |
| 21 | + draw-get-text-width |
| 22 | + draw-widget-text |
21 | 23 | ) |
22 | 24 |
|
23 | 25 | (import (scheme) |
24 | 26 | (utils libutil) |
25 | 27 | (gui graphic ) |
| 28 | + (gui widget) |
26 | 29 | (gui video) |
27 | 30 | (gui stb)) |
28 | 31 |
|
| 32 | + (define (draw-get-text-width text) |
| 33 | + (graphic-measure-text (graphic-get-font '()) text)) |
| 34 | + |
29 | 35 | (define (draw-button x y w h text) |
30 | 36 | (graphic-draw-solid-quad x y |
31 | 37 | (+ x w) (+ y h) |
|
114 | 120 | (graphic-draw-line x1 y1 x2 y2 |
115 | 121 | color)) |
116 | 122 |
|
| 123 | + |
| 124 | + (define (draw-widget-text widget) |
| 125 | + (let* ((color (widget-get-attrs widget 'color)) |
| 126 | + (parent (widget-get-attr widget %parent)) |
| 127 | + (tw (widget-get-attrs widget 'text-width)) |
| 128 | + (ta (widget-get-attrs widget 'text-align)) |
| 129 | + (padding-left (widget-get-attrs widget 'padding-left 0.0)) |
| 130 | + (padding-right (widget-get-attrs widget 'padding-right 0.0)) |
| 131 | + (gx (+ (vector-ref parent %gx) (vector-ref widget %x))) |
| 132 | + (gy (+ (vector-ref parent %gy) (vector-ref widget %y))) |
| 133 | + (w (widget-get-attr widget %w)) |
| 134 | + (h (widget-get-attr widget %h)) |
| 135 | + (text (widget-get-attr widget %text )) |
| 136 | + ) |
| 137 | + |
| 138 | + (if (null? color) |
| 139 | + (case ta |
| 140 | + ['left (graphic-draw-text (+ gx padding-left) |
| 141 | + (+ gy (/ h 2.0) -12 ) |
| 142 | + text)] |
| 143 | + ['right (graphic-draw-text (+ gx padding-left) |
| 144 | + (+ gy (/ h 2.0) -12 ) |
| 145 | + text)] |
| 146 | + ['center (graphic-draw-text (+ gx padding-left) |
| 147 | + (+ gy (/ h 2.0) -12 ) |
| 148 | + text)] |
| 149 | + [else (graphic-draw-text (+ gx (- w tw ) padding-left) |
| 150 | + (+ gy (/ h 2.0) -12 ) |
| 151 | + text)] |
| 152 | + ) |
| 153 | + (begin |
| 154 | + (draw-text gx gy w h text color))) |
| 155 | + )) |
| 156 | + |
| 157 | + |
117 | 158 | (define draw-text |
118 | 159 | (case-lambda |
119 | 160 | [(x y text) |
120 | | - (graphic-draw-text x y text )] |
| 161 | + (graphic-draw-text x y text )] |
121 | 162 | [(x y text color) |
122 | | - (graphic-draw-text x y text color) |
123 | | - ] |
| 163 | + (graphic-draw-text x y text color)] |
124 | 164 | [(x y w h text) |
125 | 165 | (graphic-draw-text (+ x (/ w 2.0 ) -8) |
126 | 166 | (+ y (/ h 2.0) -12 ) |
127 | | - text) |
128 | | - ] |
129 | | - ) |
130 | | - ) |
| 167 | + text)] |
| 168 | + [(x y w h text tw ) |
| 169 | + (graphic-draw-text (+ x (/ tw 2) ) |
| 170 | + (+ y (/ h 2.0) -12 ) |
| 171 | + text)] |
| 172 | + )) |
131 | 173 | (define (draw-hover x y w h) |
132 | 174 | (draw-rect x y w h)) |
133 | 175 |
|
|
0 commit comments