Mercurial > MadButterfly
view include/mb_prop.h @ 269:c96f38ad4bb6
Fix mis-behavior of translate_path_data() on arc.
- Arc in a path in svg2code_ex is not showed.
- translate_path_data() in svg2code.py was modified for calling
binary version new method for path shape.
- rdman_shape_path_new_from_binary()
- Code to translate path data does not handle arc in a right way.
- Copy calc_center_and_x_aix() from shape_path.c to svg2code.py and
change name _calc_ellipse_of_arc()
- _calc_ellipse_of_arc() handle arc data for translate_path_data()
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Sun, 25 Jan 2009 00:20:34 +0800 |
parents | 50d253d0fcba |
children | fc29a343ce7c |
line wrap: on
line source
#ifndef __MB_PROP_H_ #define __MB_PROP_H_ #include "mb_tools.h" /*! \defgroup mb_prop_grp Property * \brief A way the modules can set up their own properties on objects. * * Properties are key-value pairs that are associated with objects. * MadButterfly associate a property store for each object (coord or shape) * to keep property values. Every property is identified by a ID; an * integer. Programmer can use a ID to set/get value to/from a property * store. The ID should be unique in a property store. * * \todo Add a free function pointer on entries to release resources when * the store is destroy. (See: \ref mouse.c) * * @{ */ typedef struct _mb_prop_entry mb_prop_entry_t; typedef struct _mb_prop_store mb_prop_store_t; struct _mb_prop_entry { int id; void *value; mb_prop_entry_t *next; }; /*! \brief Property IDs. */ enum { PROP_DUMMY, PROP_MEVT_OB_CNT, PROP_MEVT_OBSERVER, PROP_LAST }; struct _mb_prop_store { elmpool_t *entry_pool; STAILQ(mb_prop_entry_t) entries; }; #define mb_prop_store_init(prop_store, pent_pool) \ do { \ (prop_store)->entry_pool = pent_pool; \ STAILQ_INIT((prop_store)->entries); \ } while(0) void mb_prop_store_destroy(mb_prop_store_t *prop_store); void *mb_prop_set(mb_prop_store_t *prop_store, int id, void *value); void *mb_prop_get(mb_prop_store_t *prop_store, int id); void mb_prop_del(mb_prop_store_t *prop_store, int id); int mb_prop_has(mb_prop_store_t *prop_store, int id); /* @} */ #endif /* __MB_PROP_H_ */