diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-04-13 00:32:50 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-04-13 00:32:50 -0400 |
commit | 6831d3e28e7f0f867566caa125996d9507522705 (patch) | |
tree | 26a933d3fb413adba6bae015dbfb314e7d20bbf5 /gtk/gtkfontbutton.c | |
parent | 800f1c03d57eff4c3dca8451ed40f2e4098eefb3 (diff) | |
download | gtk+-6831d3e28e7f0f867566caa125996d9507522705.tar.gz |
fontbutton: Drop the Private struct
Diffstat (limited to 'gtk/gtkfontbutton.c')
-rw-r--r-- | gtk/gtkfontbutton.c | 425 |
1 files changed, 185 insertions, 240 deletions
diff --git a/gtk/gtkfontbutton.c b/gtk/gtkfontbutton.c index ce4eba6443..782f34f022 100644 --- a/gtk/gtkfontbutton.c +++ b/gtk/gtkfontbutton.c @@ -67,19 +67,8 @@ typedef struct _GtkFontButtonClass GtkFontButtonClass; struct _GtkFontButton { GtkWidget parent_instance; -}; - -struct _GtkFontButtonClass -{ - GtkWidgetClass parent_class; - void (* font_set) (GtkFontButton *gfp); -}; - -typedef struct -{ gchar *title; - gchar *fontname; guint use_font : 1; @@ -107,7 +96,14 @@ typedef struct GtkCssProvider *provider; GtkFontChooserLevel level; -} GtkFontButtonPrivate; +}; + +struct _GtkFontButtonClass +{ + GtkWidgetClass parent_class; + + void (* font_set) (GtkFontButton *gfp); +}; /* Signals */ enum @@ -184,32 +180,27 @@ gtk_font_button_font_chooser_iface_init (GtkFontChooserIface *iface) } G_DEFINE_TYPE_WITH_CODE (GtkFontButton, gtk_font_button, GTK_TYPE_WIDGET, - G_ADD_PRIVATE (GtkFontButton) G_IMPLEMENT_INTERFACE (GTK_TYPE_FONT_CHOOSER, gtk_font_button_font_chooser_iface_init)) static void clear_font_data (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - - g_clear_object (&priv->font_family); - g_clear_object (&priv->font_face); - g_clear_pointer (&priv->font_desc, pango_font_description_free); - g_clear_pointer (&priv->fontname, g_free); - g_clear_pointer (&priv->font_features, g_free); + g_clear_object (&font_button->font_family); + g_clear_object (&font_button->font_face); + g_clear_pointer (&font_button->font_desc, pango_font_description_free); + g_clear_pointer (&font_button->fontname, g_free); + g_clear_pointer (&font_button->font_features, g_free); } static void clear_font_filter_data (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - - if (priv->font_filter_data_destroy) - priv->font_filter_data_destroy (priv->font_filter_data); - priv->font_filter = NULL; - priv->font_filter_data = NULL; - priv->font_filter_data_destroy = NULL; + if (font_button->font_filter_data_destroy) + font_button->font_filter_data_destroy (font_button->font_filter_data); + font_button->font_filter = NULL; + font_button->font_filter_data = NULL; + font_button->font_filter_data_destroy = NULL; } static gboolean @@ -225,17 +216,16 @@ font_description_style_equal (const PangoFontDescription *a, static void gtk_font_button_update_font_data (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); PangoFontFamily **families; PangoFontFace **faces; gint n_families, n_faces, i; const gchar *family; - g_assert (priv->font_desc != NULL); + g_assert (font_button->font_desc != NULL); - priv->fontname = pango_font_description_to_string (priv->font_desc); + font_button->fontname = pango_font_description_to_string (font_button->font_desc); - family = pango_font_description_get_family (priv->font_desc); + family = pango_font_description_get_family (font_button->font_desc); if (family == NULL) return; @@ -251,7 +241,7 @@ gtk_font_button_update_font_data (GtkFontButton *font_button) if (!g_ascii_strcasecmp (name, family)) { - priv->font_family = g_object_ref (families[i]); + font_button->font_family = g_object_ref (families[i]); pango_font_family_list_faces (families[i], &faces, &n_faces); break; @@ -263,9 +253,9 @@ gtk_font_button_update_font_data (GtkFontButton *font_button) { PangoFontDescription *tmp_desc = pango_font_face_describe (faces[i]); - if (font_description_style_equal (tmp_desc, priv->font_desc)) + if (font_description_style_equal (tmp_desc, font_button->font_desc)) { - priv->font_face = g_object_ref (faces[i]); + font_button->font_face = g_object_ref (faces[i]); pango_font_description_free (tmp_desc); break; @@ -280,56 +270,48 @@ gtk_font_button_update_font_data (GtkFontButton *font_button) static gchar * gtk_font_button_get_preview_text (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); + if (font_button->font_dialog) + return gtk_font_chooser_get_preview_text (GTK_FONT_CHOOSER (font_button->font_dialog)); - if (priv->font_dialog) - return gtk_font_chooser_get_preview_text (GTK_FONT_CHOOSER (priv->font_dialog)); - - return g_strdup (priv->preview_text); + return g_strdup (font_button->preview_text); } static void gtk_font_button_set_preview_text (GtkFontButton *font_button, const gchar *preview_text) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - - if (priv->font_dialog) + if (font_button->font_dialog) { - gtk_font_chooser_set_preview_text (GTK_FONT_CHOOSER (priv->font_dialog), + gtk_font_chooser_set_preview_text (GTK_FONT_CHOOSER (font_button->font_dialog), preview_text); return; } - g_free (priv->preview_text); - priv->preview_text = g_strdup (preview_text); + g_free (font_button->preview_text); + font_button->preview_text = g_strdup (preview_text); } static gboolean gtk_font_button_get_show_preview_entry (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); + if (font_button->font_dialog) + return gtk_font_chooser_get_show_preview_entry (GTK_FONT_CHOOSER (font_button->font_dialog)); - if (priv->font_dialog) - return gtk_font_chooser_get_show_preview_entry (GTK_FONT_CHOOSER (priv->font_dialog)); - - return priv->show_preview_entry; + return font_button->show_preview_entry; } static void gtk_font_button_set_show_preview_entry (GtkFontButton *font_button, gboolean show) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - show = show != FALSE; - if (priv->show_preview_entry != show) + if (font_button->show_preview_entry != show) { - priv->show_preview_entry = show; - if (priv->font_dialog) - gtk_font_chooser_set_show_preview_entry (GTK_FONT_CHOOSER (priv->font_dialog), show); + font_button->show_preview_entry = show; + if (font_button->font_dialog) + gtk_font_chooser_set_show_preview_entry (GTK_FONT_CHOOSER (font_button->font_dialog), show); g_object_notify (G_OBJECT (font_button), "show-preview-entry"); } } @@ -338,27 +320,24 @@ static PangoFontFamily * gtk_font_button_font_chooser_get_font_family (GtkFontChooser *chooser) { GtkFontButton *font_button = GTK_FONT_BUTTON (chooser); - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - return priv->font_family; + return font_button->font_family; } static PangoFontFace * gtk_font_button_font_chooser_get_font_face (GtkFontChooser *chooser) { GtkFontButton *font_button = GTK_FONT_BUTTON (chooser); - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - return priv->font_face; + return font_button->font_face; } static int gtk_font_button_font_chooser_get_font_size (GtkFontChooser *chooser) { GtkFontButton *font_button = GTK_FONT_BUTTON (chooser); - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - return priv->font_size; + return font_button->font_size; } static void @@ -368,11 +347,10 @@ gtk_font_button_font_chooser_set_filter_func (GtkFontChooser *chooser, GDestroyNotify data_destroy) { GtkFontButton *font_button = GTK_FONT_BUTTON (chooser); - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - if (priv->font_dialog) + if (font_button->font_dialog) { - gtk_font_chooser_set_filter_func (GTK_FONT_CHOOSER (priv->font_dialog), + gtk_font_chooser_set_filter_func (GTK_FONT_CHOOSER (font_button->font_dialog), filter_func, filter_data, data_destroy); @@ -380,20 +358,19 @@ gtk_font_button_font_chooser_set_filter_func (GtkFontChooser *chooser, } clear_font_filter_data (font_button); - priv->font_filter = filter_func; - priv->font_filter_data = filter_data; - priv->font_filter_data_destroy = data_destroy; + font_button->font_filter = filter_func; + font_button->font_filter_data = filter_data; + font_button->font_filter_data_destroy = data_destroy; } static void gtk_font_button_take_font_desc (GtkFontButton *font_button, PangoFontDescription *font_desc) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); GObject *object = G_OBJECT (font_button); - if (priv->font_desc && font_desc && - pango_font_description_equal (priv->font_desc, font_desc)) + if (font_button->font_desc && font_desc && + pango_font_description_equal (font_button->font_desc, font_desc)) { pango_font_description_free (font_desc); return; @@ -404,21 +381,21 @@ gtk_font_button_take_font_desc (GtkFontButton *font_button, clear_font_data (font_button); if (font_desc) - priv->font_desc = font_desc; /* adopted */ + font_button->font_desc = font_desc; /* adopted */ else - priv->font_desc = pango_font_description_from_string (_("Sans 12")); + font_button->font_desc = pango_font_description_from_string (_("Sans 12")); - if (pango_font_description_get_size_is_absolute (priv->font_desc)) - priv->font_size = pango_font_description_get_size (priv->font_desc); + if (pango_font_description_get_size_is_absolute (font_button->font_desc)) + font_button->font_size = pango_font_description_get_size (font_button->font_desc); else - priv->font_size = pango_font_description_get_size (priv->font_desc) / PANGO_SCALE; + font_button->font_size = pango_font_description_get_size (font_button->font_desc) / PANGO_SCALE; gtk_font_button_update_font_data (font_button); gtk_font_button_update_font_info (font_button); - if (priv->font_dialog) - gtk_font_chooser_set_font_desc (GTK_FONT_CHOOSER (priv->font_dialog), - priv->font_desc); + if (font_button->font_dialog) + gtk_font_chooser_set_font_desc (GTK_FONT_CHOOSER (font_button->font_dialog), + font_button->font_desc); g_object_notify (G_OBJECT (font_button), "font"); g_object_notify (G_OBJECT (font_button), "font-desc"); @@ -429,9 +406,7 @@ gtk_font_button_take_font_desc (GtkFontButton *font_button, static const PangoFontDescription * gtk_font_button_get_font_desc (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - - return priv->font_desc; + return font_button->font_desc; } static void @@ -439,16 +414,15 @@ gtk_font_button_font_chooser_set_font_map (GtkFontChooser *chooser, PangoFontMap *font_map) { GtkFontButton *font_button = GTK_FONT_BUTTON (chooser); - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - if (g_set_object (&priv->font_map, font_map)) + if (g_set_object (&font_button->font_map, font_map)) { PangoContext *context; if (!font_map) font_map = pango_cairo_font_map_get_default (); - context = gtk_widget_get_pango_context (priv->font_label); + context = gtk_widget_get_pango_context (font_button->font_label); pango_context_set_font_map (context, font_map); } } @@ -457,9 +431,8 @@ static PangoFontMap * gtk_font_button_font_chooser_get_font_map (GtkFontChooser *chooser) { GtkFontButton *font_button = GTK_FONT_BUTTON (chooser); - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - return priv->font_map; + return font_button->font_map; } static void @@ -569,65 +542,63 @@ gtk_font_button_class_init (GtkFontButtonClass *klass) static void gtk_font_button_init (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); GtkWidget *box; - priv->button = gtk_button_new (); - g_signal_connect (priv->button, "clicked", G_CALLBACK (gtk_font_button_clicked), font_button); - priv->font_label = gtk_label_new (_("Font")); - gtk_widget_set_hexpand (priv->font_label, TRUE); - priv->size_label = gtk_label_new ("14"); - priv->font_size_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + font_button->button = gtk_button_new (); + g_signal_connect (font_button->button, "clicked", G_CALLBACK (gtk_font_button_clicked), font_button); + font_button->font_label = gtk_label_new (_("Font")); + gtk_widget_set_hexpand (font_button->font_label, TRUE); + font_button->size_label = gtk_label_new ("14"); + font_button->font_size_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); - gtk_container_add (GTK_CONTAINER (box), priv->font_label); + gtk_container_add (GTK_CONTAINER (box), font_button->font_label); - gtk_container_add (GTK_CONTAINER (priv->font_size_box), gtk_separator_new (GTK_ORIENTATION_VERTICAL)); - gtk_container_add (GTK_CONTAINER (priv->font_size_box), priv->size_label); - gtk_container_add (GTK_CONTAINER (box), priv->font_size_box); + gtk_container_add (GTK_CONTAINER (font_button->font_size_box), gtk_separator_new (GTK_ORIENTATION_VERTICAL)); + gtk_container_add (GTK_CONTAINER (font_button->font_size_box), font_button->size_label); + gtk_container_add (GTK_CONTAINER (box), font_button->font_size_box); - gtk_container_add (GTK_CONTAINER (priv->button), box); - gtk_widget_set_parent (priv->button, GTK_WIDGET (font_button)); + gtk_container_add (GTK_CONTAINER (font_button->button), box); + gtk_widget_set_parent (font_button->button, GTK_WIDGET (font_button)); /* Initialize fields */ - priv->modal = TRUE; - priv->use_font = FALSE; - priv->use_size = FALSE; - priv->show_preview_entry = TRUE; - priv->font_dialog = NULL; - priv->font_family = NULL; - priv->font_face = NULL; - priv->font_size = -1; - priv->title = g_strdup (_("Pick a Font")); - priv->level = GTK_FONT_CHOOSER_LEVEL_FAMILY | - GTK_FONT_CHOOSER_LEVEL_STYLE | - GTK_FONT_CHOOSER_LEVEL_SIZE; - priv->language = pango_language_get_default (); + font_button->modal = TRUE; + font_button->use_font = FALSE; + font_button->use_size = FALSE; + font_button->show_preview_entry = TRUE; + font_button->font_dialog = NULL; + font_button->font_family = NULL; + font_button->font_face = NULL; + font_button->font_size = -1; + font_button->title = g_strdup (_("Pick a Font")); + font_button->level = GTK_FONT_CHOOSER_LEVEL_FAMILY | + GTK_FONT_CHOOSER_LEVEL_STYLE | + GTK_FONT_CHOOSER_LEVEL_SIZE; + font_button->language = pango_language_get_default (); gtk_font_button_take_font_desc (font_button, NULL); - gtk_widget_add_css_class (priv->button, "font"); + gtk_widget_add_css_class (font_button->button, "font"); } static void gtk_font_button_finalize (GObject *object) { GtkFontButton *font_button = GTK_FONT_BUTTON (object); - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - if (priv->font_dialog != NULL) - gtk_widget_destroy (priv->font_dialog); + if (font_button->font_dialog != NULL) + gtk_widget_destroy (font_button->font_dialog); - g_free (priv->title); + g_free (font_button->title); clear_font_data (font_button); clear_font_filter_data (font_button); - g_free (priv->preview_text); + g_free (font_button->preview_text); - g_clear_object (&priv->provider); + g_clear_object (&font_button->provider); - gtk_widget_unparent (priv->button); + gtk_widget_unparent (font_button->button); G_OBJECT_CLASS (gtk_font_button_parent_class)->finalize (object); } @@ -685,7 +656,6 @@ gtk_font_button_get_property (GObject *object, GParamSpec *pspec) { GtkFontButton *font_button = GTK_FONT_BUTTON (object); - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); switch (param_id) { @@ -705,13 +675,13 @@ gtk_font_button_get_property (GObject *object, g_value_set_boxed (value, gtk_font_button_get_font_desc (font_button)); break; case GTK_FONT_CHOOSER_PROP_FONT_FEATURES: - g_value_set_string (value, priv->font_features); + g_value_set_string (value, font_button->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 (font_button->language)); break; case GTK_FONT_CHOOSER_PROP_LEVEL: - g_value_set_flags (value, priv->level); + g_value_set_flags (value, font_button->level); break; case GTK_FONT_CHOOSER_PROP_FONT: g_value_set_string (value, gtk_font_button_get_font_name (font_button)); @@ -767,16 +737,15 @@ void gtk_font_button_set_title (GtkFontButton *font_button, const gchar *title) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); gchar *old_title; g_return_if_fail (GTK_IS_FONT_BUTTON (font_button)); - old_title = priv->title; - priv->title = g_strdup (title); + old_title = font_button->title; + font_button->title = g_strdup (title); g_free (old_title); - if (priv->font_dialog) - gtk_window_set_title (GTK_WINDOW (priv->font_dialog), priv->title); + if (font_button->font_dialog) + gtk_window_set_title (GTK_WINDOW (font_button->font_dialog), font_button->title); g_object_notify (G_OBJECT (font_button), "title"); } @@ -792,11 +761,9 @@ gtk_font_button_set_title (GtkFontButton *font_button, const gchar* gtk_font_button_get_title (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - g_return_val_if_fail (GTK_IS_FONT_BUTTON (font_button), NULL); - return priv->title; + return font_button->title; } /** @@ -810,17 +777,15 @@ void gtk_font_button_set_modal (GtkFontButton *font_button, gboolean modal) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - g_return_if_fail (GTK_IS_FONT_BUTTON (font_button)); - if (priv->modal == modal) + if (font_button->modal == modal) return; - priv->modal = modal; + font_button->modal = modal; - if (priv->font_dialog) - gtk_window_set_modal (GTK_WINDOW (priv->font_dialog), priv->modal); + if (font_button->font_dialog) + gtk_window_set_modal (GTK_WINDOW (font_button->font_dialog), font_button->modal); g_object_notify (G_OBJECT (font_button), "modal"); } @@ -836,11 +801,9 @@ gtk_font_button_set_modal (GtkFontButton *font_button, gboolean gtk_font_button_get_modal (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - g_return_val_if_fail (GTK_IS_FONT_BUTTON (font_button), FALSE); - return priv->modal; + return font_button->modal; } /** @@ -854,11 +817,9 @@ gtk_font_button_get_modal (GtkFontButton *font_button) gboolean gtk_font_button_get_use_font (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - g_return_val_if_fail (GTK_IS_FONT_BUTTON (font_button), FALSE); - return priv->use_font; + return font_button->use_font; } /** @@ -872,14 +833,13 @@ void gtk_font_button_set_use_font (GtkFontButton *font_button, gboolean use_font) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); g_return_if_fail (GTK_IS_FONT_BUTTON (font_button)); use_font = (use_font != FALSE); - if (priv->use_font != use_font) + if (font_button->use_font != use_font) { - priv->use_font = use_font; + font_button->use_font = use_font; gtk_font_button_label_use_font (font_button); @@ -899,11 +859,9 @@ gtk_font_button_set_use_font (GtkFontButton *font_button, gboolean gtk_font_button_get_use_size (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - g_return_val_if_fail (GTK_IS_FONT_BUTTON (font_button), FALSE); - return priv->use_size; + return font_button->use_size; } /** @@ -917,14 +875,12 @@ void gtk_font_button_set_use_size (GtkFontButton *font_button, gboolean use_size) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - g_return_if_fail (GTK_IS_FONT_BUTTON (font_button)); use_size = (use_size != FALSE); - if (priv->use_size != use_size) + if (font_button->use_size != use_size) { - priv->use_size = use_size; + font_button->use_size = use_size; gtk_font_button_label_use_font (font_button); @@ -935,11 +891,9 @@ gtk_font_button_set_use_size (GtkFontButton *font_button, static const gchar * gtk_font_button_get_font_name (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - g_return_val_if_fail (GTK_IS_FONT_BUTTON (font_button), NULL); - return priv->fontname; + return font_button->fontname; } static void @@ -958,43 +912,42 @@ gtk_font_button_clicked (GtkButton *button, { GtkFontChooser *font_dialog; GtkFontButton *font_button = user_data; - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - if (!priv->font_dialog) + if (!font_button->font_dialog) { GtkWidget *parent; parent = GTK_WIDGET (gtk_widget_get_root (GTK_WIDGET (font_button))); - priv->font_dialog = gtk_font_chooser_dialog_new (priv->title, NULL); - gtk_window_set_hide_on_close (GTK_WINDOW (priv->font_dialog), TRUE); - gtk_window_set_modal (GTK_WINDOW (priv->font_dialog), priv->modal); + font_button->font_dialog = gtk_font_chooser_dialog_new (font_button->title, NULL); + gtk_window_set_hide_on_close (GTK_WINDOW (font_button->font_dialog), TRUE); + gtk_window_set_modal (GTK_WINDOW (font_button->font_dialog), font_button->modal); - font_dialog = GTK_FONT_CHOOSER (priv->font_dialog); + font_dialog = GTK_FONT_CHOOSER (font_button->font_dialog); - if (priv->font_map) - gtk_font_chooser_set_font_map (font_dialog, priv->font_map); + if (font_button->font_map) + gtk_font_chooser_set_font_map (font_dialog, font_button->font_map); - gtk_font_chooser_set_show_preview_entry (font_dialog, priv->show_preview_entry); - gtk_font_chooser_set_level (GTK_FONT_CHOOSER (font_dialog), priv->level); - gtk_font_chooser_set_language (GTK_FONT_CHOOSER (font_dialog), pango_language_to_string (priv->language)); + gtk_font_chooser_set_show_preview_entry (font_dialog, font_button->show_preview_entry); + gtk_font_chooser_set_level (GTK_FONT_CHOOSER (font_dialog), font_button->level); + gtk_font_chooser_set_language (GTK_FONT_CHOOSER (font_dialog), pango_language_to_string (font_button->language)); - if (priv->preview_text) + if (font_button->preview_text) { - gtk_font_chooser_set_preview_text (font_dialog, priv->preview_text); - g_free (priv->preview_text); - priv->preview_text = NULL; + gtk_font_chooser_set_preview_text (font_dialog, font_button->preview_text); + g_free (font_button->preview_text); + font_button->preview_text = NULL; } - if (priv->font_filter) + if (font_button->font_filter) { gtk_font_chooser_set_filter_func (font_dialog, - priv->font_filter, - priv->font_filter_data, - priv->font_filter_data_destroy); - priv->font_filter = NULL; - priv->font_filter_data = NULL; - priv->font_filter_data_destroy = NULL; + font_button->font_filter, + font_button->font_filter_data, + font_button->font_filter_data_destroy); + font_button->font_filter = NULL; + font_button->font_filter_data = NULL; + font_button->font_filter_data_destroy = NULL; } if (GTK_IS_WINDOW (parent)) @@ -1016,14 +969,14 @@ gtk_font_button_clicked (GtkButton *button, G_CALLBACK (dialog_destroy), font_button); } - if (!gtk_widget_get_visible (priv->font_dialog)) + if (!gtk_widget_get_visible (font_button->font_dialog)) { - font_dialog = GTK_FONT_CHOOSER (priv->font_dialog); - gtk_font_chooser_set_font_desc (font_dialog, priv->font_desc); + font_dialog = GTK_FONT_CHOOSER (font_button->font_dialog); + gtk_font_chooser_set_font_desc (font_dialog, font_button->font_desc); } G_GNUC_BEGIN_IGNORE_DEPRECATIONS - gtk_window_present (GTK_WINDOW (priv->font_dialog)); + gtk_window_present (GTK_WINDOW (font_button->font_dialog)); G_GNUC_END_IGNORE_DEPRECATIONS } @@ -1034,35 +987,34 @@ response_cb (GtkDialog *dialog, gpointer data) { GtkFontButton *font_button = GTK_FONT_BUTTON (data); - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); GtkFontChooser *font_chooser; GObject *object; - gtk_widget_hide (priv->font_dialog); + gtk_widget_hide (font_button->font_dialog); if (response_id != GTK_RESPONSE_OK) return; - font_chooser = GTK_FONT_CHOOSER (priv->font_dialog); + font_chooser = GTK_FONT_CHOOSER (font_button->font_dialog); object = G_OBJECT (font_chooser); g_object_freeze_notify (object); clear_font_data (font_button); - priv->font_desc = gtk_font_chooser_get_font_desc (font_chooser); - if (priv->font_desc) - priv->fontname = pango_font_description_to_string (priv->font_desc); - priv->font_family = gtk_font_chooser_get_font_family (font_chooser); - if (priv->font_family) - g_object_ref (priv->font_family); - priv->font_face = gtk_font_chooser_get_font_face (font_chooser); - if (priv->font_face) - g_object_ref (priv->font_face); - priv->font_size = gtk_font_chooser_get_font_size (font_chooser); - g_free (priv->font_features); - priv->font_features = gtk_font_chooser_get_font_features (font_chooser); - priv->language = pango_language_from_string (gtk_font_chooser_get_language (font_chooser)); + font_button->font_desc = gtk_font_chooser_get_font_desc (font_chooser); + if (font_button->font_desc) + font_button->fontname = pango_font_description_to_string (font_button->font_desc); + font_button->font_family = gtk_font_chooser_get_font_family (font_chooser); + if (font_button->font_family) + g_object_ref (font_button->font_family); + font_button->font_face = gtk_font_chooser_get_font_face (font_chooser); + if (font_button->font_face) + g_object_ref (font_button->font_face); + font_button->font_size = gtk_font_chooser_get_font_size (font_chooser); + g_free (font_button->font_features); + font_button->font_features = gtk_font_chooser_get_font_features (font_chooser); + font_button->language = pango_language_from_string (gtk_font_chooser_get_language (font_chooser)); /* Set label font */ gtk_font_button_update_font_info (font_button); @@ -1082,10 +1034,9 @@ dialog_destroy (GtkWidget *widget, gpointer data) { GtkFontButton *font_button = GTK_FONT_BUTTON (data); - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); /* Dialog will get destroyed so reference is not valid now */ - priv->font_dialog = NULL; + font_button->font_dialog = NULL; } static void @@ -1291,17 +1242,16 @@ pango_font_description_to_css (PangoFontDescription *desc, static void gtk_font_button_label_use_font (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); GtkStyleContext *context; - context = gtk_widget_get_style_context (priv->font_label); + context = gtk_widget_get_style_context (font_button->font_label); - if (!priv->use_font) + if (!font_button->use_font) { - if (priv->provider) + if (font_button->provider) { - gtk_style_context_remove_provider (context, GTK_STYLE_PROVIDER (priv->provider)); - g_clear_object (&priv->provider); + gtk_style_context_remove_provider (context, GTK_STYLE_PROVIDER (font_button->provider)); + g_clear_object (&font_button->provider); } } else @@ -1309,23 +1259,23 @@ gtk_font_button_label_use_font (GtkFontButton *font_button) PangoFontDescription *desc; gchar *data; - if (!priv->provider) + if (!font_button->provider) { - priv->provider = gtk_css_provider_new (); + font_button->provider = gtk_css_provider_new (); gtk_style_context_add_provider (context, - GTK_STYLE_PROVIDER (priv->provider), + GTK_STYLE_PROVIDER (font_button->provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); } - desc = pango_font_description_copy (priv->font_desc); + desc = pango_font_description_copy (font_button->font_desc); - if (!priv->use_size) + if (!font_button->use_size) pango_font_description_unset_fields (desc, PANGO_FONT_MASK_SIZE); data = pango_font_description_to_css (desc, - priv->font_features, - pango_language_to_string (priv->language)); - gtk_css_provider_load_from_data (priv->provider, data, -1); + font_button->font_features, + pango_language_to_string (font_button->language)); + gtk_css_provider_load_from_data (font_button->provider, data, -1); g_free (data); pango_font_description_free (desc); @@ -1335,43 +1285,42 @@ gtk_font_button_label_use_font (GtkFontButton *font_button) static void gtk_font_button_update_font_info (GtkFontButton *font_button) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); const gchar *fam_name; const gchar *face_name; gchar *family_style; - if (priv->font_family) - fam_name = pango_font_family_get_name (priv->font_family); + if (font_button->font_family) + fam_name = pango_font_family_get_name (font_button->font_family); else fam_name = C_("font", "None"); - if (priv->font_face) - face_name = pango_font_face_get_face_name (priv->font_face); + if (font_button->font_face) + face_name = pango_font_face_get_face_name (font_button->font_face); else face_name = ""; - if ((priv->level & GTK_FONT_CHOOSER_LEVEL_STYLE) != 0) + if ((font_button->level & GTK_FONT_CHOOSER_LEVEL_STYLE) != 0) family_style = g_strconcat (fam_name, " ", face_name, NULL); else family_style = g_strdup (fam_name); - gtk_label_set_text (GTK_LABEL (priv->font_label), family_style); + gtk_label_set_text (GTK_LABEL (font_button->font_label), family_style); g_free (family_style); - if ((priv->level & GTK_FONT_CHOOSER_LEVEL_SIZE) != 0) + if ((font_button->level & GTK_FONT_CHOOSER_LEVEL_SIZE) != 0) { /* mirror Pango, which doesn't translate this either */ gchar *size = g_strdup_printf ("%2.4g%s", - pango_font_description_get_size (priv->font_desc) / (double)PANGO_SCALE, - pango_font_description_get_size_is_absolute (priv->font_desc) ? "px" : ""); + pango_font_description_get_size (font_button->font_desc) / (double)PANGO_SCALE, + pango_font_description_get_size_is_absolute (font_button->font_desc) ? "px" : ""); - gtk_label_set_text (GTK_LABEL (priv->size_label), size); + gtk_label_set_text (GTK_LABEL (font_button->size_label), size); g_free (size); - gtk_widget_show (priv->font_size_box); + gtk_widget_show (font_button->font_size_box); } else - gtk_widget_hide (priv->font_size_box); + gtk_widget_hide (font_button->font_size_box); gtk_font_button_label_use_font (font_button); @@ -1381,15 +1330,13 @@ static void gtk_font_button_set_level (GtkFontButton *font_button, GtkFontChooserLevel level) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - - if (priv->level == level) + if (font_button->level == level) return; - priv->level = level; + font_button->level = level; - if (priv->font_dialog) - gtk_font_chooser_set_level (GTK_FONT_CHOOSER (priv->font_dialog), level); + if (font_button->font_dialog) + gtk_font_chooser_set_level (GTK_FONT_CHOOSER (font_button->font_dialog), level); gtk_font_button_update_font_info (font_button); @@ -1400,12 +1347,10 @@ static void gtk_font_button_set_language (GtkFontButton *font_button, const char *language) { - GtkFontButtonPrivate *priv = gtk_font_button_get_instance_private (font_button); - - priv->language = pango_language_from_string (language); + font_button->language = pango_language_from_string (language); - if (priv->font_dialog) - gtk_font_chooser_set_language (GTK_FONT_CHOOSER (priv->font_dialog), language); + if (font_button->font_dialog) + gtk_font_chooser_set_language (GTK_FONT_CHOOSER (font_button->font_dialog), language); g_object_notify (G_OBJECT (font_button), "language"); } |