aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2007-02-09 03:34:11 +0800
committerMatthew Barnes <mbarnes@src.gnome.org>2007-02-09 03:34:11 +0800
commitd328ab72d554fe60c892ddc8c278340c027b51dc (patch)
treef8513f9a30b036d3ff3c3c65be8d9f842ab1f81b /widgets/table
parent9be6776a1c431142621c5838182fd967febd880e (diff)
downloadgsoc2013-evolution-d328ab72d554fe60c892ddc8c278340c027b51dc.tar.gz
gsoc2013-evolution-d328ab72d554fe60c892ddc8c278340c027b51dc.tar.zst
gsoc2013-evolution-d328ab72d554fe60c892ddc8c278340c027b51dc.zip
** Fixes bug #357216
2006-02-08 Matthew Barnes <mbarnes@redhat.com> ** Fixes bug #357216 * widgets/text/e-entry.c: Remove "font", "fontset", and "gdk_font" properties, since they forward gets and sets to non-existant properties in entry->item. * widgets/table/e-table-field-chooser-item.c: * widgets/table/e-table-field-chooser-item.h: * widgets/table/e-table-group-container.c: * widgets/table/e-table-group-container.h: Replace deprecated GdkFont with PangoFontDescription. * widgets/table/e-table-header-item.c: * widgets/table/e-table-header-item.h: Replace deprecated GdkFont with PangoFontDescription. Rename "fontset" property to "font-desc", and change the property type to a boxed PangoFontDescription. svn path=/trunk/; revision=33185
Diffstat (limited to 'widgets/table')
-rw-r--r--widgets/table/ChangeLog16
-rw-r--r--widgets/table/e-table-field-chooser-item.c26
-rw-r--r--widgets/table/e-table-field-chooser-item.h2
-rw-r--r--widgets/table/e-table-group-container.c26
-rw-r--r--widgets/table/e-table-group-container.h2
-rw-r--r--widgets/table/e-table-header-item.c52
-rw-r--r--widgets/table/e-table-header-item.h2
7 files changed, 68 insertions, 58 deletions
diff --git a/widgets/table/ChangeLog b/widgets/table/ChangeLog
index 3a9d49da40..ed89bd823e 100644
--- a/widgets/table/ChangeLog
+++ b/widgets/table/ChangeLog
@@ -1,3 +1,19 @@
+2007-02-08 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes bug #357216
+
+ * e-table-field-chooser-item.c:
+ * e-table-field-chooser-item.h:
+ * e-table-group-container.c:
+ * e-table-group-container.h:
+ Replace deprecated GdkFont with PangoFontDescription.
+
+ * e-table-header-item.c:
+ * e-table-header-item.h:
+ Replace deprecated GdkFont with PangoFontDescription.
+ Rename "fontset" property to "font-desc", and change the property
+ type to a boxed PangoFontDescription.
+
2007-01-22 Srinivasa Ragavan <sragavan@novell.com>
** GtkPrint api migration from Ebby Wiselyn.
diff --git a/widgets/table/e-table-field-chooser-item.c b/widgets/table/e-table-field-chooser-item.c
index 0d72dc7ad8..6742483fd6 100644
--- a/widgets/table/e-table-field-chooser-item.c
+++ b/widgets/table/e-table-field-chooser-item.c
@@ -84,9 +84,9 @@ etfci_dispose (GObject *object)
g_object_unref (etfci->combined_header);
etfci->combined_header = NULL;
- if (etfci->font)
- gdk_font_unref(etfci->font);
- etfci->font = NULL;
+ if (etfci->font_desc)
+ pango_font_description_free (etfci->font_desc);
+ etfci->font_desc = NULL;
if (G_OBJECT_CLASS (etfci_parent_class)->dispose)
(*G_OBJECT_CLASS (etfci_parent_class)->dispose) (object);
@@ -219,11 +219,13 @@ etfci_update (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flag
static void
etfci_font_load (ETableFieldChooserItem *etfci)
{
- if (etfci->font)
- gdk_font_unref (etfci->font);
+ GtkStyle *style;
+
+ if (etfci->font_desc)
+ pango_font_description_free (etfci->font_desc);
- etfci->font = gtk_style_get_font (GTK_WIDGET(GNOME_CANVAS_ITEM(etfci)->canvas)->style);
- gdk_font_ref(etfci->font);
+ style = GTK_WIDGET (GNOME_CANVAS_ITEM (etfci)->canvas)->style;
+ etfci->font_desc = pango_font_description_copy (style->font_desc);
}
static void
@@ -419,7 +421,7 @@ etfci_realize (GnomeCanvasItem *item)
if (GNOME_CANVAS_ITEM_CLASS (etfci_parent_class)-> realize)
(*GNOME_CANVAS_ITEM_CLASS (etfci_parent_class)->realize)(item);
- if (!etfci->font)
+ if (!etfci->font_desc)
etfci_font_load (etfci);
etfci->drag_end_id = g_signal_connect (
@@ -436,9 +438,9 @@ etfci_unrealize (GnomeCanvasItem *item)
{
ETableFieldChooserItem *etfci = E_TABLE_FIELD_CHOOSER_ITEM (item);
- if (etfci->font)
- gdk_font_unref (etfci->font);
- etfci->font = NULL;
+ if (etfci->font_desc)
+ pango_font_description_free (etfci->font_desc);
+ etfci->font_desc = NULL;
g_signal_handler_disconnect (item->canvas, etfci->drag_end_id);
etfci->drag_end_id = 0;
@@ -677,7 +679,7 @@ etfci_init (GnomeCanvasItem *item)
etfci->height = etfci->width = 0;
- etfci->font = NULL;
+ etfci->font_desc = NULL;
etfci->full_header_structure_change_id = 0;
etfci->full_header_dimension_change_id = 0;
diff --git a/widgets/table/e-table-field-chooser-item.h b/widgets/table/e-table-field-chooser-item.h
index e0dbbd373c..72a3219178 100644
--- a/widgets/table/e-table-field-chooser-item.h
+++ b/widgets/table/e-table-field-chooser-item.h
@@ -44,7 +44,7 @@ typedef struct {
double height, width;
- GdkFont *font;
+ PangoFontDescription *font_desc;
/*
* Ids
diff --git a/widgets/table/e-table-group-container.c b/widgets/table/e-table-group-container.c
index f2060db1ad..b67b76e217 100644
--- a/widgets/table/e-table-group-container.c
+++ b/widgets/table/e-table-group-container.c
@@ -105,9 +105,9 @@ etgc_dispose (GObject *object)
if (etgc->children)
e_table_group_container_list_free (etgc);
- if (etgc->font)
- gdk_font_unref (etgc->font);
- etgc->font = NULL;
+ if (etgc->font_desc)
+ pango_font_description_free (etgc->font_desc);
+ etgc->font_desc = NULL;
if (etgc->ecol)
g_object_unref (etgc->ecol);
@@ -148,6 +148,7 @@ e_table_group_container_construct (GnomeCanvasGroup *parent, ETableGroupContaine
{
ETableCol *col;
ETableSortColumn column = e_table_sort_info_grouping_get_nth(sort_info, n);
+ GtkStyle *style;
col = e_table_header_get_column_by_col_idx(full_header, column.column);
if (col == NULL)
@@ -161,9 +162,8 @@ e_table_group_container_construct (GnomeCanvasGroup *parent, ETableGroupContaine
etgc->n = n;
etgc->ascending = column.ascending;
- etgc->font = gtk_style_get_font (GTK_WIDGET (GNOME_CANVAS_ITEM (etgc)->canvas)->style);
-
- gdk_font_ref (etgc->font);
+ style = GTK_WIDGET (GNOME_CANVAS_ITEM (etgc)->canvas)->style;
+ etgc->font_desc = pango_font_description_copy (style->font_desc);
etgc->open = TRUE;
}
@@ -1006,8 +1006,18 @@ etgc_reflow (GnomeCanvasItem *item, gint flags)
gdouble item_height = 0;
gdouble item_width = 0;
- if (etgc->font)
- extra_height += etgc->font->ascent + etgc->font->descent + BUTTON_PADDING * 2;
+ if (etgc->font_desc) {
+ PangoContext *context;
+ PangoFontMetrics *metrics;
+
+ context = gtk_widget_get_pango_context (GTK_WIDGET (etgc));
+ metrics = pango_context_get_metrics (context, etgc->font_desc, NULL);
+ extra_height +=
+ pango_font_metrics_get_ascent (metrics) +
+ pango_font_metrics_get_descent (metrics) +
+ BUTTON_PADDING * 2;
+ pango_font_metrics_unref (metrics);
+ }
extra_height = MAX(extra_height, BUTTON_HEIGHT + BUTTON_PADDING * 2);
diff --git a/widgets/table/e-table-group-container.h b/widgets/table/e-table-group-container.h
index 6adbeab005..717a669077 100644
--- a/widgets/table/e-table-group-container.h
+++ b/widgets/table/e-table-group-container.h
@@ -57,7 +57,7 @@ typedef struct {
*/
GnomeCanvasItem *rect;
- GdkFont *font;
+ PangoFontDescription *font_desc;
gdouble width, height, minimum_width;
diff --git a/widgets/table/e-table-header-item.c b/widgets/table/e-table-header-item.c
index a355fba09a..a11338d6c7 100644
--- a/widgets/table/e-table-header-item.c
+++ b/widgets/table/e-table-header-item.c
@@ -101,7 +101,7 @@ enum {
PROP_TABLE_HEADER,
PROP_FULL_HEADER,
PROP_DND_CODE,
- PROP_TABLE_FONTSET,
+ PROP_TABLE_FONT_DESC,
PROP_SORT_INFO,
PROP_TABLE,
PROP_TREE
@@ -232,36 +232,18 @@ ethi_update (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flags
}
static void
-ethi_font_set (ETableHeaderItem *ethi, GdkFont *font)
+ethi_font_set (ETableHeaderItem *ethi, PangoFontDescription *font_desc)
{
- if (ethi->font)
- gdk_font_unref (ethi->font);
+ if (ethi->font_desc)
+ pango_font_description_free (ethi->font_desc);
+
+ ethi->font_desc = pango_font_description_copy (font_desc);
- ethi->font = font;
- gdk_font_ref (font);
-
ethi->height = e_table_header_item_get_height (ethi);
e_canvas_item_request_reflow(GNOME_CANVAS_ITEM(ethi));
}
static void
-ethi_font_load (ETableHeaderItem *ethi, const char *fontname)
-{
- GdkFont *font = NULL;
-
- if (fontname != NULL)
- font = gdk_fontset_load (fontname);
-
- if (font == NULL) {
- font = gtk_style_get_font (GTK_WIDGET (GNOME_CANVAS_ITEM (ethi)->canvas)->style);
- gdk_font_ref (font);
- }
-
- ethi_font_set (ethi, font);
- gdk_font_unref (font);
-}
-
-static void
ethi_drop_table_header (ETableHeaderItem *ethi)
{
GObject *header;
@@ -345,8 +327,8 @@ ethi_set_property (GObject *object,
ethi->dnd_code = g_strdup (g_value_get_string (value));
break;
- case PROP_TABLE_FONTSET:
- ethi_font_load (ethi, g_value_get_string (value));
+ case PROP_TABLE_FONT_DESC:
+ ethi_font_set (ethi, g_value_get_boxed (value));
break;
case PROP_SORT_INFO:
@@ -902,8 +884,8 @@ ethi_realize (GnomeCanvasItem *item)
if (GNOME_CANVAS_ITEM_CLASS (ethi_parent_class)-> realize)
(*GNOME_CANVAS_ITEM_CLASS (ethi_parent_class)->realize)(item);
- if (!ethi->font)
- ethi_font_set (ethi, gtk_style_get_font (GTK_WIDGET (item->canvas)->style));
+ if (!ethi->font_desc)
+ ethi_font_set (ethi, GTK_WIDGET (item->canvas)->style->font_desc);
/*
* Now, configure DnD
@@ -937,7 +919,7 @@ ethi_unrealize (GnomeCanvasItem *item)
{
ETableHeaderItem *ethi = E_TABLE_HEADER_ITEM (item);
- gdk_font_unref (ethi->font);
+ pango_font_description_free (ethi->font_desc);
g_signal_handler_disconnect (item->canvas, ethi->drag_motion_id);
g_signal_handler_disconnect (item->canvas, ethi->drag_leave_id);
@@ -1894,12 +1876,12 @@ ethi_class_init (GObjectClass *object_class)
NULL,
G_PARAM_READWRITE));
- g_object_class_install_property (object_class, PROP_TABLE_FONTSET,
- g_param_spec_string ("fontset",
- _("Fontset"),
- /*_( */"XXX blurb" /*)*/,
- NULL,
- G_PARAM_WRITABLE));
+ g_object_class_install_property (object_class, PROP_TABLE_FONT_DESC,
+ g_param_spec_boxed ("font-desc",
+ _("Font Description"),
+ /*_( */"XXX blurb" /*)*/,
+ PANGO_TYPE_FONT_DESCRIPTION,
+ G_PARAM_WRITABLE));
g_object_class_install_property (object_class, PROP_FULL_HEADER,
g_param_spec_object ("full_header",
diff --git a/widgets/table/e-table-header-item.h b/widgets/table/e-table-header-item.h
index 39bdb45276..53cbdd937a 100644
--- a/widgets/table/e-table-header-item.h
+++ b/widgets/table/e-table-header-item.h
@@ -47,7 +47,7 @@ typedef struct {
GdkCursor *change_cursor;
short height, width;
- GdkFont *font;
+ PangoFontDescription *font_desc;
/*
* Used during resizing; Could be shorts