summaryrefslogtreecommitdiffstats
path: root/src/tk/widget.h
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2021-08-04 19:58:00 (EDT)
committer P. J. McDermott <pj@pehjota.net>2021-08-04 19:58:00 (EDT)
commit072f42236fb0d2509608a3ad345df2c5cf71f8dd (patch)
treed3a46fb877e5fc9f2c73def5c01e1285800836fa /src/tk/widget.h
parent72fd569b4944d0e8d6557d734a1a5550a2da6c00 (diff)
downloadmazefight-072f42236fb0d2509608a3ad345df2c5cf71f8dd.zip
mazefight-072f42236fb0d2509608a3ad345df2c5cf71f8dd.tar.gz
mazefight-072f42236fb0d2509608a3ad345df2c5cf71f8dd.tar.bz2
tk: Reduce initialization boilerplate code
Diffstat (limited to 'src/tk/widget.h')
-rw-r--r--src/tk/widget.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/tk/widget.h b/src/tk/widget.h
index 2336388..ae81553 100644
--- a/src/tk/widget.h
+++ b/src/tk/widget.h
@@ -36,4 +36,17 @@ struct mftk_widget {
struct mftk_widget *
mftk_widget_new(size_t size);
+#define mftk_widget_init(w, t_w, name) \
+ do { \
+ w = mftk_widget_new(sizeof(struct mftk_##name)); \
+ if (w == NULL) { \
+ return NULL; \
+ }; \
+ w->layout = &_mftk_##name##_layout; \
+ w->event = &_mftk_##name##_event; \
+ w->render = &_mftk_##name##_render; \
+ w->destroy = &_mftk_##name##_destroy; \
+ t_w = (struct mftk_##name *) w; \
+ } while (0)
+
#endif /* MFTK_WIDGET_H_ */