Example #1
0
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;
	}
}
Example #2
0
void
sdljoystick_buttonrelease( SDL_JoyButtonEvent *buttonevent )
{
  button_action( buttonevent, INPUT_EVENT_JOYSTICK_RELEASE );
}
Example #3
0
void
sdljoystick_buttonpress( SDL_JoyButtonEvent *buttonevent )
{
  button_action( buttonevent, INPUT_EVENT_JOYSTICK_PRESS );
}