]> Pileus Git - ~andy/gtk/blob - gtk/gtkfontchooser.h
stylecontext: Do invalidation on first resize container
[~andy/gtk] / gtk / gtkfontchooser.h
1 /* GTK - The GIMP Toolkit
2  * gtkfontchooser.h - Abstract interface for font file selectors GUIs
3  *
4  * Copyright (C) 2006, Emmanuele Bassi
5  * Copyright (C) 2011 Alberto Ruiz <aruiz@gnome.org>
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #ifndef __GTK_FONT_CHOOSER_H__
22 #define __GTK_FONT_CHOOSER_H__
23
24 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
25 #error "Only <gtk/gtk.h> can be included directly."
26 #endif
27
28 #include <gtk/gtkwidget.h>
29
30 G_BEGIN_DECLS
31
32 /**
33  * GtkFontFilterFunc:
34  * @family: a #PangoFontFamily
35  * @face: a #PangoFontFace belonging to @family
36  * @data: (closure): user data passed to gtk_font_chooser_set_filter_func()
37  *
38  * The type of function that is used for deciding what fonts get
39  * shown in a #GtkFontChooser. See gtk_font_chooser_set_filter_func().
40  *
41  * Returns: %TRUE if the font should be displayed
42  */
43 typedef gboolean (*GtkFontFilterFunc) (const PangoFontFamily *family,
44                                        const PangoFontFace   *face,
45                                        gpointer               data);
46
47 #define GTK_TYPE_FONT_CHOOSER                   (gtk_font_chooser_get_type ())
48 #define GTK_FONT_CHOOSER(obj)                   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FONT_CHOOSER, GtkFontChooser))
49 #define GTK_IS_FONT_CHOOSER(obj)                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_FONT_CHOOSER))
50 #define GTK_FONT_CHOOSER_GET_IFACE(inst)        (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GTK_TYPE_FONT_CHOOSER, GtkFontChooserIface))
51
52 typedef struct _GtkFontChooser      GtkFontChooser; /* dummy */
53 typedef struct _GtkFontChooserIface GtkFontChooserIface;
54
55 struct _GtkFontChooserIface
56 {
57   GTypeInterface base_iface;
58
59   /* Methods */
60   PangoFontFamily * (* get_font_family)         (GtkFontChooser  *fontchooser);
61   PangoFontFace *   (* get_font_face)           (GtkFontChooser  *fontchooser);
62   gint              (* get_font_size)           (GtkFontChooser  *fontchooser);
63
64   void              (* set_filter_func)         (GtkFontChooser   *fontchooser,
65                                                  GtkFontFilterFunc filter,
66                                                  gpointer          user_data,
67                                                  GDestroyNotify    destroy);
68
69   /* Signals */
70   void (* font_activated) (GtkFontChooser *chooser,
71                            const gchar    *fontname);
72
73    /* Padding */
74   gpointer padding[12];
75 };
76
77 GDK_AVAILABLE_IN_3_2
78 GType            gtk_font_chooser_get_type                 (void) G_GNUC_CONST;
79
80 GDK_AVAILABLE_IN_3_2
81 PangoFontFamily *gtk_font_chooser_get_font_family          (GtkFontChooser   *fontchooser);
82 GDK_AVAILABLE_IN_3_2
83 PangoFontFace   *gtk_font_chooser_get_font_face            (GtkFontChooser   *fontchooser);
84 GDK_AVAILABLE_IN_3_2
85 gint             gtk_font_chooser_get_font_size            (GtkFontChooser   *fontchooser);
86
87 GDK_AVAILABLE_IN_3_2
88 PangoFontDescription *
89                  gtk_font_chooser_get_font_desc            (GtkFontChooser             *fontchooser);
90 GDK_AVAILABLE_IN_3_2
91 void             gtk_font_chooser_set_font_desc            (GtkFontChooser             *fontchooser,
92                                                             const PangoFontDescription *font_desc);
93
94 GDK_AVAILABLE_IN_3_2
95 gchar*           gtk_font_chooser_get_font                 (GtkFontChooser   *fontchooser);
96
97 GDK_AVAILABLE_IN_3_2
98 void             gtk_font_chooser_set_font                 (GtkFontChooser   *fontchooser,
99                                                             const gchar      *fontname);
100 GDK_AVAILABLE_IN_3_2
101 gchar*           gtk_font_chooser_get_preview_text         (GtkFontChooser   *fontchooser);
102 GDK_AVAILABLE_IN_3_2
103 void             gtk_font_chooser_set_preview_text         (GtkFontChooser   *fontchooser,
104                                                             const gchar      *text);
105 GDK_AVAILABLE_IN_3_2
106 gboolean         gtk_font_chooser_get_show_preview_entry   (GtkFontChooser   *fontchooser);
107 GDK_AVAILABLE_IN_3_2
108 void             gtk_font_chooser_set_show_preview_entry   (GtkFontChooser   *fontchooser,
109                                                             gboolean          show_preview_entry);
110 GDK_AVAILABLE_IN_3_2
111 void             gtk_font_chooser_set_filter_func          (GtkFontChooser   *fontchooser,
112                                                             GtkFontFilterFunc filter,
113                                                             gpointer          user_data,
114                                                             GDestroyNotify    destroy);
115
116 G_END_DECLS
117
118 #endif /* __GTK_FONT_CHOOSER_H__ */