#include #include #include #include #include /* PLEASE don't do this in production! * when wrappers are implemented, * THEY will make draw functions for you * THIS IS A BAD IDEA */ void my_test_draw(SaffronWidget* self, SDL_Renderer* renderer) { SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255); SDL_FRect rect = {self->x, self->y, self->w, self->h}; SDL_RenderFillRect(renderer, &rect); SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); SDL_RenderRect(renderer, &rect); } /* YET AGAIN DONT DO THIS IN PROD PLEASE * this is very lunatic */ void my_test_onclick(SaffronWidget* self) { printf("clicked!\n"); } int main(void) { saffron_init(); SaffronWindow* window = saffron_window_new("saffron test", 800, 600); /* i guess IM THE LUNATIC NOW * DEAL WITH IT */ SaffronWidget* test = saffron_widget_new(); test->x = 100; test->y = 100; test->w = 200; test->h = 150; test->draw = my_test_draw; test->on_click = my_test_onclick; /* lunatic method 2 */ SaffronWidget* test2 = saffron_widget_new(); test2->x = 150; test2->y = 500; test2->w = 300; test2->h = 170; test2->draw = my_test_draw; saffron_widget_add_child(window->root, test); saffron_widget_add_child(window->root, test2); saffron_window_main(window); saffron_window_free(window); saffron_quit(); return 0; }