Mercurial > MadButterfly
changeset 293:a171b94582ae
Add document for TextField API.
author | wycc |
---|---|
date | Sun, 01 Feb 2009 02:34:24 +0800 |
parents | 7270e368ee98 |
children | 2ca0773cd48d |
files | include/mb_shapes.h |
diffstat | 1 files changed, 43 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/include/mb_shapes.h Sun Feb 01 02:14:45 2009 +0800 +++ b/include/mb_shapes.h Sun Feb 01 02:34:24 2009 +0800 @@ -63,7 +63,17 @@ const char *txt, co_aix x, co_aix y, co_aix font_size, cairo_font_face_t *face,PangoAttrList *attrs); +/*! \brief Change the content of the text element. + * In the SVG, the content of a text tag can be composed of several tspan inside it. The Madbutterfly parser will collect all content of a + * text segement as a single string. The attribute of these characters are saved in a seperate data structure. In the program level, we will + * not keep the SVG text tree. Instead, all attributes will be expanded into a list. + * + * When you change the content of a text element, please remember that the attributes will not be removed by the way. You need to change + * them seperately. + * + */ extern void sh_text_set_text(shape_t *shape, const char *txt); + extern void sh_text_transform(shape_t *shape); extern void sh_text_draw(shape_t *shape, cairo_t *cr); /* @} */ @@ -108,12 +118,45 @@ cairo_surface_t *surface; } mb_text_t; +/*! \brief Change the style of the text. + * + * This function can add a couple of attributes to a segment of text or the whole text field. If the @end is -1, the attributes + * will be applied to the whole text field. The @style should be initialized by using the mb_textstyle_xxx functions. All attributes + * which is not initialized will not be changed. It means that the @style will be added into all existing style instead of reaplcing + * it. + */ extern void sh_text_set_style(shape_t *shape,int begin,int end,mb_textstyle_t *format); +/*! \brief Change the color of the text field + * Change the color of the whole text field. This will removed all existing color attribute. If you want to change part of the text + * field only, please use the sh_text_set_style instead. + */ extern void sh_text_set_color(shape_t *shape, unsigned color); +/*! \brief Turn on/off the bold attribute. + * Turn on/off the font weight of the whole text field. This will removed all existing bold setting. If you want to change part of the text + * field only, please use the sh_text_set_style instead. + */ extern void sh_text_set_bold(shape_t *shape, int bold); +/*! \brief Turn on/off the italic attribute. + * Turn on/off the italic of the whole text field. This will removed all existing italic setting. If you want to change part of the text + * field only, please use the sh_text_set_style instead. + */ extern void sh_text_set_italic(shape_t *shape, int italic); +/*! \brief Turn on/off the underline attribute. + * Turn on/off the underline of the whole text field. This will removed all existing underline setting. If you want to change part of the text + * field only, please use the sh_text_set_style instead. + */ extern void sh_text_set_underline(shape_t *shape, int underline); +/*! \brief Change the font of the text field. + * Change the font of the whole text field. This will removed all existing underline setting. If you want to change part of the text + * field only, please use the sh_text_set_style instead. + */ extern void sh_text_set_font(shape_t *shape, char *family); +/*! \brief Init the text style data structure. + * + * This is usually used to initialize the mb_textstyle_t which is allocate in the stack. It will mark all property as undefined. All undefined + * property will not change when the sh_text_set_style is called. + * + */ static inline void mb_textstyle_init(mb_textstyle_t *style) { style->property = 0;