From 7cf827771d63b23d104167633ef199e32c814eaf Mon Sep 17 00:00:00 2001 From: ERDI Gergo Date: Fri, 11 May 2001 23:29:37 +0000 Subject: [PATCH] Peek strike-through setting (gdk_draw_layout_line_with_colors): Render 2001-05-05 ERDI Gergo * gdk/gdkpango.c (gdk_pango_get_item_properties): Peek strike-through setting (gdk_draw_layout_line_with_colors): Render strike-through --- ChangeLog | 6 ++++++ ChangeLog.pre-2-0 | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-2 | 6 ++++++ ChangeLog.pre-2-4 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gdk/gdkpango.c | 26 ++++++++++++++++++++++++-- 8 files changed, 66 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 416f08709c..9d527df0be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -171,6 +171,12 @@ Wed May 9 09:08:44 2001 Jonathan Blandford * test/makefile.msc (new file) : build the test apps here +2001-05-05 ERDI Gergo + + * gdk/gdkpango.c (gdk_pango_get_item_properties): Peek + strike-through setting + (gdk_draw_layout_line_with_colors): Render strike-through + Sat May 5 10:06:24 2001 Owen Taylor * Release 1.3.5 diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 416f08709c..9d527df0be 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -171,6 +171,12 @@ Wed May 9 09:08:44 2001 Jonathan Blandford * test/makefile.msc (new file) : build the test apps here +2001-05-05 ERDI Gergo + + * gdk/gdkpango.c (gdk_pango_get_item_properties): Peek + strike-through setting + (gdk_draw_layout_line_with_colors): Render strike-through + Sat May 5 10:06:24 2001 Owen Taylor * Release 1.3.5 diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 416f08709c..9d527df0be 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -171,6 +171,12 @@ Wed May 9 09:08:44 2001 Jonathan Blandford * test/makefile.msc (new file) : build the test apps here +2001-05-05 ERDI Gergo + + * gdk/gdkpango.c (gdk_pango_get_item_properties): Peek + strike-through setting + (gdk_draw_layout_line_with_colors): Render strike-through + Sat May 5 10:06:24 2001 Owen Taylor * Release 1.3.5 diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 416f08709c..9d527df0be 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -171,6 +171,12 @@ Wed May 9 09:08:44 2001 Jonathan Blandford * test/makefile.msc (new file) : build the test apps here +2001-05-05 ERDI Gergo + + * gdk/gdkpango.c (gdk_pango_get_item_properties): Peek + strike-through setting + (gdk_draw_layout_line_with_colors): Render strike-through + Sat May 5 10:06:24 2001 Owen Taylor * Release 1.3.5 diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 416f08709c..9d527df0be 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -171,6 +171,12 @@ Wed May 9 09:08:44 2001 Jonathan Blandford * test/makefile.msc (new file) : build the test apps here +2001-05-05 ERDI Gergo + + * gdk/gdkpango.c (gdk_pango_get_item_properties): Peek + strike-through setting + (gdk_draw_layout_line_with_colors): Render strike-through + Sat May 5 10:06:24 2001 Owen Taylor * Release 1.3.5 diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 416f08709c..9d527df0be 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -171,6 +171,12 @@ Wed May 9 09:08:44 2001 Jonathan Blandford * test/makefile.msc (new file) : build the test apps here +2001-05-05 ERDI Gergo + + * gdk/gdkpango.c (gdk_pango_get_item_properties): Peek + strike-through setting + (gdk_draw_layout_line_with_colors): Render strike-through + Sat May 5 10:06:24 2001 Owen Taylor * Release 1.3.5 diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 416f08709c..9d527df0be 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -171,6 +171,12 @@ Wed May 9 09:08:44 2001 Jonathan Blandford * test/makefile.msc (new file) : build the test apps here +2001-05-05 ERDI Gergo + + * gdk/gdkpango.c (gdk_pango_get_item_properties): Peek + strike-through setting + (gdk_draw_layout_line_with_colors): Render strike-through + Sat May 5 10:06:24 2001 Owen Taylor * Release 1.3.5 diff --git a/gdk/gdkpango.c b/gdk/gdkpango.c index 7146880c78..2ccb2c24a4 100644 --- a/gdk/gdkpango.c +++ b/gdk/gdkpango.c @@ -37,6 +37,7 @@ static PangoAttrType gdk_pango_attr_embossed_type; static void gdk_pango_get_item_properties (PangoItem *item, PangoUnderline *uline, + gboolean *strikethrough, gint *rise, PangoColor *fg_color, gboolean *fg_set, @@ -193,13 +194,14 @@ gdk_draw_layout_line_with_colors (GdkDrawable *drawable, PangoUnderline uline = PANGO_UNDERLINE_NONE; PangoLayoutRun *run = tmp_list->data; PangoColor fg_color, bg_color; - gboolean fg_set, bg_set, shape_set; + gboolean strike, fg_set, bg_set, shape_set; GdkGC *fg_gc; gint risen_y; tmp_list = tmp_list->next; gdk_pango_get_item_properties (run->item, &uline, + &strike, &rise, &fg_color, &fg_set, &bg_color, &bg_set, @@ -314,6 +316,17 @@ gdk_draw_layout_line_with_colors (GdkDrawable *drawable, risen_y + (ink_rect.y + ink_rect.height) / PANGO_SCALE + 1); break; } + + if (strike) + { + int centerline = logical_rect.y + logical_rect.height / 2; + + gdk_draw_line (drawable, fg_gc, + x + (x_off + logical_rect.x) / PANGO_SCALE - 1, + risen_y + centerline / PANGO_SCALE, + x + (x_off + logical_rect.x + logical_rect.width) / PANGO_SCALE + 1, + risen_y + centerline / PANGO_SCALE); + } if (fg_gc != gc) gdk_pango_free_gc (context, fg_gc); @@ -427,6 +440,7 @@ gdk_draw_layout (GdkDrawable *drawable, static void gdk_pango_get_item_properties (PangoItem *item, PangoUnderline *uline, + gboolean *strikethrough, gint *rise, PangoColor *fg_color, gboolean *fg_set, @@ -440,6 +454,9 @@ gdk_pango_get_item_properties (PangoItem *item, { GSList *tmp_list = item->extra_attrs; + if (strikethrough) + *strikethrough = FALSE; + if (fg_set) *fg_set = FALSE; @@ -468,7 +485,12 @@ gdk_pango_get_item_properties (PangoItem *item, if (uline) *uline = ((PangoAttrInt *)attr)->value; break; - + + case PANGO_ATTR_STRIKETHROUGH: + if (strikethrough) + *strikethrough = ((PangoAttrInt *)attr)->value; + break; + case PANGO_ATTR_FOREGROUND: if (fg_color) *fg_color = ((PangoAttrColor *)attr)->color;