1
/* GTK - The GIMP Toolkit
2
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4
* GtkFontSelection widget for Gtk+, by Damon Chaplin, May 1998.
5
* Based on the GnomeFontSelector widget, by Elliot Lee, but major changes.
6
* The GnomeFontSelector was derived from app/text_tool.c in the GIMP.
8
* This library is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU Lesser General Public
10
* License as published by the Free Software Foundation; either
11
* version 2 of the License, or (at your option) any later version.
13
* This library is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
* Lesser General Public License for more details.
18
* You should have received a copy of the GNU Lesser General Public
19
* License along with this library; if not, write to the
20
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21
* Boston, MA 02111-1307, USA.
25
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
26
* file for a list of people on the GTK+ Team. See the ChangeLog
27
* files for a list of changes. These files are distributed with
28
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
31
#ifndef __GTK_FONTSEL_H__
32
#define __GTK_FONTSEL_H__
36
#include <gtk/gtkdialog.h>
37
#include <gtk/gtkvbox.h>
41
#define GTK_TYPE_FONT_SELECTION (gtk_font_selection_get_type ())
42
#define GTK_FONT_SELECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FONT_SELECTION, GtkFontSelection))
43
#define GTK_FONT_SELECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_FONT_SELECTION, GtkFontSelectionClass))
44
#define GTK_IS_FONT_SELECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_FONT_SELECTION))
45
#define GTK_IS_FONT_SELECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_FONT_SELECTION))
46
#define GTK_FONT_SELECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_FONT_SELECTION, GtkFontSelectionClass))
49
#define GTK_TYPE_FONT_SELECTION_DIALOG (gtk_font_selection_dialog_get_type ())
50
#define GTK_FONT_SELECTION_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FONT_SELECTION_DIALOG, GtkFontSelectionDialog))
51
#define GTK_FONT_SELECTION_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_FONT_SELECTION_DIALOG, GtkFontSelectionDialogClass))
52
#define GTK_IS_FONT_SELECTION_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_FONT_SELECTION_DIALOG))
53
#define GTK_IS_FONT_SELECTION_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_FONT_SELECTION_DIALOG))
54
#define GTK_FONT_SELECTION_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_FONT_SELECTION_DIALOG, GtkFontSelectionDialogClass))
57
typedef struct _GtkFontSelection GtkFontSelection;
58
typedef struct _GtkFontSelectionClass GtkFontSelectionClass;
60
typedef struct _GtkFontSelectionDialog GtkFontSelectionDialog;
61
typedef struct _GtkFontSelectionDialogClass GtkFontSelectionDialogClass;
63
struct _GtkFontSelection
65
GtkVBox parent_instance;
67
GtkWidget *font_entry;
68
GtkWidget *family_list;
69
GtkWidget *font_style_entry;
71
GtkWidget *size_entry;
73
GtkWidget *pixels_button;
74
GtkWidget *points_button;
75
GtkWidget *filter_button;
76
GtkWidget *preview_entry;
78
PangoFontFamily *family; /* Current family */
79
PangoFontFace *face; /* Current face */
83
GdkFont *font; /* Cache for gdk_font_selection_get_font, so we can preserve
84
* refcounting behavior
88
struct _GtkFontSelectionClass
90
GtkVBoxClass parent_class;
92
/* Padding for future expansion */
93
void (*_gtk_reserved1) (void);
94
void (*_gtk_reserved2) (void);
95
void (*_gtk_reserved3) (void);
96
void (*_gtk_reserved4) (void);
100
struct _GtkFontSelectionDialog
102
GtkDialog parent_instance;
107
GtkWidget *main_vbox;
108
GtkWidget *action_area;
110
GtkWidget *ok_button;
111
GtkWidget *apply_button;
112
GtkWidget *cancel_button;
116
/* If the user changes the width of the dialog, we turn auto-shrink off.
117
* (Unused now, autoshrink doesn't mean anything anymore -Yosh)
120
gboolean auto_resize;
123
struct _GtkFontSelectionDialogClass
125
GtkDialogClass parent_class;
127
/* Padding for future expansion */
128
void (*_gtk_reserved1) (void);
129
void (*_gtk_reserved2) (void);
130
void (*_gtk_reserved3) (void);
131
void (*_gtk_reserved4) (void);
136
/*****************************************************************************
137
* GtkFontSelection functions.
138
* see the comments in the GtkFontSelectionDialog functions.
139
*****************************************************************************/
141
GType gtk_font_selection_get_type (void) G_GNUC_CONST;
142
GtkWidget* gtk_font_selection_new (void);
143
gchar* gtk_font_selection_get_font_name (GtkFontSelection *fontsel);
145
#ifndef GTK_DISABLE_DEPRECATED
146
GdkFont* gtk_font_selection_get_font (GtkFontSelection *fontsel);
147
#endif /* GTK_DISABLE_DEPRECATED */
149
gboolean gtk_font_selection_set_font_name (GtkFontSelection *fontsel,
150
const gchar *fontname);
151
G_CONST_RETURN gchar* gtk_font_selection_get_preview_text (GtkFontSelection *fontsel);
152
void gtk_font_selection_set_preview_text (GtkFontSelection *fontsel,
155
/*****************************************************************************
156
* GtkFontSelectionDialog functions.
157
* most of these functions simply call the corresponding function in the
159
*****************************************************************************/
161
GType gtk_font_selection_dialog_get_type (void) G_GNUC_CONST;
162
GtkWidget* gtk_font_selection_dialog_new (const gchar *title);
164
/* This returns the X Logical Font Description fontname, or NULL if no font
165
is selected. Note that there is a slight possibility that the font might not
166
have been loaded OK. You should call gtk_font_selection_dialog_get_font()
167
to see if it has been loaded OK.
168
You should g_free() the returned font name after you're done with it. */
169
gchar* gtk_font_selection_dialog_get_font_name (GtkFontSelectionDialog *fsd);
171
#ifndef GTK_DISABLE_DEPRECATED
172
/* This will return the current GdkFont, or NULL if none is selected or there
173
was a problem loading it. Remember to use gdk_font_ref/unref() if you want
174
to use the font (in a style, for example). */
175
GdkFont* gtk_font_selection_dialog_get_font (GtkFontSelectionDialog *fsd);
176
#endif /* GTK_DISABLE_DEPRECATED */
178
/* This sets the currently displayed font. It should be a valid X Logical
179
Font Description font name (anything else will be ignored), e.g.
180
"-adobe-courier-bold-o-normal--25-*-*-*-*-*-*-*"
181
It returns TRUE on success. */
182
gboolean gtk_font_selection_dialog_set_font_name (GtkFontSelectionDialog *fsd,
183
const gchar *fontname);
185
/* This returns the text in the preview entry. You should copy the returned
186
text if you need it. */
187
G_CONST_RETURN gchar* gtk_font_selection_dialog_get_preview_text (GtkFontSelectionDialog *fsd);
189
/* This sets the text in the preview entry. It will be copied by the entry,
190
so there's no need to g_strdup() it first. */
191
void gtk_font_selection_dialog_set_preview_text (GtkFontSelectionDialog *fsd,
198
#endif /* __GTK_FONTSEL_H__ */