From 04ff8c0a6acc2cc9204492690b7f99f892ed439a Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Tue, 7 Apr 2026 11:13:23 +1200 Subject: Refactor things, and start implementing API widgets --- include/saffron.h | 9 +++++++++ include/saffron_button.h | 11 +++++++++++ include/saffron_text.h | 0 include/saffron_widget.h | 15 +++++++++++++++ include/saffron_window.h | 0 5 files changed, 35 insertions(+) create mode 100644 include/saffron.h create mode 100644 include/saffron_button.h create mode 100644 include/saffron_text.h create mode 100644 include/saffron_widget.h create mode 100644 include/saffron_window.h (limited to 'include') diff --git a/include/saffron.h b/include/saffron.h new file mode 100644 index 0000000..8682ac4 --- /dev/null +++ b/include/saffron.h @@ -0,0 +1,9 @@ +#ifndef SAFFRON_H +#define SAFFRON_H + +#include "saffron_button.h" +#include "saffron_text.h" +#include "saffron_widget.h" +#include "saffron_window.h" + +#endif diff --git a/include/saffron_button.h b/include/saffron_button.h new file mode 100644 index 0000000..3112edf --- /dev/null +++ b/include/saffron_button.h @@ -0,0 +1,11 @@ +#ifndef SAFFRON_BUTTON_H +#define SAFFRON_BUTTON_H + +#include "saffron_widget.h" + +typedef struct { + SaffronWidget base; // must be first, or we're f**ked + const char* label; +} SaffronButton; + +#endif diff --git a/include/saffron_text.h b/include/saffron_text.h new file mode 100644 index 0000000..e69de29 diff --git a/include/saffron_widget.h b/include/saffron_widget.h new file mode 100644 index 0000000..6d7b6bd --- /dev/null +++ b/include/saffron_widget.h @@ -0,0 +1,15 @@ +#ifndef SAFFRON_WIDGET_H +#define SAFFRON_WIDGET_H + +#include + +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; + +#endif diff --git a/include/saffron_window.h b/include/saffron_window.h new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3