[gtk/matthiasc/for-master: 15/15] stackswitcher: Drop the Private struct
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/matthiasc/for-master: 15/15] stackswitcher: Drop the Private struct
- Date: Sun, 26 Apr 2020 19:50:26 +0000 (UTC)
commit dc99a7aa61386623a7fa58041b6f3d7d6e824147
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Apr 26 15:48:46 2020 -0400
stackswitcher: Drop the Private struct
gtk/gtkstackswitcher.c | 87 +++++++++++++++++---------------------------------
1 file changed, 30 insertions(+), 57 deletions(-)
---
diff --git a/gtk/gtkstackswitcher.c b/gtk/gtkstackswitcher.c
index 9e0a771f44..3098ffc38c 100644
--- a/gtk/gtkstackswitcher.c
+++ b/gtk/gtkstackswitcher.c
@@ -68,11 +68,14 @@
#define TIMEOUT_EXPAND 500
typedef struct _GtkStackSwitcherClass GtkStackSwitcherClass;
-typedef struct _GtkStackSwitcherPrivate GtkStackSwitcherPrivate;
struct _GtkStackSwitcher
{
GtkWidget parent_instance;
+
+ GtkStack *stack;
+ GtkSelectionModel *pages;
+ GHashTable *buttons;
};
struct _GtkStackSwitcherClass
@@ -80,26 +83,17 @@ struct _GtkStackSwitcherClass
GtkWidgetClass parent_class;
};
-struct _GtkStackSwitcherPrivate
-{
- GtkStack *stack;
- GtkSelectionModel *pages;
- GHashTable *buttons;
-};
-
enum {
PROP_0,
PROP_STACK
};
-G_DEFINE_TYPE_WITH_PRIVATE (GtkStackSwitcher, gtk_stack_switcher, GTK_TYPE_WIDGET)
+G_DEFINE_TYPE (GtkStackSwitcher, gtk_stack_switcher, GTK_TYPE_WIDGET)
static void
gtk_stack_switcher_init (GtkStackSwitcher *switcher)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
- priv->buttons = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, NULL);
+ switcher->buttons = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, NULL);
gtk_widget_add_css_class (GTK_WIDGET (switcher), "linked");
}
@@ -109,7 +103,6 @@ on_button_toggled (GtkWidget *button,
GParamSpec *pspec,
GtkStackSwitcher *self)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (self);
gboolean active;
guint index;
@@ -118,11 +111,11 @@ on_button_toggled (GtkWidget *button,
if (active)
{
- gtk_selection_model_select_item (priv->pages, index, TRUE);
+ gtk_selection_model_select_item (self->pages, index, TRUE);
}
else
{
- gboolean selected = gtk_selection_model_is_selected (priv->pages, index);
+ gboolean selected = gtk_selection_model_is_selected (self->pages, index);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), selected);
}
}
@@ -201,10 +194,9 @@ on_page_updated (GtkStackPage *page,
GParamSpec *pspec,
GtkStackSwitcher *self)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (self);
GtkWidget *button;
- button = g_hash_table_lookup (priv->buttons, page);
+ button = g_hash_table_lookup (self->buttons, page);
update_button (self, page, button);
}
@@ -255,7 +247,6 @@ static void
add_child (guint position,
GtkStackSwitcher *self)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (self);
GtkWidget *button;
gboolean selected;
GtkStackPage *page;
@@ -269,19 +260,19 @@ add_child (guint position,
g_signal_connect (controller, "leave", G_CALLBACK (gtk_stack_switcher_drag_leave), NULL);
gtk_widget_add_controller (button, controller);
- page = g_list_model_get_item (G_LIST_MODEL (priv->pages), position);
+ page = g_list_model_get_item (G_LIST_MODEL (self->pages), position);
update_button (self, page, button);
gtk_widget_set_parent (button, GTK_WIDGET (self));
g_object_set_data (G_OBJECT (button), "child-index", GUINT_TO_POINTER (position));
- selected = gtk_selection_model_is_selected (priv->pages, position);
+ selected = gtk_selection_model_is_selected (self->pages, position);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), selected);
g_signal_connect (button, "notify::active", G_CALLBACK (on_button_toggled), self);
g_signal_connect (page, "notify", G_CALLBACK (on_page_updated), self);
- g_hash_table_insert (priv->buttons, g_object_ref (page), button);
+ g_hash_table_insert (self->buttons, g_object_ref (page), button);
g_object_unref (page);
}
@@ -289,22 +280,20 @@ add_child (guint position,
static void
populate_switcher (GtkStackSwitcher *self)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (self);
guint i;
- for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (priv->pages)); i++)
+ for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (self->pages)); i++)
add_child (i, self);
}
static void
clear_switcher (GtkStackSwitcher *self)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (self);
GHashTableIter iter;
GtkWidget *page;
GtkWidget *button;
- g_hash_table_iter_init (&iter, priv->buttons);
+ g_hash_table_iter_init (&iter, self->buttons);
while (g_hash_table_iter_next (&iter, (gpointer *)&page, (gpointer *)&button))
{
gtk_widget_unparent (button);
@@ -330,7 +319,6 @@ selection_changed_cb (GtkSelectionModel *model,
guint n_items,
GtkStackSwitcher *switcher)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
guint i;
for (i = position; i < position + n_items; i++)
@@ -339,11 +327,11 @@ selection_changed_cb (GtkSelectionModel *model,
GtkWidget *button;
gboolean selected;
- page = g_list_model_get_item (G_LIST_MODEL (priv->pages), i);
- button = g_hash_table_lookup (priv->buttons, page);
+ page = g_list_model_get_item (G_LIST_MODEL (switcher->pages), i);
+ button = g_hash_table_lookup (switcher->buttons, page);
if (button)
{
- selected = gtk_selection_model_is_selected (priv->pages, i);
+ selected = gtk_selection_model_is_selected (switcher->pages, i);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), selected);
}
g_object_unref (page);
@@ -353,31 +341,25 @@ selection_changed_cb (GtkSelectionModel *model,
static void
disconnect_stack_signals (GtkStackSwitcher *switcher)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
- g_signal_handlers_disconnect_by_func (priv->pages, items_changed_cb, switcher);
- g_signal_handlers_disconnect_by_func (priv->pages, selection_changed_cb, switcher);
+ g_signal_handlers_disconnect_by_func (switcher->pages, items_changed_cb, switcher);
+ g_signal_handlers_disconnect_by_func (switcher->pages, selection_changed_cb, switcher);
}
static void
connect_stack_signals (GtkStackSwitcher *switcher)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
- g_signal_connect (priv->pages, "items-changed", G_CALLBACK (items_changed_cb), switcher);
- g_signal_connect (priv->pages, "selection-changed", G_CALLBACK (selection_changed_cb), switcher);
+ g_signal_connect (switcher->pages, "items-changed", G_CALLBACK (items_changed_cb), switcher);
+ g_signal_connect (switcher->pages, "selection-changed", G_CALLBACK (selection_changed_cb), switcher);
}
static void
set_stack (GtkStackSwitcher *switcher,
GtkStack *stack)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
if (stack)
{
- priv->stack = g_object_ref (stack);
- priv->pages = gtk_stack_get_pages (stack);
+ switcher->stack = g_object_ref (stack);
+ switcher->pages = gtk_stack_get_pages (stack);
populate_switcher (switcher);
connect_stack_signals (switcher);
}
@@ -386,14 +368,12 @@ set_stack (GtkStackSwitcher *switcher,
static void
unset_stack (GtkStackSwitcher *switcher)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
- if (priv->stack)
+ if (switcher->stack)
{
disconnect_stack_signals (switcher);
clear_switcher (switcher);
- g_clear_object (&priv->stack);
- g_clear_object (&priv->pages);
+ g_clear_object (&switcher->stack);
+ g_clear_object (&switcher->pages);
}
}
@@ -408,12 +388,10 @@ void
gtk_stack_switcher_set_stack (GtkStackSwitcher *switcher,
GtkStack *stack)
{
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
-
g_return_if_fail (GTK_IS_STACK_SWITCHER (switcher));
g_return_if_fail (GTK_IS_STACK (stack) || stack == NULL);
- if (priv->stack == stack)
+ if (switcher->stack == stack)
return;
unset_stack (switcher);
@@ -437,11 +415,9 @@ gtk_stack_switcher_set_stack (GtkStackSwitcher *switcher,
GtkStack *
gtk_stack_switcher_get_stack (GtkStackSwitcher *switcher)
{
- GtkStackSwitcherPrivate *priv;
g_return_val_if_fail (GTK_IS_STACK_SWITCHER (switcher), NULL);
- priv = gtk_stack_switcher_get_instance_private (switcher);
- return priv->stack;
+ return switcher->stack;
}
static void
@@ -451,13 +427,11 @@ gtk_stack_switcher_get_property (GObject *object,
GParamSpec *pspec)
{
GtkStackSwitcher *switcher = GTK_STACK_SWITCHER (object);
- GtkStackSwitcherPrivate *priv;
- priv = gtk_stack_switcher_get_instance_private (switcher);
switch (prop_id)
{
case PROP_STACK:
- g_value_set_object (value, priv->stack);
+ g_value_set_object (value, switcher->stack);
break;
default:
@@ -500,9 +474,8 @@ static void
gtk_stack_switcher_finalize (GObject *object)
{
GtkStackSwitcher *switcher = GTK_STACK_SWITCHER (object);
- GtkStackSwitcherPrivate *priv = gtk_stack_switcher_get_instance_private (switcher);
- g_hash_table_destroy (priv->buttons);
+ g_hash_table_destroy (switcher->buttons);
G_OBJECT_CLASS (gtk_stack_switcher_parent_class)->finalize (object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]