1 /* GTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4 * Massively updated for Pango by Owen Taylor, May 2000
5 * GtkFontSelection widget for Gtk+, by Damon Chaplin, May 1998.
6 * Based on the GnomeFontSelector widget, by Elliot Lee, but major changes.
7 * The GnomeFontSelector was derived from app/text_tool.c in the GIMP.
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2 of the License, or (at your option) any later version.
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the
21 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 * Boston, MA 02111-1307, USA.
26 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
27 * file for a list of people on the GTK+ Team. See the ChangeLog
28 * files for a list of changes. These files are distributed with
29 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
35 #include <glib/gprintf.h>
40 #include "gtkfontsel.h"
41 #include "gtkbutton.h"
42 #include "gtkcellrenderertext.h"
48 #include "gtkliststore.h"
52 #include "gtktreeselection.h"
53 #include "gtktreeview.h"
55 #include "gtkscrolledwindow.h"
57 #include "gtkaccessible.h"
58 #include "gtkbuildable.h"
59 #include "gtkprivate.h"
64 * @Short_description: A widget for selecting fonts
65 * @Title: GtkFontSelection
66 * @See_also: #GtkFontSelectionDialog
68 * The #GtkFontSelection widget lists the available fonts, styles and sizes,
69 * allowing the user to select a font.
70 * It is used in the #GtkFontSelectionDialog widget to provide a dialog box for
73 * To set the font which is initially selected, use
74 * gtk_font_selection_set_font_name().
76 * To get the selected font use gtk_font_selection_get_font_name().
78 * To change the text which is shown in the preview area, use
79 * gtk_font_selection_set_preview_text().
83 struct _GtkFontSelectionPrivate
85 GtkWidget *search_entry;
86 GtkWidget *family_face_list;
87 GtkWidget *size_slider;
88 GtkWidget *size_spinner;
92 PangoFontFamily *family;
96 struct _GtkFontSelectionDialogPrivate
100 GtkWidget *ok_button;
101 GtkWidget *apply_button;
102 GtkWidget *cancel_button;
106 /* We don't enable the font and style entries because they don't add
107 * much in terms of visible effect and have a weird effect on keynav.
108 * the Windows font selector has entries similarly positioned but they
109 * act in conjunction with the associated lists to form a single focus
112 #undef INCLUDE_FONT_ENTRIES
114 /* This is the default text shown in the preview entry, though the user
115 can set it. Remember that some fonts only have capital letters. */
116 #define PREVIEW_TEXT N_("abcdefghijk ABCDEFGHIJK")
118 #define DEFAULT_FONT_NAME "Sans 10"
120 /* This is the initial and maximum height of the preview entry (it expands
121 when large font sizes are selected). Initial height is also the minimum. */
122 #define INITIAL_PREVIEW_HEIGHT 44
123 #define MAX_PREVIEW_HEIGHT 300
125 /* These are the sizes of the font, style & size lists. */
126 #define FONT_LIST_HEIGHT 136
127 #define FONT_LIST_WIDTH 190
128 #define FONT_STYLE_LIST_WIDTH 170
129 #define FONT_SIZE_LIST_WIDTH 60
131 /* These are what we use as the standard font sizes, for the size list.
133 static const guint16 font_sizes[] = {
134 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 24, 26, 28,
135 32, 36, 40, 48, 56, 64, 72
159 static void gtk_font_selection_set_property (GObject *object,
163 static void gtk_font_selection_get_property (GObject *object,
167 static void gtk_font_selection_finalize (GObject *object);
168 static void gtk_font_selection_screen_changed (GtkWidget *widget,
169 GdkScreen *previous_screen);
170 static void gtk_font_selection_style_updated (GtkWidget *widget);
172 static void gtk_font_selection_ref_family (GtkFontSelection *fontsel,
173 PangoFontFamily *family);
174 static void gtk_font_selection_ref_face (GtkFontSelection *fontsel,
175 PangoFontFace *face);
177 G_DEFINE_TYPE (GtkFontSelection, gtk_font_selection, GTK_TYPE_VBOX)
180 gtk_font_selection_class_init (GtkFontSelectionClass *klass)
182 GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
183 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
185 gobject_class->finalize = gtk_font_selection_finalize;
186 gobject_class->set_property = gtk_font_selection_set_property;
187 gobject_class->get_property = gtk_font_selection_get_property;
189 widget_class->screen_changed = gtk_font_selection_screen_changed;
190 widget_class->style_updated = gtk_font_selection_style_updated;
192 g_object_class_install_property (gobject_class,
194 g_param_spec_string ("font-name",
196 P_("The string that represents this font"),
198 GTK_PARAM_READWRITE));
199 g_object_class_install_property (gobject_class,
201 g_param_spec_string ("preview-text",
203 P_("The text to display in order to demonstrate the selected font"),
205 GTK_PARAM_READWRITE));
207 g_type_class_add_private (klass, sizeof (GtkFontSelectionPrivate));
211 gtk_font_selection_set_property (GObject *object,
216 GtkFontSelection *fontsel;
218 fontsel = GTK_FONT_SELECTION (object);
223 gtk_font_selection_set_font_name (fontsel, g_value_get_string (value));
225 case PROP_PREVIEW_TEXT:
226 gtk_font_selection_set_preview_text (fontsel, g_value_get_string (value));
229 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
234 static void gtk_font_selection_get_property (GObject *object,
239 GtkFontSelection *fontsel;
241 fontsel = GTK_FONT_SELECTION (object);
246 g_value_take_string (value, gtk_font_selection_get_font_name (fontsel));
248 case PROP_PREVIEW_TEXT:
249 g_value_set_string (value, gtk_font_selection_get_preview_text (fontsel));
252 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
257 /* Handles key press events on the lists, so that we can trap Enter to
258 * activate the default button on our own.
261 list_row_activated (GtkWidget *widget)
263 GtkWidget *default_widget, *focus_widget;
266 window = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (widget)));
267 if (!gtk_widget_is_toplevel (GTK_WIDGET (window)))
272 default_widget = gtk_window_get_default_widget (window);
273 focus_widget = gtk_window_get_focus (window);
275 if (widget != default_widget &&
276 !(widget == focus_widget && (!default_widget || !gtk_widget_get_sensitive (default_widget))))
277 gtk_window_activate_default (window);
284 gtk_font_selection_init (GtkFontSelection *fontsel)
286 GtkFontSelectionPrivate *priv;
287 GtkWidget *scrolled_win;
289 GtkWidget *table, *label;
290 GtkWidget *font_label, *style_label;
293 GtkTreeViewColumn *column;
294 GList *focus_chain = NULL;
297 fontsel->priv = G_TYPE_INSTANCE_GET_PRIVATE (fontsel,
298 GTK_TYPE_FONT_SELECTION,
299 GtkFontSelectionPrivate);
300 priv = fontsel->priv;
301 gtk_widget_push_composite_child ();
302 gtk_widget_pop_composite_child();
306 * gtk_font_selection_new:
308 * Creates a new #GtkFontSelection.
310 * Return value: a n ew #GtkFontSelection
313 gtk_font_selection_new (void)
315 GtkFontSelection *fontsel;
317 fontsel = g_object_new (GTK_TYPE_FONT_SELECTION, NULL);
319 return GTK_WIDGET (fontsel);
323 gtk_font_selection_finalize (GObject *object)
325 GtkFontSelection *fontsel = GTK_FONT_SELECTION (object);
327 gtk_font_selection_ref_family (fontsel, NULL);
328 gtk_font_selection_ref_face (fontsel, NULL);
330 G_OBJECT_CLASS (gtk_font_selection_parent_class)->finalize (object);
334 gtk_font_selection_screen_changed (GtkWidget *widget,
335 GdkScreen *previous_screen)
341 gtk_font_selection_style_updated (GtkWidget *widget)
343 GTK_WIDGET_CLASS (gtk_font_selection_parent_class)->style_updated (widget);
349 gtk_font_selection_ref_family (GtkFontSelection *fontsel,
350 PangoFontFamily *family)
352 GtkFontSelectionPrivate *priv = fontsel->priv;
355 family = g_object_ref (family);
357 g_object_unref (priv->family);
358 priv->family = family;
363 gtk_font_selection_ref_face (GtkFontSelection *fontsel,
366 GtkFontSelectionPrivate *priv = fontsel->priv;
369 face = g_object_ref (face);
371 g_object_unref (priv->face);
376 /*****************************************************************************
377 * These functions are the main public interface for getting/setting the font.
378 *****************************************************************************/
381 * gtk_font_selection_get_family_list:
382 * @fontsel: a #GtkFontSelection
384 * This returns the #GtkTreeView that lists font families, for
385 * example, 'Sans', 'Serif', etc.
387 * Return value: (transfer none): A #GtkWidget that is part of @fontsel
392 gtk_font_selection_get_family_list (GtkFontSelection *fontsel)
394 g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
400 * gtk_font_selection_get_face_list:
401 * @fontsel: a #GtkFontSelection
403 * This returns the #GtkTreeView which lists all styles available for
404 * the selected font. For example, 'Regular', 'Bold', etc.
406 * Return value: (transfer none): A #GtkWidget that is part of @fontsel
411 gtk_font_selection_get_face_list (GtkFontSelection *fontsel)
413 g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
419 * gtk_font_selection_get_size_entry:
420 * @fontsel: a #GtkFontSelection
422 * This returns the #GtkEntry used to allow the user to edit the font
423 * number manually instead of selecting it from the list of font sizes.
425 * Return value: (transfer none): A #GtkWidget that is part of @fontsel
430 gtk_font_selection_get_size_entry (GtkFontSelection *fontsel)
432 g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
438 * gtk_font_selection_get_size_list:
439 * @fontsel: a #GtkFontSelection
441 * This returns the #GtkTreeeView used to list font sizes.
443 * Return value: (transfer none): A #GtkWidget that is part of @fontsel
448 gtk_font_selection_get_size_list (GtkFontSelection *fontsel)
450 g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
456 * gtk_font_selection_get_preview_entry:
457 * @fontsel: a #GtkFontSelection
459 * This returns the #GtkEntry used to display the font as a preview.
461 * Return value: (transfer none): A #GtkWidget that is part of @fontsel
466 gtk_font_selection_get_preview_entry (GtkFontSelection *fontsel)
468 g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
474 * gtk_font_selection_get_family:
475 * @fontsel: a #GtkFontSelection
477 * Gets the #PangoFontFamily representing the selected font family.
479 * Return value: (transfer none): A #PangoFontFamily representing the
480 * selected font family. Font families are a collection of font
481 * faces. The returned object is owned by @fontsel and must not
482 * be modified or freed.
487 gtk_font_selection_get_family (GtkFontSelection *fontsel)
489 g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
495 * gtk_font_selection_get_face:
496 * @fontsel: a #GtkFontSelection
498 * Gets the #PangoFontFace representing the selected font group
499 * details (i.e. family, slant, weight, width, etc).
501 * Return value: (transfer none): A #PangoFontFace representing the
502 * selected font group details. The returned object is owned by
503 * @fontsel and must not be modified or freed.
508 gtk_font_selection_get_face (GtkFontSelection *fontsel)
510 g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
516 * gtk_font_selection_get_size:
517 * @fontsel: a #GtkFontSelection
519 * The selected font size.
521 * Return value: A n integer representing the selected font size,
522 * or -1 if no font size is selected.
527 gtk_font_selection_get_size (GtkFontSelection *fontsel)
529 g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), -1);
535 * gtk_font_selection_get_font_name:
536 * @fontsel: a #GtkFontSelection
538 * Gets the currently-selected font name.
540 * Note that this can be a different string than what you set with
541 * gtk_font_selection_set_font_name(), as the font selection widget may
542 * normalize font names and thus return a string with a different structure.
543 * For example, "Helvetica Italic Bold 12" could be normalized to
544 * "Helvetica Bold Italic 12". Use pango_font_description_equal()
545 * if you want to compare two font descriptions.
547 * Return value: A string with the name of the current font, or %NULL if
548 * no font is selected. You must free this string with g_free().
551 gtk_font_selection_get_font_name (GtkFontSelection *fontsel)
556 /* This sets the current font, then selecting the appropriate list rows. */
559 * gtk_font_selection_set_font_name:
560 * @fontsel: a #GtkFontSelection
561 * @fontname: a font name like "Helvetica 12" or "Times Bold 18"
563 * Sets the currently-selected font.
565 * Note that the @fontsel needs to know the screen in which it will appear
566 * for this to work; this can be guaranteed by simply making sure that the
567 * @fontsel is inserted in a toplevel window before you call this function.
569 * Return value: %TRUE if the font could be set successfully; %FALSE if no
570 * such font exists or if the @fontsel doesn't belong to a particular
574 gtk_font_selection_set_font_name (GtkFontSelection *fontsel,
575 const gchar *fontname)
577 PangoFontFamily *family = NULL;
578 PangoFontFace *face = NULL;
579 PangoFontDescription *new_desc;
581 g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), FALSE);
587 * gtk_font_selection_get_preview_text:
588 * @fontsel: a #GtkFontSelection
590 * Gets the text displayed in the preview area.
592 * Return value: the text displayed in the preview area.
593 * This string is owned by the widget and should not be
596 G_CONST_RETURN gchar*
597 gtk_font_selection_get_preview_text (GtkFontSelection *fontsel)
604 * gtk_font_selection_set_preview_text:
605 * @fontsel: a #GtkFontSelection
606 * @text: the text to display in the preview area
608 * Sets the text displayed in the preview area.
609 * The @text is used to show how the selected font looks.
612 gtk_font_selection_set_preview_text (GtkFontSelection *fontsel,
615 GtkFontSelectionPrivate *priv;
617 g_return_if_fail (GTK_IS_FONT_SELECTION (fontsel));
618 g_return_if_fail (text != NULL);
620 priv = fontsel->priv;
625 * SECTION:gtkfontseldlg
626 * @Short_description: A dialog box for selecting fonts
627 * @Title: GtkFontSelectionDialog
628 * @See_also: #GtkFontSelection, #GtkDialog
630 * The #GtkFontSelectionDialog widget is a dialog box for selecting a font.
632 * To set the font which is initially selected, use
633 * gtk_font_selection_dialog_set_font_name().
635 * To get the selected font use gtk_font_selection_dialog_get_font_name().
637 * To change the text which is shown in the preview area, use
638 * gtk_font_selection_dialog_set_preview_text().
640 * <refsect2 id="GtkFontSelectionDialog-BUILDER-UI">
641 * <title>GtkFontSelectionDialog as GtkBuildable</title>
642 * The GtkFontSelectionDialog implementation of the GtkBuildable interface
643 * exposes the embedded #GtkFontSelection as internal child with the
644 * name "font_selection". It also exposes the buttons with the names
645 * "ok_button", "cancel_button" and "apply_button".
649 static void gtk_font_selection_dialog_buildable_interface_init (GtkBuildableIface *iface);
650 static GObject * gtk_font_selection_dialog_buildable_get_internal_child (GtkBuildable *buildable,
652 const gchar *childname);
654 G_DEFINE_TYPE_WITH_CODE (GtkFontSelectionDialog, gtk_font_selection_dialog,
656 G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE,
657 gtk_font_selection_dialog_buildable_interface_init))
659 static GtkBuildableIface *parent_buildable_iface;
662 gtk_font_selection_dialog_class_init (GtkFontSelectionDialogClass *klass)
664 g_type_class_add_private (klass, sizeof (GtkFontSelectionDialogPrivate));
668 gtk_font_selection_dialog_init (GtkFontSelectionDialog *fontseldiag)
670 GtkFontSelectionDialogPrivate *priv;
671 GtkDialog *dialog = GTK_DIALOG (fontseldiag);
672 GtkWidget *action_area, *content_area;
674 fontseldiag->priv = G_TYPE_INSTANCE_GET_PRIVATE (fontseldiag,
675 GTK_TYPE_FONT_SELECTION_DIALOG,
676 GtkFontSelectionDialogPrivate);
677 priv = fontseldiag->priv;
679 content_area = gtk_dialog_get_content_area (dialog);
680 action_area = gtk_dialog_get_action_area (dialog);
682 gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
683 gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */
684 gtk_container_set_border_width (GTK_CONTAINER (action_area), 5);
685 gtk_box_set_spacing (GTK_BOX (action_area), 6);
687 gtk_widget_push_composite_child ();
689 gtk_window_set_resizable (GTK_WINDOW (fontseldiag), TRUE);
691 /* Create the content area */
692 priv->fontsel = gtk_font_selection_new ();
693 gtk_container_set_border_width (GTK_CONTAINER (priv->fontsel), 5);
694 gtk_widget_show (priv->fontsel);
695 gtk_box_pack_start (GTK_BOX (content_area),
696 priv->fontsel, TRUE, TRUE, 0);
698 /* Create the action area */
699 priv->cancel_button = gtk_dialog_add_button (dialog,
701 GTK_RESPONSE_CANCEL);
703 priv->apply_button = gtk_dialog_add_button (dialog,
706 gtk_widget_hide (priv->apply_button);
708 priv->ok_button = gtk_dialog_add_button (dialog,
711 gtk_widget_grab_default (priv->ok_button);
713 gtk_dialog_set_alternative_button_order (GTK_DIALOG (fontseldiag),
719 gtk_window_set_title (GTK_WINDOW (fontseldiag),
720 _("Font Selection"));
722 gtk_widget_pop_composite_child ();
726 * gtk_font_selection_dialog_new:
727 * @title: the title of the dialog window
729 * Creates a new #GtkFontSelectionDialog.
731 * Return value: a new #GtkFontSelectionDialog
734 gtk_font_selection_dialog_new (const gchar *title)
736 GtkFontSelectionDialog *fontseldiag;
738 fontseldiag = g_object_new (GTK_TYPE_FONT_SELECTION_DIALOG, NULL);
741 gtk_window_set_title (GTK_WINDOW (fontseldiag), title);
743 return GTK_WIDGET (fontseldiag);
747 * gtk_font_selection_dialog_get_font_selection:
748 * @fsd: a #GtkFontSelectionDialog
750 * Retrieves the #GtkFontSelection widget embedded in the dialog.
752 * Returns: (transfer none): the embedded #GtkFontSelection
757 gtk_font_selection_dialog_get_font_selection (GtkFontSelectionDialog *fsd)
759 g_return_val_if_fail (GTK_IS_FONT_SELECTION_DIALOG (fsd), NULL);
761 return fsd->priv->fontsel;
766 * gtk_font_selection_dialog_get_ok_button:
767 * @fsd: a #GtkFontSelectionDialog
769 * Gets the 'OK' button.
771 * Return value: (transfer none): the #GtkWidget used in the dialog
772 * for the 'OK' button.
777 gtk_font_selection_dialog_get_ok_button (GtkFontSelectionDialog *fsd)
779 g_return_val_if_fail (GTK_IS_FONT_SELECTION_DIALOG (fsd), NULL);
781 return fsd->priv->ok_button;
785 * gtk_font_selection_dialog_get_cancel_button:
786 * @fsd: a #GtkFontSelectionDialog
788 * Gets the 'Cancel' button.
790 * Return value: (transfer none): the #GtkWidget used in the dialog
791 * for the 'Cancel' button.
796 gtk_font_selection_dialog_get_cancel_button (GtkFontSelectionDialog *fsd)
798 g_return_val_if_fail (GTK_IS_FONT_SELECTION_DIALOG (fsd), NULL);
800 return fsd->priv->cancel_button;
804 gtk_font_selection_dialog_buildable_interface_init (GtkBuildableIface *iface)
806 parent_buildable_iface = g_type_interface_peek_parent (iface);
807 iface->get_internal_child = gtk_font_selection_dialog_buildable_get_internal_child;
811 gtk_font_selection_dialog_buildable_get_internal_child (GtkBuildable *buildable,
813 const gchar *childname)
815 GtkFontSelectionDialogPrivate *priv;
817 priv = GTK_FONT_SELECTION_DIALOG (buildable)->priv;
819 if (g_strcmp0 (childname, "ok_button") == 0)
820 return G_OBJECT (priv->ok_button);
821 else if (g_strcmp0 (childname, "cancel_button") == 0)
822 return G_OBJECT (priv->cancel_button);
823 else if (g_strcmp0 (childname, "apply_button") == 0)
824 return G_OBJECT (priv->apply_button);
825 else if (g_strcmp0 (childname, "font_selection") == 0)
826 return G_OBJECT (priv->fontsel);
828 return parent_buildable_iface->get_internal_child (buildable, builder, childname);
832 * gtk_font_selection_dialog_get_font_name:
833 * @fsd: a #GtkFontSelectionDialog
835 * Gets the currently-selected font name.
837 * Note that this can be a different string than what you set with
838 * gtk_font_selection_dialog_set_font_name(), as the font selection widget
839 * may normalize font names and thus return a string with a different
840 * structure. For example, "Helvetica Italic Bold 12" could be normalized
841 * to "Helvetica Bold Italic 12". Use pango_font_description_equal()
842 * if you want to compare two font descriptions.
844 * Return value: A string with the name of the current font, or %NULL if no
845 * font is selected. You must free this string with g_free().
848 gtk_font_selection_dialog_get_font_name (GtkFontSelectionDialog *fsd)
850 GtkFontSelectionDialogPrivate *priv;
852 g_return_val_if_fail (GTK_IS_FONT_SELECTION_DIALOG (fsd), NULL);
856 return gtk_font_selection_get_font_name (GTK_FONT_SELECTION (priv->fontsel));
860 * gtk_font_selection_dialog_set_font_name:
861 * @fsd: a #GtkFontSelectionDialog
862 * @fontname: a font name like "Helvetica 12" or "Times Bold 18"
864 * Sets the currently selected font.
866 * Return value: %TRUE if the font selected in @fsd is now the
867 * @fontname specified, %FALSE otherwise.
870 gtk_font_selection_dialog_set_font_name (GtkFontSelectionDialog *fsd,
871 const gchar *fontname)
873 GtkFontSelectionDialogPrivate *priv;
875 g_return_val_if_fail (GTK_IS_FONT_SELECTION_DIALOG (fsd), FALSE);
876 g_return_val_if_fail (fontname, FALSE);
880 return gtk_font_selection_set_font_name (GTK_FONT_SELECTION (priv->fontsel), fontname);
884 * gtk_font_selection_dialog_get_preview_text:
885 * @fsd: a #GtkFontSelectionDialog
887 * Gets the text displayed in the preview area.
889 * Return value: the text displayed in the preview area.
890 * This string is owned by the widget and should not be
893 G_CONST_RETURN gchar*
894 gtk_font_selection_dialog_get_preview_text (GtkFontSelectionDialog *fsd)
896 GtkFontSelectionDialogPrivate *priv;
898 g_return_val_if_fail (GTK_IS_FONT_SELECTION_DIALOG (fsd), NULL);
902 return gtk_font_selection_get_preview_text (GTK_FONT_SELECTION (priv->fontsel));
906 * gtk_font_selection_dialog_set_preview_text:
907 * @fsd: a #GtkFontSelectionDialog
908 * @text: the text to display in the preview area
910 * Sets the text displayed in the preview area.
913 gtk_font_selection_dialog_set_preview_text (GtkFontSelectionDialog *fsd,
916 GtkFontSelectionDialogPrivate *priv;
918 g_return_if_fail (GTK_IS_FONT_SELECTION_DIALOG (fsd));
919 g_return_if_fail (text != NULL);
923 gtk_font_selection_set_preview_text (GTK_FONT_SELECTION (priv->fontsel), text);