diff tools/mb_c_source.m4 @ 278:a90fd749af82 mbtext

Implement the whole tspan attribute. Currently, we can accept font family/font style/font weight and font size.
author wycc
date Sat, 31 Jan 2009 09:41:04 +0800
parents d36abace2ce4
children c8b6ca46950b
line wrap: on
line diff
--- a/tools/mb_c_source.m4	Sun Jan 04 12:01:41 2009 +0800
+++ b/tools/mb_c_source.m4	Sat Jan 31 09:41:04 2009 +0800
@@ -20,6 +20,12 @@
 define([ADD_RECT])
 define([ADD_COORD])
 define([ADD_TEXT],)
+define([PANGO_BEGIN_TEXT],)
+define([PANGO_END_TEXT],)
+define([PANGO_SIZE],)
+define([PANGO_STYLE],)
+define([PANGO_WEIGHT],)
+define([PANGO_FAMILY],)
 define([FILL_SHAPE])
 define([STROKE_SHAPE])
 define([FILL_SHAPE_WITH_PAINT])
@@ -118,6 +124,42 @@
     	      				  cairo_get_font_face(rdman->cr));
     rdman_add_shape(rdman, obj->$1, obj->$6);
 ]])
+define([S_PANGO_BEGIN_TEXT],[[
+    { 
+	PangoAttribute *attr;
+        PangoAttrList *attrs = pango_attr_list_new();
+
+]])
+define([S_PANGO_END_TEXT],[[
+        obj->$1 = rdman_shape_text_new(rdman, "$2", $3, $4, $5,
+    	      				  cairo_get_font_face(rdman->cr),attrs);
+        rdman_add_shape(rdman, obj->$1, obj->$6);
+    }
+]])
+define([S_PANGO_SIZE],[[
+        attr = pango_attr_size_new($1);
+	attr->start_index = $2;
+	attr->end_index = $3;
+	pango_attr_list_insert(attrs,attr);
+]])
+define([S_PANGO_WEIGHT],[[
+        attr = pango_attr_weight_new($1);
+	attr->start_index = $2;
+	attr->end_index = $3;
+	pango_attr_list_insert(attrs,attr);
+]])
+define([S_PANGO_FAMILY],[[
+        attr = pango_attr_family_new("$1");
+	attr->start_index = $2;
+	attr->end_index = $3;
+	pango_attr_list_insert(attrs,attr);
+]])
+define([S_PANGO_STYLE],[[
+        attr = pango_attr_style_new($1);
+	attr->start_index = $2;
+	attr->end_index = $3;
+	pango_attr_list_insert(attrs,attr);
+]])
 
 define([S_FILL_SHAPE_WITH_PAINT],[dnl
 [    rdman_paint_fill(rdman, obj->$2, obj->$1);
@@ -203,6 +245,12 @@
 SIMPORT([ADD_RECT])
 SIMPORT([ADD_COORD])
 SIMPORT([ADD_TEXT])
+SIMPORT([PANGO_BEGIN_TEXT])
+SIMPORT([PANGO_END_TEXT])
+SIMPORT([PANGO_SIZE])
+SIMPORT([PANGO_WEIGHT])
+SIMPORT([PANGO_FAMILY])
+SIMPORT([PANGO_STYLE])
 SIMPORT([FILL_SHAPE])
 SIMPORT([STROKE_SHAPE])
 SIMPORT([FILL_SHAPE_WITH_PAINT])
@@ -240,6 +288,15 @@
 define([F_ADD_TEXT],[[
     rdman_shape_free(rdman, obj->$1);
 ]])
+define([F_PANGO_BEGIN_TEXT],[[
+    rdman_shape_free(rdman, obj->$1);
+]])
+define([F_PANGO_SIZE],[[
+]])
+define([F_PANGO_STYLE],[[
+]])
+define([F_PANGO_WEIGHT],[[
+]])
 
 define([F_FILL_SHAPE],[[
     rdman_paint_free(rdman, obj->$1_fill);
@@ -257,6 +314,7 @@
 FIMPORT([ADD_PATH],)
 FIMPORT([ADD_RECT])
 FIMPORT([ADD_TEXT])
+FIMPORT([PANGO_BEGIN_TEXT])
 FIMPORT([FILL_SHAPE])
 FIMPORT([STROKE_SHAPE])
 divert[]])
@@ -283,6 +341,7 @@
 RIMPORT([ADD_RECT])
 RIMPORT([ADD_COORD])
 RIMPORT([ADD_TEXT])
+RIMPORT([PANGO_BEGIN_TEXT])
 RIMPORT([FILL_SHAPE])
 RIMPORT([STROKE_SHAPE])
 RIMPORT([FILL_SHAPE_WITH_PAINT])