46 lines
1.1 KiB
C
46 lines
1.1 KiB
C
#include <stdlib.h>
|
|
#include <ptk.h>
|
|
#include <ptk_log.h>
|
|
|
|
#include <GLFW/glfw3.h>
|
|
|
|
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)
|
|
);
|
|
}
|