fix gtk theme lookup

original commit: e97cf6815b0fa98274fb26baf1f8b592635e2d72
This commit is contained in:
Matthew Flatt 2010-09-07 09:49:30 -06:00
parent b4d34b0b32
commit 838731cde2
2 changed files with 16 additions and 4 deletions

View File

@ -135,4 +135,6 @@
(define (get-highlight-text-color) (define (get-highlight-text-color)
(let-values ([(r g b) (get-selected-text-color)]) (let-values ([(r g b) (get-selected-text-color)])
(make-object color% r g b))) (if (and (zero? r) (zero? g) (zero? b))
#f
(make-object color% r g b))))

View File

@ -13,8 +13,17 @@
[green _uint16] [green _uint16]
[blue _uint16])) [blue _uint16]))
(define-cstruct _GTypeInstance
([class _pointer]))
(define-cstruct _GObject
([g_type_instance _GTypeInstance]
[ref_count _uint]
[qdata _pointer]))
(define-cstruct _GtkStyle (define-cstruct _GtkStyle
([fg1 _GdkColor] ([obj _GObject]
[fg1 _GdkColor]
[fg2 _GdkColor] [fg2 _GdkColor]
[fg3 _GdkColor] [fg3 _GdkColor]
[fg4 _GdkColor] [fg4 _GdkColor]
@ -61,11 +70,12 @@
)) ))
(define-gtk gtk_widget_get_style (_fun _GtkWidget -> _GtkStyle-pointer)) (define-gtk gtk_widget_get_style (_fun _GtkWidget -> _GtkStyle-pointer))
(define-gtk gtk_rc_get_style (_fun _GtkWidget -> _GtkStyle-pointer))
(define-gtk gtk_text_view_new (_fun -> _GtkWidget)) (define-gtk gtk_text_view_new (_fun -> _GtkWidget))
(define the-text-style (define the-text-style
(let ([w (gtk_text_view_new)]) (let ([w (gtk_text_view_new)])
(let ([style (gtk_widget_get_style w)]) (let ([style (gtk_rc_get_style w)])
(g_object_ref style) (g_object_ref style)
(begin0 (begin0
style style
@ -73,7 +83,7 @@
(g_object_unref w))))) (g_object_unref w)))))
(define (extract-color-values c) (define (extract-color-values c)
(define (s v) (bitwise-and #xFF (arithmetic-shift v -8))) (define (s v) (arithmetic-shift v -8))
(values (s (GdkColor-red c)) (values (s (GdkColor-red c))
(s (GdkColor-green c)) (s (GdkColor-green c))
(s (GdkColor-blue c)))) (s (GdkColor-blue c))))