|
27 | 27 | [grabbed? boolean?] |
28 | 28 | [button-label-font (is-a?/c font%)] |
29 | 29 | [bkg-color (or/c #f (is-a?/c color%) string?)]) |
| 30 | + (#:wob? [wob? boolean?]) |
30 | 31 | #:pre (w h) |
31 | 32 | (w . > . (- h (* 2 border-inset))) |
32 | 33 | [result void?])] |
|
47 | 48 | stretchable-width stretchable-height |
48 | 49 | get-top-level-window refresh) |
49 | 50 |
|
| 51 | + (define/public (wob?) (white-on-black-panel-scheme?)) |
| 52 | + |
50 | 53 | (define short-title? #f) |
51 | 54 |
|
52 | 55 | (define hidden? #f) |
|
196 | 199 | (unless hidden? |
197 | 200 | (when (and (> w 5) (> h 5)) |
198 | 201 | (draw-button-label dc to-draw-message 0 0 w h mouse-over? mouse-grabbed? |
199 | | - font (get-background-color))))) |
| 202 | + font (get-background-color) |
| 203 | + #:wob? (wob?))))) |
200 | 204 |
|
201 | 205 | (define/public (get-background-color) #f) |
202 | 206 |
|
|
239 | 243 | [(macosx) "darkgray"] |
240 | 244 | [else (make-object color% 230 230 230)])) |
241 | 245 | (define mouse-over-color-white-on-black (make-object color% 20 20 20)) |
242 | | -(define (get-mouse-over-color) (if (white-on-black-panel-scheme?) |
243 | | - mouse-over-color-white-on-black |
244 | | - mouse-over-color)) |
| 246 | +(define (get-mouse-over-color wob?) |
| 247 | + (if wob? |
| 248 | + mouse-over-color-white-on-black |
| 249 | + mouse-over-color)) |
245 | 250 | (define mouse-grabbed-color (make-object color% 100 100 100)) |
246 | 251 | (define mouse-grabbed-color-white-on-black (make-object color% 155 155 155)) |
247 | | -(define (get-mouse-grabbed-color) |
248 | | - (if (white-on-black-panel-scheme?) |
| 252 | +(define (get-mouse-grabbed-color wob?) |
| 253 | + (if wob? |
249 | 254 | mouse-grabbed-color-white-on-black |
250 | 255 | mouse-grabbed-color)) |
251 | 256 | (define grabbed-fg-color (make-object color% 220 220 220)) |
252 | 257 | (define grabbed-fg-color-white-on-black (make-object color% 30 30 30)) |
253 | | -(define (get-grabbed-fg-color) |
254 | | - (if (white-on-black-panel-scheme?) |
| 258 | +(define (get-grabbed-fg-color wob?) |
| 259 | + (if wob? |
255 | 260 | grabbed-fg-color-white-on-black |
256 | 261 | grabbed-fg-color)) |
257 | 262 |
|
258 | 263 | (define triangle-width 10) |
259 | 264 | (define triangle-height 14) |
260 | 265 | (define triangle-color (make-object color% 50 50 50)) |
261 | 266 | (define triangle-color-white-on-black (make-object color% 200 200 200)) |
262 | | -(define (get-triangle-color) |
263 | | - (if (white-on-black-panel-scheme?) |
| 267 | +(define (get-triangle-color wob?) |
| 268 | + (if wob? |
264 | 269 | triangle-color-white-on-black |
265 | 270 | triangle-color)) |
266 | 271 |
|
|
293 | 298 | ans-w |
294 | 299 | ans-h)) |
295 | 300 |
|
296 | | -(define (draw-button-label dc label dx dy full-w h mouse-over? grabbed? button-label-font bkg-color) |
| 301 | +(define (draw-button-label dc label dx dy full-w h mouse-over? grabbed? button-label-font bkg-color |
| 302 | + #:wob? [wob? (white-on-black-panel-scheme?)]) |
297 | 303 |
|
298 | 304 | (define label-width |
299 | 305 | (if label |
|
312 | 318 |
|
313 | 319 | (when (or mouse-over? grabbed?) |
314 | 320 | (define color (if grabbed? |
315 | | - (get-mouse-grabbed-color) |
316 | | - (get-mouse-over-color))) |
| 321 | + (get-mouse-grabbed-color wob?) |
| 322 | + (get-mouse-over-color wob?))) |
317 | 323 | (define xh (- h (* 2 border-inset))) |
318 | 324 | (case (system-type) |
319 | 325 | [(macosx) |
|
337 | 343 | (+ dx (- w (quotient xh 2))) |
338 | 344 | (+ dy (- h 1 border-inset)))] |
339 | 345 | [else |
340 | | - (send dc set-pen (send the-pen-list find-or-create-pen (get-triangle-color) 1 'solid)) |
| 346 | + (send dc set-pen (send the-pen-list find-or-create-pen (get-triangle-color wob?) 1 'solid)) |
341 | 347 | (send dc set-brush (send the-brush-list find-or-create-brush color 'solid)) |
342 | 348 | (send dc draw-rounded-rectangle |
343 | 349 | (+ dx rrect-spacer) (+ dy border-inset) |
344 | 350 | (- w border-inset rrect-spacer) xh 2)])) |
345 | 351 |
|
346 | 352 | (when label |
347 | | - (send dc set-text-foreground (if grabbed? (get-grabbed-fg-color) (get-label-foreground-color))) |
| 353 | + (send dc set-text-foreground (if grabbed? (get-grabbed-fg-color wob?) (get-label-foreground-color))) |
348 | 354 | (send dc set-font button-label-font) |
349 | 355 | (define-values (tw th _1 _2) (send dc get-text-extent label)) |
350 | 356 | (send dc draw-text label |
|
353 | 359 | #t)) |
354 | 360 |
|
355 | 361 | (send dc set-pen "black" 1 'transparent) |
356 | | - (send dc set-brush (if grabbed? (get-grabbed-fg-color) (get-triangle-color)) 'solid) |
| 362 | + (send dc set-brush (if grabbed? (get-grabbed-fg-color wob?) (get-triangle-color wob?)) 'solid) |
357 | 363 | (define x (- w triangle-width circle-spacer border-inset)) |
358 | 364 | (define y (- (/ h 2) (/ triangle-height 2))) |
359 | 365 | (define ul-x (+ x 1)) |
|
0 commit comments