From 072f42236fb0d2509608a3ad345df2c5cf71f8dd Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Wed, 04 Aug 2021 19:58:00 -0400 Subject: tk: Reduce initialization boilerplate code --- (limited to 'src/tk/widget.h') 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_ */ -- cgit v0.9.1