/** * gcc `pkg-config --cflags gtk+-2.0` fontmetrics.c `pkg-config --libs gtk+-2.0` -o fontmetrics */ #include #include #include int main( int argc, char **argv ) { GtkWidget *window, *label; PangoContext *context; PangoLanguage *lang; PangoFontMetrics *metrics; PangoFontDescription *font; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); label = gtk_label_new ("hi there"); gtk_container_add (GTK_CONTAINER (window), label); gtk_widget_show_all (window); g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (gtk_main_quit), 0); context = gtk_widget_get_pango_context (label); lang = pango_context_get_language (context); font = pango_font_description_copy (gtk_widget_get_style (window)->font_desc); metrics = pango_context_get_metrics (context, font, lang); fprintf (stderr, "Font: %s\n", pango_font_description_get_family (font)); fprintf (stderr, "Size: %d\n", pango_font_description_get_size (font)); fprintf (stderr, "Size (pixels): %d\n", PANGO_PIXELS (pango_font_description_get_size (font))); fprintf (stderr, "Approximate char width: %d\n", pango_font_metrics_get_approximate_char_width (metrics)); fprintf (stderr, "Approximate digit width: %d\n", pango_font_metrics_get_approximate_digit_width (metrics)); fprintf (stderr, "Approximate char width (pixels): %d\n", PANGO_PIXELS (pango_font_metrics_get_approximate_char_width (metrics))); fprintf (stderr, "Approximate digit width (pixels): %d\n", PANGO_PIXELS (pango_font_metrics_get_approximate_digit_width (metrics))); return 0; }