#include #include #include #include static const float color_step = 10.0f; static PtkRect *r; static void on_press(const int button, const int action, const int mods) { (void)button; (void)mods; if (action == GLFW_PRESS) { PTK_DEBUG("pressed!"); r->color.b += color_step / 255.0f; if (r->color.b > 1.0f) { r->color.b = 0.0f; r->color.g += color_step / 255.0f; if (r->color.g > 1.0f) { r->color.g = 0.0f; r->color.r += color_step / 255.0f; if (r->color.r > 1.0f) { r->color.r = 0.0f; } } } } } int main(void) { if (!ptk_init(800, 600, "button", (PtkVersion){ .major = 0, .minor = 1, .patch = 0 })) { return EXIT_FAILURE; } r = (PtkRect *)ptk_rect( (PtkPos){ .x = 100.0f, .y = 100.0f }, (PtkSize){ .w = 100.0f, .h = 50.0f }, (PtkColor){ .r = 1.0f, .g = 1.0f, .b = 1.0f } ); return ptk_run( ptk_clickable((PtkHandle)r, on_press) ); }