OSDN Git Service

fix font style handling policy.
authorornse01 <ornse01@users.sourceforge.jp>
Tue, 30 Apr 2013 16:13:10 +0000 (16:13 +0000)
committerornse01 <ornse01@users.sourceforge.jp>
Tue, 30 Apr 2013 16:13:10 +0000 (16:13 +0000)
git-svn-id: http://svn.sourceforge.jp/svnroot/bchan/bchanf/trunk@546 20a0b8eb-f62a-4a12-8fe1-b598822500fb

src/css/cssrendering_box.c
src/css/cssrendering_box.h

index 36507db..3634c32 100644 (file)
@@ -49,10 +49,16 @@ LOCAL VOID cssrendering_basebox_appendchild(cssrendering_basebox_t *box, cssrend
        box->content_edge.c.bottom = 0;
 }
 
+LOCAL VOID cssrendering_basebox_setuserdata(cssrendering_basebox_t *box, VP data)
+{
+       box->userdata = data;
+}
+
 LOCAL VOID cssrendering_basebox_initialize(cssrendering_basebox_t *box, CSSRENDERING_BOX_TYPE type)
 {
        treebase_node_initialize(&box->base);
        box->type = type;
+       box->userdata = NULL;
 }
 
 LOCAL VOID cssrendering_basebox_finalize(cssrendering_basebox_t *box)
@@ -60,6 +66,13 @@ LOCAL VOID cssrendering_basebox_finalize(cssrendering_basebox_t *box)
        treebase_node_finalize(&box->base);
 }
 
+/* cssrendering_linebox */
+
+EXPORT VOID cssrendering_linebox_setuserdata(cssrendering_linebox_t *box, VP data)
+{
+       cssrendering_basebox_setuserdata(&box->base, data);
+}
+
 EXPORT VOID cssrendering_linebox_initialize(cssrendering_linebox_t *box)
 {
        cssrendering_basebox_initialize(&box->base, CSSRENDEREING_BOX_TYPE_LINE);
@@ -77,6 +90,11 @@ EXPORT VOID cssrendering_anonymousbox_appendchild(cssrendering_anonymousbox_t *b
        cssrendering_basebox_appendchild(&box->base, &child->base);
 }
 
+EXPORT VOID cssrendering_anonymousbox_setuserdata(cssrendering_anonymousbox_t *box, VP data)
+{
+       cssrendering_basebox_setuserdata(&box->base, data);
+}
+
 EXPORT VOID cssrendering_anonymousbox_initialize(cssrendering_anonymousbox_t *box)
 {
        cssrendering_basebox_initialize(&box->base, CSSRENDEREING_BOX_TYPE_ANONYMOUS);
@@ -99,6 +117,11 @@ EXPORT VOID cssrendering_blockbox_appendblockchild(cssrendering_blockbox_t *box,
        cssrendering_basebox_appendchild(&box->base, &child->base);
 }
 
+EXPORT VOID cssrendering_blockbox_setuserdata(cssrendering_blockbox_t *box, VP data)
+{
+       cssrendering_basebox_setuserdata(&box->base, data);
+}
+
 EXPORT VOID cssrendering_blockbox_initialize(cssrendering_blockbox_t *box)
 {
        cssrendering_basebox_initialize(&box->base, CSSRENDEREING_BOX_TYPE_BLOCK);
@@ -134,6 +157,7 @@ EXPORT Bool cssrendering_drawtraversal_next(cssrendering_drawtraversal_t *traver
                                        result->data.text.fragment = &(box->l.text);
                                        result->data.text.blstart.x = traversal->origin.x + box->base.content_edge.c.left;
                                        result->data.text.blstart.y = traversal->origin.y + box->base.content_edge.c.top + box->l.baseline;
+                                       result->data.text.nodedata = box->base.userdata;
                                        break;
                                }
                        } else {
index c9e917a..fb74384 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 #include    <basic.h>
+#include    <btron/dp.h>
 
 #include       "cssmetric.h"
 #include       <coll/treebase.h>
@@ -56,6 +57,7 @@ struct cssrendering_basebox_t_ {
        treebase_node_t base;
        CSSRENDERING_BOX_TYPE type;
        cssmetric_rectangle_t content_edge;
+       VP userdata;
 };
 typedef struct cssrendering_basebox_t_ cssrendering_basebox_t;
 
@@ -103,6 +105,7 @@ struct cssrendering_drawtraversal_result_ {
                struct {
                        cssrendering_textfragment_t *fragment;
                        cssmetric_point_t blstart; /* baseline start */
+                       VP nodedata;
                } text;
        } data;
 };
@@ -110,14 +113,17 @@ typedef struct cssrendering_drawtraversal_result_ cssrendering_drawtraversal_res
 
 IMPORT VOID cssrendering_linebox_initialize(cssrendering_linebox_t *box);
 IMPORT VOID cssrendering_linebox_finalize(cssrendering_linebox_t *box);
+IMPORT VOID cssrendering_linebox_setuserdata(cssrendering_linebox_t *box, VP data);
 
 IMPORT VOID cssrendering_anonymousbox_initialize(cssrendering_anonymousbox_t *box);
 IMPORT VOID cssrendering_anonymousbox_finalize(cssrendering_anonymousbox_t *box);
 IMPORT VOID cssrendering_anonymousbox_appendchild(cssrendering_anonymousbox_t *box, cssrendering_linebox_t *child);
+IMPORT VOID cssrendering_anonymousbox_setuserdata(cssrendering_anonymousbox_t *box, VP data);
 
 IMPORT VOID cssrendering_blockbox_initialize(cssrendering_blockbox_t *box);
 IMPORT VOID cssrendering_blockbox_finalize(cssrendering_blockbox_t *box);
 IMPORT VOID cssrendering_blockbox_appendanonymouschild(cssrendering_blockbox_t *box, cssrendering_anonymousbox_t *child);
+IMPORT VOID cssrendering_blockbox_setuserdata(cssrendering_blockbox_t *box, VP data);
 
 IMPORT VOID cssrendering_drawtraversal_initialize(cssrendering_drawtraversal_t *traversal, cssrendering_blockbox_t *root);
 IMPORT VOID cssrendering_drawtraversal_finalize(cssrendering_drawtraversal_t *traversal);