18 struct wl_data_source;
19 struct wl_data_device;
20 struct wl_data_device_manager;
22 struct wl_shell_surface;
30 struct wl_subcompositor;
40 enum class shm_error : uint32_t;
41 enum class shm_format : uint32_t;
44 enum class data_offer_error : uint32_t;
46 enum class data_source_error : uint32_t;
48 enum class data_device_error : uint32_t;
49 class data_device_manager_t;
50 struct data_device_manager_dnd_action;
52 enum class shell_error : uint32_t;
53 class shell_surface_t;
54 struct shell_surface_resize;
55 struct shell_surface_transient;
56 enum class shell_surface_fullscreen_method : uint32_t;
58 enum class surface_error : uint32_t;
60 struct seat_capability;
61 enum class seat_error : uint32_t;
63 enum class pointer_error : uint32_t;
64 enum class pointer_button_state : uint32_t;
65 enum class pointer_axis : uint32_t;
66 enum class pointer_axis_source : uint32_t;
68 enum class keyboard_keymap_format : uint32_t;
69 enum class keyboard_key_state : uint32_t;
72 enum class output_subpixel : uint32_t;
73 struct output_transform;
76 class subcompositor_t;
77 enum class subcompositor_error : uint32_t;
79 enum class subsurface_error : uint32_t;
83 extern const wl_interface display_interface;
84 extern const wl_interface registry_interface;
85 extern const wl_interface callback_interface;
86 extern const wl_interface compositor_interface;
87 extern const wl_interface shm_pool_interface;
88 extern const wl_interface shm_interface;
89 extern const wl_interface buffer_interface;
90 extern const wl_interface data_offer_interface;
91 extern const wl_interface data_source_interface;
92 extern const wl_interface data_device_interface;
93 extern const wl_interface data_device_manager_interface;
94 extern const wl_interface shell_interface;
95 extern const wl_interface shell_surface_interface;
96 extern const wl_interface surface_interface;
97 extern const wl_interface seat_interface;
98 extern const wl_interface pointer_interface;
99 extern const wl_interface keyboard_interface;
100 extern const wl_interface touch_interface;
101 extern const wl_interface output_interface;
102 extern const wl_interface region_interface;
103 extern const wl_interface subcompositor_interface;
104 extern const wl_interface subsurface_interface;
134 struct events_t :
public detail::events_base_t
136 std::function<void(uint32_t, std::string, uint32_t)> global;
137 std::function<void(uint32_t)> global_remove;
140 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
151 static const std::string interface_name;
153 operator wl_registry*()
const;
183 std::function<void(uint32_t, std::string, uint32_t)> &
on_global();
214 struct events_t :
public detail::events_base_t
216 std::function<void(uint32_t)> done;
219 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
230 static const std::string interface_name;
232 operator wl_callback*()
const;
240 std::function<void(uint32_t)> &
on_done();
255 struct events_t :
public detail::events_base_t
259 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
270 static const std::string interface_name;
272 operator wl_compositor*()
const;
315 struct events_t :
public detail::events_base_t
319 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
330 static const std::string interface_name;
332 operator wl_shm_pool*()
const;
355 buffer_t create_buffer(int32_t offset, int32_t width, int32_t height, int32_t stride, shm_format
const& format);
376 void resize(int32_t size);
401 struct events_t :
public detail::events_base_t
403 std::function<void(shm_format)> format;
406 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
408 shm_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag );
415 shm_t proxy_create_wrapper();
417 static const std::string interface_name;
419 operator wl_shm*()
const;
447 std::function<void(shm_format)> &
on_format();
456 enum class shm_error : uint32_t
482 enum class shm_format : uint32_t
495 xrgb4444 = 0x32315258,
497 xbgr4444 = 0x32314258,
499 rgbx4444 = 0x32315852,
501 bgrx4444 = 0x32315842,
503 argb4444 = 0x32315241,
505 abgr4444 = 0x32314241,
507 rgba4444 = 0x32314152,
509 bgra4444 = 0x32314142,
511 xrgb1555 = 0x35315258,
513 xbgr1555 = 0x35314258,
515 rgbx5551 = 0x35315852,
517 bgrx5551 = 0x35315842,
519 argb1555 = 0x35315241,
521 abgr1555 = 0x35314241,
523 rgba5551 = 0x35314152,
525 bgra5551 = 0x35314142,
535 xbgr8888 = 0x34324258,
537 rgbx8888 = 0x34325852,
539 bgrx8888 = 0x34325842,
541 abgr8888 = 0x34324241,
543 rgba8888 = 0x34324152,
545 bgra8888 = 0x34324142,
547 xrgb2101010 = 0x30335258,
549 xbgr2101010 = 0x30334258,
551 rgbx1010102 = 0x30335852,
553 bgrx1010102 = 0x30335842,
555 argb2101010 = 0x30335241,
557 abgr2101010 = 0x30334241,
559 rgba1010102 = 0x30334152,
561 bgra1010102 = 0x30334142,
613 xrgb16161616f = 0x48345258,
615 xbgr16161616f = 0x48344258,
617 argb16161616f = 0x48345241,
619 abgr16161616f = 0x48344241,
621 xyuv8888 = 0x56555958,
625 vuy101010 = 0x30335556,
639 xvyu2101010 = 0x30335658,
641 xvyu12_16161616 = 0x36335658,
643 xvyu16161616 = 0x38345658,
652 yuv420_8bit = 0x38305559,
653 yuv420_10bit = 0x30315559,
654 xrgb8888_a8 = 0x38415258,
655 xbgr8888_a8 = 0x38414258,
656 rgbx8888_a8 = 0x38415852,
657 bgrx8888_a8 = 0x38415842,
658 rgb888_a8 = 0x38413852,
659 bgr888_a8 = 0x38413842,
660 rgb565_a8 = 0x38413552,
661 bgr565_a8 = 0x38413542,
675 axbxgxrx106106106106 = 0x30314241,
681 xrgb16161616 = 0x38345258,
683 xbgr16161616 = 0x38344258,
685 argb16161616 = 0x38345241,
687 abgr16161616 = 0x38344241
708 struct events_t :
public detail::events_base_t
710 std::function<void()> release;
713 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
724 static const std::string interface_name;
726 operator wl_buffer*()
const;
762 struct events_t :
public detail::events_base_t
764 std::function<void(std::string)> offer;
769 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
780 static const std::string interface_name;
782 operator wl_data_offer*()
const;
804 void accept(uint32_t serial, std::string
const& mime_type);
831 void receive(std::string
const& mime_type,
int fd);
921 std::function<void(std::string)> &
on_offer();
980 enum class data_offer_error : uint32_t
985 invalid_action_mask = 1,
1004 struct events_t :
public detail::events_base_t
1006 std::function<void(std::string)> target;
1007 std::function<void(std::string,
int)> send;
1008 std::function<void()> cancelled;
1009 std::function<void()> dnd_drop_performed;
1010 std::function<void()> dnd_finished;
1014 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
1025 static const std::string interface_name;
1027 operator wl_data_source*()
const;
1037 void offer(std::string
const& mime_type);
1081 std::function<void(std::string)> &
on_target();
1092 std::function<void(std::string,
int)> &
on_send();
1184 enum class data_source_error : uint32_t
1187 invalid_action_mask = 0,
1205 struct events_t :
public detail::events_base_t
1209 std::function<void()> leave;
1210 std::function<void(uint32_t,
double,
double)> motion;
1211 std::function<void()> drop;
1215 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
1226 static const std::string interface_name;
1228 operator wl_data_device*()
const;
1353 std::function<void(uint32_t,
double,
double)> &
on_motion();
1372 std::function<void()> &
on_drop();
1398 enum class data_device_error : uint32_t
1422 struct events_t :
public detail::events_base_t
1426 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
1437 static const std::string interface_name;
1439 operator wl_data_device_manager*()
const;
1498 : wayland::detail::bitfield<3, 6>(b) {}
1500 : wayland::detail::bitfield<3, 6>(value) {}
1502 static const wayland::detail::bitfield<3, 6>
none;
1504 static const wayland::detail::bitfield<3, 6>
copy;
1506 static const wayland::detail::bitfield<3, 6>
move;
1508 static const wayland::detail::bitfield<3, 6>
ask;
1528 struct events_t :
public detail::events_base_t
1532 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
1534 shell_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag );
1541 shell_t proxy_create_wrapper();
1543 static const std::string interface_name;
1545 operator wl_shell*()
const;
1569 enum class shell_error : uint32_t
1594 struct events_t :
public detail::events_base_t
1596 std::function<void(uint32_t)> ping;
1598 std::function<void()> popup_done;
1601 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
1612 static const std::string interface_name;
1614 operator wl_shell_surface*()
const;
1623 void pong(uint32_t serial);
1640 void move(
seat_t const& seat, uint32_t serial);
1738 void set_fullscreen(shell_surface_fullscreen_method
const& method, uint32_t framerate,
output_t const& output);
1820 void set_title(std::string
const& title);
1837 void set_class(std::string
const& class_);
1850 std::function<void(uint32_t)> &
on_ping();
1900 : wayland::detail::bitfield<4, 8>(b) {}
1902 : wayland::detail::bitfield<4, 8>(value) {}
1904 static const wayland::detail::bitfield<4, 8>
none;
1906 static const wayland::detail::bitfield<4, 8>
top;
1908 static const wayland::detail::bitfield<4, 8>
bottom;
1910 static const wayland::detail::bitfield<4, 8>
left;
1916 static const wayland::detail::bitfield<4, 8>
right;
1932 : wayland::detail::bitfield<1, 9>(b) {}
1934 : wayland::detail::bitfield<1, 9>(value) {}
1946 enum class shell_surface_fullscreen_method : uint32_t
2007 struct events_t :
public detail::events_base_t
2009 std::function<void(
output_t)> enter;
2010 std::function<void(
output_t)> leave;
2013 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
2024 static const std::string interface_name;
2026 operator wl_surface*()
const;
2126 void damage(int32_t x, int32_t y, int32_t width, int32_t height);
2394 void damage_buffer(int32_t x, int32_t y, int32_t width, int32_t height);
2423 void offset(int32_t x, int32_t y);
2469 enum class surface_error : uint32_t
2474 invalid_transform = 1,
2493 struct events_t :
public detail::events_base_t
2496 std::function<void(std::string)> name;
2499 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
2501 seat_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag );
2508 seat_t proxy_create_wrapper();
2510 static const std::string interface_name;
2512 operator wl_seat*()
const;
2640 std::function<void(std::string)> &
on_name();
2653 : wayland::detail::bitfield<3, 12>(b) {}
2655 : wayland::detail::bitfield<3, 12>(value) {}
2657 static const wayland::detail::bitfield<3, 12>
pointer;
2659 static const wayland::detail::bitfield<3, 12>
keyboard;
2661 static const wayland::detail::bitfield<3, 12>
touch;
2669 enum class seat_error : uint32_t
2672 missing_capability = 0
2691 struct events_t :
public detail::events_base_t
2693 std::function<void(uint32_t,
surface_t,
double,
double)> enter;
2694 std::function<void(uint32_t,
surface_t)> leave;
2695 std::function<void(uint32_t,
double,
double)> motion;
2696 std::function<void(uint32_t, uint32_t, uint32_t, pointer_button_state)> button;
2697 std::function<void(uint32_t, pointer_axis,
double)> axis;
2698 std::function<void()> frame;
2699 std::function<void(pointer_axis_source)> axis_source;
2700 std::function<void(uint32_t, pointer_axis)> axis_stop;
2701 std::function<void(pointer_axis, int32_t)> axis_discrete;
2702 std::function<void(pointer_axis, int32_t)> axis_value120;
2705 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
2716 static const std::string interface_name;
2718 operator wl_pointer*()
const;
2763 void set_cursor(uint32_t serial,
surface_t const& surface, int32_t hotspot_x, int32_t hotspot_y);
2828 std::function<void(uint32_t,
double,
double)> &
on_motion();
2852 std::function<void(uint32_t, uint32_t, uint32_t, pointer_button_state)> &
on_button();
2877 std::function<void(uint32_t, pointer_axis,
double)> &
on_axis();
2971 std::function<void(uint32_t, pointer_axis)> &
on_axis_stop();
3044 enum class pointer_error : uint32_t
3056 enum class pointer_button_state : uint32_t
3069 enum class pointer_axis : uint32_t
3072 vertical_scroll = 0,
3074 horizontal_scroll = 1
3097 enum class pointer_axis_source : uint32_t
3119 struct events_t :
public detail::events_base_t
3121 std::function<void(keyboard_keymap_format,
int, uint32_t)> keymap;
3122 std::function<void(uint32_t,
surface_t, array_t)> enter;
3123 std::function<void(uint32_t,
surface_t)> leave;
3124 std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> key;
3125 std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> modifiers;
3126 std::function<void(int32_t, int32_t)> repeat_info;
3129 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
3140 static const std::string interface_name;
3142 operator wl_keyboard*()
const;
3171 std::function<void(keyboard_keymap_format,
int, uint32_t)> &
on_keymap();
3220 std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> &
on_key();
3233 std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> &
on_modifiers();
3263 enum class keyboard_keymap_format : uint32_t
3276 enum class keyboard_key_state : uint32_t
3300 struct events_t :
public detail::events_base_t
3302 std::function<void(uint32_t, uint32_t,
surface_t, int32_t,
double,
double)> down;
3303 std::function<void(uint32_t, uint32_t, int32_t)> up;
3304 std::function<void(uint32_t, int32_t,
double,
double)> motion;
3305 std::function<void()> frame;
3306 std::function<void()> cancel;
3307 std::function<void(int32_t,
double,
double)> shape;
3308 std::function<void(int32_t,
double)> orientation;
3311 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
3313 touch_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag );
3320 touch_t proxy_create_wrapper();
3322 static const std::string interface_name;
3324 operator wl_touch*()
const;
3354 std::function<void(uint32_t, uint32_t,
surface_t, int32_t,
double,
double)> &
on_down();
3366 std::function<void(uint32_t, uint32_t, int32_t)> &
on_up();
3377 std::function<void(uint32_t, int32_t,
double,
double)> &
on_motion();
3437 std::function<void(int32_t,
double,
double)> &
on_shape();
3486 struct events_t :
public detail::events_base_t
3488 std::function<void(int32_t, int32_t, int32_t, int32_t, output_subpixel, std::string, std::string,
output_transform)> geometry;
3489 std::function<void(
output_mode, int32_t, int32_t, int32_t)> mode;
3490 std::function<void()> done;
3491 std::function<void(int32_t)> scale;
3492 std::function<void(std::string)> name;
3493 std::function<void(std::string)> description;
3496 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
3507 static const std::string interface_name;
3509 operator wl_output*()
const;
3556 std::function<void(int32_t, int32_t, int32_t, int32_t, output_subpixel, std::string, std::string,
output_transform)> &
on_geometry();
3610 std::function<void()> &
on_done();
3637 std::function<void(int32_t)> &
on_scale();
3672 std::function<void(std::string)> &
on_name();
3703 enum class output_subpixel : uint32_t
3737 : wayland::detail::bitfield<3, 21>(b) {}
3739 : wayland::detail::bitfield<3, 21>(value) {}
3741 static const wayland::detail::bitfield<3, 21>
normal;
3743 static const wayland::detail::bitfield<3, 21>
_90;
3745 static const wayland::detail::bitfield<3, 21>
_180;
3747 static const wayland::detail::bitfield<3, 21>
_270;
3749 static const wayland::detail::bitfield<3, 21>
flipped;
3766 output_mode(
const wayland::detail::bitfield<2, 22> &b)
3767 : wayland::detail::bitfield<2, 22>(b) {}
3769 : wayland::detail::bitfield<2, 22>(value) {}
3771 static const wayland::detail::bitfield<2, 22>
current;
3788 struct events_t :
public detail::events_base_t
3792 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
3803 static const std::string interface_name;
3805 operator wl_region*()
const;
3816 void add(int32_t x, int32_t y, int32_t width, int32_t height);
3831 void subtract(int32_t x, int32_t y, int32_t width, int32_t height);
3866 struct events_t :
public detail::events_base_t
3870 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
3881 static const std::string interface_name;
3883 operator wl_subcompositor*()
const;
3918 enum class subcompositor_error : uint32_t
3981 struct events_t :
public detail::events_base_t
3985 static int dispatcher(uint32_t opcode,
const std::vector<detail::any>& args,
const std::shared_ptr<detail::events_base_t>& e);
3996 static const std::string interface_name;
3998 operator wl_subsurface*()
const;
4124 enum class subsurface_error : uint32_t
std::function< void()> & on_release()
compositor releases buffer
std::function< void(uint32_t)> & on_done()
done event
region_t create_region()
create new region
static constexpr std::uint32_t create_surface_since_version
Minimum protocol version required for the create_surface function.
surface_t create_surface()
create new surface
static constexpr std::uint32_t create_region_since_version
Minimum protocol version required for the create_region function.
data_source_t create_data_source()
create a new data source
data_device_t get_data_device(seat_t const &seat)
create a new data device
static constexpr std::uint32_t get_data_device_since_version
Minimum protocol version required for the get_data_device function.
static constexpr std::uint32_t create_data_source_since_version
Minimum protocol version required for the create_data_source function.
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
std::function< void(uint32_t, double, double)> & on_motion()
drag-and-drop session motion
std::function< void()> & on_leave()
end drag-and-drop session
std::function< void(data_offer_t)> & on_selection()
advertise new selection
void release()
destroy data device
std::function< void()> & on_drop()
end drag-and-drop session successfully
void set_selection(data_source_t const &source, uint32_t serial)
copy data to the selection
void start_drag(data_source_t const &source, surface_t const &origin, surface_t const &icon, uint32_t serial)
start drag-and-drop operation
static constexpr std::uint32_t set_selection_since_version
Minimum protocol version required for the set_selection function.
static constexpr std::uint32_t start_drag_since_version
Minimum protocol version required for the start_drag function.
std::function< void(uint32_t, surface_t, double, double, data_offer_t)> & on_enter()
initiate drag-and-drop session
std::function< void(data_offer_t)> & on_data_offer()
introduce a new wl_data_offer
std::function< void(std::string)> & on_offer()
advertise offered mime type
void set_actions(data_device_manager_dnd_action const &dnd_actions, data_device_manager_dnd_action const &preferred_action)
set the available/preferred drag-and-drop actions
std::function< void(data_device_manager_dnd_action)> & on_action()
notify the selected action
static constexpr std::uint32_t finish_since_version
Minimum protocol version required for the finish function.
bool can_finish() const
Check whether the finish function is available with the currently bound version of the protocol.
void receive(std::string const &mime_type, int fd)
request that the data is transferred
static constexpr std::uint32_t receive_since_version
Minimum protocol version required for the receive function.
static constexpr std::uint32_t set_actions_since_version
Minimum protocol version required for the set_actions function.
std::function< void(data_device_manager_dnd_action)> & on_source_actions()
notify the source-side available actions
bool can_set_actions() const
Check whether the set_actions function is available with the currently bound version of the protocol.
static constexpr std::uint32_t accept_since_version
Minimum protocol version required for the accept function.
void accept(uint32_t serial, std::string const &mime_type)
accept one of the offered mime types
void finish()
the offer will no longer be used
std::function< void()> & on_cancelled()
selection was cancelled
static constexpr std::uint32_t set_actions_since_version
Minimum protocol version required for the set_actions function.
static constexpr std::uint32_t offer_since_version
Minimum protocol version required for the offer function.
std::function< void()> & on_dnd_finished()
the drag-and-drop operation concluded
std::function< void(std::string, int)> & on_send()
send the data
std::function< void()> & on_dnd_drop_performed()
the drag-and-drop operation physically finished
void offer(std::string const &mime_type)
add an offered mime type
std::function< void(data_device_manager_dnd_action)> & on_action()
notify the selected action
std::function< void(std::string)> & on_target()
a target accepts an offered mime type
void set_actions(data_device_manager_dnd_action const &dnd_actions)
set the available drag-and-drop actions
bool can_set_actions() const
Check whether the set_actions function is available with the currently bound version of the protocol.
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
std::function< void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> & on_modifiers()
modifier and group state
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
std::function< void(uint32_t, surface_t, array_t)> & on_enter()
enter event
std::function< void(keyboard_keymap_format, int, uint32_t)> & on_keymap()
keyboard mapping
std::function< void(uint32_t, surface_t)> & on_leave()
leave event
std::function< void(int32_t, int32_t)> & on_repeat_info()
repeat rate and delay
void release()
release the keyboard object
std::function< void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> & on_key()
key event
std::function< void(std::string)> & on_name()
name of this output
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
std::function< void(int32_t)> & on_scale()
output scaling properties
std::function< void(std::string)> & on_description()
human-readable description of this output
std::function< void()> & on_done()
sent all information about output
void release()
release the output object
std::function< void(int32_t, int32_t, int32_t, int32_t, output_subpixel, std::string, std::string, output_transform)> & on_geometry()
properties of the output
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
std::function< void(output_mode, int32_t, int32_t, int32_t)> & on_mode()
advertise available modes for the output
std::function< void(uint32_t, surface_t, double, double)> & on_enter()
enter event
std::function< void(uint32_t, pointer_axis, double)> & on_axis()
axis event
std::function< void(uint32_t, uint32_t, uint32_t, pointer_button_state)> & on_button()
pointer button event
std::function< void(pointer_axis, int32_t)> & on_axis_value120()
axis high-resolution scroll event
std::function< void(uint32_t, surface_t)> & on_leave()
leave event
void release()
release the pointer object
static constexpr std::uint32_t set_cursor_since_version
Minimum protocol version required for the set_cursor function.
std::function< void(pointer_axis, int32_t)> & on_axis_discrete()
axis click event
std::function< void()> & on_frame()
end of a pointer event sequence
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
std::function< void(pointer_axis_source)> & on_axis_source()
axis source event
void set_cursor(uint32_t serial, surface_t const &surface, int32_t hotspot_x, int32_t hotspot_y)
set the pointer surface
std::function< void(uint32_t, pointer_axis)> & on_axis_stop()
axis stop event
std::function< void(uint32_t, double, double)> & on_motion()
pointer motion event
Represents a protocol object on the client side.
static constexpr std::uint32_t subtract_since_version
Minimum protocol version required for the subtract function.
static constexpr std::uint32_t add_since_version
Minimum protocol version required for the add function.
void add(int32_t x, int32_t y, int32_t width, int32_t height)
add rectangle to region
void subtract(int32_t x, int32_t y, int32_t width, int32_t height)
subtract rectangle from region
static constexpr std::uint32_t bind_since_version
Minimum protocol version required for the bind function.
std::function< void(uint32_t, std::string, uint32_t)> & on_global()
announce global object
proxy_t bind(uint32_t name, proxy_t &interface, uint32_t version)
bind an object to the display
std::function< void(uint32_t)> & on_global_remove()
announce removal of global object
static constexpr std::uint32_t get_pointer_since_version
Minimum protocol version required for the get_pointer function.
static constexpr std::uint32_t get_keyboard_since_version
Minimum protocol version required for the get_keyboard function.
std::function< void(std::string)> & on_name()
unique identifier for this seat
touch_t get_touch()
return touch object
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
static constexpr std::uint32_t get_touch_since_version
Minimum protocol version required for the get_touch function.
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
keyboard_t get_keyboard()
return keyboard object
pointer_t get_pointer()
return pointer object
void release()
release the seat object
std::function< void(seat_capability)> & on_capabilities()
seat capabilities changed
desktop-style metadata interface
static constexpr std::uint32_t set_popup_since_version
Minimum protocol version required for the set_popup function.
void resize(seat_t const &seat, uint32_t serial, shell_surface_resize const &edges)
start an interactive resize
static constexpr std::uint32_t set_fullscreen_since_version
Minimum protocol version required for the set_fullscreen function.
void set_fullscreen(shell_surface_fullscreen_method const &method, uint32_t framerate, output_t const &output)
make the surface a fullscreen surface
void move(seat_t const &seat, uint32_t serial)
start an interactive move
static constexpr std::uint32_t set_toplevel_since_version
Minimum protocol version required for the set_toplevel function.
void set_class(std::string const &class_)
set surface class
static constexpr std::uint32_t set_maximized_since_version
Minimum protocol version required for the set_maximized function.
static constexpr std::uint32_t set_transient_since_version
Minimum protocol version required for the set_transient function.
static constexpr std::uint32_t pong_since_version
Minimum protocol version required for the pong function.
void set_transient(surface_t const &parent, int32_t x, int32_t y, shell_surface_transient const &flags)
make the surface a transient surface
void set_toplevel()
make the surface a toplevel surface
static constexpr std::uint32_t set_class_since_version
Minimum protocol version required for the set_class function.
std::function< void(shell_surface_resize, int32_t, int32_t)> & on_configure()
suggest resize
std::function< void(uint32_t)> & on_ping()
ping client
void set_popup(seat_t const &seat, uint32_t serial, surface_t const &parent, int32_t x, int32_t y, shell_surface_transient const &flags)
make the surface a popup surface
void pong(uint32_t serial)
respond to a ping event
static constexpr std::uint32_t set_title_since_version
Minimum protocol version required for the set_title function.
static constexpr std::uint32_t resize_since_version
Minimum protocol version required for the resize function.
void set_maximized(output_t const &output)
make the surface a maximized surface
static constexpr std::uint32_t move_since_version
Minimum protocol version required for the move function.
std::function< void()> & on_popup_done()
popup interaction is done
void set_title(std::string const &title)
set surface title
create desktop-style surfaces
shell_surface_t get_shell_surface(surface_t const &surface)
create a shell surface from a surface
static constexpr std::uint32_t get_shell_surface_since_version
Minimum protocol version required for the get_shell_surface function.
static constexpr std::uint32_t resize_since_version
Minimum protocol version required for the resize function.
static constexpr std::uint32_t create_buffer_since_version
Minimum protocol version required for the create_buffer function.
buffer_t create_buffer(int32_t offset, int32_t width, int32_t height, int32_t stride, shm_format const &format)
create a buffer from the pool
void resize(int32_t size)
change the size of the pool mapping
std::function< void(shm_format)> & on_format()
pixel format description
static constexpr std::uint32_t create_pool_since_version
Minimum protocol version required for the create_pool function.
shm_pool_t create_pool(int fd, int32_t size)
create a shm pool
static constexpr std::uint32_t get_subsurface_since_version
Minimum protocol version required for the get_subsurface function.
subsurface_t get_subsurface(surface_t const &surface, surface_t const &parent)
give a surface the role sub-surface
sub-surface interface to a wl_surface
static constexpr std::uint32_t set_sync_since_version
Minimum protocol version required for the set_sync function.
static constexpr std::uint32_t place_below_since_version
Minimum protocol version required for the place_below function.
void set_desync()
set sub-surface to desynchronized mode
static constexpr std::uint32_t place_above_since_version
Minimum protocol version required for the place_above function.
void set_sync()
set sub-surface to synchronized mode
void set_position(int32_t x, int32_t y)
reposition the sub-surface
void place_below(surface_t const &sibling)
restack the sub-surface
static constexpr std::uint32_t set_desync_since_version
Minimum protocol version required for the set_desync function.
void place_above(surface_t const &sibling)
restack the sub-surface
static constexpr std::uint32_t set_position_since_version
Minimum protocol version required for the set_position function.
void offset(int32_t x, int32_t y)
set the surface contents offset
bool can_offset() const
Check whether the offset function is available with the currently bound version of the protocol.
static constexpr std::uint32_t damage_since_version
Minimum protocol version required for the damage function.
std::function< void(output_t)> & on_enter()
surface enters an output
static constexpr std::uint32_t set_input_region_since_version
Minimum protocol version required for the set_input_region function.
void set_buffer_transform(output_transform const &transform)
sets the buffer transformation
void set_input_region(region_t const ®ion)
set input region
void commit()
commit pending surface state
void attach(buffer_t const &buffer, int32_t x, int32_t y)
set the surface contents
static constexpr std::uint32_t set_buffer_transform_since_version
Minimum protocol version required for the set_buffer_transform function.
static constexpr std::uint32_t set_opaque_region_since_version
Minimum protocol version required for the set_opaque_region function.
bool can_set_buffer_scale() const
Check whether the set_buffer_scale function is available with the currently bound version of the prot...
static constexpr std::uint32_t attach_since_version
Minimum protocol version required for the attach function.
void set_buffer_scale(int32_t scale)
sets the buffer scaling factor
static constexpr std::uint32_t offset_since_version
Minimum protocol version required for the offset function.
static constexpr std::uint32_t damage_buffer_since_version
Minimum protocol version required for the damage_buffer function.
callback_t frame()
request a frame throttling hint
void damage(int32_t x, int32_t y, int32_t width, int32_t height)
mark part of the surface damaged
static constexpr std::uint32_t frame_since_version
Minimum protocol version required for the frame function.
static constexpr std::uint32_t set_buffer_scale_since_version
Minimum protocol version required for the set_buffer_scale function.
bool can_damage_buffer() const
Check whether the damage_buffer function is available with the currently bound version of the protoco...
static constexpr std::uint32_t commit_since_version
Minimum protocol version required for the commit function.
std::function< void(output_t)> & on_leave()
surface leaves an output
void damage_buffer(int32_t x, int32_t y, int32_t width, int32_t height)
mark part of the surface damaged using buffer coordinates
void set_opaque_region(region_t const ®ion)
set opaque region
bool can_set_buffer_transform() const
Check whether the set_buffer_transform function is available with the currently bound version of the ...
std::function< void(uint32_t, uint32_t, surface_t, int32_t, double, double)> & on_down()
touch down event and beginning of a touch sequence
std::function< void()> & on_cancel()
touch session cancelled
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
std::function< void(uint32_t, uint32_t, int32_t)> & on_up()
end of a touch event sequence
std::function< void(uint32_t, int32_t, double, double)> & on_motion()
update of touch point coordinates
std::function< void(int32_t, double)> & on_orientation()
update orientation of touch point
std::function< void()> & on_frame()
end of touch frame event
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
std::function< void(int32_t, double, double)> & on_shape()
update shape of touch point
void release()
release the touch object
static const wayland::detail::bitfield< 3, 6 > ask
ask action
static const wayland::detail::bitfield< 3, 6 > none
no action
static const wayland::detail::bitfield< 3, 6 > move
move action
static const wayland::detail::bitfield< 3, 6 > copy
copy action
static const wayland::detail::bitfield< 2, 22 > current
indicates this is the current mode
static const wayland::detail::bitfield< 2, 22 > preferred
indicates this is the preferred mode
static const wayland::detail::bitfield< 3, 12 > touch
the seat has touch devices
static const wayland::detail::bitfield< 3, 12 > keyboard
the seat has one or more keyboards
static const wayland::detail::bitfield< 3, 12 > pointer
the seat has pointer devices
static const wayland::detail::bitfield< 4, 8 > bottom
bottom edge
static const wayland::detail::bitfield< 4, 8 > right
right edge
static const wayland::detail::bitfield< 4, 8 > bottom_right
bottom and right edges
static const wayland::detail::bitfield< 4, 8 > top
top edge
static const wayland::detail::bitfield< 4, 8 > none
no edge
static const wayland::detail::bitfield< 4, 8 > top_left
top and left edges
static const wayland::detail::bitfield< 4, 8 > top_right
top and right edges
static const wayland::detail::bitfield< 4, 8 > bottom_left
bottom and left edges
static const wayland::detail::bitfield< 4, 8 > left
left edge
details of transient behaviour
static const wayland::detail::bitfield< 1, 9 > inactive
do not set keyboard focus