From 4109af7ecb6216b3bb5a0e299bd60de85dcc3ea9 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 12 Aug 2010 19:12:47 -0400 Subject: [PATCH] avoid functions not available in Debian Stable original commit: 6065f8cf125f2917f84651c819cf55b668f002da --- collects/mred/private/wx/gtk/colordialog.rkt | 9 +++++++-- collects/mred/private/wx/gtk/procs.rkt | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/collects/mred/private/wx/gtk/colordialog.rkt b/collects/mred/private/wx/gtk/colordialog.rkt index 1c26323d..c850fe4b 100644 --- a/collects/mred/private/wx/gtk/colordialog.rkt +++ b/collects/mred/private/wx/gtk/colordialog.rkt @@ -7,14 +7,19 @@ "stddialog.rkt") (provide - (protect-out get-color-from-user)) + (protect-out get-color-from-user + color-dialog-works?)) (define-gtk gtk_color_selection_dialog_new (_fun _string -> _GtkWidget)) -(define-gtk gtk_color_selection_dialog_get_color_selection (_fun _GtkWidget -> _GtkWidget)) +(define-gtk gtk_color_selection_dialog_get_color_selection (_fun _GtkWidget -> _GtkWidget) + #:fail (lambda () #f)) (define-gtk gtk_color_selection_get_current_color (_fun _GtkWidget (c : (_ptr o _GdkColor)) -> _void -> c)) (define-gtk gtk_color_selection_set_current_color (_fun _GtkWidget _GdkColor-pointer -> _void)) +(define (color-dialog-works?) + (and gtk_color_selection_dialog_get_color_selection #t)) + (define (get-color-from-user message parent color) (let ([d (as-gtk-window-allocation (gtk_color_selection_dialog_new (or message "Choose Color")))] diff --git a/collects/mred/private/wx/gtk/procs.rkt b/collects/mred/private/wx/gtk/procs.rkt index c88d3a22..86e06ef1 100644 --- a/collects/mred/private/wx/gtk/procs.rkt +++ b/collects/mred/private/wx/gtk/procs.rkt @@ -64,7 +64,9 @@ (define-unimplemented play-sound) -(define (color-from-user-platform-mode) 'dialog) +(define (color-from-user-platform-mode) + (and (color-dialog-works?) + 'dialog)) (define (font-from-user-platform-mode) #f) (define-unimplemented get-font-from-user)