Beispiel #1
0
static void
clickdot_destroy(struct clickdot *clickdot)
{
	display_unwatch_fd(window_get_display(clickdot->window),
			   clickdot->cursor_timeout_fd);
	close(clickdot->cursor_timeout_fd);
	if (clickdot->buffer)
		cairo_surface_destroy(clickdot->buffer);
	widget_destroy(clickdot->widget);
	window_destroy(clickdot->window);
	free(clickdot);
}
Beispiel #2
0
static void
show_menu(struct panel *panel, struct input *input, uint32_t time)
{
    int32_t x, y;
    static const char *entries[] = {
        "Roy", "Pris", "Leon", "Zhora"
    };

    input_get_position(input, &x, &y);
    window_show_menu(window_get_display(panel->window),
                     input, time, panel->window,
                     x - 10, y - 10, menu_func, entries, 4);
}
Beispiel #3
0
static struct triangle *
triangle_create(struct window *window, struct egl_state *egl)
{
	struct triangle *tri;

	tri = calloc(1, sizeof *tri);

	tri->egl = egl;
	tri->widget = window_add_subsurface(window, tri,
		int_to_mode(option_triangle_mode));
	widget_set_resize_handler(tri->widget, triangle_resize_handler);
	widget_set_redraw_handler(tri->widget, triangle_redraw_handler);

	set_empty_input_region(tri->widget, window_get_display(window));

	return tri;
}
Beispiel #4
0
static struct clickdot *
clickdot_create(struct display *display)
{
	struct clickdot *clickdot;

	clickdot = xzalloc(sizeof *clickdot);
	clickdot->window = window_create(display);
	clickdot->widget = window_frame_create(clickdot->window, clickdot);
	window_set_title(clickdot->window, "Wayland ClickDot");
	clickdot->display = display;
	clickdot->buffer = NULL;

	window_set_key_handler(clickdot->window, key_handler);
	window_set_user_data(clickdot->window, clickdot);
	window_set_keyboard_focus_handler(clickdot->window,
					  keyboard_focus_handler);

	widget_set_redraw_handler(clickdot->widget, redraw_handler);
	widget_set_button_handler(clickdot->widget, button_handler);
	widget_set_motion_handler(clickdot->widget, motion_handler);
	widget_set_resize_handler(clickdot->widget, resize_handler);
	widget_set_leave_handler(clickdot->widget, leave_handler);

	widget_schedule_resize(clickdot->widget, 500, 400);
	clickdot->dot.x = 250;
	clickdot->dot.y = 200;
	clickdot->line.x = -1;
	clickdot->line.y = -1;
	clickdot->line.old_x = -1;
	clickdot->line.old_y = -1;
	clickdot->reset = 0;

	clickdot->cursor_timeout_fd =
		timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC);
	clickdot->cursor_timeout_task.run = cursor_timeout_func;
	display_watch_fd(window_get_display(clickdot->window),
			 clickdot->cursor_timeout_fd,
			 EPOLLIN, &clickdot->cursor_timeout_task);

	return clickdot;
}