popover: Remove priv pointer

This commit is contained in:
Timm Bäder 2018-03-29 20:15:39 +02:00
parent 809fdaa3e4
commit b2f04be04c
2 changed files with 70 additions and 62 deletions

View File

@ -168,6 +168,7 @@ enum {
STATE_HIDDEN STATE_HIDDEN
}; };
typedef struct _GtkPopoverPrivate GtkPopoverPrivate;
struct _GtkPopoverPrivate struct _GtkPopoverPrivate
{ {
GtkWidget *widget; GtkWidget *widget;
@ -269,36 +270,36 @@ node_style_changed_cb (GtkCssNode *node,
static void static void
gtk_popover_init (GtkPopover *popover) gtk_popover_init (GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
GtkWidget *widget; GtkWidget *widget;
GtkStyleContext *context; GtkStyleContext *context;
widget = GTK_WIDGET (popover); widget = GTK_WIDGET (popover);
gtk_widget_set_has_surface (widget, TRUE); gtk_widget_set_has_surface (widget, TRUE);
popover->priv = gtk_popover_get_instance_private (popover); priv->modal = TRUE;
popover->priv->modal = TRUE; priv->tick_id = 0;
popover->priv->tick_id = 0; priv->state = STATE_HIDDEN;
popover->priv->state = STATE_HIDDEN; priv->visible = FALSE;
popover->priv->visible = FALSE; priv->preferred_position = GTK_POS_TOP;
popover->priv->preferred_position = GTK_POS_TOP; priv->constraint = GTK_POPOVER_CONSTRAINT_WINDOW;
popover->priv->constraint = GTK_POPOVER_CONSTRAINT_WINDOW;
popover->priv->arrow_node = gtk_css_node_new (); priv->arrow_node = gtk_css_node_new ();
gtk_css_node_set_name (popover->priv->arrow_node, I_("arrow")); gtk_css_node_set_name (priv->arrow_node, I_("arrow"));
gtk_css_node_set_parent (popover->priv->arrow_node, gtk_widget_get_css_node (widget)); gtk_css_node_set_parent (priv->arrow_node, gtk_widget_get_css_node (widget));
gtk_css_node_set_state (popover->priv->arrow_node, gtk_css_node_set_state (priv->arrow_node,
gtk_css_node_get_state (gtk_widget_get_css_node (widget))); gtk_css_node_get_state (gtk_widget_get_css_node (widget)));
g_signal_connect_object (popover->priv->arrow_node, "style-changed", g_signal_connect_object (priv->arrow_node, "style-changed",
G_CALLBACK (node_style_changed_cb), popover, 0); G_CALLBACK (node_style_changed_cb), popover, 0);
g_object_unref (popover->priv->arrow_node); g_object_unref (priv->arrow_node);
popover->priv->contents_widget = gtk_gizmo_new ("contents", priv->contents_widget = gtk_gizmo_new ("contents",
measure_contents, measure_contents,
allocate_contents, allocate_contents,
NULL); NULL);
gtk_widget_set_parent (popover->priv->contents_widget, widget); gtk_widget_set_parent (priv->contents_widget, widget);
context = gtk_widget_get_style_context (popover->priv->contents_widget); context = gtk_widget_get_style_context (priv->contents_widget);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_BACKGROUND); gtk_style_context_add_class (context, GTK_STYLE_CLASS_BACKGROUND);
} }
@ -341,7 +342,7 @@ gtk_popover_get_property (GObject *object,
GValue *value, GValue *value,
GParamSpec *pspec) GParamSpec *pspec)
{ {
GtkPopoverPrivate *priv = GTK_POPOVER (object)->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (GTK_POPOVER (object));
switch (prop_id) switch (prop_id)
{ {
@ -399,7 +400,7 @@ static void
gtk_popover_finalize (GObject *object) gtk_popover_finalize (GObject *object)
{ {
GtkPopover *popover = GTK_POPOVER (object); GtkPopover *popover = GTK_POPOVER (object);
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (priv->widget) if (priv->widget)
gtk_popover_update_relative_to (popover, NULL); gtk_popover_update_relative_to (popover, NULL);
@ -410,7 +411,7 @@ gtk_popover_finalize (GObject *object)
static void static void
popover_unset_prev_focus (GtkPopover *popover) popover_unset_prev_focus (GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (!priv->prev_focus_widget) if (!priv->prev_focus_widget)
return; return;
@ -429,7 +430,7 @@ static void
gtk_popover_dispose (GObject *object) gtk_popover_dispose (GObject *object)
{ {
GtkPopover *popover = GTK_POPOVER (object); GtkPopover *popover = GTK_POPOVER (object);
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (priv->modal) if (priv->modal)
gtk_popover_apply_modality (popover, FALSE); gtk_popover_apply_modality (popover, FALSE);
@ -579,7 +580,7 @@ static void
gtk_popover_apply_modality (GtkPopover *popover, gtk_popover_apply_modality (GtkPopover *popover,
gboolean modal) gboolean modal)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (!priv->window) if (!priv->window)
return; return;
@ -684,7 +685,7 @@ show_animate_cb (GtkWidget *widget,
static void static void
gtk_popover_stop_transition (GtkPopover *popover) gtk_popover_stop_transition (GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (priv->tick_id != 0) if (priv->tick_id != 0)
{ {
@ -696,7 +697,7 @@ gtk_popover_stop_transition (GtkPopover *popover)
static void static void
gtk_popover_start_transition (GtkPopover *popover) gtk_popover_start_transition (GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (priv->tick_id != 0) if (priv->tick_id != 0)
return; return;
@ -712,7 +713,7 @@ static void
gtk_popover_set_state (GtkPopover *popover, gtk_popover_set_state (GtkPopover *popover,
guint state) guint state)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (!transitions_enabled (popover) || if (!transitions_enabled (popover) ||
!gtk_widget_get_realized (GTK_WIDGET (popover))) !gtk_widget_get_realized (GTK_WIDGET (popover)))
@ -738,7 +739,7 @@ gtk_popover_set_state (GtkPopover *popover,
static void static void
gtk_popover_map (GtkWidget *widget) gtk_popover_map (GtkWidget *widget)
{ {
GtkPopoverPrivate *priv = GTK_POPOVER (widget)->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (GTK_POPOVER (widget));
priv->prev_default = gtk_window_get_default_widget (priv->window); priv->prev_default = gtk_window_get_default_widget (priv->window);
if (priv->prev_default) if (priv->prev_default)
@ -755,7 +756,7 @@ gtk_popover_map (GtkWidget *widget)
static void static void
gtk_popover_unmap (GtkWidget *widget) gtk_popover_unmap (GtkWidget *widget)
{ {
GtkPopoverPrivate *priv = GTK_POPOVER (widget)->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (GTK_POPOVER (widget));
priv->button_pressed = FALSE; priv->button_pressed = FALSE;
@ -803,7 +804,7 @@ gtk_popover_get_gap_coords (GtkPopover *popover,
gint *final_y_out) gint *final_y_out)
{ {
GtkWidget *widget = GTK_WIDGET (popover); GtkWidget *widget = GTK_WIDGET (popover);
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
GdkRectangle rect = { 0 }; GdkRectangle rect = { 0 };
gint base, tip, tip_pos; gint base, tip, tip_pos;
gint initial_x, initial_y; gint initial_x, initial_y;
@ -960,16 +961,17 @@ static void
gtk_popover_apply_tail_path (GtkPopover *popover, gtk_popover_apply_tail_path (GtkPopover *popover,
cairo_t *cr) cairo_t *cr)
{ {
GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
gint initial_x, initial_y; gint initial_x, initial_y;
gint tip_x, tip_y; gint tip_x, tip_y;
gint final_x, final_y; gint final_x, final_y;
GtkStyleContext *context; GtkStyleContext *context;
GtkBorder border; GtkBorder border;
if (!popover->priv->widget) if (!priv->widget)
return; return;
context = gtk_widget_get_style_context (popover->priv->contents_widget); context = gtk_widget_get_style_context (priv->contents_widget);
gtk_style_context_get_border (context, &border); gtk_style_context_get_border (context, &border);
cairo_set_line_width (cr, 1); cairo_set_line_width (cr, 1);
@ -1049,7 +1051,7 @@ gtk_popover_update_shape (GtkPopover *popover)
static void static void
_gtk_popover_update_child_visible (GtkPopover *popover) _gtk_popover_update_child_visible (GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
GtkWidget *widget = GTK_WIDGET (popover); GtkWidget *widget = GTK_WIDGET (popover);
GdkRectangle rect; GdkRectangle rect;
GtkAllocation allocation; GtkAllocation allocation;
@ -1092,7 +1094,7 @@ opposite_position (GtkPositionType pos)
void void
gtk_popover_update_position (GtkPopover *popover) gtk_popover_update_position (GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
GtkWidget *widget = GTK_WIDGET (popover); GtkWidget *widget = GTK_WIDGET (popover);
GtkAllocation window_alloc; GtkAllocation window_alloc;
GtkBorder window_shadow; GtkBorder window_shadow;
@ -1273,7 +1275,7 @@ static gint
get_minimal_size (GtkPopover *popover, get_minimal_size (GtkPopover *popover,
GtkOrientation orientation) GtkOrientation orientation)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
GtkPositionType pos; GtkPositionType pos;
gint minimal_size; gint minimal_size;
@ -1374,9 +1376,10 @@ gtk_popover_event (GtkWidget *widget,
GdkEvent *event) GdkEvent *event)
{ {
GtkPopover *popover = GTK_POPOVER (widget); GtkPopover *popover = GTK_POPOVER (widget);
GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (gdk_event_get_event_type (event) == GDK_BUTTON_PRESS) if (gdk_event_get_event_type (event) == GDK_BUTTON_PRESS)
popover->priv->button_pressed = TRUE; priv->button_pressed = TRUE;
else if (gdk_event_get_event_type (event) == GDK_BUTTON_RELEASE) else if (gdk_event_get_event_type (event) == GDK_BUTTON_RELEASE)
{ {
GtkAllocation child_alloc; GtkAllocation child_alloc;
@ -1385,7 +1388,7 @@ gtk_popover_event (GtkWidget *widget,
child = gtk_bin_get_child (GTK_BIN (widget)); child = gtk_bin_get_child (GTK_BIN (widget));
if (!popover->priv->button_pressed || if (!priv->button_pressed ||
!gdk_event_get_coords (event, &x, &y)) !gdk_event_get_coords (event, &x, &y))
return GDK_EVENT_PROPAGATE; return GDK_EVENT_PROPAGATE;
@ -1406,6 +1409,7 @@ gtk_popover_key_press (GtkWidget *widget,
GdkEventKey *event) GdkEventKey *event)
{ {
GtkWidget *toplevel, *focus; GtkWidget *toplevel, *focus;
GtkPopoverPrivate *priv = gtk_popover_get_instance_private (GTK_POPOVER (widget));
guint keyval; guint keyval;
if (!gdk_event_get_keyval ((GdkEvent *) event, &keyval)) if (!gdk_event_get_keyval ((GdkEvent *) event, &keyval))
@ -1417,7 +1421,7 @@ gtk_popover_key_press (GtkWidget *widget,
return GDK_EVENT_STOP; return GDK_EVENT_STOP;
} }
if (!GTK_POPOVER (widget)->priv->modal) if (!priv->modal)
return GDK_EVENT_PROPAGATE; return GDK_EVENT_PROPAGATE;
toplevel = gtk_widget_get_toplevel (widget); toplevel = gtk_widget_get_toplevel (widget);
@ -1436,7 +1440,7 @@ gtk_popover_key_press (GtkWidget *widget,
static void static void
gtk_popover_grab_focus (GtkWidget *widget) gtk_popover_grab_focus (GtkWidget *widget)
{ {
GtkPopoverPrivate *priv = GTK_POPOVER (widget)->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (GTK_POPOVER (widget));
GtkWidget *child; GtkWidget *child;
if (!priv->visible) if (!priv->visible)
@ -1454,7 +1458,7 @@ gtk_popover_focus (GtkWidget *widget,
GtkDirectionType direction) GtkDirectionType direction)
{ {
GtkPopover *popover = GTK_POPOVER (widget); GtkPopover *popover = GTK_POPOVER (widget);
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (!priv->visible) if (!priv->visible)
return FALSE; return FALSE;
@ -1463,7 +1467,7 @@ gtk_popover_focus (GtkWidget *widget,
{ {
GtkWidget *focus; GtkWidget *focus;
focus = gtk_window_get_focus (popover->priv->window); focus = gtk_window_get_focus (priv->window);
focus = gtk_widget_get_parent (focus); focus = gtk_widget_get_parent (focus);
/* Unset focus child through children, so it is next stepped from /* Unset focus child through children, so it is next stepped from
@ -1485,7 +1489,7 @@ gtk_popover_focus (GtkWidget *widget,
static void static void
gtk_popover_show (GtkWidget *widget) gtk_popover_show (GtkWidget *widget)
{ {
GtkPopoverPrivate *priv = GTK_POPOVER (widget)->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (GTK_POPOVER (widget));
if (priv->window) if (priv->window)
_gtk_window_raise_popover (priv->window, widget); _gtk_window_raise_popover (priv->window, widget);
@ -1507,7 +1511,7 @@ gtk_popover_show (GtkWidget *widget)
static void static void
gtk_popover_hide (GtkWidget *widget) gtk_popover_hide (GtkWidget *widget)
{ {
GtkPopoverPrivate *priv = GTK_POPOVER (widget)->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (GTK_POPOVER (widget));
gtk_popover_hide_internal (GTK_POPOVER (widget)); gtk_popover_hide_internal (GTK_POPOVER (widget));
@ -1665,7 +1669,7 @@ gtk_popover_class_init (GtkPopoverClass *klass)
static void static void
gtk_popover_update_scrollable (GtkPopover *popover) gtk_popover_update_scrollable (GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
GtkScrollable *scrollable; GtkScrollable *scrollable;
scrollable = GTK_SCROLLABLE (gtk_widget_get_ancestor (priv->widget, scrollable = GTK_SCROLLABLE (gtk_widget_get_ancestor (priv->widget,
@ -1678,7 +1682,7 @@ _gtk_popover_parent_hierarchy_changed (GtkWidget *widget,
GtkWidget *previous_toplevel, GtkWidget *previous_toplevel,
GtkPopover *popover) GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
GtkWindow *new_window; GtkWindow *new_window;
new_window = GTK_WINDOW (gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW)); new_window = GTK_WINDOW (gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW));
@ -1746,7 +1750,7 @@ _gtk_popover_parent_grab_notify (GtkWidget *widget,
gboolean was_shadowed, gboolean was_shadowed,
GtkPopover *popover) GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (priv->modal && if (priv->modal &&
gtk_widget_is_visible (GTK_WIDGET (popover)) && gtk_widget_is_visible (GTK_WIDGET (popover)) &&
@ -1765,7 +1769,7 @@ static void
_gtk_popover_parent_unmap (GtkWidget *widget, _gtk_popover_parent_unmap (GtkWidget *widget,
GtkPopover *popover) GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (priv->state == STATE_SHOWING) if (priv->state == STATE_SHOWING)
priv->visible = FALSE; priv->visible = FALSE;
@ -1835,7 +1839,7 @@ static void
_gtk_popover_set_scrollable (GtkPopover *popover, _gtk_popover_set_scrollable (GtkPopover *popover,
GtkScrollable *scrollable) GtkScrollable *scrollable)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (priv->parent_scrollable) if (priv->parent_scrollable)
{ {
@ -1897,7 +1901,7 @@ static void
gtk_popover_set_scrollable_full (GtkPopover *popover, gtk_popover_set_scrollable_full (GtkPopover *popover,
GtkScrollable *scrollable) GtkScrollable *scrollable)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (priv->scrollable_notify_id != 0 && if (priv->scrollable_notify_id != 0 &&
g_signal_handler_is_connected (priv->parent_scrollable, priv->scrollable_notify_id)) g_signal_handler_is_connected (priv->parent_scrollable, priv->scrollable_notify_id))
@ -1920,7 +1924,7 @@ static void
gtk_popover_update_relative_to (GtkPopover *popover, gtk_popover_update_relative_to (GtkPopover *popover,
GtkWidget *relative_to) GtkWidget *relative_to)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (priv->widget == relative_to) if (priv->widget == relative_to)
return; return;
@ -2001,7 +2005,7 @@ static void
gtk_popover_update_pointing_to (GtkPopover *popover, gtk_popover_update_pointing_to (GtkPopover *popover,
const GdkRectangle *pointing_to) const GdkRectangle *pointing_to)
{ {
GtkPopoverPrivate *priv = popover->priv; GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (pointing_to) if (pointing_to)
{ {
@ -2018,10 +2022,12 @@ static void
gtk_popover_update_preferred_position (GtkPopover *popover, gtk_popover_update_preferred_position (GtkPopover *popover,
GtkPositionType position) GtkPositionType position)
{ {
if (popover->priv->preferred_position == position) GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
if (priv->preferred_position == position)
return; return;
popover->priv->preferred_position = position; priv->preferred_position = position;
g_object_notify_by_pspec (G_OBJECT (popover), properties[PROP_POSITION]); g_object_notify_by_pspec (G_OBJECT (popover), properties[PROP_POSITION]);
} }
@ -2080,9 +2086,11 @@ gtk_popover_set_relative_to (GtkPopover *popover,
GtkWidget * GtkWidget *
gtk_popover_get_relative_to (GtkPopover *popover) gtk_popover_get_relative_to (GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
g_return_val_if_fail (GTK_IS_POPOVER (popover), NULL); g_return_val_if_fail (GTK_IS_POPOVER (popover), NULL);
return popover->priv->widget; return priv->widget;
} }
/** /**
@ -2168,9 +2176,11 @@ gtk_popover_set_position (GtkPopover *popover,
GtkPositionType GtkPositionType
gtk_popover_get_position (GtkPopover *popover) gtk_popover_get_position (GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
g_return_val_if_fail (GTK_IS_POPOVER (popover), GTK_POS_TOP); g_return_val_if_fail (GTK_IS_POPOVER (popover), GTK_POS_TOP);
return popover->priv->preferred_position; return priv->preferred_position;
} }
/** /**
@ -2216,9 +2226,11 @@ gtk_popover_set_modal (GtkPopover *popover,
gboolean gboolean
gtk_popover_get_modal (GtkPopover *popover) gtk_popover_get_modal (GtkPopover *popover)
{ {
GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
g_return_val_if_fail (GTK_IS_POPOVER (popover), FALSE); g_return_val_if_fail (GTK_IS_POPOVER (popover), FALSE);
return popover->priv->modal; return priv->modal;
} }
static void static void
@ -2267,6 +2279,7 @@ gtk_popover_bind_model (GtkPopover *popover,
GMenuModel *model, GMenuModel *model,
const gchar *action_namespace) const gchar *action_namespace)
{ {
GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
GtkWidget *child; GtkWidget *child;
GtkWidget *stack; GtkWidget *stack;
GtkStyleContext *style_context; GtkStyleContext *style_context;
@ -2278,7 +2291,7 @@ gtk_popover_bind_model (GtkPopover *popover,
if (child) if (child)
gtk_widget_destroy (child); gtk_widget_destroy (child);
style_context = gtk_widget_get_style_context (popover->priv->contents_widget); style_context = gtk_widget_get_style_context (priv->contents_widget);
if (model) if (model)
{ {

View File

@ -35,15 +35,10 @@ G_BEGIN_DECLS
typedef struct _GtkPopover GtkPopover; typedef struct _GtkPopover GtkPopover;
typedef struct _GtkPopoverClass GtkPopoverClass; typedef struct _GtkPopoverClass GtkPopoverClass;
typedef struct _GtkPopoverPrivate GtkPopoverPrivate;
struct _GtkPopover struct _GtkPopover
{ {
GtkBin parent_instance; GtkBin parent_instance;
/*< private >*/
GtkPopoverPrivate *priv;
}; };
struct _GtkPopoverClass struct _GtkPopoverClass