[gtk+] expander: Remove gadget
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] expander: Remove gadget
- Date: Thu, 20 Jul 2017 01:33:31 +0000 (UTC)
commit b29b807c3c6753a09a6910629a26ea71a8a76110
Author: Timm Bäder <mail baedert org>
Date: Thu May 4 08:28:31 2017 +0200
expander: Remove gadget
gtk/gtkexpander.c | 74 +++++++++++++++++++---------------------------------
1 files changed, 27 insertions(+), 47 deletions(-)
---
diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c
index 8aa6ea3..e8daf07 100644
--- a/gtk/gtkexpander.c
+++ b/gtk/gtkexpander.c
@@ -119,8 +119,6 @@
#include "gtkdnd.h"
#include "a11y/gtkexpanderaccessible.h"
#include "gtkstylecontextprivate.h"
-#include "gtkcsscustomgadgetprivate.h"
-#include "gtkboxgadgetprivate.h"
#include "gtkbuiltiniconprivate.h"
#include "gtkwidgetprivate.h"
#include "gtkcontainerprivate.h"
@@ -145,7 +143,7 @@ struct _GtkExpanderPrivate
{
GtkWidget *label_widget;
- GtkCssGadget *gadget;
+ GtkWidget *box;
GtkWidget *title_widget;
GtkWidget *arrow_widget;
@@ -175,9 +173,6 @@ static void gtk_expander_get_property (GObject *object,
static void gtk_expander_destroy (GtkWidget *widget);
static void gtk_expander_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
-static void gtk_expander_snapshot (GtkWidget *widget,
- GtkSnapshot *snapshot);
-
static gboolean gtk_expander_enter_notify (GtkWidget *widget,
GdkEventCrossing *event);
static gboolean gtk_expander_leave_notify (GtkWidget *widget,
@@ -242,7 +237,7 @@ gtk_expander_finalize (GObject *obj)
{
GtkExpanderPrivate *priv = gtk_expander_get_instance_private (GTK_EXPANDER (obj));
- gtk_widget_unparent (priv->title_widget);
+ gtk_widget_unparent (priv->box);
G_OBJECT_CLASS (gtk_expander_parent_class)->finalize (obj);
}
@@ -264,7 +259,6 @@ gtk_expander_class_init (GtkExpanderClass *klass)
widget_class->destroy = gtk_expander_destroy;
widget_class->size_allocate = gtk_expander_size_allocate;
- widget_class->snapshot = gtk_expander_snapshot;
widget_class->enter_notify_event = gtk_expander_enter_notify;
widget_class->leave_notify_event = gtk_expander_leave_notify;
widget_class->focus = gtk_expander_focus;
@@ -359,7 +353,6 @@ static void
gtk_expander_init (GtkExpander *expander)
{
GtkExpanderPrivate *priv;
- GtkCssNode *widget_node;
expander->priv = priv = gtk_expander_get_instance_private (expander);
@@ -377,14 +370,13 @@ gtk_expander_init (GtkExpander *expander)
priv->expand_timer = 0;
priv->resize_toplevel = 0;
- widget_node = gtk_widget_get_css_node (GTK_WIDGET (expander));
- priv->gadget = gtk_box_gadget_new_for_node (widget_node, GTK_WIDGET (expander));
- gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->gadget), GTK_ORIENTATION_VERTICAL);
+ priv->box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+ gtk_widget_set_parent (priv->box, GTK_WIDGET (expander));
+
priv->title_widget = g_object_new (GTK_TYPE_BOX,
"css-name", "title",
NULL);
- gtk_widget_set_parent (priv->title_widget, GTK_WIDGET (expander));
- gtk_box_gadget_insert_widget (GTK_BOX_GADGET (priv->gadget), -1, priv->title_widget);
+ gtk_container_add (GTK_CONTAINER (priv->box), priv->title_widget);
priv->arrow_widget = gtk_icon_new ("arrow");
gtk_style_context_add_class (gtk_widget_get_style_context (priv->arrow_widget),
@@ -518,8 +510,6 @@ gtk_expander_destroy (GtkWidget *widget)
g_clear_object (&priv->multipress_gesture);
GTK_WIDGET_CLASS (gtk_expander_parent_class)->destroy (widget);
-
- g_clear_object (&priv->gadget);
}
static void
@@ -527,26 +517,15 @@ gtk_expander_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
{
GtkExpanderPrivate *priv = GTK_EXPANDER (widget)->priv;
- GtkAllocation clip;
-
- gtk_widget_set_allocation (widget, allocation);
-
- gtk_css_gadget_allocate (priv->gadget,
- allocation,
- gtk_widget_get_allocated_baseline (widget),
- &clip);
+ GtkAllocation clip = *allocation;
+ gtk_widget_size_allocate_with_baseline (priv->box, allocation,
+ gtk_widget_get_allocated_baseline (widget));
+ gtk_widget_get_clip (priv->box, &clip);
gtk_widget_set_clip (widget, &clip);
}
static void
-gtk_expander_snapshot (GtkWidget *widget,
- GtkSnapshot *snapshot)
-{
- gtk_css_gadget_snapshot (GTK_EXPANDER (widget)->priv->gadget, snapshot);
-}
-
-static void
gesture_multipress_pressed_cb (GtkGestureMultiPress *gesture,
gint n_press,
gdouble x,
@@ -906,13 +885,10 @@ gtk_expander_add (GtkContainer *container,
GtkWidget *widget)
{
GtkExpander *expander = GTK_EXPANDER (container);
+ GtkExpanderPrivate *priv = gtk_expander_get_instance_private (expander);
- GTK_CONTAINER_CLASS (gtk_expander_parent_class)->add (container, widget);
-
- gtk_widget_queue_resize (GTK_WIDGET (container));
-
- if (expander->priv->expanded)
- gtk_box_gadget_insert_widget (GTK_BOX_GADGET (expander->priv->gadget), -1, widget);
+ if (priv->expanded)
+ gtk_container_add (GTK_CONTAINER (priv->box), widget);
}
static void
@@ -920,12 +896,13 @@ gtk_expander_remove (GtkContainer *container,
GtkWidget *widget)
{
GtkExpander *expander = GTK_EXPANDER (container);
+ GtkExpanderPrivate *priv = gtk_expander_get_instance_private (expander);
- if (GTK_EXPANDER (expander)->priv->label_widget == widget)
+ if (priv->label_widget == widget)
gtk_expander_set_label_widget (expander, NULL);
else
{
- gtk_box_gadget_remove_widget (GTK_BOX_GADGET (expander->priv->gadget), widget);
+ gtk_container_remove (GTK_CONTAINER (priv->box), widget);
GTK_CONTAINER_CLASS (gtk_expander_parent_class)->remove (container, widget);
}
}
@@ -945,11 +922,14 @@ gtk_expander_measure (GtkWidget *widget,
int *minimum_baseline,
int *natural_baseline)
{
- gtk_css_gadget_get_preferred_size (GTK_EXPANDER (widget)->priv->gadget,
- orientation,
- for_size,
- minimum, natural,
- minimum_baseline, natural_baseline);
+ GtkExpander *expander = GTK_EXPANDER (widget);
+ GtkExpanderPrivate *priv = gtk_expander_get_instance_private (expander);
+
+ gtk_widget_measure (priv->box,
+ orientation,
+ for_size,
+ minimum, natural,
+ minimum_baseline, natural_baseline);
}
/**
@@ -1029,11 +1009,11 @@ gtk_expander_set_expanded (GtkExpander *expander,
if (child)
{
if (priv->expanded)
- gtk_box_gadget_insert_widget (GTK_BOX_GADGET (priv->gadget), 1, child);
+ gtk_container_add (GTK_CONTAINER (priv->box), child);
else
- gtk_box_gadget_remove_widget (GTK_BOX_GADGET (priv->gadget), child);
+ gtk_container_remove (GTK_CONTAINER (priv->box), child);
+ /* TODO: Yeah, I don't think this will work... */
- gtk_widget_queue_resize (GTK_WIDGET (expander));
gtk_expander_resize_toplevel (expander);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]