diff options
| author | Arslaan Pathan <[email protected]> | 2026-04-21 18:11:23 +1200 |
|---|---|---|
| committer | Arslaan Pathan <[email protected]> | 2026-04-21 18:11:23 +1200 |
| commit | cce512b7252ff7fd3f1329f224407fb772c9b4aa (patch) | |
| tree | cc58f0cd705338c49c7f9829f7eb6c13befa994c /include/saffron_widget.h | |
| parent | 12fb8e70c79fb262a06431bfbd0e4ce97380d2a8 (diff) | |
| download | saffron-cce512b7252ff7fd3f1329f224407fb772c9b4aa.tar.xz saffron-cce512b7252ff7fd3f1329f224407fb772c9b4aa.zip | |
A bunch of more layout work
Diffstat (limited to 'include/saffron_widget.h')
| -rw-r--r-- | include/saffron_widget.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/include/saffron_widget.h b/include/saffron_widget.h index 6d7b6bd..4461555 100644 --- a/include/saffron_widget.h +++ b/include/saffron_widget.h @@ -3,13 +3,22 @@ #include <SDL3/SDL.h> +typedef enum{ + SAFFRON_SIZE_FIXED, + SAFFRON_SIZE_STRETCH, + SAFFRON_SIZE_SCALE // scale but keep aspect ratio. this must be set on BOTH size modes (width AND height) to work +} SaffronSizeMode; + 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; + struct SaffronWidget* parent; + struct SaffronWidget** children; int child_count; + SaffronSizeMode width_mode; + SaffronSizeMode height_mode; + bool pixel_perfect; // Do we scale dynamically (SaffronSizeMode, etc) or use raw x, y, w, h values? If this is true, the SaffronSizeModes from earlier will be ignored } SaffronWidget; #endif |
