summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMatthias Melcher <github@matthiasm.com>2023-08-05 12:19:35 +0200
committerMatthias Melcher <github@matthiasm.com>2023-08-05 12:19:42 +0200
commit3049e6394a3376f7fff1c8cde19fd7bb1a9252ec (patch)
treee51ea3abc1232caac48edfc24e7e54fdf6495bcf /test
parent2953db58c75f30912bee6b91fd5ff087bbb8cad5 (diff)
#733 partial: Adds rotation gesture event on MacOS
Diffstat (limited to 'test')
-rw-r--r--test/keyboard.cxx21
-rw-r--r--test/keyboard_ui.fl39
2 files changed, 43 insertions, 17 deletions
diff --git a/test/keyboard.cxx b/test/keyboard.cxx
index 46ba6142f..dd6feeb0f 100644
--- a/test/keyboard.cxx
+++ b/test/keyboard.cxx
@@ -43,11 +43,22 @@ int handle(int e) {
return (e == FL_SHORTCUT); // eat all keystrokes
}
-int MyWindow::handle(int msg) {
- if (msg==FL_MOUSEWHEEL) {
- roller_x->value( roller_x->value() + Fl::e_dx * roller_x->step() );
- roller_y->value( roller_y->value() + Fl::e_dy * roller_y->step() );
- return 1;
+int MyWindow::handle(int event) {
+ static int r = 0;
+ switch (event) {
+ case FL_MOUSEWHEEL: {
+ int x = (int)(w_scroll->xvalue() - Fl::event_dx());
+ int y = (int)(w_scroll->yvalue() - Fl::event_dy());
+ w_scroll->value( (double)(x&31), (double)(y&31) );
+ return 1; }
+ case FL_ZOOM_GESTURE: {
+ int z = (int)(w_zoom->yvalue() + Fl::event_dy());
+ w_zoom->value( (double)(z&255), (double)(z&255) );
+ return 1; }
+ case FL_ROTATE_GESTURE: {
+ r = r - (Fl::event_dy()/100.0);
+ w_rotate->value( (double)(r&1023) );
+ return 1; }
}
return 0;
}
diff --git a/test/keyboard_ui.fl b/test/keyboard_ui.fl
index 425b05f4b..116259773 100644
--- a/test/keyboard_ui.fl
+++ b/test/keyboard_ui.fl
@@ -10,7 +10,7 @@ snap {
Function {make_window()} {open
} {
Fl_Window my_window {open
- xywh {448 339 495 215} type Double
+ xywh {407 352 550 215} type Double
code0 {\#include "keyboard.h"}
class MyWindow visible
} {
@@ -690,8 +690,8 @@ Function {make_window()} {open
xywh {15 20 170 30} labelsize 9 align 5
}
Fl_Box {} {
- label {Fl::event_state():} selected
- xywh {400 15 80 0} labelsize 9 align 5
+ label {Fl::event_state():}
+ xywh {400 0 80 15} labelsize 9 align 22
}
Fl_Output text_output {
label {Fl::event_text():}
@@ -709,15 +709,30 @@ Function {make_window()} {open
callback key_cb
xywh {420 70 20 20} labelsize 10
}
- Fl_Dial roller_x {
- label {x:}
- callback wheel_cb
- xywh {440 70 20 20} box ROUND_UP_BOX selection_color 49 labelsize 9 align 5 step 0.1
- }
- Fl_Dial roller_y {
- label {y:}
- callback wheel_cb
- xywh {460 70 20 20} box ROUND_UP_BOX selection_color 49 labelsize 9 align 5 step 0.1
+ Fl_Box {} {
+ label {Gestures:}
+ xywh {493 0 50 15} labelsize 9 align 22
+ }
+ Fl_Box w_scroll {
+ label Mousewheel selected
+ xywh {495 20 40 40} box DOWN_BOX selection_color 8 labelsize 8 align 2
+ code0 {\#include <FL/Fl_Positioner.H>}
+ code1 {w_scroll->xbounds(0.0, 32.0); w_scroll->ybounds(0.0, 32.0);}
+ code2 {w_scroll->value(16.0, 16.0);}
+ class Fl_Positioner
+ }
+ Fl_Box w_zoom {
+ label Zoom
+ tooltip {the zoom gestures is not supported on all platforms} xywh {495 75 40 40} box DOWN_BOX selection_color 8 labelsize 8 align 2
+ code0 {\#include <FL/Fl_Positioner.H>}
+ code1 {w_zoom->xbounds(0.0, 256.0); w_zoom->ybounds(256.0, 0.0);}
+ code2 {w_zoom->value(128.0, 128.0);}
+ class Fl_Positioner
+ }
+ Fl_Dial w_rotate {
+ label Rotate
+ tooltip {the rotation gestures is not supported on all platforms} xywh {495 130 40 40} box ROUND_DOWN_BOX selection_color 49 labelsize 8 maximum 1023 step 1
+ code1 {w_rotate->angles(0, 360);}
}
}
}