From c3efd8d94344a2ad442dd9b0f98274dec1d731d8 Mon Sep 17 00:00:00 2001 From: Hans Petter Jansson Date: Wed, 2 Apr 2003 05:38:19 +0000 Subject: Nuke GdkFont and use Pango's font measuring for everything. 2003-04-01 Hans Petter Jansson * e-calendar-item.c (e_calendar_item_class_init) (e_calendar_item_destroy) (e_calendar_item_get_arg) (e_calendar_item_set_arg) (e_calendar_item_update) (e_calendar_item_draw) (e_calendar_item_draw_month) (e_calendar_item_draw_day_numbers) (e_calendar_item_recalc_sizes) (e_calendar_item_convert_position_to_day): Nuke GdkFont and use Pango's font measuring for everything. * e-calendar-item.h: Ditto. * e-calendar.c (e_calendar_init) (e_calendar_size_allocate): Ditto. svn path=/trunk/; revision=20633 --- widgets/misc/e-calendar.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'widgets/misc/e-calendar.c') diff --git a/widgets/misc/e-calendar.c b/widgets/misc/e-calendar.c index 64bffa02d9..73ddd421cc 100644 --- a/widgets/misc/e-calendar.c +++ b/widgets/misc/e-calendar.c @@ -131,18 +131,12 @@ static void e_calendar_init (ECalendar *cal) { GnomeCanvasGroup *canvas_group; - GdkFont *small_font; PangoFontDescription *small_font_desc; GtkWidget *button, *pixmap; GTK_WIDGET_UNSET_FLAGS (cal, GTK_CAN_FOCUS); /* Create the small font. */ - small_font = gdk_font_load (E_CALENDAR_SMALL_FONT); - if (!small_font) - small_font = gdk_font_load (E_CALENDAR_SMALL_FONT_FALLBACK); - if (!small_font) - g_warning ("Couldn't load font"); small_font_desc = pango_font_description_copy (gtk_widget_get_style (GTK_WIDGET (cal))->font_desc); @@ -153,13 +147,9 @@ e_calendar_init (ECalendar *cal) cal->calitem = E_CALENDAR_ITEM (gnome_canvas_item_new (canvas_group, e_calendar_item_get_type (), - "week_number_font", small_font, "week_number_font_desc", small_font_desc, NULL)); - if (small_font) - gdk_font_unref (small_font); - pango_font_description_free (small_font_desc); /* Create the arrow buttons to move to the previous/next month. */ @@ -306,17 +296,24 @@ e_calendar_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { ECalendar *cal; - GdkFont *font; + PangoFontDescription *font_desc; + PangoContext *pango_context; + PangoFontMetrics *font_metrics; gdouble old_x2, old_y2, new_x2, new_y2; gdouble xthickness, ythickness, arrow_button_size; cal = E_CALENDAR (widget); - font = gtk_style_get_font (widget->style); xthickness = widget->style->xthickness; ythickness = widget->style->ythickness; (*GTK_WIDGET_CLASS (parent_class)->size_allocate) (widget, allocation); + /* Set up Pango prerequisites */ + font_desc = gtk_widget_get_style (widget)->font_desc; + pango_context = gtk_widget_get_pango_context (widget); + font_metrics = pango_context_get_metrics (pango_context, font_desc, + pango_context_get_language (pango_context)); + /* Set the scroll region to its allocated size, if changed. */ gnome_canvas_get_scroll_region (GNOME_CANVAS (cal), NULL, NULL, &old_x2, &old_y2); @@ -336,7 +333,9 @@ e_calendar_size_allocate (GtkWidget *widget, /* Position the arrow buttons. */ - arrow_button_size = font->ascent + font->descent + arrow_button_size = + PANGO_PIXELS (pango_font_metrics_get_ascent (font_metrics)) + + PANGO_PIXELS (pango_font_metrics_get_descent (font_metrics)) + E_CALENDAR_ITEM_YPAD_ABOVE_MONTH_NAME + E_CALENDAR_ITEM_YPAD_BELOW_MONTH_NAME - E_CALENDAR_ARROW_BUTTON_Y_PAD * 2; -- cgit v1.2.3