helpers used in widget implementation

/* Create a new widget w from an user allocation or by caling calloc() */ #define mbtk_create_wt(widget, type_kw, imps, caller_alloced_) \ do { \ if (caller_alloced != NULL) { \ widget = caller_alloced_; \ memset(widget, 0, sizeof(*widget)); \ widget->gt;w.flags.caller_alloced = 1; \ } \ else \ widget = calloc(sizeof(*widget), 1); \ widget->gt;w.struct_size = sizeof(*widget); \ widget->gt;w.type = type_kw; \ widget->gt;w.hvbox.type = HVBOX_WIDGET; \ widget->gt;w.imp = imps; \ widget->gt;w.flags.dirty = 1; \ widget->gt;w.flags.created = 1; \ widget->gt;w.hvbox.align = mbtk_default_align; \ widget->gt;w.hvbox.span = mbtk_default_span; \ widget->gt;w.hvbox.spacing = mbtk_default_spacing; \ widget->gt;w.hvbox.padding = mbtk_default_padding; \ } while(0) void mbtk_widget_minsize(mbtk_widget_t *widget, long *mx, long *my); /* Call this if previously floating widget got embedded under a parent */ MBTK_INLINE void mbtk_widget_embedded(mbtk_widget_t *parent, mbtk_widget_t *w); /* Call this to unlink an embedded widget; calls hvbox unlink and unassigns */ MBTK_INLINE void mbtk_widget_unembed(mbtk_widget_t *w); /* Look up color by kw_clr in w's style and set drawing color for w->gt;win if found. Returns 0 on success, -1 if not found */ MBTK_INLINE int mbtk_widget_draw_set_style_color(mbtk_widget_t *w, mbtk_kw_t kw_clr);