mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-29 06:51:10 +00:00
GtkFontChooser: Add a ::font-activated signal
This signal gets emitted when a font in the list is activated.
This commit is contained in:
parent
ca0c7c1649
commit
f7bf35052e
@ -141,6 +141,13 @@ enum {
|
||||
PREVIEW_TITLE_COLUMN
|
||||
};
|
||||
|
||||
enum {
|
||||
SIGNAL_FONT_ACTIVATED,
|
||||
N_SIGNALS
|
||||
};
|
||||
|
||||
static guint signals[N_SIGNALS] = { 0, };
|
||||
|
||||
static void gtk_font_chooser_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
@ -199,6 +206,26 @@ gtk_font_chooser_class_init (GtkFontChooserClass *klass)
|
||||
TRUE,
|
||||
GTK_PARAM_READWRITE));
|
||||
|
||||
/**
|
||||
* GtkFontChooserWidget::font-activated:
|
||||
* @self: the object which received the signal
|
||||
* @fontname: the font name
|
||||
*
|
||||
* Emitted when a font is activated from the widget's list.
|
||||
* This usually happens when the user double clicks an item,
|
||||
* or an item is selected and the user presses one of the keys
|
||||
* Space, Shift+Space, Return or Enter.
|
||||
*/
|
||||
signals[SIGNAL_FONT_ACTIVATED] =
|
||||
g_signal_new ("font-activated",
|
||||
GTK_TYPE_FONT_CHOOSER,
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
G_STRUCT_OFFSET (GtkFontChooserClass, font_activated),
|
||||
NULL, NULL,
|
||||
NULL,
|
||||
G_TYPE_NONE,
|
||||
1, G_TYPE_STRING);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (GtkFontChooserPrivate));
|
||||
}
|
||||
|
||||
@ -395,6 +422,21 @@ set_range_marks (GtkFontChooserPrivate *priv,
|
||||
GTK_POS_BOTTOM, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
row_activated_cb (GtkTreeView *view,
|
||||
GtkTreePath *path,
|
||||
GtkTreeViewColumn *column,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkFontChooser *self = user_data;
|
||||
gchar *fontname;
|
||||
|
||||
fontname = gtk_font_chooser_get_font_name (self);
|
||||
|
||||
g_signal_emit (self, signals[SIGNAL_FONT_ACTIVATED], 0, fontname);
|
||||
g_free (fontname);
|
||||
}
|
||||
|
||||
static void
|
||||
cursor_changed_cb (GtkTreeView *treeview,
|
||||
gpointer user_data)
|
||||
@ -642,7 +684,10 @@ gtk_font_chooser_init (GtkFontChooser *fontchooser)
|
||||
g_signal_connect (priv->family_face_list, "cursor-changed",
|
||||
G_CALLBACK (cursor_changed_cb), fontchooser);
|
||||
|
||||
/* Zoom on preview scroll*/
|
||||
g_signal_connect (priv->family_face_list, "row-activated",
|
||||
G_CALLBACK (row_activated_cb), fontchooser);
|
||||
|
||||
/* Zoom on preview scroll */
|
||||
g_signal_connect (priv->preview, "scroll-event",
|
||||
G_CALLBACK (zoom_preview_cb), fontchooser);
|
||||
|
||||
@ -1070,6 +1115,7 @@ gtk_font_chooser_get_font_name (GtkFontChooser *fontchooser)
|
||||
|
||||
font_name = g_strdup_printf ("%s %d", font_desc_name, fontchooser->priv->size / PANGO_SCALE);
|
||||
g_free (font_desc_name);
|
||||
|
||||
return font_name;
|
||||
}
|
||||
|
||||
|
@ -51,6 +51,9 @@ struct _GtkFontChooserClass
|
||||
{
|
||||
GtkBoxClass parent_class;
|
||||
|
||||
void (* font_activated) (GtkFontChooser *chooser,
|
||||
const gchar *fontname);
|
||||
|
||||
/* Padding for future expansion */
|
||||
void (*_gtk_reserved1) (void);
|
||||
void (*_gtk_reserved2) (void);
|
||||
|
Loading…
Reference in New Issue
Block a user