From: duna.oh Date: Wed, 8 Jun 2022 07:46:45 +0000 (+0900) Subject: seat: move 'grab' related struct definitions to include folder X-Git-Tag: accepted/tizen/unified/20220718.140337~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=830f7fb73750c473233518a6956fc9cbd2117401;p=platform%2Fcore%2Fuifw%2Flibds.git seat: move 'grab' related struct definitions to include folder Change-Id: If430058bb6a962ef4e859efb0ec91edf423bfb94 --- diff --git a/include/libds/seat.h b/include/libds/seat.h index dbae0ea..e55fc4c 100644 --- a/include/libds/seat.h +++ b/include/libds/seat.h @@ -36,6 +36,55 @@ struct ds_event_seat_keyboard_focus_change struct ds_seat *seat; struct ds_surface *old_surface, *new_surface; }; +struct ds_seat_pointer_grab; + +struct ds_pointer_grab_interface +{ + void (*enter)(struct ds_seat_pointer_grab *grab, + struct ds_surface *surface, double sx, double sy); + void (*clear_focus)(struct ds_seat_pointer_grab *grab); + void (*motion)(struct ds_seat_pointer_grab *grab, uint32_t time_msec, + double sx, double sy); + uint32_t (*button)(struct ds_seat_pointer_grab *grab, uint32_t time_msec, + uint32_t button, enum ds_button_state state); + void (*axis)(struct ds_seat_pointer_grab *grab, uint32_t time_msec, + enum ds_axis_orientation orientation, double value, + int32_t value_discrete, enum ds_axis_source source); + void (*frame)(struct ds_seat_pointer_grab *grab); + void (*cancel)(struct ds_seat_pointer_grab *grab); +}; + +struct ds_seat_keyboard_grab; + +struct ds_keyboard_grab_interface +{ + void (*enter)(struct ds_seat_keyboard_grab *grab, + struct ds_surface *surface, uint32_t keycodes[], + size_t num_keycodes, struct ds_keyboard_modifiers *modifiers); + void (*clear_focus)(struct ds_seat_keyboard_grab *grab); + void (*key)(struct ds_seat_keyboard_grab *grab, uint32_t time_msec, + uint32_t key, uint32_t state); + void (*modifiers)(struct ds_seat_keyboard_grab *grab, + struct ds_keyboard_modifiers *modifiers); + void (*cancel)(struct ds_seat_keyboard_grab *grab); +}; + +struct ds_touch_point; +struct ds_seat_touch_grab; + +struct ds_touch_grab_interface +{ + uint32_t (*down)(struct ds_seat_touch_grab *grab, uint32_t time_msec, + struct ds_touch_point *point); + void (*up)(struct ds_seat_touch_grab *grab, uint32_t time_msec, + struct ds_touch_point *point); + void (*motion)(struct ds_seat_touch_grab *grab, uint32_t time_msec, + struct ds_touch_point *point); + void (*enter)(struct ds_seat_touch_grab *grab, uint32_t time_msec, + struct ds_touch_point *point); + void (*frame)(struct ds_seat_touch_grab *grab); + void (*cancel)(struct ds_seat_touch_grab *grab); +}; struct ds_seat *ds_seat_create(struct wl_display *display, const char *name); @@ -66,6 +115,11 @@ void ds_seat_pointer_notify_axis(struct ds_seat *seat, uint32_t time_msec, void ds_seat_pointer_notify_frame(struct ds_seat *seat); +void ds_seat_pointer_start_grab(struct ds_seat *seat, + struct ds_seat_pointer_grab *grab); + +void ds_seat_pointer_end_grab(struct ds_seat *seat); + void ds_seat_pointer_add_grab_begin_listener(struct ds_seat *seat, struct wl_listener *listener); @@ -87,6 +141,18 @@ void ds_seat_keyboard_notify_modifiers(struct ds_seat *seat, void ds_seat_keyboard_notify_key(struct ds_seat *seat, uint32_t time_msec, uint32_t key, uint32_t state); +struct ds_seat_keyboard_grab *ds_seat_create_keyboard_grab(struct ds_seat *seat, + const struct ds_keyboard_grab_interface *iface, void *data); + +void ds_seat_keyboard_destroy_grab(struct ds_seat_keyboard_grab *grab); + +void *ds_seat_keyboard_grab_get_data(struct ds_seat_keyboard_grab *grab); + +void ds_seat_keyboard_start_grab(struct ds_seat *seat, + struct ds_seat_keyboard_grab *grab); + +void ds_seat_keyboard_end_grab(struct ds_seat *seat); + void ds_seat_keyboard_add_grab_begin_listener(struct ds_seat *seat, struct wl_listener *listener); @@ -111,6 +177,11 @@ void ds_seat_touch_notify_motion(struct ds_seat *seat, uint32_t time_msec, void ds_seat_touch_notify_frame(struct ds_seat *seat); +void ds_seat_touch_start_grab(struct ds_seat *seat, + struct ds_seat_touch_grab *grab); + +void ds_seat_touch_end_grab(struct ds_seat *seat); + void ds_seat_touch_add_grab_start_listener(struct ds_seat *seat, struct wl_listener *listener); diff --git a/src/seat.h b/src/seat.h index 6295647..94275f5 100644 --- a/src/seat.h +++ b/src/seat.h @@ -4,56 +4,7 @@ #include "libds/keyboard.h" #include "libds/seat.h" -struct ds_seat_pointer_grab; - -struct ds_pointer_grab_interface -{ - void (*enter)(struct ds_seat_pointer_grab *grab, - struct ds_surface *surface, double sx, double sy); - void (*clear_focus)(struct ds_seat_pointer_grab *grab); - void (*motion)(struct ds_seat_pointer_grab *grab, uint32_t time_msec, - double sx, double sy); - uint32_t (*button)(struct ds_seat_pointer_grab *grab, uint32_t time_msec, - uint32_t button, enum ds_button_state state); - void (*axis)(struct ds_seat_pointer_grab *grab, uint32_t time_msec, - enum ds_axis_orientation orientation, double value, - int32_t value_discrete, enum ds_axis_source source); - void (*frame)(struct ds_seat_pointer_grab *grab); - void (*cancel)(struct ds_seat_pointer_grab *grab); -}; - -struct ds_seat_keyboard_grab; - -struct ds_keyboard_grab_interface -{ - void (*enter)(struct ds_seat_keyboard_grab *grab, - struct ds_surface *surface, uint32_t keycodes[], - size_t num_keycodes, struct ds_keyboard_modifiers *modifiers); - void (*clear_focus)(struct ds_seat_keyboard_grab *grab); - void (*key)(struct ds_seat_keyboard_grab *grab, uint32_t time_msec, - uint32_t key, uint32_t state); - void (*modifiers)(struct ds_seat_keyboard_grab *grab, - struct ds_keyboard_modifiers *modifiers); - void (*cancel)(struct ds_seat_keyboard_grab *grab); -}; - -struct ds_touch_point; - -struct ds_seat_touch_grab; - -struct ds_touch_grab_interface -{ - uint32_t (*down)(struct ds_seat_touch_grab *grab, uint32_t time_msec, - struct ds_touch_point *point); - void (*up)(struct ds_seat_touch_grab *grab, uint32_t time_msec, - struct ds_touch_point *point); - void (*motion)(struct ds_seat_touch_grab *grab, uint32_t time_msec, - struct ds_touch_point *point); - void (*enter)(struct ds_seat_touch_grab *grab, uint32_t time_msec, - struct ds_touch_point *point); - void (*frame)(struct ds_seat_touch_grab *grab); - void (*cancel)(struct ds_seat_touch_grab *grab); -}; +struct ds_pointer_grab_interface; struct ds_seat_pointer_grab { @@ -62,6 +13,8 @@ struct ds_seat_pointer_grab void *data; }; +struct ds_keyboard_grab_interface; + struct ds_seat_keyboard_grab { const struct ds_keyboard_grab_interface *iface; @@ -69,6 +22,8 @@ struct ds_seat_keyboard_grab void *data; }; +struct ds_touch_grab_interface; + struct ds_seat_touch_grab { const struct ds_touch_grab_interface *iface; @@ -76,11 +31,6 @@ struct ds_seat_touch_grab void *data; }; -void ds_seat_pointer_start_grab(struct ds_seat *seat, - struct ds_seat_pointer_grab *grab); - -void ds_seat_pointer_end_grab(struct ds_seat *seat); - void ds_seat_pointer_enter(struct ds_seat *seat, struct ds_surface *surface, double sx, double sy); @@ -98,11 +48,6 @@ void ds_seat_pointer_send_axis(struct ds_seat *seat, uint32_t time_msec, void ds_seat_pointer_send_frame(struct ds_seat *seat); -void ds_seat_keyboard_start_grab(struct ds_seat *seat, - struct ds_seat_keyboard_grab *grab); - -void ds_seat_keyboard_end_grab(struct ds_seat *seat); - void ds_seat_keyboard_enter(struct ds_seat *seat, struct ds_surface *surface, uint32_t keycodes[], size_t num_keycodes, struct ds_keyboard_modifiers *modifiers); @@ -115,11 +60,6 @@ void ds_seat_keyboard_send_key(struct ds_seat *seat, uint32_t time_msec, void ds_seat_keyboard_send_modifiers(struct ds_seat *seat, struct ds_keyboard_modifiers *modifiers); -void ds_seat_touch_start_grab(struct ds_seat *seat, - struct ds_seat_touch_grab *grab); - -void ds_seat_touch_end_grab(struct ds_seat *seat); - uint32_t ds_seat_touch_send_down(struct ds_seat *seat, struct ds_surface *surface, uint32_t time_msec, int32_t touch_id, double sx, double sy); diff --git a/src/seat/seat_keyboard.c b/src/seat/seat_keyboard.c index 8931a5c..6d6fed6 100644 --- a/src/seat/seat_keyboard.c +++ b/src/seat/seat_keyboard.c @@ -86,6 +86,37 @@ ds_seat_keyboard_start_grab(struct ds_seat *seat, wl_signal_emit(&seat->events.keyboard_grab_begin, grab); } +struct ds_seat_keyboard_grab * +ds_seat_create_keyboard_grab(struct ds_seat *seat, + const struct ds_keyboard_grab_interface *iface, void *data) +{ + struct ds_seat_keyboard_grab *grab; + + grab = calloc(1, sizeof *grab); + if (!grab) + { + return NULL; + } + + grab->iface = iface; + grab->seat = seat; + grab->data = data; + + return grab; +} + +void +ds_seat_keyboard_destroy_grab(struct ds_seat_keyboard_grab *grab) +{ + free(grab); +} + +void * +ds_seat_keyboard_grab_get_data(struct ds_seat_keyboard_grab *grab) +{ + return grab->data; +} + void ds_seat_keyboard_end_grab(struct ds_seat *seat) {