From 9156be6bf17dfc5783ffd8b32fb65288543c3c55 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 26 Apr 2020 15:02:16 -0400 Subject: [PATCH 1/9] viewport: Drop the Private struct --- gtk/gtkviewport.c | 82 ++++++++++++++++++----------------------------- 1 file changed, 31 insertions(+), 51 deletions(-) diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c index d03a7f1fda..337decca78 100644 --- a/gtk/gtkviewport.c +++ b/gtk/gtkviewport.c @@ -70,10 +70,7 @@ typedef struct _GtkViewportClass GtkViewportClass; struct _GtkViewport { GtkBin parent_instance; -}; -struct _GtkViewportPrivate -{ GtkAdjustment *hadjustment; GtkAdjustment *vadjustment; @@ -124,7 +121,6 @@ static void setup_focus_change_handler (GtkViewport *viewport); static void clear_focus_change_handler (GtkViewport *viewport); G_DEFINE_TYPE_WITH_CODE (GtkViewport, gtk_viewport, GTK_TYPE_BIN, - G_ADD_PRIVATE (GtkViewport) G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE, NULL)) static void @@ -132,7 +128,6 @@ viewport_set_adjustment_values (GtkViewport *viewport, GtkOrientation orientation) { GtkBin *bin = GTK_BIN (viewport); - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); GtkAdjustment *adjustment; GtkScrollablePolicy scroll_policy; GtkScrollablePolicy other_scroll_policy; @@ -147,21 +142,21 @@ viewport_set_adjustment_values (GtkViewport *viewport, if (orientation == GTK_ORIENTATION_HORIZONTAL) { - adjustment = priv->hadjustment; + adjustment = viewport->hadjustment; other_orientation = GTK_ORIENTATION_VERTICAL; viewport_size = view_width; other_viewport_size = view_height; - scroll_policy = priv->hscroll_policy; - other_scroll_policy = priv->vscroll_policy; + scroll_policy = viewport->hscroll_policy; + other_scroll_policy = viewport->vscroll_policy; } else /* VERTICAL */ { - adjustment = priv->vadjustment; + adjustment = viewport->vadjustment; other_orientation = GTK_ORIENTATION_HORIZONTAL; viewport_size = view_height; other_viewport_size = view_width; - scroll_policy = priv->vscroll_policy; - other_scroll_policy = priv->hscroll_policy; + scroll_policy = viewport->vscroll_policy; + other_scroll_policy = viewport->hscroll_policy; } @@ -249,11 +244,10 @@ static void gtk_viewport_root (GtkWidget *widget) { GtkViewport *viewport = GTK_VIEWPORT (widget); - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); GTK_WIDGET_CLASS (gtk_viewport_parent_class)->root (widget); - if (priv->scroll_to_focus) + if (viewport->scroll_to_focus) setup_focus_change_handler (viewport); } @@ -261,9 +255,8 @@ static void gtk_viewport_unroot (GtkWidget *widget) { GtkViewport *viewport = GTK_VIEWPORT (widget); - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); - if (priv->scroll_to_focus) + if (viewport->scroll_to_focus) clear_focus_change_handler (viewport); GTK_WIDGET_CLASS (gtk_viewport_parent_class)->unroot (widget); @@ -314,7 +307,6 @@ gtk_viewport_set_property (GObject *object, GParamSpec *pspec) { GtkViewport *viewport = GTK_VIEWPORT (object); - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); switch (prop_id) { @@ -325,17 +317,17 @@ gtk_viewport_set_property (GObject *object, viewport_set_adjustment (viewport, GTK_ORIENTATION_VERTICAL, g_value_get_object (value)); break; case PROP_HSCROLL_POLICY: - if (priv->hscroll_policy != g_value_get_enum (value)) + if (viewport->hscroll_policy != g_value_get_enum (value)) { - priv->hscroll_policy = g_value_get_enum (value); + viewport->hscroll_policy = g_value_get_enum (value); gtk_widget_queue_resize (GTK_WIDGET (viewport)); g_object_notify_by_pspec (object, pspec); } break; case PROP_VSCROLL_POLICY: - if (priv->vscroll_policy != g_value_get_enum (value)) + if (viewport->vscroll_policy != g_value_get_enum (value)) { - priv->vscroll_policy = g_value_get_enum (value); + viewport->vscroll_policy = g_value_get_enum (value); gtk_widget_queue_resize (GTK_WIDGET (viewport)); g_object_notify_by_pspec (object, pspec); } @@ -356,24 +348,23 @@ gtk_viewport_get_property (GObject *object, GParamSpec *pspec) { GtkViewport *viewport = GTK_VIEWPORT (object); - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); switch (prop_id) { case PROP_HADJUSTMENT: - g_value_set_object (value, priv->hadjustment); + g_value_set_object (value, viewport->hadjustment); break; case PROP_VADJUSTMENT: - g_value_set_object (value, priv->vadjustment); + g_value_set_object (value, viewport->vadjustment); break; case PROP_HSCROLL_POLICY: - g_value_set_enum (value, priv->hscroll_policy); + g_value_set_enum (value, viewport->hscroll_policy); break; case PROP_VSCROLL_POLICY: - g_value_set_enum (value, priv->vscroll_policy); + g_value_set_enum (value, viewport->vscroll_policy); break; case PROP_SCROLL_TO_FOCUS: - g_value_set_boolean (value, priv->scroll_to_focus); + g_value_set_boolean (value, viewport->scroll_to_focus); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -385,14 +376,13 @@ static void gtk_viewport_init (GtkViewport *viewport) { GtkWidget *widget; - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); widget = GTK_WIDGET (viewport); gtk_widget_set_overflow (widget, GTK_OVERFLOW_HIDDEN); - priv->hadjustment = NULL; - priv->vadjustment = NULL; + viewport->hadjustment = NULL; + viewport->vadjustment = NULL; gtk_widget_add_css_class (widget, GTK_STYLE_CLASS_FRAME); viewport_set_adjustment (viewport, GTK_ORIENTATION_HORIZONTAL, NULL); @@ -425,13 +415,12 @@ gtk_viewport_new (GtkAdjustment *hadjustment, #define ADJUSTMENT_POINTER(orientation) \ (((orientation) == GTK_ORIENTATION_HORIZONTAL) ? \ - &priv->hadjustment : &priv->vadjustment) + &viewport->hadjustment : &viewport->vadjustment) static void viewport_disconnect_adjustment (GtkViewport *viewport, GtkOrientation orientation) { - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); GtkAdjustment **adjustmentp = ADJUSTMENT_POINTER (orientation); if (*adjustmentp) @@ -460,7 +449,6 @@ viewport_set_adjustment (GtkViewport *viewport, GtkOrientation orientation, GtkAdjustment *adjustment) { - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); GtkAdjustment **adjustmentp = ADJUSTMENT_POINTER (orientation); if (adjustment && adjustment == *adjustmentp) @@ -488,9 +476,8 @@ gtk_viewport_size_allocate (GtkWidget *widget, int baseline) { GtkViewport *viewport = GTK_VIEWPORT (widget); - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); - GtkAdjustment *hadjustment = priv->hadjustment; - GtkAdjustment *vadjustment = priv->vadjustment; + GtkAdjustment *hadjustment = viewport->hadjustment; + GtkAdjustment *vadjustment = viewport->vadjustment; GtkWidget *child; g_object_freeze_notify (G_OBJECT (hadjustment)); @@ -535,11 +522,9 @@ gtk_viewport_adjustment_value_changed (GtkAdjustment *adjustment, gboolean gtk_viewport_get_scroll_to_focus (GtkViewport *viewport) { - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); - g_return_val_if_fail (GTK_IS_VIEWPORT (viewport), FALSE); - return priv->scroll_to_focus; + return viewport->scroll_to_focus; } /** @@ -554,14 +539,12 @@ void gtk_viewport_set_scroll_to_focus (GtkViewport *viewport, gboolean scroll_to_focus) { - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); - g_return_if_fail (GTK_IS_VIEWPORT (viewport)); - if (priv->scroll_to_focus == scroll_to_focus) + if (viewport->scroll_to_focus == scroll_to_focus) return; - priv->scroll_to_focus = scroll_to_focus; + viewport->scroll_to_focus = scroll_to_focus; if (gtk_widget_get_root (GTK_WIDGET (viewport))) { @@ -594,7 +577,6 @@ static void focus_change_handler (GtkWidget *widget) { GtkViewport *viewport = GTK_VIEWPORT (widget); - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); GtkRoot *root; GtkWidget *focus_widget; GtkWidget *child; @@ -623,33 +605,31 @@ focus_change_handler (GtkWidget *widget) (int)rect.origin.y, &x, &y); - scroll_to_view (priv->hadjustment, x, rect.size.width); - scroll_to_view (priv->vadjustment, y, rect.size.height); + scroll_to_view (viewport->hadjustment, x, rect.size.width); + scroll_to_view (viewport->vadjustment, y, rect.size.height); } static void setup_focus_change_handler (GtkViewport *viewport) { - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); GtkRoot *root; root = gtk_widget_get_root (GTK_WIDGET (viewport)); - priv->focus_handler = g_signal_connect_swapped (root, "notify::focus-widget", + viewport->focus_handler = g_signal_connect_swapped (root, "notify::focus-widget", G_CALLBACK (focus_change_handler), viewport); } static void clear_focus_change_handler (GtkViewport *viewport) { - GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport); GtkRoot *root; root = gtk_widget_get_root (GTK_WIDGET (viewport)); - if (priv->focus_handler) + if (viewport->focus_handler) { - g_signal_handler_disconnect (root, priv->focus_handler); - priv->focus_handler = 0; + g_signal_handler_disconnect (root, viewport->focus_handler); + viewport->focus_handler = 0; } } From 2ea7f47089cdede585036c412b57152d983fec33 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 26 Apr 2020 15:06:44 -0400 Subject: [PATCH 2/9] separator: Drop the Private struct --- gtk/gtkseparator.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/gtk/gtkseparator.c b/gtk/gtkseparator.c index b83d274228..c1cd2e6fa1 100644 --- a/gtk/gtkseparator.c +++ b/gtk/gtkseparator.c @@ -47,11 +47,13 @@ * gets one of the .horizontal or .vertical style classes. */ -typedef struct _GtkSeparatorClass GtkSeparatorClass; +typedef struct _GtkSeparatorClass GtkSeparatorClass; struct _GtkSeparator { GtkWidget parent_instance; + + GtkOrientation orientation; }; struct _GtkSeparatorClass @@ -59,13 +61,6 @@ struct _GtkSeparatorClass GtkWidgetClass parent_class; }; -typedef struct _GtkSeparatorPrivate GtkSeparatorPrivate; -struct _GtkSeparatorPrivate -{ - GtkOrientation orientation; -}; - - enum { PROP_0, PROP_ORIENTATION @@ -73,7 +68,6 @@ enum { G_DEFINE_TYPE_WITH_CODE (GtkSeparator, gtk_separator, GTK_TYPE_WIDGET, - G_ADD_PRIVATE (GtkSeparator) G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE, NULL)) @@ -84,14 +78,13 @@ gtk_separator_set_property (GObject *object, GParamSpec *pspec) { GtkSeparator *separator = GTK_SEPARATOR (object); - GtkSeparatorPrivate *priv = gtk_separator_get_instance_private (separator); switch (prop_id) { case PROP_ORIENTATION: - if (priv->orientation != g_value_get_enum (value)) + if (separator->orientation != g_value_get_enum (value)) { - priv->orientation = g_value_get_enum (value); + separator->orientation = g_value_get_enum (value); _gtk_orientable_set_style_classes (GTK_ORIENTABLE (object)); gtk_widget_queue_resize (GTK_WIDGET (object)); g_object_notify_by_pspec (object, pspec); @@ -110,12 +103,11 @@ gtk_separator_get_property (GObject *object, GParamSpec *pspec) { GtkSeparator *separator = GTK_SEPARATOR (object); - GtkSeparatorPrivate *priv = gtk_separator_get_instance_private (separator); switch (prop_id) { case PROP_ORIENTATION: - g_value_set_enum (value, priv->orientation); + g_value_set_enum (value, separator->orientation); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -126,9 +118,7 @@ gtk_separator_get_property (GObject *object, static void gtk_separator_init (GtkSeparator *separator) { - GtkSeparatorPrivate *priv = gtk_separator_get_instance_private (separator); - - priv->orientation = GTK_ORIENTATION_HORIZONTAL; + separator->orientation = GTK_ORIENTATION_HORIZONTAL; _gtk_orientable_set_style_classes (GTK_ORIENTABLE (separator)); } From 7ede3b919c01bfc8171a77ec5b4763a87148fb1b Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 26 Apr 2020 15:14:09 -0400 Subject: [PATCH 3/9] calendar: Drop the Private struct --- gtk/gtkcalendar.c | 459 +++++++++++++++++++++------------------------- 1 file changed, 210 insertions(+), 249 deletions(-) diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c index d60a55b24e..ff6b0569ae 100644 --- a/gtk/gtkcalendar.c +++ b/gtk/gtkcalendar.c @@ -200,24 +200,11 @@ typedef struct _GtkCalendarPrivate GtkCalendarPrivate; struct _GtkCalendar { GtkWidget widget; -}; -struct _GtkCalendarClass -{ - GtkWidgetClass parent_class; - - void (* day_selected) (GtkCalendar *calendar); - void (* prev_month) (GtkCalendar *calendar); - void (* next_month) (GtkCalendar *calendar); - void (* prev_year) (GtkCalendar *calendar); - void (* next_year) (GtkCalendar *calendar); -}; - -struct _GtkCalendarPrivate -{ - guint show_week_numbers: 1; - guint show_heading: 1; - guint show_day_names: 1; + guint show_week_numbers : 1; + guint show_heading : 1; + guint show_day_names : 1; + guint year_before : 1; GtkWidget *header_box; GtkWidget *year_label; @@ -240,11 +227,20 @@ struct _GtkCalendarPrivate gint focus_row; gint focus_col; - guint year_before : 1; - gint week_start; }; +struct _GtkCalendarClass +{ + GtkWidgetClass parent_class; + + void (* day_selected) (GtkCalendar *calendar); + void (* prev_month) (GtkCalendar *calendar); + void (* next_month) (GtkCalendar *calendar); + void (* prev_year) (GtkCalendar *calendar); + void (* next_year) (GtkCalendar *calendar); +}; + static void gtk_calendar_set_property (GObject *object, guint prop_id, const GValue *value, @@ -287,7 +283,7 @@ static void calendar_set_year_next (GtkCalendar *calendar); static char *default_abbreviated_dayname[7]; static char *default_monthname[12]; -G_DEFINE_TYPE_WITH_PRIVATE (GtkCalendar, gtk_calendar, GTK_TYPE_WIDGET) +G_DEFINE_TYPE (GtkCalendar, gtk_calendar, GTK_TYPE_WIDGET) static void gtk_calendar_drag_notify_value (GtkDropTarget *target, @@ -343,11 +339,11 @@ gtk_calendar_drag_drop (GtkDropTarget *dest, static void gtk_calendar_dispose (GObject *object) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (GTK_CALENDAR (object)); + GtkCalendar *calendar = GTK_CALENDAR (object); - g_clear_pointer (&priv->date, g_date_time_unref); - g_clear_pointer (&priv->header_box, gtk_widget_unparent); - g_clear_pointer (&priv->grid, gtk_widget_unparent); + g_clear_pointer (&calendar->date, g_date_time_unref); + g_clear_pointer (&calendar->header_box, gtk_widget_unparent); + g_clear_pointer (&calendar->grid, gtk_widget_unparent); G_OBJECT_CLASS (gtk_calendar_parent_class)->dispose (object); } @@ -533,15 +529,14 @@ static GdkContentProvider * gtk_calendar_drag_prepare (GtkDragSource *source, double x, double y, - GtkCalendar *self) + GtkCalendar *calendar) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (self); GDate *date; gchar str[128]; - date = g_date_new_dmy (g_date_time_get_day_of_month (priv->date), - g_date_time_get_month (priv->date), - g_date_time_get_year (priv->date)); + date = g_date_new_dmy (g_date_time_get_day_of_month (calendar->date), + g_date_time_get_month (calendar->date), + g_date_time_get_year (calendar->date)); g_date_strftime (str, 127, "%x", date); g_free (date); @@ -554,7 +549,6 @@ gtk_calendar_drag_prepare (GtkDragSource *source, static void gtk_calendar_init (GtkCalendar *calendar) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); GtkWidget *widget = GTK_WIDGET (calendar); GtkEventController *controller; GtkGesture *gesture; @@ -584,32 +578,32 @@ gtk_calendar_init (GtkCalendar *calendar) gtk_widget_add_css_class (GTK_WIDGET (calendar), GTK_STYLE_CLASS_VIEW); - priv->header_box = g_object_new (GTK_TYPE_BOX, + calendar->header_box = g_object_new (GTK_TYPE_BOX, "css-name", "header", NULL); - priv->year_label = gtk_label_new (""); - gtk_widget_add_css_class (priv->year_label, "year"); - priv->month_name_stack = gtk_stack_new (); - gtk_widget_add_css_class (priv->month_name_stack, "month"); - priv->arrow_widgets[0] = gtk_button_new_from_icon_name ("pan-start-symbolic"); - g_signal_connect_swapped (priv->arrow_widgets[0], "clicked", G_CALLBACK (calendar_set_month_prev), calendar); - priv->arrow_widgets[1] = gtk_button_new_from_icon_name ("pan-end-symbolic"); - g_signal_connect_swapped (priv->arrow_widgets[1], "clicked", G_CALLBACK (calendar_set_month_next), calendar); - gtk_widget_set_hexpand (priv->arrow_widgets[1], TRUE); - gtk_widget_set_halign (priv->arrow_widgets[1], GTK_ALIGN_START); - priv->arrow_widgets[2] = gtk_button_new_from_icon_name ("pan-start-symbolic"); - g_signal_connect_swapped (priv->arrow_widgets[2], "clicked", G_CALLBACK (calendar_set_year_prev), calendar); - priv->arrow_widgets[3] = gtk_button_new_from_icon_name ("pan-end-symbolic"); - g_signal_connect_swapped (priv->arrow_widgets[3], "clicked", G_CALLBACK (calendar_set_year_next), calendar); + calendar->year_label = gtk_label_new (""); + gtk_widget_add_css_class (calendar->year_label, "year"); + calendar->month_name_stack = gtk_stack_new (); + gtk_widget_add_css_class (calendar->month_name_stack, "month"); + calendar->arrow_widgets[0] = gtk_button_new_from_icon_name ("pan-start-symbolic"); + g_signal_connect_swapped (calendar->arrow_widgets[0], "clicked", G_CALLBACK (calendar_set_month_prev), calendar); + calendar->arrow_widgets[1] = gtk_button_new_from_icon_name ("pan-end-symbolic"); + g_signal_connect_swapped (calendar->arrow_widgets[1], "clicked", G_CALLBACK (calendar_set_month_next), calendar); + gtk_widget_set_hexpand (calendar->arrow_widgets[1], TRUE); + gtk_widget_set_halign (calendar->arrow_widgets[1], GTK_ALIGN_START); + calendar->arrow_widgets[2] = gtk_button_new_from_icon_name ("pan-start-symbolic"); + g_signal_connect_swapped (calendar->arrow_widgets[2], "clicked", G_CALLBACK (calendar_set_year_prev), calendar); + calendar->arrow_widgets[3] = gtk_button_new_from_icon_name ("pan-end-symbolic"); + g_signal_connect_swapped (calendar->arrow_widgets[3], "clicked", G_CALLBACK (calendar_set_year_next), calendar); - gtk_container_add (GTK_CONTAINER (priv->header_box), priv->arrow_widgets[0]); - gtk_container_add (GTK_CONTAINER (priv->header_box), priv->month_name_stack); - gtk_container_add (GTK_CONTAINER (priv->header_box), priv->arrow_widgets[1]); - gtk_container_add (GTK_CONTAINER (priv->header_box), priv->arrow_widgets[2]); - gtk_container_add (GTK_CONTAINER (priv->header_box), priv->year_label); - gtk_container_add (GTK_CONTAINER (priv->header_box), priv->arrow_widgets[3]); + gtk_container_add (GTK_CONTAINER (calendar->header_box), calendar->arrow_widgets[0]); + gtk_container_add (GTK_CONTAINER (calendar->header_box), calendar->month_name_stack); + gtk_container_add (GTK_CONTAINER (calendar->header_box), calendar->arrow_widgets[1]); + gtk_container_add (GTK_CONTAINER (calendar->header_box), calendar->arrow_widgets[2]); + gtk_container_add (GTK_CONTAINER (calendar->header_box), calendar->year_label); + gtk_container_add (GTK_CONTAINER (calendar->header_box), calendar->arrow_widgets[3]); - gtk_widget_set_parent (priv->header_box, GTK_WIDGET (calendar)); + gtk_widget_set_parent (calendar->header_box, GTK_WIDGET (calendar)); gesture = gtk_gesture_click_new (); g_signal_connect (gesture, "pressed", G_CALLBACK (gtk_calendar_button_press), calendar); @@ -691,12 +685,12 @@ gtk_calendar_init (GtkCalendar *calendar) { GtkWidget *month_label = gtk_label_new (default_monthname[i]); - gtk_stack_add_named (GTK_STACK (priv->month_name_stack), month_label, default_monthname[i]); + gtk_stack_add_named (GTK_STACK (calendar->month_name_stack), month_label, default_monthname[i]); } - priv->grid = gtk_grid_new (); - gtk_grid_set_row_homogeneous (GTK_GRID (priv->grid), TRUE); - gtk_grid_set_column_homogeneous (GTK_GRID (priv->grid), TRUE); + calendar->grid = gtk_grid_new (); + gtk_grid_set_row_homogeneous (GTK_GRID (calendar->grid), TRUE); + gtk_grid_set_column_homogeneous (GTK_GRID (calendar->grid), TRUE); /* Day name labels */ for (i = 0; i < 7; i ++) { @@ -705,9 +699,9 @@ gtk_calendar_init (GtkCalendar *calendar) gtk_widget_set_hexpand (label, TRUE); gtk_widget_set_vexpand (label, TRUE); gtk_widget_add_css_class (label, "day-name"); - gtk_grid_attach (GTK_GRID (priv->grid), label, 1 + i, 0, 1, 1); + gtk_grid_attach (GTK_GRID (calendar->grid), label, 1 + i, 0, 1, 1); - priv->day_name_labels[i] = label; + calendar->day_name_labels[i] = label; } /* Week number labels */ @@ -718,9 +712,9 @@ gtk_calendar_init (GtkCalendar *calendar) gtk_widget_set_hexpand (label, TRUE); gtk_widget_set_vexpand (label, TRUE); gtk_widget_add_css_class (label, "week-number"); - gtk_grid_attach (GTK_GRID (priv->grid), label, 0, 1 + i, 1, 1); + gtk_grid_attach (GTK_GRID (calendar->grid), label, 0, 1 + i, 1, 1); - priv->week_number_labels[i] = label; + calendar->week_number_labels[i] = label; gtk_widget_hide (label); } @@ -735,25 +729,25 @@ gtk_calendar_init (GtkCalendar *calendar) gtk_widget_set_hexpand (label, TRUE); gtk_widget_set_vexpand (label, TRUE); gtk_widget_add_css_class (label, "day-number"); - gtk_grid_attach (GTK_GRID (priv->grid), label, 1 + x, 1 + y, 1, 1); + gtk_grid_attach (GTK_GRID (calendar->grid), label, 1 + x, 1 + y, 1, 1); - priv->day_number_labels[y][x] = label; + calendar->day_number_labels[y][x] = label; } } - gtk_widget_set_hexpand (priv->grid, TRUE); - gtk_widget_set_vexpand (priv->grid, TRUE); - gtk_widget_set_parent (priv->grid, GTK_WIDGET (calendar)); + gtk_widget_set_hexpand (calendar->grid, TRUE); + gtk_widget_set_vexpand (calendar->grid, TRUE); + gtk_widget_set_parent (calendar->grid, GTK_WIDGET (calendar)); for (i=0;i<31;i++) - priv->marked_date[i] = FALSE; - priv->num_marked_dates = 0; + calendar->marked_date[i] = FALSE; + calendar->num_marked_dates = 0; - priv->show_heading = TRUE; - priv->show_day_names = TRUE; + calendar->show_heading = TRUE; + calendar->show_day_names = TRUE; - priv->focus_row = -1; - priv->focus_col = -1; + calendar->focus_row = -1; + calendar->focus_col = -1; target = gtk_drop_target_new (G_TYPE_STRING, GDK_ACTION_COPY); gtk_drop_target_set_preload (target, TRUE); @@ -761,7 +755,7 @@ gtk_calendar_init (GtkCalendar *calendar) g_signal_connect (target, "drop", G_CALLBACK (gtk_calendar_drag_drop), calendar); gtk_widget_add_controller (widget, GTK_EVENT_CONTROLLER (target)); - priv->year_before = 0; + calendar->year_before = 0; /* Translate to calendar:YM if you want years to be displayed * before months; otherwise translate to calendar:MY. @@ -775,12 +769,12 @@ gtk_calendar_init (GtkCalendar *calendar) */ year_before = _("calendar:MY"); if (strcmp (year_before, "calendar:YM") == 0) - priv->year_before = 1; + calendar->year_before = 1; else if (strcmp (year_before, "calendar:MY") != 0) g_warning ("Whoever translated calendar:MY did so wrongly."); #ifdef G_OS_WIN32 - priv->week_start = 0; + calendar->week_start = 0; week_start = NULL; if (GetLocaleInfoW (GetThreadLocale (), LOCALE_IFIRSTDAYOFWEEK, @@ -789,7 +783,7 @@ gtk_calendar_init (GtkCalendar *calendar) if (week_start != NULL) { - priv->week_start = (week_start[0] - '0' + 1) % 7; + calendar->week_start = (week_start[0] - '0' + 1) % 7; g_free(week_start); } #else @@ -805,7 +799,7 @@ gtk_calendar_init (GtkCalendar *calendar) else g_warning ("Unknown value of _NL_TIME_WEEK_1STDAY."); - priv->week_start = (week_1stday + first_weekday - 1) % 7; + calendar->week_start = (week_1stday + first_weekday - 1) % 7; #else /* Translate to calendar:week_start:0 if you want Sunday to be the * first day of the week to calendar:week_start:1 if you want Monday @@ -814,14 +808,14 @@ gtk_calendar_init (GtkCalendar *calendar) week_start = _("calendar:week_start:0"); if (strncmp (week_start, "calendar:week_start:", 20) == 0) - priv->week_start = *(week_start + 20) - '0'; + calendar->week_start = *(week_start + 20) - '0'; else - priv->week_start = -1; + calendar->week_start = -1; - if (priv->week_start < 0 || priv->week_start > 6) + if (calendar->week_start < 0 || calendar->week_start > 6) { g_warning ("Whoever translated calendar:week_start:0 did so wrongly."); - priv->week_start = 0; + calendar->week_start = 0; } #endif #endif @@ -830,16 +824,16 @@ gtk_calendar_init (GtkCalendar *calendar) GTK_ORIENTATION_VERTICAL); /* Select current day */ - priv->date = g_date_time_new_from_unix_local (0); + calendar->date = g_date_time_new_from_unix_local (0); now = g_date_time_new_now_local (); gtk_calendar_select_day (calendar, now); g_date_time_unref (now); /* We just initialized the year label, now add some space to it so * changing the year does not increase the calendar width */ - gtk_widget_measure (priv->year_label, GTK_ORIENTATION_HORIZONTAL, -1, + gtk_widget_measure (calendar->year_label, GTK_ORIENTATION_HORIZONTAL, -1, &min_year_width, NULL, NULL, NULL); - gtk_widget_set_size_request (priv->year_label, min_year_width + 10, -1); + gtk_widget_set_size_request (calendar->year_label, min_year_width + 10, -1); } #pragma GCC diagnostic pop @@ -853,10 +847,9 @@ calendar_queue_refresh (GtkCalendar *calendar) static void calendar_set_month_prev (GtkCalendar *calendar) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); GDateTime *new_date; - new_date = g_date_time_add_months (priv->date, -1); + new_date = g_date_time_add_months (calendar->date, -1); gtk_calendar_select_day (calendar, new_date); g_date_time_unref (new_date); @@ -867,10 +860,9 @@ calendar_set_month_prev (GtkCalendar *calendar) static void calendar_set_month_next (GtkCalendar *calendar) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); GDateTime *new_date; - new_date = g_date_time_add_months (priv->date, 1); + new_date = g_date_time_add_months (calendar->date, 1); gtk_calendar_select_day (calendar, new_date); g_date_time_unref (new_date); @@ -881,10 +873,9 @@ calendar_set_month_next (GtkCalendar *calendar) static void calendar_set_year_prev (GtkCalendar *calendar) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); GDateTime *new_date; - new_date = g_date_time_add_years (priv->date, -1); + new_date = g_date_time_add_years (calendar->date, -1); gtk_calendar_select_day (calendar, new_date); g_date_time_unref (new_date); @@ -895,10 +886,9 @@ calendar_set_year_prev (GtkCalendar *calendar) static void calendar_set_year_next (GtkCalendar *calendar) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); GDateTime *new_date; - new_date = g_date_time_add_years (priv->date, 1); + new_date = g_date_time_add_years (calendar->date, 1); gtk_calendar_select_day (calendar, new_date); g_date_time_unref (new_date); @@ -909,9 +899,8 @@ calendar_set_year_next (GtkCalendar *calendar) static void calendar_compute_days (GtkCalendar *calendar) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); - const int month = g_date_time_get_month (priv->date); - const int year = g_date_time_get_year (priv->date); + const int month = g_date_time_get_month (calendar->date); + const int year = g_date_time_get_year (calendar->date); int ndays_in_month; int ndays_in_prev_month; int first_day; @@ -922,7 +911,7 @@ calendar_compute_days (GtkCalendar *calendar) ndays_in_month = month_length[leap (year)][month]; first_day = day_of_week (year, month, 1); - first_day = (first_day + 7 - priv->week_start) % 7; + first_day = (first_day + 7 - calendar->week_start) % 7; if (first_day == 0) first_day = 7; @@ -935,8 +924,8 @@ calendar_compute_days (GtkCalendar *calendar) for (col = 0; col < first_day; col++) { - priv->day[0][col] = day; - priv->day_month[0][col] = MONTH_PREV; + calendar->day[0][col] = day; + calendar->day_month[0][col] = MONTH_PREV; day++; } @@ -945,8 +934,8 @@ calendar_compute_days (GtkCalendar *calendar) col = first_day % 7; for (day = 1; day <= ndays_in_month; day++) { - priv->day[row][col] = day; - priv->day_month[row][col] = MONTH_CURRENT; + calendar->day[row][col] = day; + calendar->day_month[row][col] = MONTH_CURRENT; col++; if (col == 7) @@ -962,8 +951,8 @@ calendar_compute_days (GtkCalendar *calendar) { for (; col <= 6; col++) { - priv->day[row][col] = day; - priv->day_month[row][col] = MONTH_NEXT; + calendar->day[row][col] = day; + calendar->day_month[row][col] = MONTH_NEXT; day++; } col = 0; @@ -974,7 +963,6 @@ static void calendar_select_and_focus_day (GtkCalendar *calendar, int day) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); GDateTime *new_date; gint row; gint col; @@ -982,17 +970,17 @@ calendar_select_and_focus_day (GtkCalendar *calendar, for (row = 0; row < 6; row ++) for (col = 0; col < 7; col++) { - if (priv->day_month[row][col] == MONTH_CURRENT && - priv->day[row][col] == day) + if (calendar->day_month[row][col] == MONTH_CURRENT && + calendar->day[row][col] == day) { - priv->focus_row = row; - priv->focus_col = col; + calendar->focus_row = row; + calendar->focus_col = col; break; } } - new_date = g_date_time_new_local (g_date_time_get_year (priv->date), - g_date_time_get_month (priv->date), + new_date = g_date_time_new_local (g_date_time_get_year (calendar->date), + g_date_time_get_month (calendar->date), day, 0, 0, 0); @@ -1007,15 +995,14 @@ gtk_calendar_set_property (GObject *object, GParamSpec *pspec) { GtkCalendar *calendar = GTK_CALENDAR (object); - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); GDateTime *date; switch (prop_id) { case PROP_YEAR: date = g_date_time_new_local (g_value_get_int (value), - g_date_time_get_month (priv->date), - g_date_time_get_day_of_month (priv->date), + g_date_time_get_month (calendar->date), + g_date_time_get_day_of_month (calendar->date), 0, 0, 0); if (date) { @@ -1024,9 +1011,9 @@ gtk_calendar_set_property (GObject *object, } break; case PROP_MONTH: - date = g_date_time_new_local (g_date_time_get_year (priv->date), + date = g_date_time_new_local (g_date_time_get_year (calendar->date), g_value_get_int (value) + 1, - g_date_time_get_day_of_month (priv->date), + g_date_time_get_day_of_month (calendar->date), 0, 0, 0); if (date) { @@ -1035,8 +1022,8 @@ gtk_calendar_set_property (GObject *object, } break; case PROP_DAY: - date = g_date_time_new_local (g_date_time_get_year (priv->date), - g_date_time_get_month (priv->date), + date = g_date_time_new_local (g_date_time_get_year (calendar->date), + g_date_time_get_month (calendar->date), g_value_get_int (value) + 1, 0, 0, 0); if (date) @@ -1067,18 +1054,17 @@ gtk_calendar_get_property (GObject *object, GParamSpec *pspec) { GtkCalendar *calendar = GTK_CALENDAR (object); - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); switch (prop_id) { case PROP_YEAR: - g_value_set_int (value, g_date_time_get_year (priv->date)); + g_value_set_int (value, g_date_time_get_year (calendar->date)); break; case PROP_MONTH: - g_value_set_int (value, g_date_time_get_month (priv->date) - 1); + g_value_set_int (value, g_date_time_get_month (calendar->date) - 1); break; case PROP_DAY: - g_value_set_int (value, g_date_time_get_day_of_month (priv->date) - 1); + g_value_set_int (value, g_date_time_get_day_of_month (calendar->date) - 1); break; case PROP_SHOW_HEADING: g_value_set_boolean (value, gtk_calendar_get_show_heading (calendar)); @@ -1119,7 +1105,6 @@ gtk_calendar_button_press (GtkGestureClick *gesture, { GtkCalendar *calendar = user_data; GtkWidget *widget = GTK_WIDGET (calendar); - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); GtkWidget *label; int row = -1, col = -1; int ix, iy; @@ -1130,7 +1115,7 @@ gtk_calendar_button_press (GtkGestureClick *gesture, for (iy = 0; iy < 6; iy ++) for (ix = 0; ix < 7; ix ++) { - if (label == priv->day_number_labels[iy][ix]) + if (label == calendar->day_number_labels[iy][ix]) { row = iy; col = ix; @@ -1141,8 +1126,8 @@ gtk_calendar_button_press (GtkGestureClick *gesture, if (row == -1 || col == -1) return; - day_month = priv->day_month[row][col]; - day = priv->day[row][col]; + day_month = calendar->day_month[row][col]; + day = calendar->day[row][col]; if (day_month == MONTH_PREV) calendar_set_month_prev (calendar); @@ -1184,64 +1169,63 @@ move_focus (GtkCalendar *calendar, int direction, int updown) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); GtkTextDirection text_dir = gtk_widget_get_direction (GTK_WIDGET (calendar)); int x, y; if (updown == 1) { - if (priv->focus_row > 0) - priv->focus_row--; - if (priv->focus_row < 0) - priv->focus_row = 5; - if (priv->focus_col < 0) - priv->focus_col = 6; + if (calendar->focus_row > 0) + calendar->focus_row--; + if (calendar->focus_row < 0) + calendar->focus_row = 5; + if (calendar->focus_col < 0) + calendar->focus_col = 6; } else if (updown == -1) { - if (priv->focus_row < 5) - priv->focus_row++; - if (priv->focus_col < 0) - priv->focus_col = 0; + if (calendar->focus_row < 5) + calendar->focus_row++; + if (calendar->focus_col < 0) + calendar->focus_col = 0; } else if ((text_dir == GTK_TEXT_DIR_LTR && direction == -1) || (text_dir == GTK_TEXT_DIR_RTL && direction == 1)) { - if (priv->focus_col > 0) - priv->focus_col--; - else if (priv->focus_row > 0) + if (calendar->focus_col > 0) + calendar->focus_col--; + else if (calendar->focus_row > 0) { - priv->focus_col = 6; - priv->focus_row--; + calendar->focus_col = 6; + calendar->focus_row--; } - if (priv->focus_col < 0) - priv->focus_col = 6; - if (priv->focus_row < 0) - priv->focus_row = 5; + if (calendar->focus_col < 0) + calendar->focus_col = 6; + if (calendar->focus_row < 0) + calendar->focus_row = 5; } else { - if (priv->focus_col < 6) - priv->focus_col++; - else if (priv->focus_row < 5) + if (calendar->focus_col < 6) + calendar->focus_col++; + else if (calendar->focus_row < 5) { - priv->focus_col = 0; - priv->focus_row++; + calendar->focus_col = 0; + calendar->focus_row++; } - if (priv->focus_col < 0) - priv->focus_col = 0; - if (priv->focus_row < 0) - priv->focus_row = 0; + if (calendar->focus_col < 0) + calendar->focus_col = 0; + if (calendar->focus_row < 0) + calendar->focus_row = 0; } for (y = 0; y < 6; y ++) for (x = 0; x < 7; x ++) { - GtkWidget *label = priv->day_number_labels[y][x]; + GtkWidget *label = calendar->day_number_labels[y][x]; - if (priv->focus_row == y && priv->focus_col == x) + if (calendar->focus_row == y && calendar->focus_col == x) gtk_widget_set_state_flags (label, GTK_STATE_FLAG_FOCUSED, FALSE); else gtk_widget_unset_state_flags (label, GTK_STATE_FLAG_FOCUSED); @@ -1256,7 +1240,6 @@ gtk_calendar_key_controller_key_pressed (GtkEventControllerKey *controller, GtkWidget *widget) { GtkCalendar *calendar = GTK_CALENDAR (widget); - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); gint return_val; gint old_focus_row; gint old_focus_col; @@ -1264,8 +1247,8 @@ gtk_calendar_key_controller_key_pressed (GtkEventControllerKey *controller, return_val = FALSE; - old_focus_row = priv->focus_row; - old_focus_col = priv->focus_col; + old_focus_row = calendar->focus_row; + old_focus_col = calendar->focus_col; switch (keyval) { @@ -1278,7 +1261,7 @@ gtk_calendar_key_controller_key_pressed (GtkEventControllerKey *controller, { move_focus (calendar, -1, 0); calendar_invalidate_day (calendar, old_focus_row, old_focus_col); - calendar_invalidate_day (calendar, priv->focus_row, priv->focus_col); + calendar_invalidate_day (calendar, calendar->focus_row, calendar->focus_col); } break; case GDK_KEY_KP_Right: @@ -1290,7 +1273,7 @@ gtk_calendar_key_controller_key_pressed (GtkEventControllerKey *controller, { move_focus (calendar, 1, 0); calendar_invalidate_day (calendar, old_focus_row, old_focus_col); - calendar_invalidate_day (calendar, priv->focus_row, priv->focus_col); + calendar_invalidate_day (calendar, calendar->focus_row, calendar->focus_col); } break; case GDK_KEY_KP_Up: @@ -1302,7 +1285,7 @@ gtk_calendar_key_controller_key_pressed (GtkEventControllerKey *controller, { move_focus (calendar, 0, 1); calendar_invalidate_day (calendar, old_focus_row, old_focus_col); - calendar_invalidate_day (calendar, priv->focus_row, priv->focus_col); + calendar_invalidate_day (calendar, calendar->focus_row, calendar->focus_col); } break; case GDK_KEY_KP_Down: @@ -1314,22 +1297,22 @@ gtk_calendar_key_controller_key_pressed (GtkEventControllerKey *controller, { move_focus (calendar, 0, -1); calendar_invalidate_day (calendar, old_focus_row, old_focus_col); - calendar_invalidate_day (calendar, priv->focus_row, priv->focus_col); + calendar_invalidate_day (calendar, calendar->focus_row, calendar->focus_col); } break; case GDK_KEY_KP_Space: case GDK_KEY_space: - row = priv->focus_row; - col = priv->focus_col; + row = calendar->focus_row; + col = calendar->focus_col; if (row > -1 && col > -1) { return_val = TRUE; - day = priv->day[row][col]; - if (priv->day_month[row][col] == MONTH_PREV) + day = calendar->day[row][col]; + if (calendar->day_month[row][col] == MONTH_PREV) calendar_set_month_prev (calendar); - else if (priv->day_month[row][col] == MONTH_NEXT) + else if (calendar->day_month[row][col] == MONTH_NEXT) calendar_set_month_next (calendar); calendar_select_and_focus_day (calendar, day); @@ -1377,10 +1360,9 @@ gtk_calendar_new (void) * Will switch to @date's year and month and select its day. **/ void -gtk_calendar_select_day (GtkCalendar *self, +gtk_calendar_select_day (GtkCalendar *calendar, GDateTime *date) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (self); GDateTime *today; int new_day, new_month, new_year; gboolean day_changed, month_changed, year_changed; @@ -1392,12 +1374,12 @@ gtk_calendar_select_day (GtkCalendar *self, int x, y; int today_day; - g_return_if_fail (GTK_IS_CALENDAR (self)); + g_return_if_fail (GTK_IS_CALENDAR (calendar)); g_return_if_fail (date != NULL); - day_changed = g_date_time_get_day_of_month (priv->date) != g_date_time_get_day_of_month (date); - month_changed = g_date_time_get_month (priv->date) != g_date_time_get_month (date); - year_changed = g_date_time_get_year (priv->date) != g_date_time_get_year (date); + day_changed = g_date_time_get_day_of_month (calendar->date) != g_date_time_get_day_of_month (date); + month_changed = g_date_time_get_month (calendar->date) != g_date_time_get_month (date); + year_changed = g_date_time_get_year (calendar->date) != g_date_time_get_year (date); if (!day_changed && !month_changed && !year_changed) return; @@ -1406,8 +1388,8 @@ gtk_calendar_select_day (GtkCalendar *self, new_month = g_date_time_get_month (date); new_day = g_date_time_get_day_of_month (date); - g_date_time_unref (priv->date); - priv->date = g_date_time_ref (date); + g_date_time_unref (calendar->date); + calendar->date = g_date_time_ref (date); tmp_time = 1; /* Jan 1 1970, 00:00:01 UTC */ tm = gmtime (&tmp_time); @@ -1421,19 +1403,19 @@ gtk_calendar_select_day (GtkCalendar *self, */ strftime (buffer, sizeof (buffer), C_("calendar year format", "%Y"), tm); str = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL); - gtk_label_set_label (GTK_LABEL (priv->year_label), str); + gtk_label_set_label (GTK_LABEL (calendar->year_label), str); g_free (str); /* Update month */ - calendar_compute_days (self); - gtk_stack_set_visible_child_name (GTK_STACK (priv->month_name_stack), + calendar_compute_days (calendar); + gtk_stack_set_visible_child_name (GTK_STACK (calendar->month_name_stack), default_monthname[new_month - 1]); today = g_date_time_new_now_local (); - if (g_date_time_get_year (priv->date) == g_date_time_get_year (today) && - g_date_time_get_month (priv->date) == g_date_time_get_month (today)) + if (g_date_time_get_year (calendar->date) == g_date_time_get_year (today) && + g_date_time_get_month (calendar->date) == g_date_time_get_month (today)) today_day = g_date_time_get_day_of_month (today); else today_day = -1; @@ -1444,8 +1426,8 @@ gtk_calendar_select_day (GtkCalendar *self, for (y = 0; y < 6; y ++) for (x = 0; x < 7; x ++) { - const int day = priv->day[y][x]; - GtkWidget *label = priv->day_number_labels[y][x]; + const int day = calendar->day[y][x]; + GtkWidget *label = calendar->day_number_labels[y][x]; /* Translators: this defines whether the day numbers should use * localized digits or the ones used in English (0123...). * @@ -1460,44 +1442,44 @@ gtk_calendar_select_day (GtkCalendar *self, gtk_label_set_label (GTK_LABEL (label), buffer); - if (priv->day_month[y][x] == MONTH_PREV || - priv->day_month[y][x] == MONTH_NEXT) + if (calendar->day_month[y][x] == MONTH_PREV || + calendar->day_month[y][x] == MONTH_NEXT) gtk_widget_add_css_class (label, "other-month"); else gtk_widget_remove_css_class (label, "other-month"); - if (priv->marked_date[day-1]) + if (calendar->marked_date[day-1]) gtk_widget_set_state_flags (label, GTK_STATE_FLAG_CHECKED, FALSE); else gtk_widget_unset_state_flags (label, GTK_STATE_FLAG_CHECKED); if (new_day == day && - priv->day_month[y][x] == MONTH_CURRENT) + calendar->day_month[y][x] == MONTH_CURRENT) gtk_widget_set_state_flags (label, GTK_STATE_FLAG_SELECTED, FALSE); else gtk_widget_unset_state_flags (label, GTK_STATE_FLAG_SELECTED); - if (priv->focus_row == y && priv->focus_col == x) + if (calendar->focus_row == y && calendar->focus_col == x) gtk_widget_set_state_flags (label, GTK_STATE_FLAG_FOCUSED, FALSE); else gtk_widget_unset_state_flags (label, GTK_STATE_FLAG_FOCUSED); if (day == today_day && - priv->day_month[y][x] == MONTH_CURRENT) + calendar->day_month[y][x] == MONTH_CURRENT) gtk_widget_add_css_class (label, "today"); else gtk_widget_remove_css_class (label, "today"); } /* Update week number labels. - * We simply get the week number of priv->date and add the others. + * We simply get the week number of calendar->date and add the others. * simple. */ for (i = 0; i < 6; i ++) { int year = new_year; int month, week; - month = new_month + priv->day_month[i][6] - MONTH_CURRENT; + month = new_month + calendar->day_month[i][6] - MONTH_CURRENT; if (month < 1) { @@ -1510,7 +1492,7 @@ gtk_calendar_select_day (GtkCalendar *self, year += 1; } - week = week_of_year (year, month, priv->day[i][6]); + week = week_of_year (year, month, calendar->day[i][6]); /* Translators: this defines whether the week numbers should use * localized digits or the ones used in English (0123...). @@ -1522,20 +1504,20 @@ gtk_calendar_select_day (GtkCalendar *self, * too. */ g_snprintf (buffer, sizeof (buffer), C_("calendar:week:digits", "%d"), week); - gtk_label_set_label (GTK_LABEL (priv->week_number_labels[i]), buffer); + gtk_label_set_label (GTK_LABEL (calendar->week_number_labels[i]), buffer); } if (day_changed) { - g_object_notify (G_OBJECT (self), "day"); - g_signal_emit (self, gtk_calendar_signals[DAY_SELECTED_SIGNAL], 0); + g_object_notify (G_OBJECT (calendar), "day"); + g_signal_emit (calendar, gtk_calendar_signals[DAY_SELECTED_SIGNAL], 0); } if (month_changed) - g_object_notify (G_OBJECT (self), "month"); + g_object_notify (G_OBJECT (calendar), "month"); if (year_changed) - g_object_notify (G_OBJECT (self), "year"); + g_object_notify (G_OBJECT (calendar), "year"); } @@ -1548,17 +1530,16 @@ gtk_calendar_select_day (GtkCalendar *self, void gtk_calendar_clear_marks (GtkCalendar *calendar) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); guint day; g_return_if_fail (GTK_IS_CALENDAR (calendar)); for (day = 0; day < 31; day++) { - priv->marked_date[day] = FALSE; + calendar->marked_date[day] = FALSE; } - priv->num_marked_dates = 0; + calendar->num_marked_dates = 0; calendar_queue_refresh (calendar); } @@ -1573,14 +1554,12 @@ void gtk_calendar_mark_day (GtkCalendar *calendar, guint day) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); - g_return_if_fail (GTK_IS_CALENDAR (calendar)); - if (day >= 1 && day <= 31 && !priv->marked_date[day-1]) + if (day >= 1 && day <= 31 && !calendar->marked_date[day-1]) { - priv->marked_date[day - 1] = TRUE; - priv->num_marked_dates++; + calendar->marked_date[day - 1] = TRUE; + calendar->num_marked_dates++; calendar_invalidate_day_num (calendar, day); } } @@ -1598,12 +1577,10 @@ gboolean gtk_calendar_get_day_is_marked (GtkCalendar *calendar, guint day) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); - g_return_val_if_fail (GTK_IS_CALENDAR (calendar), FALSE); if (day >= 1 && day <= 31) - return priv->marked_date[day - 1]; + return calendar->marked_date[day - 1]; return FALSE; } @@ -1619,14 +1596,12 @@ void gtk_calendar_unmark_day (GtkCalendar *calendar, guint day) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar); - g_return_if_fail (GTK_IS_CALENDAR (calendar)); - if (day >= 1 && day <= 31 && priv->marked_date[day-1]) + if (day >= 1 && day <= 31 && calendar->marked_date[day-1]) { - priv->marked_date[day - 1] = FALSE; - priv->num_marked_dates--; + calendar->marked_date[day - 1] = FALSE; + calendar->num_marked_dates--; calendar_invalidate_day_num (calendar, day); } } @@ -1645,11 +1620,9 @@ gtk_calendar_unmark_day (GtkCalendar *calendar, GDateTime * gtk_calendar_get_date (GtkCalendar *self) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (self); - g_return_val_if_fail (GTK_IS_CALENDAR (self), NULL); - return g_date_time_ref (priv->date); + return g_date_time_ref (self->date); } /** @@ -1663,21 +1636,19 @@ void gtk_calendar_set_show_week_numbers (GtkCalendar *self, gboolean value) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (self); + int i; g_return_if_fail (GTK_IS_CALENDAR (self)); - if (value != priv->show_week_numbers) - { - int i; + if (self->show_week_numbers == value) + return; - priv->show_week_numbers = value; + self->show_week_numbers = value; - for (i = 0; i < 6; i ++) - gtk_widget_set_visible (priv->week_number_labels[i], value); + for (i = 0; i < 6; i ++) + gtk_widget_set_visible (self->week_number_labels[i], value); - g_object_notify (G_OBJECT (self), "show-week-numbers"); - } + g_object_notify (G_OBJECT (self), "show-week-numbers"); } /** @@ -1693,11 +1664,9 @@ gtk_calendar_set_show_week_numbers (GtkCalendar *self, gboolean gtk_calendar_get_show_week_numbers (GtkCalendar *self) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (self); - g_return_val_if_fail (GTK_IS_CALENDAR (self), FALSE); - return priv->show_week_numbers; + return self->show_week_numbers; } /** @@ -1713,18 +1682,16 @@ void gtk_calendar_set_show_heading (GtkCalendar *self, gboolean value) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (self); - g_return_if_fail (GTK_IS_CALENDAR (self)); - if (value != priv->show_heading) - { - priv->show_heading = value; + if (self->show_heading == value) + return; - gtk_widget_set_visible (priv->header_box, value); + self->show_heading = value; - g_object_notify (G_OBJECT (self), "show-heading"); - } + gtk_widget_set_visible (self->header_box, value); + + g_object_notify (G_OBJECT (self), "show-heading"); } /** @@ -1739,11 +1706,9 @@ gtk_calendar_set_show_heading (GtkCalendar *self, gboolean gtk_calendar_get_show_heading (GtkCalendar *self) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (self); - g_return_val_if_fail (GTK_IS_CALENDAR (self), FALSE); - return priv->show_heading; + return self->show_heading; } /** @@ -1757,21 +1722,19 @@ void gtk_calendar_set_show_day_names (GtkCalendar *self, gboolean value) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (self); + int i; g_return_if_fail (GTK_IS_CALENDAR (self)); - if (value != priv->show_day_names) - { - int i; + if (self->show_day_names == value) + return; - priv->show_day_names = value; + self->show_day_names = value; - for (i = 0; i < 7; i ++) - gtk_widget_set_visible (priv->day_name_labels[i], value); + for (i = 0; i < 7; i ++) + gtk_widget_set_visible (self->day_name_labels[i], value); - g_object_notify (G_OBJECT (self), "show-day-names"); - } + g_object_notify (G_OBJECT (self), "show-day-names"); } /** @@ -1787,9 +1750,7 @@ gtk_calendar_set_show_day_names (GtkCalendar *self, gboolean gtk_calendar_get_show_day_names (GtkCalendar *self) { - GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (self); - g_return_val_if_fail (GTK_IS_CALENDAR (self), FALSE); - return priv->show_day_names; + return self->show_day_names; } From a78e0f11889a9891868f9df4353706ecfba58fac Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 26 Apr 2020 15:23:21 -0400 Subject: [PATCH 4/9] fontchooserwidget: Drop the Private struct --- gtk/gtkfontchooserwidget.c | 459 ++++++++++++++++--------------------- 1 file changed, 200 insertions(+), 259 deletions(-) diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c index a492410331..1cd3466b3b 100644 --- a/gtk/gtkfontchooserwidget.c +++ b/gtk/gtkfontchooserwidget.c @@ -89,21 +89,12 @@ * GtkFontChooserWidget has a single CSS node with name fontchooser. */ -typedef struct _GtkFontChooserWidgetPrivate GtkFontChooserWidgetPrivate; typedef struct _GtkFontChooserWidgetClass GtkFontChooserWidgetClass; struct _GtkFontChooserWidget { GtkWidget parent_instance; -}; -struct _GtkFontChooserWidgetClass -{ - GtkWidgetClass parent_class; -}; - -struct _GtkFontChooserWidgetPrivate -{ GtkWidget *stack; GtkWidget *grid; GtkWidget *search_entry; @@ -152,6 +143,11 @@ struct _GtkFontChooserWidgetPrivate GAction *tweak_action; }; +struct _GtkFontChooserWidgetClass +{ + GtkWidgetClass parent_class; +}; + enum { PROP_ZERO, PROP_TWEAK_ACTION @@ -224,7 +220,6 @@ static void update_font_features (GtkFontChooserWidget *fontchooser); static void gtk_font_chooser_widget_iface_init (GtkFontChooserIface *iface); G_DEFINE_TYPE_WITH_CODE (GtkFontChooserWidget, gtk_font_chooser_widget, GTK_TYPE_WIDGET, - G_ADD_PRIVATE (GtkFontChooserWidget) G_IMPLEMENT_INTERFACE (GTK_TYPE_FONT_CHOOSER, gtk_font_chooser_widget_iface_init)) @@ -328,12 +323,11 @@ gtk_font_chooser_widget_get_property (GObject *object, GParamSpec *pspec) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (object); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); switch (prop_id) { case PROP_TWEAK_ACTION: - g_value_set_object (value, G_OBJECT (priv->tweak_action)); + g_value_set_object (value, G_OBJECT (fontchooser->tweak_action)); break; case GTK_FONT_CHOOSER_PROP_FONT: g_value_take_string (value, gtk_font_chooser_widget_get_font (fontchooser)); @@ -351,10 +345,10 @@ gtk_font_chooser_widget_get_property (GObject *object, g_value_set_flags (value, gtk_font_chooser_widget_get_level (fontchooser)); break; case GTK_FONT_CHOOSER_PROP_FONT_FEATURES: - g_value_set_string (value, priv->font_features); + g_value_set_string (value, fontchooser->font_features); break; case GTK_FONT_CHOOSER_PROP_LANGUAGE: - g_value_set_string (value, pango_language_to_string (priv->language)); + g_value_set_string (value, pango_language_to_string (fontchooser->language)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -365,9 +359,7 @@ gtk_font_chooser_widget_get_property (GObject *object, static void gtk_font_chooser_widget_refilter_font_list (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - - gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (priv->filter_model)); + gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (fontchooser->filter_model)); gtk_font_chooser_widget_ensure_selection (fontchooser); } @@ -403,12 +395,11 @@ size_change_cb (GtkAdjustment *adjustment, gpointer user_data) { GtkFontChooserWidget *fontchooser = user_data; - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoFontDescription *font_desc; gdouble size = gtk_adjustment_get_value (adjustment); font_desc = pango_font_description_new (); - if (pango_font_description_get_size_is_absolute (priv->font_desc)) + if (pango_font_description_get_size_is_absolute (fontchooser->font_desc)) pango_font_description_set_absolute_size (font_desc, size * PANGO_SCALE); else pango_font_description_set_size (font_desc, size * PANGO_SCALE); @@ -436,18 +427,17 @@ output_cb (GtkSpinButton *spin, static void gtk_font_chooser_widget_update_marks (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GtkAdjustment *adj, *spin_adj; const int *sizes; gint *font_sizes; gint i, n_sizes; gdouble value, spin_value; - if (gtk_list_store_iter_is_valid (GTK_LIST_STORE (priv->model), &priv->font_iter)) + if (gtk_list_store_iter_is_valid (GTK_LIST_STORE (fontchooser->model), &fontchooser->font_iter)) { PangoFontFace *face; - gtk_tree_model_get (priv->model, &priv->font_iter, + gtk_tree_model_get (fontchooser->model, &fontchooser->font_iter, FACE_COLUMN, &face, -1); @@ -479,11 +469,11 @@ gtk_font_chooser_widget_update_marks (GtkFontChooserWidget *fontchooser) sizes = font_sizes; } - gtk_scale_clear_marks (GTK_SCALE (priv->size_slider)); - gtk_scale_clear_marks (GTK_SCALE (priv->size_slider2)); + gtk_scale_clear_marks (GTK_SCALE (fontchooser->size_slider)); + gtk_scale_clear_marks (GTK_SCALE (fontchooser->size_slider2)); - adj = gtk_range_get_adjustment (GTK_RANGE (priv->size_slider)); - spin_adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->size_spin)); + adj = gtk_range_get_adjustment (GTK_RANGE (fontchooser->size_slider)); + spin_adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (fontchooser->size_spin)); spin_value = gtk_adjustment_get_value (spin_adj); if (spin_value < sizes[0]) @@ -506,10 +496,10 @@ gtk_font_chooser_widget_update_marks (GtkFontChooserWidget *fontchooser) for (i = 0; i < n_sizes; i++) { - gtk_scale_add_mark (GTK_SCALE (priv->size_slider), + gtk_scale_add_mark (GTK_SCALE (fontchooser->size_slider), sizes[i], GTK_POS_BOTTOM, NULL); - gtk_scale_add_mark (GTK_SCALE (priv->size_slider2), + gtk_scale_add_mark (GTK_SCALE (fontchooser->size_slider2), sizes[i], GTK_POS_BOTTOM, NULL); } @@ -536,7 +526,6 @@ cursor_changed_cb (GtkTreeView *treeview, gpointer user_data) { GtkFontChooserWidget *fontchooser = user_data; - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GtkDelayedFontDescription *desc; GtkTreeIter filter_iter, iter; GtkTreePath *path = NULL; @@ -546,7 +535,7 @@ cursor_changed_cb (GtkTreeView *treeview, if (!path) return; - if (!gtk_tree_model_get_iter (priv->filter_model, &filter_iter, path)) + if (!gtk_tree_model_get_iter (fontchooser->filter_model, &filter_iter, path)) { gtk_tree_path_free (path); return; @@ -554,14 +543,14 @@ cursor_changed_cb (GtkTreeView *treeview, gtk_tree_path_free (path); - gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (priv->filter_model), + gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (fontchooser->filter_model), &iter, &filter_iter); - gtk_tree_model_get (priv->model, &iter, + gtk_tree_model_get (fontchooser->model, &iter, FONT_DESC_COLUMN, &desc, -1); - pango_font_description_set_variations (priv->font_desc, NULL); + pango_font_description_set_variations (fontchooser->font_desc, NULL); gtk_font_chooser_widget_merge_font_desc (fontchooser, gtk_delayed_font_description_get (desc), &iter); @@ -576,8 +565,7 @@ resize_by_scroll_cb (GtkEventControllerScroll *controller, gpointer user_data) { GtkFontChooserWidget *fc = user_data; - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fc); - GtkAdjustment *adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->size_spin)); + GtkAdjustment *adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (fc->size_spin)); gtk_adjustment_set_value (adj, gtk_adjustment_get_value (adj) + @@ -587,7 +575,6 @@ resize_by_scroll_cb (GtkEventControllerScroll *controller, static void gtk_font_chooser_widget_update_preview_attributes (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoAttrList *attrs; attrs = pango_attr_list_new (); @@ -596,13 +583,13 @@ gtk_font_chooser_widget_update_preview_attributes (GtkFontChooserWidget *fontcho pango_attr_list_insert (attrs, pango_attr_fallback_new (FALSE)); /* Force current font and features */ - pango_attr_list_insert (attrs, pango_attr_font_desc_new (priv->font_desc)); - if (priv->font_features) - pango_attr_list_insert (attrs, pango_attr_font_features_new (priv->font_features)); - if (priv->language) - pango_attr_list_insert (attrs, pango_attr_language_new (priv->language)); + pango_attr_list_insert (attrs, pango_attr_font_desc_new (fontchooser->font_desc)); + if (fontchooser->font_features) + pango_attr_list_insert (attrs, pango_attr_font_features_new (fontchooser->font_features)); + if (fontchooser->language) + pango_attr_list_insert (attrs, pango_attr_language_new (fontchooser->language)); - gtk_entry_set_attributes (GTK_ENTRY (priv->preview), attrs); + gtk_entry_set_attributes (GTK_ENTRY (fontchooser->preview), attrs); pango_attr_list_unref (attrs); } @@ -610,27 +597,25 @@ gtk_font_chooser_widget_update_preview_attributes (GtkFontChooserWidget *fontcho static void rows_changed_cb (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); const char *page; - if (gtk_tree_model_iter_n_children (priv->filter_model, NULL) == 0) + if (gtk_tree_model_iter_n_children (fontchooser->filter_model, NULL) == 0) page = "empty"; else page = "list"; - if (strcmp (gtk_stack_get_visible_child_name (GTK_STACK (priv->list_stack)), page) != 0) - gtk_stack_set_visible_child_name (GTK_STACK (priv->list_stack), page); + if (strcmp (gtk_stack_get_visible_child_name (GTK_STACK (fontchooser->list_stack)), page) != 0) + gtk_stack_set_visible_child_name (GTK_STACK (fontchooser->list_stack), page); } static void update_key_capture (GtkWidget *chooser) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (chooser); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GtkWidget *capture_widget; if (gtk_widget_get_mapped (chooser) && - g_str_equal (gtk_stack_get_visible_child_name (GTK_STACK (priv->stack)), "list")) + g_str_equal (gtk_stack_get_visible_child_name (GTK_STACK (fontchooser->stack)), "list")) { GtkWidget *toplevel; GtkWidget *focus; @@ -638,7 +623,7 @@ update_key_capture (GtkWidget *chooser) toplevel = GTK_WIDGET (gtk_widget_get_root (chooser)); focus = gtk_root_get_focus (GTK_ROOT (toplevel)); - if (GTK_IS_EDITABLE (focus) && focus != priv->search_entry) + if (GTK_IS_EDITABLE (focus) && focus != fontchooser->search_entry) capture_widget = NULL; else capture_widget = chooser; @@ -646,7 +631,7 @@ update_key_capture (GtkWidget *chooser) else capture_widget = NULL; - gtk_search_entry_set_key_capture_widget (GTK_SEARCH_ENTRY (priv->search_entry), + gtk_search_entry_set_key_capture_widget (GTK_SEARCH_ENTRY (fontchooser->search_entry), capture_widget); } @@ -654,11 +639,10 @@ static void gtk_font_chooser_widget_map (GtkWidget *widget) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (widget); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - gtk_editable_set_text (GTK_EDITABLE (priv->search_entry), ""); - gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), "list"); - g_simple_action_set_state (G_SIMPLE_ACTION (priv->tweak_action), g_variant_new_boolean (FALSE)); + gtk_editable_set_text (GTK_EDITABLE (fontchooser->search_entry), ""); + gtk_stack_set_visible_child_name (GTK_STACK (fontchooser->stack), "list"); + g_simple_action_set_state (G_SIMPLE_ACTION (fontchooser->tweak_action), g_variant_new_boolean (FALSE)); GTK_WIDGET_CLASS (gtk_font_chooser_widget_parent_class)->map (widget); @@ -714,11 +698,10 @@ static void gtk_font_chooser_widget_dispose (GObject *object) { GtkFontChooserWidget *self = GTK_FONT_CHOOSER_WIDGET (object); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (self); - if (priv->family_face_list) - gtk_tree_view_set_model (GTK_TREE_VIEW (priv->family_face_list), NULL); - g_clear_pointer (&priv->stack, gtk_widget_unparent); + if (self->family_face_list) + gtk_tree_view_set_model (GTK_TREE_VIEW (self->family_face_list), NULL); + g_clear_pointer (&self->stack, gtk_widget_unparent); G_OBJECT_CLASS (gtk_font_chooser_widget_parent_class)->dispose (object); } @@ -768,25 +751,25 @@ gtk_font_chooser_widget_class_init (GtkFontChooserWidgetClass *klass) gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/ui/gtkfontchooserwidget.ui"); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, search_entry); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, family_face_list); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, family_face_column); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, family_face_cell); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, list_scrolled_window); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, list_stack); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, model); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, filter_model); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, preview); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, preview2); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, size_label); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, size_spin); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, size_slider); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, size_slider2); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, stack); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, grid); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, font_name_label); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, feature_box); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserWidget, axis_grid); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, search_entry); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, family_face_list); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, family_face_column); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, family_face_cell); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, list_scrolled_window); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, list_stack); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, model); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, filter_model); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, preview); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, preview2); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, size_label); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, size_spin); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, size_slider); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, size_slider2); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, stack); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, grid); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, font_name_label); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, feature_box); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserWidget, axis_grid); gtk_widget_class_bind_template_callback (widget_class, text_changed_cb); gtk_widget_class_bind_template_callback (widget_class, stop_search_cb); @@ -808,18 +791,17 @@ change_tweak (GSimpleAction *action, gpointer data) { GtkFontChooserWidget *fontchooser = data; - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); gboolean tweak = g_variant_get_boolean (state); if (tweak) { - gtk_entry_grab_focus_without_selecting (GTK_ENTRY (priv->preview2)); - gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), "tweaks"); + gtk_entry_grab_focus_without_selecting (GTK_ENTRY (fontchooser->preview2)); + gtk_stack_set_visible_child_name (GTK_STACK (fontchooser->stack), "tweaks"); } else { - gtk_widget_grab_focus (priv->search_entry); - gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), "list"); + gtk_widget_grab_focus (fontchooser->search_entry); + gtk_stack_set_visible_child_name (GTK_STACK (fontchooser->stack), "list"); } g_simple_action_set_state (action, state); @@ -874,44 +856,42 @@ axis_free (gpointer v) static void gtk_font_chooser_widget_init (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - gtk_widget_init_template (GTK_WIDGET (fontchooser)); - priv->axes = g_hash_table_new_full (axis_hash, axis_equal, NULL, axis_free); + fontchooser->axes = g_hash_table_new_full (axis_hash, axis_equal, NULL, axis_free); /* Default preview string */ - priv->preview_text = g_strdup (pango_language_get_sample_string (NULL)); - priv->show_preview_entry = TRUE; - priv->font_desc = pango_font_description_new (); - priv->level = GTK_FONT_CHOOSER_LEVEL_FAMILY | + fontchooser->preview_text = g_strdup (pango_language_get_sample_string (NULL)); + fontchooser->show_preview_entry = TRUE; + fontchooser->font_desc = pango_font_description_new (); + fontchooser->level = GTK_FONT_CHOOSER_LEVEL_FAMILY | GTK_FONT_CHOOSER_LEVEL_STYLE | GTK_FONT_CHOOSER_LEVEL_SIZE; - priv->language = pango_language_get_default (); + fontchooser->language = pango_language_get_default (); /* Set default preview text */ - gtk_editable_set_text (GTK_EDITABLE (priv->preview), priv->preview_text); + gtk_editable_set_text (GTK_EDITABLE (fontchooser->preview), fontchooser->preview_text); gtk_font_chooser_widget_update_preview_attributes (fontchooser); /* Set the upper values of the spin/scale with G_MAXINT / PANGO_SCALE */ - gtk_spin_button_set_range (GTK_SPIN_BUTTON (priv->size_spin), + gtk_spin_button_set_range (GTK_SPIN_BUTTON (fontchooser->size_spin), 1.0, (gdouble)(G_MAXINT / PANGO_SCALE)); - gtk_adjustment_set_upper (gtk_range_get_adjustment (GTK_RANGE (priv->size_slider)), + gtk_adjustment_set_upper (gtk_range_get_adjustment (GTK_RANGE (fontchooser->size_slider)), (gdouble)(G_MAXINT / PANGO_SCALE)); /* Setup treeview/model auxilary functions */ - gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (priv->filter_model), - visible_func, (gpointer)priv, NULL); + gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (fontchooser->filter_model), + visible_func, (gpointer)fontchooser, NULL); - gtk_tree_view_column_set_cell_data_func (priv->family_face_column, - priv->family_face_cell, + gtk_tree_view_column_set_cell_data_func (fontchooser->family_face_column, + fontchooser->family_face_cell, gtk_font_chooser_widget_cell_data_func, fontchooser, NULL); - priv->tweak_action = G_ACTION (g_simple_action_new_stateful ("tweak", NULL, g_variant_new_boolean (FALSE))); - g_signal_connect (priv->tweak_action, "change-state", G_CALLBACK (change_tweak), fontchooser); + fontchooser->tweak_action = G_ACTION (g_simple_action_new_stateful ("tweak", NULL, g_variant_new_boolean (FALSE))); + g_signal_connect (fontchooser->tweak_action, "change-state", G_CALLBACK (change_tweak), fontchooser); /* Load data and set initial style-dependent parameters */ gtk_font_chooser_widget_load_fonts (fontchooser, TRUE); @@ -948,7 +928,6 @@ static void gtk_font_chooser_widget_load_fonts (GtkFontChooserWidget *fontchooser, gboolean force) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GtkListStore *list_store; gint n_families, i; PangoFontFamily **families; @@ -965,25 +944,25 @@ gtk_font_chooser_widget_load_fonts (GtkFontChooserWidget *fontchooser, * reloading the fonts every time. */ need_reload = fontconfig_timestamp == 0 || - fontconfig_timestamp != priv->last_fontconfig_timestamp; + fontconfig_timestamp != fontchooser->last_fontconfig_timestamp; - priv->last_fontconfig_timestamp = fontconfig_timestamp; + fontchooser->last_fontconfig_timestamp = fontconfig_timestamp; if (!need_reload && !force) return; - list_store = GTK_LIST_STORE (priv->model); + list_store = GTK_LIST_STORE (fontchooser->model); - if (priv->font_map) - font_map = priv->font_map; + if (fontchooser->font_map) + font_map = fontchooser->font_map; else font_map = pango_cairo_font_map_get_default (); pango_font_map_list_families (font_map, &families, &n_families); qsort (families, n_families, sizeof (PangoFontFamily *), cmp_families); - g_signal_handlers_block_by_func (priv->family_face_list, cursor_changed_cb, fontchooser); - g_signal_handlers_block_by_func (priv->filter_model, rows_changed_cb, fontchooser); + g_signal_handlers_block_by_func (fontchooser->family_face_list, cursor_changed_cb, fontchooser); + g_signal_handlers_block_by_func (fontchooser->filter_model, rows_changed_cb, fontchooser); gtk_list_store_clear (list_store); /* Iterate over families and faces */ @@ -1004,7 +983,7 @@ gtk_font_chooser_widget_load_fonts (GtkFontChooserWidget *fontchooser, face_name = pango_font_face_get_face_name (faces[j]); - if ((priv->level & GTK_FONT_CHOOSER_LEVEL_STYLE) != 0) + if ((fontchooser->level & GTK_FONT_CHOOSER_LEVEL_STYLE) != 0) title = g_strconcat (fam_name, " ", face_name, NULL); else title = g_strdup (fam_name); @@ -1021,7 +1000,7 @@ gtk_font_chooser_widget_load_fonts (GtkFontChooserWidget *fontchooser, g_free (title); gtk_delayed_font_description_unref (desc); - if ((priv->level & GTK_FONT_CHOOSER_LEVEL_STYLE) == 0) + if ((fontchooser->level & GTK_FONT_CHOOSER_LEVEL_STYLE) == 0) break; } @@ -1032,12 +1011,12 @@ gtk_font_chooser_widget_load_fonts (GtkFontChooserWidget *fontchooser, rows_changed_cb (fontchooser); - g_signal_handlers_unblock_by_func (priv->filter_model, rows_changed_cb, fontchooser); - g_signal_handlers_unblock_by_func (priv->family_face_list, cursor_changed_cb, fontchooser); + g_signal_handlers_unblock_by_func (fontchooser->filter_model, rows_changed_cb, fontchooser); + g_signal_handlers_unblock_by_func (fontchooser->family_face_list, cursor_changed_cb, fontchooser); /* now make sure the font list looks right */ - if (!gtk_font_chooser_widget_find_font (fontchooser, priv->font_desc, &priv->font_iter)) - memset (&priv->font_iter, 0, sizeof (GtkTreeIter)); + if (!gtk_font_chooser_widget_find_font (fontchooser, fontchooser->font_desc, &fontchooser->font_iter)) + memset (&fontchooser->font_iter, 0, sizeof (GtkTreeIter)); gtk_font_chooser_widget_ensure_selection (fontchooser); } @@ -1047,14 +1026,14 @@ visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) { - GtkFontChooserWidgetPrivate *priv = user_data; + GtkFontChooserWidget *fontchooser = user_data; gboolean result = TRUE; const gchar *search_text; gchar **split_terms; gchar *font_name, *font_name_casefold; guint i; - if (priv->filter_func != NULL) + if (fontchooser->filter_func != NULL) { PangoFontFamily *family; PangoFontFace *face; @@ -1064,7 +1043,7 @@ visible_func (GtkTreeModel *model, FACE_COLUMN, &face, -1); - result = priv->filter_func (family, face, priv->filter_data); + result = fontchooser->filter_func (family, face, fontchooser->filter_data); g_object_unref (family); g_object_unref (face); @@ -1074,7 +1053,7 @@ visible_func (GtkTreeModel *model, } /* If there's no filter string we show the item */ - search_text = gtk_editable_get_text (GTK_EDITABLE (priv->search_entry)); + search_text = gtk_editable_get_text (GTK_EDITABLE (fontchooser->search_entry)); if (strlen (search_text) == 0) return TRUE; @@ -1109,8 +1088,7 @@ visible_func (GtkTreeModel *model, static int gtk_font_chooser_widget_get_preview_text_height (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - GtkWidget *treeview = priv->family_face_list; + GtkWidget *treeview = fontchooser->family_face_list; GtkStyleContext *context; double font_size; @@ -1178,15 +1156,14 @@ gtk_font_chooser_widget_cell_data_func (GtkTreeViewColumn *column, static void gtk_font_chooser_widget_set_cell_size (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoAttrList *attrs; GtkRequisition size; - gtk_cell_renderer_set_fixed_size (priv->family_face_cell, -1, -1); + gtk_cell_renderer_set_fixed_size (fontchooser->family_face_cell, -1, -1); attrs = gtk_font_chooser_widget_get_preview_attributes (fontchooser, NULL); - g_object_set (priv->family_face_cell, + g_object_set (fontchooser->family_face_cell, "xpad", 20, "ypad", 10, "attributes", attrs, @@ -1195,36 +1172,35 @@ gtk_font_chooser_widget_set_cell_size (GtkFontChooserWidget *fontchooser) pango_attr_list_unref (attrs); - gtk_cell_renderer_get_preferred_size (priv->family_face_cell, - priv->family_face_list, + gtk_cell_renderer_get_preferred_size (fontchooser->family_face_cell, + fontchooser->family_face_list, &size, NULL); - gtk_cell_renderer_set_fixed_size (priv->family_face_cell, size.width, size.height); + gtk_cell_renderer_set_fixed_size (fontchooser->family_face_cell, size.width, size.height); } static void gtk_font_chooser_widget_finalize (GObject *object) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (object); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - if (priv->font_desc) - pango_font_description_free (priv->font_desc); + if (fontchooser->font_desc) + pango_font_description_free (fontchooser->font_desc); - if (priv->filter_data_destroy) - priv->filter_data_destroy (priv->filter_data); + if (fontchooser->filter_data_destroy) + fontchooser->filter_data_destroy (fontchooser->filter_data); - g_free (priv->preview_text); + g_free (fontchooser->preview_text); - g_clear_object (&priv->font_map); + g_clear_object (&fontchooser->font_map); - g_object_unref (priv->tweak_action); + g_object_unref (fontchooser->tweak_action); - g_list_free_full (priv->feature_items, g_free); + g_list_free_full (fontchooser->feature_items, g_free); - g_hash_table_unref (priv->axes); + g_hash_table_unref (fontchooser->axes); - g_free (priv->font_features); + g_free (fontchooser->font_features); G_OBJECT_CLASS (gtk_font_chooser_widget_parent_class)->finalize (object); } @@ -1242,21 +1218,20 @@ gtk_font_chooser_widget_find_font (GtkFontChooserWidget *fontchooser, /* out arguments */ GtkTreeIter *iter) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); gboolean valid; if (pango_font_description_get_family (font_desc) == NULL) return FALSE; - for (valid = gtk_tree_model_get_iter_first (priv->model, iter); + for (valid = gtk_tree_model_get_iter_first (fontchooser->model, iter); valid; - valid = gtk_tree_model_iter_next (priv->model, iter)) + valid = gtk_tree_model_iter_next (fontchooser->model, iter)) { GtkDelayedFontDescription *desc; PangoFontDescription *merged; PangoFontFamily *family; - gtk_tree_model_get (priv->model, iter, + gtk_tree_model_get (fontchooser->model, iter, FAMILY_COLUMN, &family, FONT_DESC_COLUMN, &desc, -1); @@ -1292,13 +1267,12 @@ static PangoFontFamily * gtk_font_chooser_widget_get_family (GtkFontChooser *chooser) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (chooser); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoFontFamily *family; - if (!gtk_list_store_iter_is_valid (GTK_LIST_STORE (priv->model), &priv->font_iter)) + if (!gtk_list_store_iter_is_valid (GTK_LIST_STORE (fontchooser->model), &fontchooser->font_iter)) return NULL; - gtk_tree_model_get (priv->model, &priv->font_iter, + gtk_tree_model_get (fontchooser->model, &fontchooser->font_iter, FAMILY_COLUMN, &family, -1); g_object_unref (family); @@ -1310,13 +1284,12 @@ static PangoFontFace * gtk_font_chooser_widget_get_face (GtkFontChooser *chooser) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (chooser); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoFontFace *face; - if (!gtk_list_store_iter_is_valid (GTK_LIST_STORE (priv->model), &priv->font_iter)) + if (!gtk_list_store_iter_is_valid (GTK_LIST_STORE (fontchooser->model), &fontchooser->font_iter)) return NULL; - gtk_tree_model_get (priv->model, &priv->font_iter, + gtk_tree_model_get (fontchooser->model, &fontchooser->font_iter, FACE_COLUMN, &face, -1); g_object_unref (face); @@ -1350,12 +1323,11 @@ gtk_font_chooser_widget_get_font (GtkFontChooserWidget *fontchooser) static PangoFontDescription * gtk_font_chooser_widget_get_font_desc (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GtkTreeSelection *selection; - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->family_face_list)); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (fontchooser->family_face_list)); if (gtk_tree_selection_count_selected_rows (selection) > 0) - return priv->font_desc; + return fontchooser->font_desc; return NULL; } @@ -1374,7 +1346,6 @@ static void gtk_font_chooser_widget_update_font_name (GtkFontChooserWidget *fontchooser, GtkTreeSelection *selection) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GtkTreeModel *model; GtkTreeIter iter; PangoFontFamily *family; @@ -1401,16 +1372,16 @@ gtk_font_chooser_widget_update_font_name (GtkFontChooserWidget *fontchooser, g_object_unref (face); gtk_delayed_font_description_unref (desc); - if ((priv->level & GTK_FONT_CHOOSER_LEVEL_STYLE) != 0) + if ((fontchooser->level & GTK_FONT_CHOOSER_LEVEL_STYLE) != 0) title = g_strconcat (fam_name, " ", face_name, NULL); else title = g_strdup (fam_name); attrs = gtk_font_chooser_widget_get_preview_attributes (fontchooser, font_desc); - gtk_label_set_attributes (GTK_LABEL (priv->font_name_label), attrs); + gtk_label_set_attributes (GTK_LABEL (fontchooser->font_name_label), attrs); pango_attr_list_unref (attrs); - gtk_label_set_label (GTK_LABEL (priv->font_name_label), title); + gtk_label_set_label (GTK_LABEL (fontchooser->font_name_label), title); g_free (title); } @@ -1418,42 +1389,39 @@ static void selection_changed (GtkTreeSelection *selection, GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - g_object_notify (G_OBJECT (fontchooser), "font"); g_object_notify (G_OBJECT (fontchooser), "font-desc"); if (gtk_tree_selection_count_selected_rows (selection) > 0) { gtk_font_chooser_widget_update_font_name (fontchooser, selection); - g_simple_action_set_enabled (G_SIMPLE_ACTION (priv->tweak_action), TRUE); + g_simple_action_set_enabled (G_SIMPLE_ACTION (fontchooser->tweak_action), TRUE); } else { - g_simple_action_set_state (G_SIMPLE_ACTION (priv->tweak_action), g_variant_new_boolean (FALSE)); - g_simple_action_set_enabled (G_SIMPLE_ACTION (priv->tweak_action), FALSE); + g_simple_action_set_state (G_SIMPLE_ACTION (fontchooser->tweak_action), g_variant_new_boolean (FALSE)); + g_simple_action_set_enabled (G_SIMPLE_ACTION (fontchooser->tweak_action), FALSE); } } static void gtk_font_chooser_widget_ensure_selection (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GtkTreeSelection *selection; GtkTreeIter filter_iter; - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->family_face_list)); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (fontchooser->family_face_list)); - if (gtk_list_store_iter_is_valid (GTK_LIST_STORE (priv->model), &priv->font_iter) && - gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER (priv->filter_model), + if (gtk_list_store_iter_is_valid (GTK_LIST_STORE (fontchooser->model), &fontchooser->font_iter) && + gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER (fontchooser->filter_model), &filter_iter, - &priv->font_iter)) + &fontchooser->font_iter)) { - GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->filter_model), + GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (fontchooser->filter_model), &filter_iter); gtk_tree_selection_select_iter (selection, &filter_iter); - gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (priv->family_face_list), + gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (fontchooser->family_face_list), path, NULL, FALSE, 0.0, 0.0); gtk_tree_path_free (path); } @@ -1469,13 +1437,12 @@ static void add_font_variations (GtkFontChooserWidget *fontchooser, GString *s) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GHashTableIter iter; Axis *axis; const char *sep = ""; char buf[G_ASCII_DTOSTR_BUF_SIZE]; - g_hash_table_iter_init (&iter, priv->axes); + g_hash_table_iter_init (&iter, fontchooser->axes); while (g_hash_table_iter_next (&iter, (gpointer *)NULL, (gpointer *)&axis)) { char tag[5]; @@ -1497,11 +1464,10 @@ adjustment_changed (GtkAdjustment *adjustment, Axis *axis) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (axis->fontchooser); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoFontDescription *font_desc; GString *s; - priv->updating_variations = TRUE; + fontchooser->updating_variations = TRUE; s = g_string_new (""); add_font_variations (fontchooser, s); @@ -1515,7 +1481,7 @@ adjustment_changed (GtkAdjustment *adjustment, g_string_free (s, TRUE); - priv->updating_variations = FALSE; + fontchooser->updating_variations = FALSE; } static gboolean @@ -1552,7 +1518,6 @@ add_axis (GtkFontChooserWidget *fontchooser, int value, int row) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); hb_face_t *hb_face; Axis *axis; const char *name; @@ -1582,7 +1547,7 @@ add_axis (GtkFontChooserWidget *fontchooser, gtk_widget_set_halign (axis->label, GTK_ALIGN_START); gtk_widget_set_valign (axis->label, GTK_ALIGN_BASELINE); - gtk_grid_attach (GTK_GRID (priv->axis_grid), axis->label, 0, row, 1, 1); + gtk_grid_attach (GTK_GRID (fontchooser->axis_grid), axis->label, 0, row, 1, 1); axis->adjustment = gtk_adjustment_new ((double)value, (double)ax->min_value, (double)ax->max_value, @@ -1593,13 +1558,13 @@ add_axis (GtkFontChooserWidget *fontchooser, gtk_widget_set_hexpand (axis->scale, TRUE); gtk_widget_set_size_request (axis->scale, 100, -1); gtk_scale_set_draw_value (GTK_SCALE (axis->scale), FALSE); - gtk_grid_attach (GTK_GRID (priv->axis_grid), axis->scale, 1, row, 1, 1); + gtk_grid_attach (GTK_GRID (fontchooser->axis_grid), axis->scale, 1, row, 1, 1); axis->spin = gtk_spin_button_new (axis->adjustment, 0, 0); g_signal_connect (axis->spin, "output", G_CALLBACK (output_cb), fontchooser); gtk_widget_set_valign (axis->spin, GTK_ALIGN_BASELINE); - gtk_grid_attach (GTK_GRID (priv->axis_grid), axis->spin, 2, row, 1, 1); + gtk_grid_attach (GTK_GRID (fontchooser->axis_grid), axis->spin, 2, row, 1, 1); - g_hash_table_add (priv->axes, axis); + g_hash_table_add (fontchooser->axes, axis); adjustment_changed (axis->adjustment, axis); g_signal_connect (axis->adjustment, "value-changed", G_CALLBACK (adjustment_changed), axis); @@ -1630,7 +1595,6 @@ denorm_coord (hb_ot_var_axis_info_t *axis, int coord) static gboolean gtk_font_chooser_widget_update_font_variations (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoFont *pango_font; hb_font_t *hb_font; hb_face_t *hb_face; @@ -1641,17 +1605,17 @@ gtk_font_chooser_widget_update_font_variations (GtkFontChooserWidget *fontchoose gboolean has_axis = FALSE; int i; - if (priv->updating_variations) + if (fontchooser->updating_variations) return FALSE; - g_hash_table_foreach (priv->axes, axis_remove, NULL); - g_hash_table_remove_all (priv->axes); + g_hash_table_foreach (fontchooser->axes, axis_remove, NULL); + g_hash_table_remove_all (fontchooser->axes); - if ((priv->level & GTK_FONT_CHOOSER_LEVEL_VARIATIONS) == 0) + if ((fontchooser->level & GTK_FONT_CHOOSER_LEVEL_VARIATIONS) == 0) return FALSE; pango_font = pango_context_load_font (gtk_widget_get_pango_context (GTK_WIDGET (fontchooser)), - priv->font_desc); + fontchooser->font_desc); hb_font = pango_font_get_hb_font (pango_font); hb_face = hb_font_get_face (hb_font); @@ -1693,7 +1657,6 @@ find_language_and_script (GtkFontChooserWidget *fontchooser, hb_tag_t *lang_tag, hb_tag_t *script_tag) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); gint i, j, k; hb_tag_t scripts[80]; unsigned int n_scripts; @@ -1702,7 +1665,7 @@ find_language_and_script (GtkFontChooserWidget *fontchooser, hb_language_t lang; const char *langname, *p; - langname = pango_language_to_string (priv->language); + langname = pango_language_to_string (fontchooser->language); p = strchr (langname, '-'); lang = hb_language_from_string (langname, p ? p - langname : -1); @@ -1983,7 +1946,6 @@ add_check_group (GtkFontChooserWidget *fontchooser, const char *title, const char **tags) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GtkWidget *label; GtkWidget *group; PangoAttrList *attrs; @@ -2041,10 +2003,10 @@ add_check_group (GtkFontChooserWidget *fontchooser, item->feat = feat; item->example = example; - priv->feature_items = g_list_prepend (priv->feature_items, item); + fontchooser->feature_items = g_list_prepend (fontchooser->feature_items, item); } - gtk_container_add (GTK_CONTAINER (priv->feature_box), group); + gtk_container_add (GTK_CONTAINER (fontchooser->feature_box), group); } static void @@ -2052,7 +2014,6 @@ add_radio_group (GtkFontChooserWidget *fontchooser, const char *title, const char **tags) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GtkWidget *label; GtkWidget *group; int i; @@ -2109,10 +2070,10 @@ add_radio_group (GtkFontChooserWidget *fontchooser, item->feat = feat; item->example = example; - priv->feature_items = g_list_prepend (priv->feature_items, item); + fontchooser->feature_items = g_list_prepend (fontchooser->feature_items, item); } - gtk_container_add (GTK_CONTAINER (priv->feature_box), group); + gtk_container_add (GTK_CONTAINER (fontchooser->feature_box), group); } static void @@ -2142,7 +2103,6 @@ gtk_font_chooser_widget_populate_features (GtkFontChooserWidget *fontchooser) static gboolean gtk_font_chooser_widget_update_font_features (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoFont *pango_font; hb_font_t *hb_font; hb_tag_t script_tag; @@ -2153,18 +2113,18 @@ gtk_font_chooser_widget_update_font_features (GtkFontChooserWidget *fontchooser) GList *l; gboolean has_feature = FALSE; - for (l = priv->feature_items; l; l = l->next) + for (l = fontchooser->feature_items; l; l = l->next) { FeatureItem *item = l->data; gtk_widget_hide (item->top); gtk_widget_hide (gtk_widget_get_parent (item->top)); } - if ((priv->level & GTK_FONT_CHOOSER_LEVEL_FEATURES) == 0) + if ((fontchooser->level & GTK_FONT_CHOOSER_LEVEL_FEATURES) == 0) return FALSE; pango_font = pango_context_load_font (gtk_widget_get_pango_context (GTK_WIDGET (fontchooser)), - priv->font_desc); + fontchooser->font_desc); hb_font = pango_font_get_hb_font (pango_font); if (hb_font) @@ -2201,7 +2161,7 @@ gtk_font_chooser_widget_update_font_features (GtkFontChooserWidget *fontchooser) for (j = 0; j < n_features; j++) { - for (l = priv->feature_items; l; l = l->next) + for (l = fontchooser->feature_items; l; l = l->next) { FeatureItem *item = l->data; if (item->tag != features[j]) @@ -2211,7 +2171,7 @@ gtk_font_chooser_widget_update_font_features (GtkFontChooserWidget *fontchooser) gtk_widget_show (item->top); gtk_widget_show (gtk_widget_get_parent (item->top)); - update_feature_example (item, hb_font, script_tag, lang_tag, priv->font_desc); + update_feature_example (item, hb_font, script_tag, lang_tag, fontchooser->font_desc); if (GTK_IS_RADIO_BUTTON (item->feat)) { @@ -2234,13 +2194,12 @@ gtk_font_chooser_widget_update_font_features (GtkFontChooserWidget *fontchooser) static void update_font_features (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); GString *s; GList *l; s = g_string_new (""); - for (l = priv->feature_items; l; l = l->next) + for (l = fontchooser->feature_items; l; l = l->next) { FeatureItem *item = l->data; @@ -2266,10 +2225,10 @@ update_font_features (GtkFontChooserWidget *fontchooser) } } - if (g_strcmp0 (priv->font_features, s->str) != 0) + if (g_strcmp0 (fontchooser->font_features, s->str) != 0) { - g_free (priv->font_features); - priv->font_features = g_string_free (s, FALSE); + g_free (fontchooser->font_features); + fontchooser->font_features = g_string_free (s, FALSE); g_object_notify (G_OBJECT (fontchooser), "font-features"); } else @@ -2283,7 +2242,6 @@ gtk_font_chooser_widget_merge_font_desc (GtkFontChooserWidget *fontchooser const PangoFontDescription *font_desc, GtkTreeIter *iter) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoFontMask mask; g_assert (font_desc != NULL); @@ -2293,30 +2251,30 @@ gtk_font_chooser_widget_merge_font_desc (GtkFontChooserWidget *fontchooser /* sucky test, because we can't restrict the comparison to * only the parts that actually do get merged */ - if (pango_font_description_equal (font_desc, priv->font_desc)) + if (pango_font_description_equal (font_desc, fontchooser->font_desc)) return; - pango_font_description_merge (priv->font_desc, font_desc, TRUE); + pango_font_description_merge (fontchooser->font_desc, font_desc, TRUE); if (mask & PANGO_FONT_MASK_SIZE) { - double font_size = (double) pango_font_description_get_size (priv->font_desc) / PANGO_SCALE; + double font_size = (double) pango_font_description_get_size (fontchooser->font_desc) / PANGO_SCALE; /* XXX: This clamps, which can cause it to reloop into here, do we need * to block its signal handler? */ - gtk_range_set_value (GTK_RANGE (priv->size_slider), font_size); - gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->size_spin), font_size); + gtk_range_set_value (GTK_RANGE (fontchooser->size_slider), font_size); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (fontchooser->size_spin), font_size); } if (mask & (PANGO_FONT_MASK_FAMILY | PANGO_FONT_MASK_STYLE | PANGO_FONT_MASK_VARIANT | PANGO_FONT_MASK_WEIGHT | PANGO_FONT_MASK_STRETCH)) { gboolean has_tweak = FALSE; - if (&priv->font_iter != iter) + if (&fontchooser->font_iter != iter) { if (iter == NULL) - memset (&priv->font_iter, 0, sizeof (GtkTreeIter)); + memset (&fontchooser->font_iter, 0, sizeof (GtkTreeIter)); else - memcpy (&priv->font_iter, iter, sizeof (GtkTreeIter)); + memcpy (&fontchooser->font_iter, iter, sizeof (GtkTreeIter)); gtk_font_chooser_widget_ensure_selection (fontchooser); } @@ -2328,7 +2286,7 @@ gtk_font_chooser_widget_merge_font_desc (GtkFontChooserWidget *fontchooser if (gtk_font_chooser_widget_update_font_variations (fontchooser)) has_tweak = TRUE; - g_simple_action_set_enabled (G_SIMPLE_ACTION (priv->tweak_action), has_tweak); + g_simple_action_set_enabled (G_SIMPLE_ACTION (fontchooser->tweak_action), has_tweak); } gtk_font_chooser_widget_update_preview_attributes (fontchooser); @@ -2341,7 +2299,6 @@ static void gtk_font_chooser_widget_take_font_desc (GtkFontChooserWidget *fontchooser, PangoFontDescription *font_desc) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoFontMask mask; if (font_desc == NULL) @@ -2360,7 +2317,7 @@ gtk_font_chooser_widget_take_font_desc (GtkFontChooserWidget *fontchooser, } else { - gtk_font_chooser_widget_merge_font_desc (fontchooser, font_desc, &priv->font_iter); + gtk_font_chooser_widget_merge_font_desc (fontchooser, font_desc, &fontchooser->font_iter); } pango_font_description_free (font_desc); @@ -2369,51 +2326,44 @@ gtk_font_chooser_widget_take_font_desc (GtkFontChooserWidget *fontchooser, static const gchar* gtk_font_chooser_widget_get_preview_text (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - return priv->preview_text; + return fontchooser->preview_text; } static void gtk_font_chooser_widget_set_preview_text (GtkFontChooserWidget *fontchooser, const gchar *text) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); + g_free (fontchooser->preview_text); + fontchooser->preview_text = g_strdup (text); - g_free (priv->preview_text); - priv->preview_text = g_strdup (text); - - gtk_editable_set_text (GTK_EDITABLE (priv->preview), text); + gtk_editable_set_text (GTK_EDITABLE (fontchooser->preview), text); g_object_notify (G_OBJECT (fontchooser), "preview-text"); /* XXX: There's no API to tell the treeview that a column has changed, * so we just */ - gtk_widget_queue_draw (priv->family_face_list); + gtk_widget_queue_draw (fontchooser->family_face_list); } static gboolean gtk_font_chooser_widget_get_show_preview_entry (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - - return priv->show_preview_entry; + return fontchooser->show_preview_entry; } static void gtk_font_chooser_widget_set_show_preview_entry (GtkFontChooserWidget *fontchooser, gboolean show_preview_entry) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - - if (priv->show_preview_entry != show_preview_entry) + if (fontchooser->show_preview_entry != show_preview_entry) { - priv->show_preview_entry = show_preview_entry; + fontchooser->show_preview_entry = show_preview_entry; if (show_preview_entry) - gtk_widget_show (priv->preview); + gtk_widget_show (fontchooser->preview); else - gtk_widget_hide (priv->preview); + gtk_widget_hide (fontchooser->preview); g_object_notify (G_OBJECT (fontchooser), "show-preview-entry"); } @@ -2424,19 +2374,18 @@ gtk_font_chooser_widget_set_font_map (GtkFontChooser *chooser, PangoFontMap *fontmap) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (chooser); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - if (g_set_object (&priv->font_map, fontmap)) + if (g_set_object (&fontchooser->font_map, fontmap)) { PangoContext *context; if (!fontmap) fontmap = pango_cairo_font_map_get_default (); - context = gtk_widget_get_pango_context (priv->family_face_list); + context = gtk_widget_get_pango_context (fontchooser->family_face_list); pango_context_set_font_map (context, fontmap); - context = gtk_widget_get_pango_context (priv->preview); + context = gtk_widget_get_pango_context (fontchooser->preview); pango_context_set_font_map (context, fontmap); gtk_font_chooser_widget_load_fonts (fontchooser, TRUE); @@ -2447,9 +2396,8 @@ static PangoFontMap * gtk_font_chooser_widget_get_font_map (GtkFontChooser *chooser) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (chooser); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - return priv->font_map; + return fontchooser->font_map; } static void @@ -2459,14 +2407,13 @@ gtk_font_chooser_widget_set_filter_func (GtkFontChooser *chooser, GDestroyNotify destroy) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (chooser); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - if (priv->filter_data_destroy) - priv->filter_data_destroy (priv->filter_data); + if (fontchooser->filter_data_destroy) + fontchooser->filter_data_destroy (fontchooser->filter_data); - priv->filter_func = filter; - priv->filter_data = data; - priv->filter_data_destroy = destroy; + fontchooser->filter_func = filter; + fontchooser->filter_data = data; + fontchooser->filter_data_destroy = destroy; gtk_font_chooser_widget_refilter_font_list (fontchooser); } @@ -2475,24 +2422,22 @@ static void gtk_font_chooser_widget_set_level (GtkFontChooserWidget *fontchooser, GtkFontChooserLevel level) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - - if (priv->level == level) + if (fontchooser->level == level) return; - priv->level = level; + fontchooser->level = level; if ((level & GTK_FONT_CHOOSER_LEVEL_SIZE) != 0) { - gtk_widget_show (priv->size_label); - gtk_widget_show (priv->size_slider); - gtk_widget_show (priv->size_spin); + gtk_widget_show (fontchooser->size_label); + gtk_widget_show (fontchooser->size_slider); + gtk_widget_show (fontchooser->size_spin); } else { - gtk_widget_hide (priv->size_label); - gtk_widget_hide (priv->size_slider); - gtk_widget_hide (priv->size_spin); + gtk_widget_hide (fontchooser->size_label); + gtk_widget_hide (fontchooser->size_slider); + gtk_widget_hide (fontchooser->size_spin); } gtk_font_chooser_widget_load_fonts (fontchooser, TRUE); @@ -2503,23 +2448,20 @@ gtk_font_chooser_widget_set_level (GtkFontChooserWidget *fontchooser, static GtkFontChooserLevel gtk_font_chooser_widget_get_level (GtkFontChooserWidget *fontchooser) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - - return priv->level; + return fontchooser->level; } static void gtk_font_chooser_widget_set_language (GtkFontChooserWidget *fontchooser, const char *language) { - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); PangoLanguage *lang; lang = pango_language_from_string (language); - if (priv->language == lang) + if (fontchooser->language == lang) return; - priv->language = lang; + fontchooser->language = lang; g_object_notify (G_OBJECT (fontchooser), "language"); gtk_font_chooser_widget_update_preview_attributes (fontchooser); @@ -2540,7 +2482,6 @@ GAction * gtk_font_chooser_widget_get_tweak_action (GtkWidget *widget) { GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (widget); - GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (fontchooser); - return priv->tweak_action; + return fontchooser->tweak_action; } From 5bd2b490640d78ec84fb3a1d5fe5e8eb14dedd64 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 26 Apr 2020 15:26:50 -0400 Subject: [PATCH 5/9] fontchooserdialog: Drop the Private struct --- gtk/gtkfontchooserdialog.c | 80 ++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 47 deletions(-) diff --git a/gtk/gtkfontchooserdialog.c b/gtk/gtkfontchooserdialog.c index f3cb5e11cb..11d17c9668 100644 --- a/gtk/gtkfontchooserdialog.c +++ b/gtk/gtkfontchooserdialog.c @@ -41,21 +41,12 @@ #include "gtkactionable.h" #include "gtkeventcontrollerkey.h" -typedef struct _GtkFontChooserDialogPrivate GtkFontChooserDialogPrivate; -typedef struct _GtkFontChooserDialogClass GtkFontChooserDialogClass; +typedef struct _GtkFontChooserDialogClass GtkFontChooserDialogClass; struct _GtkFontChooserDialog { GtkDialog parent_instance; -}; -struct _GtkFontChooserDialogClass -{ - GtkDialogClass parent_class; -}; - -struct _GtkFontChooserDialogPrivate -{ GtkWidget *fontchooser; GtkWidget *select_button; @@ -63,6 +54,11 @@ struct _GtkFontChooserDialogPrivate GtkWidget *tweak_button; }; +struct _GtkFontChooserDialogClass +{ + GtkDialogClass parent_class; +}; + /** * SECTION:gtkfontchooserdialog * @Short_description: A dialog for selecting fonts @@ -85,7 +81,6 @@ static GObject *gtk_font_chooser_dialog_buildable_get_internal_child (GtkBuildab const gchar *childname); G_DEFINE_TYPE_WITH_CODE (GtkFontChooserDialog, gtk_font_chooser_dialog, GTK_TYPE_DIALOG, - G_ADD_PRIVATE (GtkFontChooserDialog) G_IMPLEMENT_INTERFACE (GTK_TYPE_FONT_CHOOSER, _gtk_font_chooser_delegate_iface_init) G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE, @@ -100,12 +95,11 @@ gtk_font_chooser_dialog_set_property (GObject *object, GParamSpec *pspec) { GtkFontChooserDialog *dialog = GTK_FONT_CHOOSER_DIALOG (object); - GtkFontChooserDialogPrivate *priv = gtk_font_chooser_dialog_get_instance_private (dialog); switch (prop_id) { default: - g_object_set_property (G_OBJECT (priv->fontchooser), pspec->name, value); + g_object_set_property (G_OBJECT (dialog->fontchooser), pspec->name, value); break; } } @@ -117,12 +111,11 @@ gtk_font_chooser_dialog_get_property (GObject *object, GParamSpec *pspec) { GtkFontChooserDialog *dialog = GTK_FONT_CHOOSER_DIALOG (object); - GtkFontChooserDialogPrivate *priv = gtk_font_chooser_dialog_get_instance_private (dialog); switch (prop_id) { default: - g_object_get_property (G_OBJECT (priv->fontchooser), pspec->name, value); + g_object_get_property (G_OBJECT (dialog->fontchooser), pspec->name, value); break; } } @@ -145,34 +138,31 @@ dialog_forward_key (GtkEventControllerKey *controller, GtkWidget *widget) { GtkFontChooserDialog *dialog = GTK_FONT_CHOOSER_DIALOG (widget); - GtkFontChooserDialogPrivate *priv = gtk_font_chooser_dialog_get_instance_private (dialog); - return gtk_event_controller_key_forward (controller, priv->fontchooser); + return gtk_event_controller_key_forward (controller, dialog->fontchooser); } static void update_tweak_button (GtkFontChooserDialog *dialog) { - GtkFontChooserDialogPrivate *priv = gtk_font_chooser_dialog_get_instance_private (dialog); GtkFontChooserLevel level; - if (!priv->tweak_button) + if (!dialog->tweak_button) return; - g_object_get (priv->fontchooser, "level", &level, NULL); + g_object_get (dialog->fontchooser, "level", &level, NULL); if ((level & (GTK_FONT_CHOOSER_LEVEL_FEATURES | GTK_FONT_CHOOSER_LEVEL_VARIATIONS)) != 0) - gtk_widget_show (priv->tweak_button); + gtk_widget_show (dialog->tweak_button); else - gtk_widget_hide (priv->tweak_button); + gtk_widget_hide (dialog->tweak_button); } static void setup_tweak_button (GtkFontChooserDialog *dialog) { - GtkFontChooserDialogPrivate *priv = gtk_font_chooser_dialog_get_instance_private (dialog); gboolean use_header; - if (priv->tweak_button) + if (dialog->tweak_button) return; g_object_get (dialog, "use-header-bar", &use_header, NULL); @@ -183,7 +173,7 @@ setup_tweak_button (GtkFontChooserDialog *dialog) GActionGroup *actions; actions = G_ACTION_GROUP (g_simple_action_group_new ()); - g_action_map_add_action (G_ACTION_MAP (actions), gtk_font_chooser_widget_get_tweak_action (priv->fontchooser)); + g_action_map_add_action (G_ACTION_MAP (actions), gtk_font_chooser_widget_get_tweak_action (dialog->fontchooser)); gtk_widget_insert_action_group (GTK_WIDGET (dialog), "font", actions); g_object_unref (actions); @@ -196,7 +186,7 @@ setup_tweak_button (GtkFontChooserDialog *dialog) header = gtk_dialog_get_header_bar (GTK_DIALOG (dialog)); gtk_header_bar_pack_end (GTK_HEADER_BAR (header), button); - priv->tweak_button = button; + dialog->tweak_button = button; } } @@ -228,9 +218,9 @@ gtk_font_chooser_dialog_class_init (GtkFontChooserDialogClass *klass) gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/ui/gtkfontchooserdialog.ui"); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserDialog, fontchooser); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserDialog, select_button); - gtk_widget_class_bind_template_child_private (widget_class, GtkFontChooserDialog, cancel_button); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserDialog, fontchooser); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserDialog, select_button); + gtk_widget_class_bind_template_child (widget_class, GtkFontChooserDialog, cancel_button); gtk_widget_class_bind_template_callback (widget_class, font_activated_cb); gtk_widget_class_bind_template_callback (widget_class, dialog_forward_key); } @@ -238,12 +228,11 @@ gtk_font_chooser_dialog_class_init (GtkFontChooserDialogClass *klass) static void update_button (GtkFontChooserDialog *dialog) { - GtkFontChooserDialogPrivate *priv = gtk_font_chooser_dialog_get_instance_private (dialog); PangoFontDescription *desc; - desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (priv->fontchooser)); + desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (dialog->fontchooser)); - gtk_widget_set_sensitive (priv->select_button, desc != NULL); + gtk_widget_set_sensitive (dialog->select_button, desc != NULL); if (desc) pango_font_description_free (desc); @@ -251,21 +240,19 @@ update_button (GtkFontChooserDialog *dialog) static void -gtk_font_chooser_dialog_init (GtkFontChooserDialog *fontchooserdiag) +gtk_font_chooser_dialog_init (GtkFontChooserDialog *dialog) { - GtkFontChooserDialogPrivate *priv = gtk_font_chooser_dialog_get_instance_private (fontchooserdiag); + gtk_widget_init_template (GTK_WIDGET (dialog)); + gtk_dialog_set_use_header_bar_from_setting (GTK_DIALOG (dialog)); - gtk_widget_init_template (GTK_WIDGET (fontchooserdiag)); - gtk_dialog_set_use_header_bar_from_setting (GTK_DIALOG (fontchooserdiag)); + _gtk_font_chooser_set_delegate (GTK_FONT_CHOOSER (dialog), + GTK_FONT_CHOOSER (dialog->fontchooser)); - _gtk_font_chooser_set_delegate (GTK_FONT_CHOOSER (fontchooserdiag), - GTK_FONT_CHOOSER (priv->fontchooser)); - - g_signal_connect_swapped (priv->fontchooser, "notify::font-desc", - G_CALLBACK (update_button), fontchooserdiag); - update_button (fontchooserdiag); - g_signal_connect_swapped (priv->fontchooser, "notify::level", - G_CALLBACK (update_tweak_button), fontchooserdiag); + g_signal_connect_swapped (dialog->fontchooser, "notify::font-desc", + G_CALLBACK (update_button), dialog); + update_button (dialog); + g_signal_connect_swapped (dialog->fontchooser, "notify::level", + G_CALLBACK (update_tweak_button), dialog); } /** @@ -304,12 +291,11 @@ gtk_font_chooser_dialog_buildable_get_internal_child (GtkBuildable *buildable, const gchar *childname) { GtkFontChooserDialog *dialog = GTK_FONT_CHOOSER_DIALOG (buildable); - GtkFontChooserDialogPrivate *priv = gtk_font_chooser_dialog_get_instance_private (dialog); if (g_strcmp0 (childname, "select_button") == 0) - return G_OBJECT (priv->select_button); + return G_OBJECT (dialog->select_button); else if (g_strcmp0 (childname, "cancel_button") == 0) - return G_OBJECT (priv->cancel_button); + return G_OBJECT (dialog->cancel_button); return parent_buildable_iface->get_internal_child (buildable, builder, childname); } From bf77694557dafcf4993d3258eb0619ff9f8c2b96 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 26 Apr 2020 15:31:14 -0400 Subject: [PATCH 6/9] linkbutton: Drop the Private struct --- gtk/gtklinkbutton.c | 81 ++++++++++++++++----------------------------- 1 file changed, 29 insertions(+), 52 deletions(-) diff --git a/gtk/gtklinkbutton.c b/gtk/gtklinkbutton.c index a260f146cf..e926655e00 100644 --- a/gtk/gtklinkbutton.c +++ b/gtk/gtklinkbutton.c @@ -73,12 +73,15 @@ #include typedef struct _GtkLinkButtonClass GtkLinkButtonClass; -typedef struct _GtkLinkButtonPrivate GtkLinkButtonPrivate; struct _GtkLinkButton { /*< private >*/ GtkButton parent_instance; + + char *uri; + gboolean visited; + GtkWidget *popup_menu; }; struct _GtkLinkButtonClass @@ -90,15 +93,6 @@ struct _GtkLinkButtonClass gboolean (* activate_link) (GtkLinkButton *button); }; -struct _GtkLinkButtonPrivate -{ - gchar *uri; - - gboolean visited; - - GtkWidget *popup_menu; -}; - enum { PROP_0, @@ -147,7 +141,7 @@ static const char *link_drop_types[] = { static guint link_signals[LAST_SIGNAL] = { 0, }; -G_DEFINE_TYPE_WITH_PRIVATE (GtkLinkButton, gtk_link_button, GTK_TYPE_BUTTON) +G_DEFINE_TYPE (GtkLinkButton, gtk_link_button, GTK_TYPE_BUTTON) static void gtk_link_button_activate_clipboard_copy (GtkWidget *widget, @@ -155,9 +149,8 @@ gtk_link_button_activate_clipboard_copy (GtkWidget *widget, GVariant *parameter) { GtkLinkButton *link_button = GTK_LINK_BUTTON (widget); - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); - gdk_clipboard_set_text (gtk_widget_get_clipboard (widget), priv->uri); + gdk_clipboard_set_text (gtk_widget_get_clipboard (widget), link_button->uri); } static void @@ -311,10 +304,9 @@ gtk_link_content_get_value (GdkContentProvider *provider, if (G_VALUE_HOLDS (value, G_TYPE_STRING) && content->link != NULL) { - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (content->link); char *uri; - uri = g_strdup_printf ("%s\r\n", priv->uri); + uri = g_strdup_printf ("%s\r\n", content->link->uri); g_value_set_string (value, uri); g_free (uri); @@ -376,11 +368,10 @@ static void gtk_link_button_finalize (GObject *object) { GtkLinkButton *link_button = GTK_LINK_BUTTON (object); - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); - g_free (priv->uri); + g_free (link_button->uri); - g_clear_pointer (&priv->popup_menu, gtk_widget_unparent); + g_clear_pointer (&link_button->popup_menu, gtk_widget_unparent); G_OBJECT_CLASS (gtk_link_button_parent_class)->finalize (object); } @@ -392,15 +383,14 @@ gtk_link_button_get_property (GObject *object, GParamSpec *pspec) { GtkLinkButton *link_button = GTK_LINK_BUTTON (object); - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); switch (prop_id) { case PROP_URI: - g_value_set_string (value, priv->uri); + g_value_set_string (value, link_button->uri); break; case PROP_VISITED: - g_value_set_boolean (value, priv->visited); + g_value_set_boolean (value, link_button->visited); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -435,19 +425,17 @@ gtk_link_button_do_popup (GtkLinkButton *link_button, double x, double y) { - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); - - if (!priv->popup_menu) + if (!link_button->popup_menu) { GMenuModel *model; model = gtk_link_button_get_menu_model (); - priv->popup_menu = gtk_popover_menu_new_from_model (model); - gtk_widget_set_parent (priv->popup_menu, GTK_WIDGET (link_button)); - gtk_popover_set_position (GTK_POPOVER (priv->popup_menu), GTK_POS_BOTTOM); + link_button->popup_menu = gtk_popover_menu_new_from_model (model); + gtk_widget_set_parent (link_button->popup_menu, GTK_WIDGET (link_button)); + gtk_popover_set_position (GTK_POPOVER (link_button->popup_menu), GTK_POS_BOTTOM); - gtk_popover_set_has_arrow (GTK_POPOVER (priv->popup_menu), FALSE); - gtk_widget_set_halign (priv->popup_menu, GTK_ALIGN_START); + gtk_popover_set_has_arrow (GTK_POPOVER (link_button->popup_menu), FALSE); + gtk_widget_set_halign (link_button->popup_menu, GTK_ALIGN_START); g_object_unref (model); } @@ -455,12 +443,12 @@ gtk_link_button_do_popup (GtkLinkButton *link_button, if (x != -1 && y != -1) { GdkRectangle rect = { x, y, 1, 1 }; - gtk_popover_set_pointing_to (GTK_POPOVER (priv->popup_menu), &rect); + gtk_popover_set_pointing_to (GTK_POPOVER (link_button->popup_menu), &rect); } else - gtk_popover_set_pointing_to (GTK_POPOVER (priv->popup_menu), NULL); + gtk_popover_set_pointing_to (GTK_POPOVER (link_button->popup_menu), NULL); - gtk_popover_popup (GTK_POPOVER (priv->popup_menu)); + gtk_popover_popup (GTK_POPOVER (link_button->popup_menu)); } static void @@ -471,7 +459,6 @@ gtk_link_button_pressed_cb (GtkGestureClick *gesture, gpointer user_data) { GtkLinkButton *link_button = user_data; - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); GdkEventSequence *sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); GdkEvent *event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence); @@ -479,7 +466,7 @@ gtk_link_button_pressed_cb (GtkGestureClick *gesture, gtk_widget_grab_focus (GTK_WIDGET (link_button)); if (gdk_event_triggers_context_menu (event) && - priv->uri != NULL) + link_button->uri != NULL) { gtk_link_button_do_popup (link_button, x, y); gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); @@ -493,12 +480,11 @@ gtk_link_button_pressed_cb (GtkGestureClick *gesture, static gboolean gtk_link_button_activate_link (GtkLinkButton *link_button) { - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); GtkWidget *toplevel; toplevel = GTK_WIDGET (gtk_widget_get_root (GTK_WIDGET (link_button))); - gtk_show_uri (GTK_WINDOW (toplevel), priv->uri, GDK_CURRENT_TIME); + gtk_show_uri (GTK_WINDOW (toplevel), link_button->uri, GDK_CURRENT_TIME); gtk_link_button_set_visited (link_button, TRUE); return TRUE; @@ -604,12 +590,11 @@ gtk_link_button_query_tooltip_cb (GtkWidget *widget, gpointer data) { GtkLinkButton *link_button = GTK_LINK_BUTTON (widget); - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); const gchar *label, *uri; gchar *text, *markup; label = gtk_button_get_label (GTK_BUTTON (link_button)); - uri = priv->uri; + uri = link_button->uri; text = gtk_widget_get_tooltip_text (widget); markup = gtk_widget_get_tooltip_markup (widget); @@ -641,13 +626,11 @@ void gtk_link_button_set_uri (GtkLinkButton *link_button, const gchar *uri) { - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); - g_return_if_fail (GTK_IS_LINK_BUTTON (link_button)); g_return_if_fail (uri != NULL); - g_free (priv->uri); - priv->uri = g_strdup (uri); + g_free (link_button->uri); + link_button->uri = g_strdup (uri); g_object_notify (G_OBJECT (link_button), "uri"); @@ -666,11 +649,9 @@ gtk_link_button_set_uri (GtkLinkButton *link_button, const gchar * gtk_link_button_get_uri (GtkLinkButton *link_button) { - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); - g_return_val_if_fail (GTK_IS_LINK_BUTTON (link_button), NULL); - return priv->uri; + return link_button->uri; } /** @@ -685,15 +666,13 @@ void gtk_link_button_set_visited (GtkLinkButton *link_button, gboolean visited) { - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); - g_return_if_fail (GTK_IS_LINK_BUTTON (link_button)); visited = visited != FALSE; - if (priv->visited != visited) + if (link_button->visited != visited) { - priv->visited = visited; + link_button->visited = visited; if (visited) { @@ -725,9 +704,7 @@ gtk_link_button_set_visited (GtkLinkButton *link_button, gboolean gtk_link_button_get_visited (GtkLinkButton *link_button) { - GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button); - g_return_val_if_fail (GTK_IS_LINK_BUTTON (link_button), FALSE); - return priv->visited; + return link_button->visited; } From 2356c9b5039c7fb879ffa1cb56db83909fefb9b1 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 26 Apr 2020 15:37:47 -0400 Subject: [PATCH 7/9] overlay: Drop the Private struct --- gtk/gtkoverlay.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/gtk/gtkoverlay.c b/gtk/gtkoverlay.c index f23982221e..8298411f7a 100644 --- a/gtk/gtkoverlay.c +++ b/gtk/gtkoverlay.c @@ -75,7 +75,7 @@ static guint signals[LAST_SIGNAL] = { 0 }; static void gtk_overlay_buildable_init (GtkBuildableIface *iface); -typedef struct _GtkOverlayClass GtkOverlayClass; +typedef struct _GtkOverlayClass GtkOverlayClass; struct _GtkOverlay { @@ -91,12 +91,7 @@ struct _GtkOverlayClass GtkAllocation *allocation); }; -typedef struct { - GtkLayoutManager *layout; -} GtkOverlayPrivate; - G_DEFINE_TYPE_WITH_CODE (GtkOverlay, gtk_overlay, GTK_TYPE_BIN, - G_ADD_PRIVATE (GtkOverlay) G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE, gtk_overlay_buildable_init)) @@ -331,9 +326,6 @@ gtk_overlay_class_init (GtkOverlayClass *klass) static void gtk_overlay_init (GtkOverlay *overlay) { - GtkOverlayPrivate *priv = gtk_overlay_get_instance_private (overlay); - - priv->layout = gtk_widget_get_layout_manager (GTK_WIDGET (overlay)); } static GtkBuildableIface *parent_buildable_iface; @@ -424,13 +416,14 @@ gtk_overlay_set_measure_overlay (GtkOverlay *overlay, GtkWidget *widget, gboolean measure) { - GtkOverlayPrivate *priv = gtk_overlay_get_instance_private (overlay); + GtkLayoutManager *layout; GtkOverlayLayoutChild *child; g_return_if_fail (GTK_IS_OVERLAY (overlay)); g_return_if_fail (GTK_IS_WIDGET (widget)); - child = GTK_OVERLAY_LAYOUT_CHILD (gtk_layout_manager_get_layout_child (priv->layout, widget)); + layout = gtk_widget_get_layout_manager (GTK_WIDGET (overlay)); + child = GTK_OVERLAY_LAYOUT_CHILD (gtk_layout_manager_get_layout_child (layout, widget)); gtk_overlay_layout_child_set_measure (child, measure); } @@ -448,13 +441,14 @@ gboolean gtk_overlay_get_measure_overlay (GtkOverlay *overlay, GtkWidget *widget) { - GtkOverlayPrivate *priv = gtk_overlay_get_instance_private (overlay); + GtkLayoutManager *layout; GtkOverlayLayoutChild *child; g_return_val_if_fail (GTK_IS_OVERLAY (overlay), FALSE); g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); - child = GTK_OVERLAY_LAYOUT_CHILD (gtk_layout_manager_get_layout_child (priv->layout, widget)); + layout = gtk_widget_get_layout_manager (GTK_WIDGET (overlay)); + child = GTK_OVERLAY_LAYOUT_CHILD (gtk_layout_manager_get_layout_child (layout, widget)); return gtk_overlay_layout_child_get_measure (child); } @@ -472,13 +466,14 @@ gtk_overlay_set_clip_overlay (GtkOverlay *overlay, GtkWidget *widget, gboolean clip_overlay) { - GtkOverlayPrivate *priv = gtk_overlay_get_instance_private (overlay); + GtkLayoutManager *layout; GtkOverlayLayoutChild *child; g_return_if_fail (GTK_IS_OVERLAY (overlay)); g_return_if_fail (GTK_IS_WIDGET (widget)); - child = GTK_OVERLAY_LAYOUT_CHILD (gtk_layout_manager_get_layout_child (priv->layout, widget)); + layout = gtk_widget_get_layout_manager (GTK_WIDGET (overlay)); + child = GTK_OVERLAY_LAYOUT_CHILD (gtk_layout_manager_get_layout_child (layout, widget)); gtk_overlay_layout_child_set_clip_overlay (child, clip_overlay); } @@ -496,13 +491,14 @@ gboolean gtk_overlay_get_clip_overlay (GtkOverlay *overlay, GtkWidget *widget) { - GtkOverlayPrivate *priv = gtk_overlay_get_instance_private (overlay); + GtkLayoutManager *layout; GtkOverlayLayoutChild *child; g_return_val_if_fail (GTK_IS_OVERLAY (overlay), FALSE); g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); - child = GTK_OVERLAY_LAYOUT_CHILD (gtk_layout_manager_get_layout_child (priv->layout, widget)); + layout = gtk_widget_get_layout_manager (GTK_WIDGET (overlay)); + child = GTK_OVERLAY_LAYOUT_CHILD (gtk_layout_manager_get_layout_child (layout, widget)); return gtk_overlay_layout_child_get_clip_overlay (child); } From 508ed21786c73f9196f195181b7f1eaf6a38152d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 26 Apr 2020 15:44:44 -0400 Subject: [PATCH 8/9] progressbar: Drop the Private struct --- gtk/gtkprogressbar.c | 376 +++++++++++++++++++------------------------ 1 file changed, 164 insertions(+), 212 deletions(-) diff --git a/gtk/gtkprogressbar.c b/gtk/gtkprogressbar.c index dab0b3da3b..4c7d382751 100644 --- a/gtk/gtkprogressbar.c +++ b/gtk/gtkprogressbar.c @@ -96,16 +96,7 @@ typedef struct _GtkProgressBarClass GtkProgressBarClass; struct _GtkProgressBar { GtkWidget parent_instance; -}; -struct _GtkProgressBarClass -{ - GtkWidgetClass parent_class; -}; - - -typedef struct -{ gchar *text; GtkWidget *label; @@ -131,7 +122,12 @@ typedef struct guint ellipsize : 3; guint show_text : 1; guint inverted : 1; -} GtkProgressBarPrivate; +}; + +struct _GtkProgressBarClass +{ + GtkWidgetClass parent_class; +}; enum { PROP_0, @@ -164,7 +160,6 @@ static void gtk_progress_bar_direction_changed (GtkWidget *widget, GtkTextDirection previous_dir); G_DEFINE_TYPE_WITH_CODE (GtkProgressBar, gtk_progress_bar, GTK_TYPE_WIDGET, - G_ADD_PRIVATE (GtkProgressBar) G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE, NULL)) static void @@ -267,37 +262,35 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class) static void update_fraction_classes (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); gboolean empty = FALSE; gboolean full = FALSE; /* Here we set classes based on fill-level unless we're in activity-mode. */ - if (!priv->activity_mode) + if (!pbar->activity_mode) { - if (priv->fraction <= 0.0) + if (pbar->fraction <= 0.0) empty = TRUE; - else if (priv->fraction >= 1.0) + else if (pbar->fraction >= 1.0) full = TRUE; } if (empty) - gtk_widget_add_css_class (priv->trough_widget, "empty"); + gtk_widget_add_css_class (pbar->trough_widget, "empty"); else - gtk_widget_remove_css_class (priv->trough_widget, "empty"); + gtk_widget_remove_css_class (pbar->trough_widget, "empty"); if (full) - gtk_widget_add_css_class (priv->trough_widget, "full"); + gtk_widget_add_css_class (pbar->trough_widget, "full"); else - gtk_widget_remove_css_class (priv->trough_widget, "full"); + gtk_widget_remove_css_class (pbar->trough_widget, "full"); } static void update_node_classes (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - gboolean left = FALSE; + gboolean left = FALSE; gboolean right = FALSE; gboolean top = FALSE; gboolean bottom = FALSE; @@ -306,61 +299,61 @@ update_node_classes (GtkProgressBar *pbar) * progressbar the progress touches. */ - if (priv->activity_mode) + if (pbar->activity_mode) { - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) + if (pbar->orientation == GTK_ORIENTATION_HORIZONTAL) { - left = priv->activity_pos <= 0.0; - right = priv->activity_pos >= 1.0; + left = pbar->activity_pos <= 0.0; + right = pbar->activity_pos >= 1.0; } else { - top = priv->activity_pos <= 0.0; - bottom = priv->activity_pos >= 1.0; + top = pbar->activity_pos <= 0.0; + bottom = pbar->activity_pos >= 1.0; } } else /* continuous */ { gboolean inverted; - inverted = priv->inverted; + inverted = pbar->inverted; if (gtk_widget_get_direction (GTK_WIDGET (pbar)) == GTK_TEXT_DIR_RTL) { - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) + if (pbar->orientation == GTK_ORIENTATION_HORIZONTAL) inverted = !inverted; } - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) + if (pbar->orientation == GTK_ORIENTATION_HORIZONTAL) { - left = !inverted || priv->fraction >= 1.0; - right = inverted || priv->fraction >= 1.0; + left = !inverted || pbar->fraction >= 1.0; + right = inverted || pbar->fraction >= 1.0; } else { - top = !inverted || priv->fraction >= 1.0; - bottom = inverted || priv->fraction >= 1.0; + top = !inverted || pbar->fraction >= 1.0; + bottom = inverted || pbar->fraction >= 1.0; } } if (left) - gtk_widget_add_css_class (priv->progress_widget, GTK_STYLE_CLASS_LEFT); + gtk_widget_add_css_class (pbar->progress_widget, GTK_STYLE_CLASS_LEFT); else - gtk_widget_remove_css_class (priv->progress_widget, GTK_STYLE_CLASS_LEFT); + gtk_widget_remove_css_class (pbar->progress_widget, GTK_STYLE_CLASS_LEFT); if (right) - gtk_widget_add_css_class (priv->progress_widget, GTK_STYLE_CLASS_RIGHT); + gtk_widget_add_css_class (pbar->progress_widget, GTK_STYLE_CLASS_RIGHT); else - gtk_widget_remove_css_class (priv->progress_widget, GTK_STYLE_CLASS_RIGHT); + gtk_widget_remove_css_class (pbar->progress_widget, GTK_STYLE_CLASS_RIGHT); if (top) - gtk_widget_add_css_class (priv->progress_widget, GTK_STYLE_CLASS_TOP); + gtk_widget_add_css_class (pbar->progress_widget, GTK_STYLE_CLASS_TOP); else - gtk_widget_remove_css_class (priv->progress_widget, GTK_STYLE_CLASS_TOP); + gtk_widget_remove_css_class (pbar->progress_widget, GTK_STYLE_CLASS_TOP); if (bottom) - gtk_widget_add_css_class (priv->progress_widget, GTK_STYLE_CLASS_BOTTOM); + gtk_widget_add_css_class (pbar->progress_widget, GTK_STYLE_CLASS_BOTTOM); else - gtk_widget_remove_css_class (priv->progress_widget, GTK_STYLE_CLASS_BOTTOM); + gtk_widget_remove_css_class (pbar->progress_widget, GTK_STYLE_CLASS_BOTTOM); update_fraction_classes (pbar); } @@ -373,49 +366,48 @@ allocate_trough (GtkGizmo *gizmo, { GtkProgressBar *pbar = GTK_PROGRESS_BAR (gtk_widget_get_parent (GTK_WIDGET (gizmo))); - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); GtkAllocation alloc; int progress_width, progress_height; gboolean inverted; - inverted = priv->inverted; + inverted = pbar->inverted; if (gtk_widget_get_direction (GTK_WIDGET (pbar)) == GTK_TEXT_DIR_RTL) { - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) + if (pbar->orientation == GTK_ORIENTATION_HORIZONTAL) inverted = !inverted; } - gtk_widget_measure (priv->progress_widget, GTK_ORIENTATION_VERTICAL, -1, + gtk_widget_measure (pbar->progress_widget, GTK_ORIENTATION_VERTICAL, -1, &progress_height, NULL, NULL, NULL); - gtk_widget_measure (priv->progress_widget, GTK_ORIENTATION_HORIZONTAL, -1, + gtk_widget_measure (pbar->progress_widget, GTK_ORIENTATION_HORIZONTAL, -1, &progress_width, NULL, NULL, NULL); - if (priv->activity_mode) + if (pbar->activity_mode) { - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) + if (pbar->orientation == GTK_ORIENTATION_HORIZONTAL) { - alloc.width = progress_width + (width - progress_width) / priv->activity_blocks; - alloc.x = priv->activity_pos * (width - alloc.width); + alloc.width = progress_width + (width - progress_width) / pbar->activity_blocks; + alloc.x = pbar->activity_pos * (width - alloc.width); alloc.y = (height - progress_height) / 2; alloc.height = progress_height; } else { - alloc.height = progress_height + (height - progress_height) / priv->activity_blocks; - alloc.y = priv->activity_pos * (height - alloc.height); + alloc.height = progress_height + (height - progress_height) / pbar->activity_blocks; + alloc.y = pbar->activity_pos * (height - alloc.height); alloc.x = (width - progress_width) / 2; alloc.width = progress_width; } } else { - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) + if (pbar->orientation == GTK_ORIENTATION_HORIZONTAL) { - alloc.width = progress_width + (width - progress_width) * priv->fraction; + alloc.width = progress_width + (width - progress_width) * pbar->fraction; alloc.height = progress_height; alloc.y = (height - progress_height) / 2; @@ -427,7 +419,7 @@ allocate_trough (GtkGizmo *gizmo, else { alloc.width = progress_width; - alloc.height = progress_height + (height - progress_height) * priv->fraction; + alloc.height = progress_height + (height - progress_height) * pbar->fraction; alloc.x = (width - progress_width) / 2; if (!inverted) @@ -437,39 +429,37 @@ allocate_trough (GtkGizmo *gizmo, } } - gtk_widget_size_allocate (priv->progress_widget, &alloc, -1); + gtk_widget_size_allocate (pbar->progress_widget, &alloc, -1); } static void gtk_progress_bar_init (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); + pbar->inverted = FALSE; + pbar->pulse_fraction = 0.1; + pbar->activity_pos = 0; + pbar->activity_dir = 1; + pbar->activity_blocks = 5; + pbar->ellipsize = PANGO_ELLIPSIZE_NONE; + pbar->show_text = FALSE; - priv->inverted = FALSE; - priv->pulse_fraction = 0.1; - priv->activity_pos = 0; - priv->activity_dir = 1; - priv->activity_blocks = 5; - priv->ellipsize = PANGO_ELLIPSIZE_NONE; - priv->show_text = FALSE; + pbar->text = NULL; + pbar->fraction = 0.0; - priv->text = NULL; - priv->fraction = 0.0; - - priv->trough_widget = gtk_gizmo_new ("trough", + pbar->trough_widget = gtk_gizmo_new ("trough", NULL, allocate_trough, NULL, NULL, NULL, NULL); - gtk_widget_set_parent (priv->trough_widget, GTK_WIDGET (pbar)); + gtk_widget_set_parent (pbar->trough_widget, GTK_WIDGET (pbar)); - priv->progress_widget = gtk_gizmo_new ("progress", NULL, NULL, NULL, NULL, NULL, NULL); - gtk_widget_set_parent (priv->progress_widget, priv->trough_widget); + pbar->progress_widget = gtk_gizmo_new ("progress", NULL, NULL, NULL, NULL, NULL, NULL); + gtk_widget_set_parent (pbar->progress_widget, pbar->trough_widget); /* horizontal is default */ - priv->orientation = GTK_ORIENTATION_VERTICAL; /* Just to force an update... */ + pbar->orientation = GTK_ORIENTATION_VERTICAL; /* Just to force an update... */ gtk_progress_bar_set_orientation (pbar, GTK_ORIENTATION_HORIZONTAL); _gtk_orientable_set_style_classes (GTK_ORIENTABLE (pbar)); } @@ -520,30 +510,29 @@ gtk_progress_bar_get_property (GObject *object, GParamSpec *pspec) { GtkProgressBar *pbar = GTK_PROGRESS_BAR (object); - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); switch (prop_id) { case PROP_ORIENTATION: - g_value_set_enum (value, priv->orientation); + g_value_set_enum (value, pbar->orientation); break; case PROP_INVERTED: - g_value_set_boolean (value, priv->inverted); + g_value_set_boolean (value, pbar->inverted); break; case PROP_FRACTION: - g_value_set_double (value, priv->fraction); + g_value_set_double (value, pbar->fraction); break; case PROP_PULSE_STEP: - g_value_set_double (value, priv->pulse_fraction); + g_value_set_double (value, pbar->pulse_fraction); break; case PROP_TEXT: - g_value_set_string (value, priv->text); + g_value_set_string (value, pbar->text); break; case PROP_SHOW_TEXT: - g_value_set_boolean (value, priv->show_text); + g_value_set_boolean (value, pbar->show_text); break; case PROP_ELLIPSIZE: - g_value_set_enum (value, priv->ellipsize); + g_value_set_enum (value, pbar->ellipsize); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -572,17 +561,16 @@ static void gtk_progress_bar_finalize (GObject *object) { GtkProgressBar *pbar = GTK_PROGRESS_BAR (object); - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - if (priv->activity_mode) + if (pbar->activity_mode) gtk_progress_bar_act_mode_leave (pbar); - g_free (priv->text); + g_free (pbar->text); - g_clear_pointer (&priv->label, gtk_widget_unparent); + g_clear_pointer (&pbar->label, gtk_widget_unparent); - gtk_widget_unparent (priv->progress_widget); - gtk_widget_unparent (priv->trough_widget); + gtk_widget_unparent (pbar->progress_widget); + gtk_widget_unparent (pbar->trough_widget); G_OBJECT_CLASS (gtk_progress_bar_parent_class)->finalize (object); } @@ -590,12 +578,10 @@ gtk_progress_bar_finalize (GObject *object) static gchar * get_current_text (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - - if (priv->text) - return g_strdup (priv->text); + if (pbar->text) + return g_strdup (pbar->text); else - return g_strdup_printf (C_("progress bar label", "%.0f %%"), priv->fraction * 100.0); + return g_strdup_printf (C_("progress bar label", "%.0f %%"), pbar->fraction * 100.0); } static gboolean @@ -604,55 +590,54 @@ tick_cb (GtkWidget *widget, gpointer user_data) { GtkProgressBar *pbar = GTK_PROGRESS_BAR (widget); - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); gint64 frame_time; gdouble iteration, pulse_iterations, current_iterations, fraction; - if (priv->pulse2 == 0 && priv->pulse1 == 0) + if (pbar->pulse2 == 0 && pbar->pulse1 == 0) return G_SOURCE_CONTINUE; frame_time = gdk_frame_clock_get_frame_time (frame_clock); - gtk_progress_tracker_advance_frame (&priv->tracker, frame_time); + gtk_progress_tracker_advance_frame (&pbar->tracker, frame_time); - g_assert (priv->pulse2 > priv->pulse1); + g_assert (pbar->pulse2 > pbar->pulse1); - pulse_iterations = (priv->pulse2 - priv->pulse1) / (gdouble) G_USEC_PER_SEC; - current_iterations = (frame_time - priv->pulse1) / (gdouble) G_USEC_PER_SEC; + pulse_iterations = (pbar->pulse2 - pbar->pulse1) / (double) G_USEC_PER_SEC; + current_iterations = (frame_time - pbar->pulse1) / (double) G_USEC_PER_SEC; - iteration = gtk_progress_tracker_get_iteration (&priv->tracker); + iteration = gtk_progress_tracker_get_iteration (&pbar->tracker); /* Determine the fraction to move the block from one frame * to the next when pulse_fraction is how far the block should * move between two calls to gtk_progress_bar_pulse(). */ - fraction = priv->pulse_fraction * (iteration - priv->last_iteration) / MAX (pulse_iterations, current_iterations); - priv->last_iteration = iteration; + fraction = pbar->pulse_fraction * (iteration - pbar->last_iteration) / MAX (pulse_iterations, current_iterations); + pbar->last_iteration = iteration; if (current_iterations > 3 * pulse_iterations) return G_SOURCE_CONTINUE; /* advance the block */ - if (priv->activity_dir == 0) + if (pbar->activity_dir == 0) { - priv->activity_pos += fraction; - if (priv->activity_pos > 1.0) + pbar->activity_pos += fraction; + if (pbar->activity_pos > 1.0) { - priv->activity_pos = 1.0; - priv->activity_dir = 1; + pbar->activity_pos = 1.0; + pbar->activity_dir = 1; } } else { - priv->activity_pos -= fraction; - if (priv->activity_pos <= 0) + pbar->activity_pos -= fraction; + if (pbar->activity_pos <= 0) { - priv->activity_pos = 0; - priv->activity_dir = 0; + pbar->activity_pos = 0; + pbar->activity_dir = 0; } } update_node_classes (pbar); - gtk_widget_queue_allocate (priv->trough_widget); + gtk_widget_queue_allocate (pbar->trough_widget); return G_SOURCE_CONTINUE; } @@ -660,51 +645,48 @@ tick_cb (GtkWidget *widget, static void gtk_progress_bar_act_mode_enter (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); GtkWidget *widget = GTK_WIDGET (pbar); gboolean inverted; - gtk_widget_add_css_class (priv->progress_widget, GTK_STYLE_CLASS_PULSE); + gtk_widget_add_css_class (pbar->progress_widget, GTK_STYLE_CLASS_PULSE); - inverted = priv->inverted; + inverted = pbar->inverted; if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) { - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) + if (pbar->orientation == GTK_ORIENTATION_HORIZONTAL) inverted = !inverted; } /* calculate start pos */ if (!inverted) { - priv->activity_pos = 0.0; - priv->activity_dir = 0; + pbar->activity_pos = 0.0; + pbar->activity_dir = 0; } else { - priv->activity_pos = 1.0; - priv->activity_dir = 1; + pbar->activity_pos = 1.0; + pbar->activity_dir = 1; } update_node_classes (pbar); /* No fixed schedule for pulses, will adapt after calls to update_pulse. Just * start the tracker to repeat forever with iterations every second.*/ - gtk_progress_tracker_start (&priv->tracker, G_USEC_PER_SEC, 0, INFINITY); - priv->tick_id = gtk_widget_add_tick_callback (widget, tick_cb, NULL, NULL); - priv->pulse2 = 0; - priv->pulse1 = 0; - priv->last_iteration = 0; + gtk_progress_tracker_start (&pbar->tracker, G_USEC_PER_SEC, 0, INFINITY); + pbar->tick_id = gtk_widget_add_tick_callback (widget, tick_cb, NULL, NULL); + pbar->pulse2 = 0; + pbar->pulse1 = 0; + pbar->last_iteration = 0; } static void gtk_progress_bar_act_mode_leave (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); + if (pbar->tick_id) + gtk_widget_remove_tick_callback (GTK_WIDGET (pbar), pbar->tick_id); + pbar->tick_id = 0; - if (priv->tick_id) - gtk_widget_remove_tick_callback (GTK_WIDGET (pbar), priv->tick_id); - priv->tick_id = 0; - - gtk_widget_remove_css_class (priv->progress_widget, GTK_STYLE_CLASS_PULSE); + gtk_widget_remove_css_class (pbar->progress_widget, GTK_STYLE_CLASS_PULSE); update_node_classes (pbar); } @@ -712,21 +694,17 @@ static void gtk_progress_bar_set_activity_mode (GtkProgressBar *pbar, gboolean activity_mode) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); + if (pbar->activity_mode == activity_mode) + return; - activity_mode = !!activity_mode; + pbar->activity_mode = activity_mode; - if (priv->activity_mode != activity_mode) - { - priv->activity_mode = activity_mode; + if (pbar->activity_mode) + gtk_progress_bar_act_mode_enter (pbar); + else + gtk_progress_bar_act_mode_leave (pbar); - if (priv->activity_mode) - gtk_progress_bar_act_mode_enter (pbar); - else - gtk_progress_bar_act_mode_leave (pbar); - - gtk_widget_queue_resize (GTK_WIDGET (pbar)); - } + gtk_widget_queue_resize (GTK_WIDGET (pbar)); } /** @@ -742,22 +720,20 @@ void gtk_progress_bar_set_fraction (GtkProgressBar *pbar, gdouble fraction) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar)); - priv->fraction = CLAMP (fraction, 0.0, 1.0); + pbar->fraction = CLAMP (fraction, 0.0, 1.0); - if (priv->label) + if (pbar->label) { char *text = get_current_text (pbar); - gtk_label_set_label (GTK_LABEL (priv->label), text); + gtk_label_set_label (GTK_LABEL (pbar->label), text); g_free (text); } gtk_progress_bar_set_activity_mode (pbar, FALSE); - gtk_widget_queue_allocate (priv->trough_widget); + gtk_widget_queue_allocate (pbar->trough_widget); update_fraction_classes (pbar); g_object_notify_by_pspec (G_OBJECT (pbar), progress_props[PROP_FRACTION]); @@ -766,14 +742,13 @@ gtk_progress_bar_set_fraction (GtkProgressBar *pbar, static void gtk_progress_bar_update_pulse (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); gint64 pulse_time = g_get_monotonic_time (); - if (priv->pulse2 == pulse_time) + if (pbar->pulse2 == pulse_time) return; - priv->pulse1 = priv->pulse2; - priv->pulse2 = pulse_time; + pbar->pulse1 = pbar->pulse2; + pbar->pulse2 = pulse_time; } /** @@ -815,19 +790,17 @@ void gtk_progress_bar_set_text (GtkProgressBar *pbar, const gchar *text) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar)); /* Don't notify again if nothing's changed. */ - if (g_strcmp0 (priv->text, text) == 0) + if (g_strcmp0 (pbar->text, text) == 0) return; - g_free (priv->text); - priv->text = g_strdup (text); + g_free (pbar->text); + pbar->text = g_strdup (text); - if (priv->label) - gtk_label_set_label (GTK_LABEL (priv->label), text); + if (pbar->label) + gtk_label_set_label (GTK_LABEL (pbar->label), text); g_object_notify_by_pspec (G_OBJECT (pbar), progress_props[PROP_TEXT]); } @@ -850,33 +823,31 @@ void gtk_progress_bar_set_show_text (GtkProgressBar *pbar, gboolean show_text) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar)); show_text = !!show_text; - if (priv->show_text == show_text) + if (pbar->show_text == show_text) return; - priv->show_text = show_text; + pbar->show_text = show_text; if (show_text) { char *text = get_current_text (pbar); - priv->label = g_object_new (GTK_TYPE_LABEL, + pbar->label = g_object_new (GTK_TYPE_LABEL, "css-name", "text", "label", text, - "ellipsize", priv->ellipsize, + "ellipsize", pbar->ellipsize, NULL); - gtk_widget_insert_after (priv->label, GTK_WIDGET (pbar), NULL); + gtk_widget_insert_after (pbar->label, GTK_WIDGET (pbar), NULL); g_free (text); } else { - g_clear_pointer (&priv->label, gtk_widget_unparent); + g_clear_pointer (&pbar->label, gtk_widget_unparent); } g_object_notify_by_pspec (G_OBJECT (pbar), progress_props[PROP_SHOW_TEXT]); @@ -894,11 +865,9 @@ gtk_progress_bar_set_show_text (GtkProgressBar *pbar, gboolean gtk_progress_bar_get_show_text (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), FALSE); - return priv->show_text; + return pbar->show_text; } /** @@ -913,11 +882,9 @@ void gtk_progress_bar_set_pulse_step (GtkProgressBar *pbar, gdouble fraction) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar)); - priv->pulse_fraction = fraction; + pbar->pulse_fraction = fraction; g_object_notify_by_pspec (G_OBJECT (pbar), progress_props[PROP_PULSE_STEP]); } @@ -937,27 +904,26 @@ static void gtk_progress_bar_set_orientation (GtkProgressBar *pbar, GtkOrientation orientation) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); GtkBoxLayout *layout; - if (priv->orientation == orientation) + if (pbar->orientation == orientation) return; - priv->orientation = orientation; + pbar->orientation = orientation; if (orientation == GTK_ORIENTATION_HORIZONTAL) { - gtk_widget_set_vexpand (priv->trough_widget, FALSE); - gtk_widget_set_hexpand (priv->trough_widget, TRUE); - gtk_widget_set_halign (priv->trough_widget, GTK_ALIGN_FILL); - gtk_widget_set_valign (priv->trough_widget, GTK_ALIGN_CENTER); + gtk_widget_set_vexpand (pbar->trough_widget, FALSE); + gtk_widget_set_hexpand (pbar->trough_widget, TRUE); + gtk_widget_set_halign (pbar->trough_widget, GTK_ALIGN_FILL); + gtk_widget_set_valign (pbar->trough_widget, GTK_ALIGN_CENTER); } else { - gtk_widget_set_vexpand (priv->trough_widget, TRUE); - gtk_widget_set_hexpand (priv->trough_widget, FALSE); - gtk_widget_set_halign (priv->trough_widget, GTK_ALIGN_CENTER); - gtk_widget_set_valign (priv->trough_widget, GTK_ALIGN_FILL); + gtk_widget_set_vexpand (pbar->trough_widget, TRUE); + gtk_widget_set_hexpand (pbar->trough_widget, FALSE); + gtk_widget_set_halign (pbar->trough_widget, GTK_ALIGN_CENTER); + gtk_widget_set_valign (pbar->trough_widget, GTK_ALIGN_FILL); } _gtk_orientable_set_style_classes (GTK_ORIENTABLE (pbar)); @@ -981,14 +947,12 @@ void gtk_progress_bar_set_inverted (GtkProgressBar *pbar, gboolean inverted) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar)); - if (priv->inverted == inverted) + if (pbar->inverted == inverted) return; - priv->inverted = inverted; + pbar->inverted = inverted; update_node_classes (pbar); @@ -1010,11 +974,9 @@ gtk_progress_bar_set_inverted (GtkProgressBar *pbar, const gchar* gtk_progress_bar_get_text (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), NULL); - return priv->text; + return pbar->text; } /** @@ -1028,11 +990,9 @@ gtk_progress_bar_get_text (GtkProgressBar *pbar) gdouble gtk_progress_bar_get_fraction (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), 0); - return priv->fraction; + return pbar->fraction; } /** @@ -1046,11 +1006,9 @@ gtk_progress_bar_get_fraction (GtkProgressBar *pbar) gdouble gtk_progress_bar_get_pulse_step (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), 0); - return priv->pulse_fraction; + return pbar->pulse_fraction; } /** @@ -1064,11 +1022,9 @@ gtk_progress_bar_get_pulse_step (GtkProgressBar *pbar) gboolean gtk_progress_bar_get_inverted (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), FALSE); - return priv->inverted; + return pbar->inverted; } /** @@ -1083,21 +1039,19 @@ void gtk_progress_bar_set_ellipsize (GtkProgressBar *pbar, PangoEllipsizeMode mode) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar)); g_return_if_fail (mode >= PANGO_ELLIPSIZE_NONE && mode <= PANGO_ELLIPSIZE_END); - if ((PangoEllipsizeMode)priv->ellipsize != mode) - { - priv->ellipsize = mode; + if ((PangoEllipsizeMode)pbar->ellipsize == mode) + return; - if (priv->label) - gtk_label_set_ellipsize (GTK_LABEL (priv->label), mode); + pbar->ellipsize = mode; - g_object_notify_by_pspec (G_OBJECT (pbar), progress_props[PROP_ELLIPSIZE]); - } + if (pbar->label) + gtk_label_set_ellipsize (GTK_LABEL (pbar->label), mode); + + g_object_notify_by_pspec (G_OBJECT (pbar), progress_props[PROP_ELLIPSIZE]); } /** @@ -1112,9 +1066,7 @@ gtk_progress_bar_set_ellipsize (GtkProgressBar *pbar, PangoEllipsizeMode gtk_progress_bar_get_ellipsize (GtkProgressBar *pbar) { - GtkProgressBarPrivate *priv = gtk_progress_bar_get_instance_private (pbar); - g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), PANGO_ELLIPSIZE_NONE); - return priv->ellipsize; + return pbar->ellipsize; } From dc99a7aa61386623a7fa58041b6f3d7d6e824147 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 26 Apr 2020 15:48:46 -0400 Subject: [PATCH 9/9] 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); }