- set_axis_value(0, x*2.0f/source.get_width()-1.0f, true);
- set_axis_value(1, 1.0f-y*2.0f/source.get_height(), true);
+#ifdef WIN32
+ switch(event.msg)
+ {
+ case WM_LBUTTONDOWN:
+ case WM_LBUTTONUP:
+ set_button_state(1, event.msg==WM_LBUTTONDOWN, true);
+ break;
+ case WM_MBUTTONDOWN:
+ case WM_MBUTTONUP:
+ set_button_state(2, event.msg==WM_LBUTTONDOWN, true);
+ break;
+ case WM_RBUTTONDOWN:
+ case WM_RBUTTONUP:
+ set_button_state(3, event.msg==WM_LBUTTONDOWN, true);
+ break;
+ case WM_MOUSEWHEEL:
+ {
+ unsigned btn = (HIWORD(event.wparam)&0x8000) ? 5 : 4;
+ set_button_state(btn, true, true);
+ set_button_state(btn, false, true);
+ }
+ break;
+ case WM_MOUSEMOVE:
+ set_axis_value(0, GET_X_LPARAM(event.lparam)*2.0/window.get_width()-1.0, true);
+ set_axis_value(1, 1.0-GET_Y_LPARAM(event.lparam)*2.0/window.get_height(), true);
+ break;
+ }
+#else
+ switch(event.xevent.type)
+ {
+ case ButtonPress:
+ case ButtonRelease:
+ set_button_state(event.xevent.xbutton.button, event.xevent.type==ButtonPress, true);
+ break;
+ case MotionNotify:
+ set_axis_value(0, event.xevent.xmotion.x*2.0/window.get_width()-1.0, true);
+ set_axis_value(1, 1.0-event.xevent.xmotion.y*2.0/window.get_height(), true);
+ break;
+ }
+#endif