#ifndef SAFFRON_API_H #define SAFFRON_API_H #include "saffron_widget.h" /* satisfy the lsp and also if someone includes api without the saffron.h wrapper (you lunatic) then it still works */ #include "saffron_window.h" #include "saffron_layout.h" #include "saffron_text.h" #include #include #include bool saffron_init(void); void saffron_quit(void); void saffron_widget_draw(SaffronWidget* widget, SDL_Renderer *renderer); void saffron_widget_add_child(SaffronWidget* parent, SaffronWidget* child); void saffron_widget_init(SaffronWidget* widget); /* generic primitive for generic widgets as said below. saffron_widget_new just calls this under the hood */ SaffronWidget* saffron_widget_new(); /* generic primitive for generic widgets, e.g. the window root. ideally window root is a hbox/vbox/box once those are implemented */ void saffron_widget_free(SaffronWidget* widget); SaffronWindow* saffron_window_new(const char* title, int w, int h); void saffron_window_free(SaffronWindow* window); void saffron_window_show(SaffronWindow* window); void saffron_window_main(SaffronWindow* window); SaffronWidget* saffron_widget_hit_test(SaffronWidget* widget, int x, int y); SaffronBox* saffron_box_new(SaffronOrientation orientation, SaffronHorizontalAlignment halign, SaffronVerticalAlignment valign, int spacing, int padding, int margin, int width, int height); void saffron_box_layout(SaffronBox* box); SaffronText* saffron_text_new(const char* text, int font_size, SDL_Color color); void saffron_text_set_text(SaffronText* text, const char* new_text); #endif