diff --git a/app/widgets/gimpthumbbox.c b/app/widgets/gimpthumbbox.c index d1e2aba65a..7a139de55a 100644 --- a/app/widgets/gimpthumbbox.c +++ b/app/widgets/gimpthumbbox.c @@ -54,8 +54,6 @@ static void gimp_thumb_box_progress_iface_init (GimpProgressInterface *iface static void gimp_thumb_box_dispose (GObject *object); static void gimp_thumb_box_finalize (GObject *object); -static void gimp_thumb_box_style_updated (GtkWidget *widget); - static GimpProgress * gimp_thumb_box_progress_start (GimpProgress *progress, gboolean cancellable, @@ -107,10 +105,10 @@ gimp_thumb_box_class_init (GimpThumbBoxClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); - object_class->dispose = gimp_thumb_box_dispose; - object_class->finalize = gimp_thumb_box_finalize; + object_class->dispose = gimp_thumb_box_dispose; + object_class->finalize = gimp_thumb_box_finalize; - widget_class->style_updated = gimp_thumb_box_style_updated; + gtk_widget_class_set_css_name (widget_class, "treeview"); } static void @@ -161,38 +159,6 @@ gimp_thumb_box_finalize (GObject *object) G_OBJECT_CLASS (parent_class)->finalize (object); } -static void -gimp_thumb_box_style_updated (GtkWidget *widget) -{ - GimpThumbBox *box = GIMP_THUMB_BOX (widget); - GtkStyleContext *style = gtk_widget_get_style_context (widget); - GtkWidget *ebox; - GdkRGBA color; - - GTK_WIDGET_CLASS (parent_class)->style_updated (widget); - - gtk_style_context_save (style); - gtk_style_context_add_class (style, GTK_STYLE_CLASS_ENTRY); - gtk_style_context_get_background_color (style, 0, &color); - gtk_style_context_restore (style); - - if (box->preview) - { - gtk_widget_override_background_color (box->preview, 0, &color); - gtk_widget_override_background_color (box->preview, - GTK_STATE_FLAG_INSENSITIVE, &color); - } - - ebox = gtk_bin_get_child (GTK_BIN (widget)); - - if (ebox) - { - gtk_widget_override_background_color (ebox, 0, &color); - gtk_widget_override_background_color (ebox, - GTK_STATE_FLAG_INSENSITIVE, &color); - } -} - static GimpProgress * gimp_thumb_box_progress_start (GimpProgress *progress, gboolean cancellable, @@ -298,6 +264,31 @@ gimp_thumb_box_progress_message (GimpProgress *progress, } +/* stupid GimpHeader class just so we get a "header" CSS node */ + +#define GIMP_TYPE_HEADER (gimp_header_get_type ()) + +typedef struct _GtkBox GimpHeader; +typedef struct _GtkBoxClass GimpHeaderClass; + +static GType gimp_header_get_type (void) G_GNUC_CONST; + +G_DEFINE_TYPE (GimpHeader, gimp_header, GTK_TYPE_BOX) + +static void +gimp_header_class_init (GimpHeaderClass *klass) +{ + gtk_widget_class_set_css_name (GTK_WIDGET_CLASS (klass), "header"); +} + +static void +gimp_header_init (GimpHeader *header) +{ + gtk_orientable_set_orientation (GTK_ORIENTABLE (header), + GTK_ORIENTATION_VERTICAL); +} + + /* public functions */ GtkWidget * @@ -319,6 +310,9 @@ gimp_thumb_box_new (GimpContext *context) box = g_object_new (GIMP_TYPE_THUMB_BOX, NULL); + gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (box)), + GTK_STYLE_CLASS_VIEW); + box->context = context; ebox = gtk_event_box_new (); @@ -342,8 +336,12 @@ gimp_thumb_box_new (GimpContext *context) gtk_container_add (GTK_CONTAINER (ebox), vbox); gtk_widget_show (vbox); + vbox2 = g_object_new (GIMP_TYPE_HEADER, NULL); + gtk_box_pack_start (GTK_BOX (vbox), vbox2, FALSE, FALSE, 0); + gtk_widget_show (vbox2); + button = gtk_button_new (); - gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0); gtk_widget_show (button); label = gtk_label_new_with_mnemonic (_("Pr_eview")); @@ -394,6 +392,8 @@ gimp_thumb_box_new (GimpContext *context) MAX (h, v), 0, FALSE); + gtk_style_context_add_class (gtk_widget_get_style_context (box->preview), + GTK_STYLE_CLASS_VIEW); gtk_box_pack_start (GTK_BOX (hbox), box->preview, TRUE, FALSE, 2); gtk_widget_show (box->preview);