summaryrefslogtreecommitdiff
path: root/pugl_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'pugl_test.c')
-rw-r--r--pugl_test.c116
1 files changed, 60 insertions, 56 deletions
diff --git a/pugl_test.c b/pugl_test.c
index 698299b..5c4ab9c 100644
--- a/pugl_test.c
+++ b/pugl_test.c
@@ -131,9 +131,8 @@ onDisplay(PuglView* view)
}
static void
-printModifiers(PuglView* view)
+printModifiers(PuglView* view, unsigned mods)
{
- int mods = puglGetModifiers(view);
fprintf(stderr, "Modifiers:%s%s%s%s\n",
(mods & PUGL_MOD_SHIFT) ? " Shift" : "",
(mods & PUGL_MOD_CTRL) ? " Ctrl" : "",
@@ -144,59 +143,71 @@ printModifiers(PuglView* view)
static void
onEvent(PuglView* view, const PuglEvent* event)
{
- if (event->type == PUGL_KEY_PRESS) {
- const uint32_t ucode = event->key.character;
- fprintf(stderr, "Key %u (char %u) down (%s)%s\n",
- event->key.keycode, ucode, event->key.utf8,
+ switch (event->type) {
+ case PUGL_NOTHING:
+ break;
+ case PUGL_CONFIGURE:
+ onReshape(view, event->configure.width, event->configure.height);
+ break;
+ case PUGL_EXPOSE:
+ onDisplay(view);
+ break;
+ case PUGL_CLOSE:
+ quit = 1;
+ break;
+ case PUGL_KEY_PRESS:
+ fprintf(stderr, "Key %u (char %u) press (%s)%s\n",
+ event->key.keycode, event->key.character, event->key.utf8,
event->key.filter ? " (filtered)" : "");
-
- if (ucode == 'q' || ucode == 'Q' || ucode == PUGL_CHAR_ESCAPE) {
+ if (event->key.character == 'q' ||
+ event->key.character == 'Q' ||
+ event->key.character == PUGL_CHAR_ESCAPE) {
quit = 1;
}
+ break;
+ case PUGL_KEY_RELEASE:
+ fprintf(stderr, "Key %u (char %u) release (%s)%s\n",
+ event->key.keycode, event->key.character, event->key.utf8,
+ event->key.filter ? " (filtered)" : "");
+ break;
+ case PUGL_MOTION_NOTIFY:
+ xAngle = -(int)event->motion.x % 360;
+ yAngle = (int)event->motion.y % 360;
+ puglPostRedisplay(view);
+ break;
+ case PUGL_BUTTON_PRESS:
+ case PUGL_BUTTON_RELEASE:
+ fprintf(stderr, "Mouse %d %s at %f,%f ",
+ event->button.button,
+ (event->type == PUGL_BUTTON_PRESS) ? "down" : "up",
+ event->button.x,
+ event->button.y);
+ break;
+ case PUGL_SCROLL:
+ fprintf(stderr, "Scroll %f %f %f %f ",
+ event->scroll.x, event->scroll.y, event->scroll.dx, event->scroll.dy);
+ printModifiers(view, event->scroll.state);
+ dist += event->scroll.dy;
+ if (dist < 10.0f) {
+ dist = 10.0f;
+ }
+ puglPostRedisplay(view);
+ break;
+ case PUGL_ENTER_NOTIFY:
+ fprintf(stderr, "Entered\n");
+ break;
+ case PUGL_LEAVE_NOTIFY:
+ fprintf(stderr, "Exited\n");
+ break;
+ case PUGL_FOCUS_IN:
+ fprintf(stderr, "Focus in\n");
+ break;
+ case PUGL_FOCUS_OUT:
+ fprintf(stderr, "Focus out\n");
+ break;
}
}
-static void
-onSpecial(PuglView* view, bool press, PuglKey key)
-{
- fprintf(stderr, "Special key %d %s ", key, press ? "down" : "up");
- printModifiers(view);
-}
-
-static void
-onMotion(PuglView* view, int x, int y)
-{
- xAngle = x % 360;
- yAngle = y % 360;
- puglPostRedisplay(view);
-}
-
-static void
-onMouse(PuglView* view, int button, bool press, int x, int y)
-{
- fprintf(stderr, "Mouse %d %s at %d,%d ",
- button, press ? "down" : "up", x, y);
- printModifiers(view);
-}
-
-static void
-onScroll(PuglView* view, int x, int y, float dx, float dy)
-{
- fprintf(stderr, "Scroll %d %d %f %f ", x, y, dx, dy);
- printModifiers(view);
- dist += dy / 4.0f;
- if (dist < 10.0f) {
- dist = 10.0f;
- }
- puglPostRedisplay(view);
-}
-
-static void
-onClose(PuglView* view)
-{
- quit = 1;
-}
-
int
main(int argc, char** argv)
{
@@ -228,13 +239,6 @@ main(int argc, char** argv)
puglIgnoreKeyRepeat(view, ignoreKeyRepeat);
puglSetEventFunc(view, onEvent);
- puglSetMotionFunc(view, onMotion);
- puglSetMouseFunc(view, onMouse);
- puglSetScrollFunc(view, onScroll);
- puglSetSpecialFunc(view, onSpecial);
- puglSetDisplayFunc(view, onDisplay);
- puglSetReshapeFunc(view, onReshape);
- puglSetCloseFunc(view, onClose);
puglCreateWindow(view, "Pugl Test");