Skip to content

Commit 46cf9d0

Browse files
committed
adjust name-message to allow dark-mode to be configured and not tied to white-on-black-panel-scheme?
1 parent 424088f commit 46cf9d0

File tree

3 files changed

+31
-17
lines changed

3 files changed

+31
-17
lines changed

gui-doc/mrlib/scribblings/name-message.scrbl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,14 @@ current label.
100100
By default, the name-message does not allow shrinking.
101101
}
102102

103+
@defmethod[(wob?) boolean?]{
104+
Determines if the name message drawn in dark mode (when it returns @racket[#true]) or
105+
light mode (when it returns @racket[#false]). Returns @racket[(white-on-black-panel-scheme?)]
106+
by default.
107+
108+
@history[#:added "1.79"]
109+
}
110+
103111
}
104112

105113
@; ----------------------------------------------------------------------

gui-lib/info.rkt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
(define pkg-authors '(mflatt robby))
3737

38-
(define version "1.78")
38+
(define version "1.79")
3939

4040
(define license
4141
'(Apache-2.0 OR MIT))

gui-lib/mrlib/name-message.rkt

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
[grabbed? boolean?]
2828
[button-label-font (is-a?/c font%)]
2929
[bkg-color (or/c #f (is-a?/c color%) string?)])
30+
(#:wob? [wob? boolean?])
3031
#:pre (w h)
3132
(w . > . (- h (* 2 border-inset)))
3233
[result void?])]
@@ -47,6 +48,8 @@
4748
stretchable-width stretchable-height
4849
get-top-level-window refresh)
4950

51+
(define/public (wob?) (white-on-black-panel-scheme?))
52+
5053
(define short-title? #f)
5154

5255
(define hidden? #f)
@@ -196,7 +199,8 @@
196199
(unless hidden?
197200
(when (and (> w 5) (> h 5))
198201
(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?)))))
200204

201205
(define/public (get-background-color) #f)
202206

@@ -239,28 +243,29 @@
239243
[(macosx) "darkgray"]
240244
[else (make-object color% 230 230 230)]))
241245
(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))
245250
(define mouse-grabbed-color (make-object color% 100 100 100))
246251
(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?
249254
mouse-grabbed-color-white-on-black
250255
mouse-grabbed-color))
251256
(define grabbed-fg-color (make-object color% 220 220 220))
252257
(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?
255260
grabbed-fg-color-white-on-black
256261
grabbed-fg-color))
257262

258263
(define triangle-width 10)
259264
(define triangle-height 14)
260265
(define triangle-color (make-object color% 50 50 50))
261266
(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?
264269
triangle-color-white-on-black
265270
triangle-color))
266271

@@ -293,7 +298,8 @@
293298
ans-w
294299
ans-h))
295300

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?)])
297303

298304
(define label-width
299305
(if label
@@ -312,8 +318,8 @@
312318

313319
(when (or mouse-over? grabbed?)
314320
(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?)))
317323
(define xh (- h (* 2 border-inset)))
318324
(case (system-type)
319325
[(macosx)
@@ -337,14 +343,14 @@
337343
(+ dx (- w (quotient xh 2)))
338344
(+ dy (- h 1 border-inset)))]
339345
[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))
341347
(send dc set-brush (send the-brush-list find-or-create-brush color 'solid))
342348
(send dc draw-rounded-rectangle
343349
(+ dx rrect-spacer) (+ dy border-inset)
344350
(- w border-inset rrect-spacer) xh 2)]))
345351

346352
(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)))
348354
(send dc set-font button-label-font)
349355
(define-values (tw th _1 _2) (send dc get-text-extent label))
350356
(send dc draw-text label
@@ -353,7 +359,7 @@
353359
#t))
354360

355361
(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)
357363
(define x (- w triangle-width circle-spacer border-inset))
358364
(define y (- (/ h 2) (/ triangle-height 2)))
359365
(define ul-x (+ x 1))

0 commit comments

Comments
 (0)