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)
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);
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);
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);
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 {
*/
#include <basic.h>
+#include <btron/dp.h>
#include "cssmetric.h"
#include <coll/treebase.h>
treebase_node_t base;
CSSRENDERING_BOX_TYPE type;
cssmetric_rectangle_t content_edge;
+ VP userdata;
};
typedef struct cssrendering_basebox_t_ cssrendering_basebox_t;
struct {
cssrendering_textfragment_t *fragment;
cssmetric_point_t blstart; /* baseline start */
+ VP nodedata;
} text;
} data;
};
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);