aboutsummaryrefslogtreecommitdiff
path: root/src/saffron.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/saffron.c')
-rw-r--r--src/saffron.c34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/saffron.c b/src/saffron.c
index dc6e470..8724101 100644
--- a/src/saffron.c
+++ b/src/saffron.c
@@ -1,13 +1,29 @@
#include <stdio.h>
+#include <stdbool.h>
+#include <stdlib.h>
#include <SDL3/SDL.h>
#include <SDL3_ttf/SDL_ttf.h>
-#include <SDL3/SDL_main.h>
+#include <saffron.h> /* meson include directories */
-typedef struct SaffronWidget {
- int x, y, w, h;
- void (*draw)(struct SaffronWidget *self, SDL_Renderer *renderer);
- void (*on_click)(struct SaffronWidget *self);
- struct SaffronWidget *parent;
- struct SaffronWidget **children;
- int child_count;
-} SaffronWidget;
+bool saffron_init(void) {
+ if (!SDL_Init(SDL_INIT_VIDEO)) {
+ printf("[saffron] SDL init failed: %s\n", SDL_GetError());
+ return false;
+ }
+ if (!TTF_Init()) {
+ printf("[saffron] TTF init failed: %s\n", SDL_GetError());
+ return false;
+ }
+ return true;
+}
+
+void saffron_widget_draw(SaffronWidget* widget, SDL_Renderer *renderer) {
+ // do stuff later
+}
+
+void saffron_widget_add_child(SaffronWidget *parent, SaffronWidget *child) {
+ child->parent = parent;
+ parent->children = realloc(parent->children, sizeof(SaffronWidget*) * (parent->child_count + 1));
+ parent->children[parent->child_count] = child;
+ parent->child_count++;
+}