static void cb_pref_font_set_fonts (G_GNUC_UNUSED GOConfNode *node, G_GNUC_UNUSED char const *key, GtkWidget *page) { GOFontSel *fs = GO_FONT_SEL (page); do_set_font (fs, gnm_conf_get_core_defaultfont_name (), gnm_conf_get_core_defaultfont_size (), gnm_conf_get_core_defaultfont_bold (), gnm_conf_get_core_defaultfont_italic ()); }
void gnm_font_init (void) { PangoContext *context; GnmFont *gnumeric_default_font = NULL; double pts_scale = 72. / gnm_app_display_dpi_get (TRUE); style_font_hash = g_hash_table_new ( gnm_font_hash, gnm_font_equal); style_font_negative_hash = g_hash_table_new ( gnm_font_hash, gnm_font_equal); gnumeric_default_font_name = g_strdup (gnm_conf_get_core_defaultfont_name ()); gnumeric_default_font_size = gnm_conf_get_core_defaultfont_size (); context = gnm_pango_context_get (); if (gnumeric_default_font_name && gnumeric_default_font_size >= 1) gnumeric_default_font = style_font_new_simple (context, gnumeric_default_font_name, gnumeric_default_font_size, FALSE, FALSE); if (gnumeric_default_font == NULL) { g_warning ("Configured default font '%s %f' not available, trying fallback...", gnumeric_default_font_name, gnumeric_default_font_size); gnumeric_default_font = style_font_new_simple (context, DEFAULT_FONT, DEFAULT_SIZE, FALSE, FALSE); if (gnumeric_default_font != NULL) { g_free (gnumeric_default_font_name); gnumeric_default_font_name = g_strdup (DEFAULT_FONT); gnumeric_default_font_size = DEFAULT_SIZE; } else { g_warning ("Fallback font '%s %f' not available, trying 'fixed'...", DEFAULT_FONT, DEFAULT_SIZE); gnumeric_default_font = style_font_new_simple (context, "fixed", 10, FALSE, FALSE); if (gnumeric_default_font != NULL) { g_free (gnumeric_default_font_name); gnumeric_default_font_name = g_strdup ("fixed"); gnumeric_default_font_size = 10; } else { g_warning ("Even 'fixed 10' failed ?? We're going to exit now," "there is something wrong with your font configuration"); exit (1); } } } gnm_font_default_width = pts_scale * PANGO_PIXELS (gnumeric_default_font->go.metrics->avg_digit_width); gnm_font_unref (gnumeric_default_font); g_object_unref (context); }