static void widget_pointer_button(struct wlt_widget *widget, uint32_t button, uint32_t state, void *data) { struct wlt_theme *theme = data; if (button != BTN_LEFT) return; if (state != WL_POINTER_BUTTON_STATE_PRESSED) { if (theme->pointer_pressed) { button_action(theme); theme->pointer_pressed = false; theme->pointer_grabbed = LOC_NOWHERE; wlt_window_schedule_redraw(theme->wnd); } return; } if (!theme->pointer_pressed) { theme->pointer_pressed = true; theme->pointer_grabbed = theme->pointer_loc; wlt_window_schedule_redraw(theme->wnd); } switch (theme->pointer_loc) { case LOC_RESIZE_LEFT: wlt_window_resize(theme->wnd, WL_SHELL_SURFACE_RESIZE_LEFT); break; case LOC_RESIZE_RIGHT: wlt_window_resize(theme->wnd, WL_SHELL_SURFACE_RESIZE_RIGHT); break; case LOC_RESIZE_TOP: wlt_window_resize(theme->wnd, WL_SHELL_SURFACE_RESIZE_TOP); break; case LOC_RESIZE_BOTTOM: wlt_window_resize(theme->wnd, WL_SHELL_SURFACE_RESIZE_BOTTOM); break; case LOC_RESIZE_TOP_LEFT: wlt_window_resize(theme->wnd, WL_SHELL_SURFACE_RESIZE_TOP_LEFT); break; case LOC_RESIZE_TOP_RIGHT: wlt_window_resize(theme->wnd, WL_SHELL_SURFACE_RESIZE_TOP_RIGHT); break; case LOC_RESIZE_BOTTOM_LEFT: wlt_window_resize(theme->wnd, WL_SHELL_SURFACE_RESIZE_BOTTOM_LEFT); break; case LOC_RESIZE_BOTTOM_RIGHT: wlt_window_resize(theme->wnd, WL_SHELL_SURFACE_RESIZE_BOTTOM_RIGHT); break; case LOC_CONTROL: wlt_window_move(theme->wnd); break; } }
void sdljoystick_buttonrelease( SDL_JoyButtonEvent *buttonevent ) { button_action( buttonevent, INPUT_EVENT_JOYSTICK_RELEASE ); }
void sdljoystick_buttonpress( SDL_JoyButtonEvent *buttonevent ) { button_action( buttonevent, INPUT_EVENT_JOYSTICK_PRESS ); }