-}
-
-static int
-frame_button_enter_handler(struct widget *widget,
- struct input *input, float x, float y, void *data)
-{
- struct frame_button *frame_button = data;
-
- widget_schedule_redraw(frame_button->widget);
- frame_button->state = FRAME_BUTTON_OVER;
-
- return CURSOR_LEFT_PTR;
-}
-
-static void
-frame_button_leave_handler(struct widget *widget, struct input *input, void *data)
-{
- struct frame_button *frame_button = data;
-
- widget_schedule_redraw(frame_button->widget);
- frame_button->state = FRAME_BUTTON_DEFAULT;
-}
-
-static void
-frame_button_button_handler(struct widget *widget,
- struct input *input, uint32_t time,
- uint32_t button,
- enum wl_pointer_button_state state, void *data)
-{
- struct frame_button *frame_button = data;
- struct window *window = widget->window;
- int was_pressed = (frame_button->state == FRAME_BUTTON_ACTIVE);
-
- if (button != BTN_LEFT)
- return;
-
- switch (state) {
- case WL_POINTER_BUTTON_STATE_PRESSED:
- frame_button->state = FRAME_BUTTON_ACTIVE;
- widget_schedule_redraw(frame_button->widget);
-
- if (frame_button->type == FRAME_BUTTON_ICON)
- window_show_frame_menu(window, input, time);
- return;
- case WL_POINTER_BUTTON_STATE_RELEASED:
- frame_button->state = FRAME_BUTTON_DEFAULT;
- widget_schedule_redraw(frame_button->widget);
- break;
- }
-
- if (!was_pressed)
- return;
-
- switch (frame_button->type) {
- case FRAME_BUTTON_CLOSE:
- if (window->close_handler)
- window->close_handler(window->parent,
- window->user_data);
- else
- display_exit(window->display);
- break;
- case FRAME_BUTTON_MINIMIZE:
- fprintf(stderr,"Minimize stub\n");
- break;
- case FRAME_BUTTON_MAXIMIZE:
- window_set_maximized(window, window->type != TYPE_MAXIMIZED);
- break;
- default:
- /* Unknown operation */
- break;
- }
-}
-
-static void
-frame_button_touch_down_handler(struct widget *widget, uint32_t serial,
- uint32_t time, int32_t id,
- float x, float y, void *data)
-{
- struct frame_button *frame_button = data;
- struct window *window = widget->window;
-
- switch (frame_button->type) {
- case FRAME_BUTTON_CLOSE:
- if (window->close_handler)
- window->close_handler(window->parent,
- window->user_data);
- else
- display_exit(window->display);
- break;
- case FRAME_BUTTON_MINIMIZE:
- fprintf(stderr,"Minimize stub\n");
- break;
- case FRAME_BUTTON_MAXIMIZE:
- window_set_maximized(window, window->type != TYPE_MAXIMIZED);
- break;
- default:
- /* Unknown operation */
- break;
- }
-}