[gimp] app: undeprecate GimpThumbBox
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: undeprecate GimpThumbBox
- Date: Mon, 21 May 2018 18:01:24 +0000 (UTC)
commit 15ec52eab4381f2dd0b786366e1bdffd8ced56c7
Author: Michael Natterer <mitch gimp org>
Date: Mon May 21 19:59:38 2018 +0200
app: undeprecate GimpThumbBox
and cheat around to trick CSS into believing it's a treeview with
a header that says "Preview". Setting its width so it won't jump
around is still broken.
app/widgets/gimpthumbbox.c | 76 ++++++++++++++++++++++----------------------
1 files changed, 38 insertions(+), 38 deletions(-)
---
diff --git a/app/widgets/gimpthumbbox.c b/app/widgets/gimpthumbbox.c
index d1e2aba..7a139de 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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]