static void font_changed (GObject *object, GParamSpec *pspec, gpointer data) { GtkFontChooser *fb = GTK_FONT_CHOOSER (data); GValue val = G_VALUE_INIT; const PangoFontDescription *font_desc; PangoFontDescription *fb_font_desc; g_value_init (&val, PANGO_TYPE_FONT_DESCRIPTION); get_property_value (object, pspec, &val); font_desc = g_value_get_boxed (&val); fb_font_desc = gtk_font_chooser_get_font_desc (fb); if (font_desc == NULL || (fb_font_desc != NULL && !pango_font_description_equal (fb_font_desc, font_desc))) { block_controller (G_OBJECT (fb)); gtk_font_chooser_set_font_desc (fb, font_desc); unblock_controller (G_OBJECT (fb)); } g_value_unset (&val); pango_font_description_free (fb_font_desc); }
void select_font(gpointer parent) { GtkWidget* dialog = gtk_font_chooser_dialog_new("Font", GTK_WINDOW(parent)); gtk_dialog_run(GTK_DIALOG (dialog)); PangoFontDescription *font_desc = gtk_font_chooser_get_font_desc(GTK_FONT_CHOOSER(dialog)); if (font_desc) gtk_widget_modify_font(gres.view_chat, font_desc); gtk_widget_destroy(dialog); }
G_MODULE_EXPORT void action_font_activate_cb(GtkWidget *widget, EDITOR *e) { GtkWidget *dialog; gchar *selected_text = NULL; gchar *size = NULL; #ifdef HAVE_GTK_32 dialog = gtk_font_chooser_dialog_new("Select font", NULL); gtk_font_chooser_set_font((GtkFontChooser *)dialog, #else dialog = gtk_font_selection_dialog_new("Select font"); gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *) dialog, #endif "Droid Sans 14"); if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) { #ifdef HAVE_GTK_32 const gchar *fontname = gtk_font_chooser_get_font((GtkFontChooser *)dialog); #else const gchar *fontname = gtk_font_selection_dialog_get_font_name((GtkFontSelectionDialog *)dialog); #endif GString *name = g_string_new(fontname); size = get_font_size_from_name(name); g_string_free(name, TRUE); selected_text = editor_get_selected_text(e); #ifdef HAVE_GTK_32 PangoFontDescription *font_description = gtk_font_chooser_get_font_desc((GtkFontChooser *) dialog); fontname = pango_font_description_get_family(font_description); #else PangoFontDescription *font_description = pango_font_description_from_string(fontname); fontname = pango_font_description_get_family(font_description); #endif gchar *script = g_strdup_printf("<SPAN STYLE=\"font-family:%s;font-size:%spx;\">%s</SPAN>", fontname, size, selected_text); editor_insert_html(script, e); g_free(script); } if (size) g_free(size); if (selected_text) g_free(selected_text); gtk_widget_destroy(dialog); }
static void response_cb (GtkDialog *dialog, gint response_id, gpointer data) { GnmFontButton *font_button = GNM_FONT_BUTTON (data); GnmFontButtonPrivate *priv = font_button->priv; GtkFontChooser *font_chooser; GObject *object; gtk_widget_hide (font_button->priv->font_dialog); if (response_id != GTK_RESPONSE_OK) return; font_chooser = GTK_FONT_CHOOSER (priv->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); /* Set label font */ gnm_font_button_update_font_info (font_button); g_object_notify (G_OBJECT (font_button), "font"); g_object_notify (G_OBJECT (font_button), "font-desc"); g_object_notify (G_OBJECT (font_button), "font-name"); g_object_thaw_notify (object); /* Emit font_set signal */ g_signal_emit (font_button, font_button_signals[FONT_SET], 0); }
void x_font_select_callback (GtkWidget * widget, gpointer data) { XEditor * xeditor = (XEditor *)data; GtkResponseType answer; PangoFontDescription * font_desc; GtkWidget * dialog = gtk_font_chooser_dialog_new ("- EditroX - Font Selector -", GTK_WINDOW(xeditor->win->window)); gtk_font_chooser_set_preview_text (GTK_FONT_CHOOSER(dialog), "EditorX is the best text editor than ever."); answer = gtk_dialog_run(GTK_DIALOG(dialog)); if(answer == GTK_RESPONSE_OK) { font_desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER(dialog)); x_scrolled_set_font_desc (xeditor->scrolled, font_desc); gtk_widget_override_font (GTK_WIDGET(x_scrolled_get_source_view (xeditor->scrolled)), x_scrolled_get_font_description (xeditor->scrolled)); x_toolbar_set_font_desc (xeditor->toolbar, pango_font_description_to_string (x_scrolled_get_font_description (xeditor->scrolled))); } gtk_widget_destroy(dialog); }
static void termomix_font_dialog (GtkWidget *widget, void *data) { GtkWidget *font_dialog; gint response; font_dialog=gtk_font_chooser_dialog_new(gettext("Select font"), GTK_WINDOW(termomix.main_window)); gtk_font_chooser_set_font_desc(GTK_FONT_CHOOSER(font_dialog), termomix.font); response=gtk_dialog_run(GTK_DIALOG(font_dialog)); if (response==GTK_RESPONSE_OK) { pango_font_description_free(termomix.font); termomix.font=gtk_font_chooser_get_font_desc(GTK_FONT_CHOOSER(font_dialog)); termomix_set_font(); termomix_set_size(termomix.columns, termomix.rows); termomix_set_config_string("font", pango_font_description_to_string(termomix.font)); } gtk_widget_destroy(font_dialog); }