#ifndef LIBMBTK_WIDGET_INLINES
#define LIBMBTK_WIDGET_INLINES

widget implementation helper: create widget-specific property sets

#define MBTK_WIDGET_INLINES(name) \ MBTK_INLINE void mbtk_ ## name ## _set_align(mbtk_ ## name ## _t *W, hvbox_align_t a) { mbtk_widget_set_align(&W->gt;w, a); } \ MBTK_INLINE void mbtk_ ## name ## _set_span(mbtk_ ## name ## _t *W, hvbox_span_t s) { mbtk_widget_set_span(&W->gt;w, s); } \ MBTK_INLINE void mbtk_ ## name ## _set_alt_span(mbtk_ ## name ## _t *W, hvbox_span_t s) { mbtk_widget_set_alt_span(&W->gt;w, s); } \ MBTK_INLINE void mbtk_ ## name ## _set_padding(mbtk_ ## name ## _t *W, int p) { mbtk_widget_set_padding(&W->gt;w, p); } \ MBTK_INLINE void mbtk_ ## name ## _set_spacing(mbtk_ ## name ## _t *W, int s) { mbtk_widget_set_spacing(&W->gt;w, s); } \ MBTK_INLINE void mbtk_ ## name ## _set_activated(mbtk_ ## name ## _t *W, mbtk_bool_t a) { mbtk_widget_set_activated(&W->gt;w, a); } \ MBTK_INLINE void mbtk_ ## name ## _set_minsize(mbtk_ ## name ## _t *W, long w, long h) { mbtk_widget_set_minsize(&W->gt;w, w, h); } \ MBTK_INLINE int mbtk_ ## name ## _style_set_prop(mbtk_ ## name ## _t *dst, mbtk_kw_t key, mbtk_arg_t value) { return mbtk_widget_style_set_prop(&dst->gt;w, key, value); } \ MBTK_INLINE void mbtk_ ## name ## _destroy(mbtk_ ## name ## _t *W) { mbtk_widget_destroy(&W->gt;w); } \ MBTK_INLINE void mbtk_ ## name ## _callback_pre_destroy(mbtk_ ## name ## _t *W, mbtk_event_handled_t (*cb)(mbtk_widget_t *w, mbtk_kw_t id, void *user_data), void *user_data) { mbtk_widget_callback_pre_destroy(&W->gt;w, cb, user_data); }