+// kind of widget to use in GetColourFromGTKWidget
+enum GtkWidgetType
+{
+ GTK_BUTTON,
+ GTK_LIST
+};
+
+// wxSystemSettings::GetSystemColour() helper: get the colours from a GTK+
+// widget style, return true if we did get them, false to use defaults
+static bool GetColourFromGTKWidget(GtkWidgetType type, GtkStateType state,
+ int& red, int& green, int& blue)
+{
+ GtkWidget *widget = type == GTK_BUTTON ? gtk_button_new() : gtk_list_new();
+ GtkStyle *def = gtk_rc_get_style( widget );
+ if ( !def )
+ def = gtk_widget_get_default_style();
+
+ bool ok;
+ if ( def )
+ {
+ red = def->bg[state].red;
+ green = def->bg[state].green;
+ blue = def->bg[state].blue;
+
+ ok = TRUE;
+ }
+ else
+ {
+ ok = FALSE;
+ }
+
+ gtk_widget_destroy( widget );
+
+ return ok;
+}
+