Wayland++ 1.0.0
C++ Bindings for Wayland
wayland-server-protocol-unstable.hpp
1#pragma once
2
3#include <array>
4#include <functional>
5#include <memory>
6#include <string>
7#include <vector>
8
9#include <wayland-server.hpp>
10#include <wayland-server-protocol-extra.hpp>
11
12struct zwp_fullscreen_shell_v1;
13struct zwp_fullscreen_shell_mode_feedback_v1;
14struct zwp_idle_inhibit_manager_v1;
15struct zwp_idle_inhibitor_v1;
16struct zwp_input_method_context_v1;
17struct zwp_input_method_v1;
18struct zwp_input_panel_v1;
19struct zwp_input_panel_surface_v1;
20struct zwp_input_timestamps_manager_v1;
21struct zwp_input_timestamps_v1;
22struct zwp_keyboard_shortcuts_inhibit_manager_v1;
23struct zwp_keyboard_shortcuts_inhibitor_v1;
24struct zwp_linux_dmabuf_v1;
25struct zwp_linux_buffer_params_v1;
26struct zwp_linux_dmabuf_feedback_v1;
27struct zwp_linux_explicit_synchronization_v1;
28struct zwp_linux_surface_synchronization_v1;
29struct zwp_linux_buffer_release_v1;
30struct zwp_pointer_constraints_v1;
31struct zwp_locked_pointer_v1;
32struct zwp_confined_pointer_v1;
33struct zwp_pointer_gestures_v1;
34struct zwp_pointer_gesture_swipe_v1;
35struct zwp_pointer_gesture_pinch_v1;
36struct zwp_pointer_gesture_hold_v1;
37struct zwp_primary_selection_device_manager_v1;
38struct zwp_primary_selection_device_v1;
39struct zwp_primary_selection_offer_v1;
40struct zwp_primary_selection_source_v1;
41struct zwp_relative_pointer_manager_v1;
42struct zwp_relative_pointer_v1;
43struct zwp_tablet_manager_v1;
44struct zwp_tablet_seat_v1;
45struct zwp_tablet_tool_v1;
46struct zwp_tablet_v1;
47struct zwp_tablet_manager_v2;
48struct zwp_tablet_seat_v2;
49struct zwp_tablet_tool_v2;
50struct zwp_tablet_v2;
51struct zwp_tablet_pad_ring_v2;
52struct zwp_tablet_pad_strip_v2;
53struct zwp_tablet_pad_group_v2;
54struct zwp_tablet_pad_v2;
55struct zwp_text_input_v1;
56struct zwp_text_input_manager_v1;
57struct zwp_text_input_v3;
58struct zwp_text_input_manager_v3;
59struct xdg_activation_v1;
60struct xdg_activation_token_v1;
61struct zxdg_decoration_manager_v1;
62struct zxdg_toplevel_decoration_v1;
63struct zxdg_exporter_v1;
64struct zxdg_importer_v1;
65struct zxdg_exported_v1;
66struct zxdg_imported_v1;
67struct zxdg_exporter_v2;
68struct zxdg_importer_v2;
69struct zxdg_exported_v2;
70struct zxdg_imported_v2;
71struct zxdg_output_manager_v1;
72struct zxdg_output_v1;
73struct zxdg_shell_v6;
74struct zxdg_positioner_v6;
75struct zxdg_surface_v6;
76struct zxdg_toplevel_v6;
77struct zxdg_popup_v6;
78struct zwp_xwayland_keyboard_grab_manager_v1;
79struct zwp_xwayland_keyboard_grab_v1;
80
81namespace wayland
82{
83namespace server
84{
85class zwp_fullscreen_shell_v1_t;
86enum class zwp_fullscreen_shell_v1_capability : uint32_t;
87enum class zwp_fullscreen_shell_v1_present_method : uint32_t;
88enum class zwp_fullscreen_shell_v1_error : uint32_t;
89class zwp_fullscreen_shell_mode_feedback_v1_t;
90class zwp_idle_inhibit_manager_v1_t;
91class zwp_idle_inhibitor_v1_t;
92class zwp_input_method_context_v1_t;
93class zwp_input_method_v1_t;
94class zwp_input_panel_v1_t;
95class zwp_input_panel_surface_v1_t;
96enum class zwp_input_panel_surface_v1_position : uint32_t;
97class zwp_input_timestamps_manager_v1_t;
98class zwp_input_timestamps_v1_t;
99class zwp_keyboard_shortcuts_inhibit_manager_v1_t;
100enum class zwp_keyboard_shortcuts_inhibit_manager_v1_error : uint32_t;
101class zwp_keyboard_shortcuts_inhibitor_v1_t;
102class zwp_linux_dmabuf_v1_t;
103class zwp_linux_buffer_params_v1_t;
104enum class zwp_linux_buffer_params_v1_error : uint32_t;
105struct zwp_linux_buffer_params_v1_flags;
106class zwp_linux_dmabuf_feedback_v1_t;
107struct zwp_linux_dmabuf_feedback_v1_tranche_flags;
108class zwp_linux_explicit_synchronization_v1_t;
109enum class zwp_linux_explicit_synchronization_v1_error : uint32_t;
110class zwp_linux_surface_synchronization_v1_t;
111enum class zwp_linux_surface_synchronization_v1_error : uint32_t;
112class zwp_linux_buffer_release_v1_t;
113class zwp_pointer_constraints_v1_t;
114enum class zwp_pointer_constraints_v1_error : uint32_t;
115enum class zwp_pointer_constraints_v1_lifetime : uint32_t;
116class zwp_locked_pointer_v1_t;
117class zwp_confined_pointer_v1_t;
118class zwp_pointer_gestures_v1_t;
119class zwp_pointer_gesture_swipe_v1_t;
120class zwp_pointer_gesture_pinch_v1_t;
121class zwp_pointer_gesture_hold_v1_t;
122class zwp_primary_selection_device_manager_v1_t;
123class zwp_primary_selection_device_v1_t;
124class zwp_primary_selection_offer_v1_t;
125class zwp_primary_selection_source_v1_t;
126class zwp_relative_pointer_manager_v1_t;
127class zwp_relative_pointer_v1_t;
128class zwp_tablet_manager_v1_t;
129class zwp_tablet_seat_v1_t;
130class zwp_tablet_tool_v1_t;
131enum class zwp_tablet_tool_v1_type : uint32_t;
132enum class zwp_tablet_tool_v1_capability : uint32_t;
133enum class zwp_tablet_tool_v1_button_state : uint32_t;
134enum class zwp_tablet_tool_v1_error : uint32_t;
135class zwp_tablet_v1_t;
136class zwp_tablet_manager_v2_t;
137class zwp_tablet_seat_v2_t;
138class zwp_tablet_tool_v2_t;
139enum class zwp_tablet_tool_v2_type : uint32_t;
140enum class zwp_tablet_tool_v2_capability : uint32_t;
141enum class zwp_tablet_tool_v2_button_state : uint32_t;
142enum class zwp_tablet_tool_v2_error : uint32_t;
143class zwp_tablet_v2_t;
144class zwp_tablet_pad_ring_v2_t;
145enum class zwp_tablet_pad_ring_v2_source : uint32_t;
146class zwp_tablet_pad_strip_v2_t;
147enum class zwp_tablet_pad_strip_v2_source : uint32_t;
148class zwp_tablet_pad_group_v2_t;
149class zwp_tablet_pad_v2_t;
150enum class zwp_tablet_pad_v2_button_state : uint32_t;
151class zwp_text_input_v1_t;
152struct zwp_text_input_v1_content_hint;
153enum class zwp_text_input_v1_content_purpose : uint32_t;
154enum class zwp_text_input_v1_preedit_style : uint32_t;
155enum class zwp_text_input_v1_text_direction : uint32_t;
156class zwp_text_input_manager_v1_t;
157class zwp_text_input_v3_t;
158enum class zwp_text_input_v3_change_cause : uint32_t;
159struct zwp_text_input_v3_content_hint;
160enum class zwp_text_input_v3_content_purpose : uint32_t;
161class zwp_text_input_manager_v3_t;
162class xdg_activation_v1_t;
163class xdg_activation_token_v1_t;
164enum class xdg_activation_token_v1_error : uint32_t;
165class zxdg_decoration_manager_v1_t;
166class zxdg_toplevel_decoration_v1_t;
167enum class zxdg_toplevel_decoration_v1_error : uint32_t;
168enum class zxdg_toplevel_decoration_v1_mode : uint32_t;
169class zxdg_exporter_v1_t;
170class zxdg_importer_v1_t;
171class zxdg_exported_v1_t;
172class zxdg_imported_v1_t;
173class zxdg_exporter_v2_t;
174enum class zxdg_exporter_v2_error : uint32_t;
175class zxdg_importer_v2_t;
176class zxdg_exported_v2_t;
177class zxdg_imported_v2_t;
178enum class zxdg_imported_v2_error : uint32_t;
179class zxdg_output_manager_v1_t;
180class zxdg_output_v1_t;
181class zxdg_shell_v6_t;
182enum class zxdg_shell_v6_error : uint32_t;
183class zxdg_positioner_v6_t;
184enum class zxdg_positioner_v6_error : uint32_t;
185struct zxdg_positioner_v6_anchor;
186struct zxdg_positioner_v6_gravity;
187struct zxdg_positioner_v6_constraint_adjustment;
188class zxdg_surface_v6_t;
189enum class zxdg_surface_v6_error : uint32_t;
190class zxdg_toplevel_v6_t;
191struct zxdg_toplevel_v6_resize_edge;
192enum class zxdg_toplevel_v6_state : uint32_t;
193class zxdg_popup_v6_t;
194enum class zxdg_popup_v6_error : uint32_t;
195class zwp_xwayland_keyboard_grab_manager_v1_t;
196class zwp_xwayland_keyboard_grab_v1_t;
197
198namespace detail
199{
200 extern const wl_interface zwp_fullscreen_shell_v1_interface;
201 extern const wl_interface zwp_fullscreen_shell_mode_feedback_v1_interface;
202 extern const wl_interface zwp_idle_inhibit_manager_v1_interface;
203 extern const wl_interface zwp_idle_inhibitor_v1_interface;
204 extern const wl_interface zwp_input_method_context_v1_interface;
205 extern const wl_interface zwp_input_method_v1_interface;
206 extern const wl_interface zwp_input_panel_v1_interface;
207 extern const wl_interface zwp_input_panel_surface_v1_interface;
208 extern const wl_interface zwp_input_timestamps_manager_v1_interface;
209 extern const wl_interface zwp_input_timestamps_v1_interface;
210 extern const wl_interface zwp_keyboard_shortcuts_inhibit_manager_v1_interface;
211 extern const wl_interface zwp_keyboard_shortcuts_inhibitor_v1_interface;
212 extern const wl_interface zwp_linux_dmabuf_v1_interface;
213 extern const wl_interface zwp_linux_buffer_params_v1_interface;
214 extern const wl_interface zwp_linux_dmabuf_feedback_v1_interface;
215 extern const wl_interface zwp_linux_explicit_synchronization_v1_interface;
216 extern const wl_interface zwp_linux_surface_synchronization_v1_interface;
217 extern const wl_interface zwp_linux_buffer_release_v1_interface;
218 extern const wl_interface zwp_pointer_constraints_v1_interface;
219 extern const wl_interface zwp_locked_pointer_v1_interface;
220 extern const wl_interface zwp_confined_pointer_v1_interface;
221 extern const wl_interface zwp_pointer_gestures_v1_interface;
222 extern const wl_interface zwp_pointer_gesture_swipe_v1_interface;
223 extern const wl_interface zwp_pointer_gesture_pinch_v1_interface;
224 extern const wl_interface zwp_pointer_gesture_hold_v1_interface;
225 extern const wl_interface zwp_primary_selection_device_manager_v1_interface;
226 extern const wl_interface zwp_primary_selection_device_v1_interface;
227 extern const wl_interface zwp_primary_selection_offer_v1_interface;
228 extern const wl_interface zwp_primary_selection_source_v1_interface;
229 extern const wl_interface zwp_relative_pointer_manager_v1_interface;
230 extern const wl_interface zwp_relative_pointer_v1_interface;
231 extern const wl_interface zwp_tablet_manager_v1_interface;
232 extern const wl_interface zwp_tablet_seat_v1_interface;
233 extern const wl_interface zwp_tablet_tool_v1_interface;
234 extern const wl_interface zwp_tablet_v1_interface;
235 extern const wl_interface zwp_tablet_manager_v2_interface;
236 extern const wl_interface zwp_tablet_seat_v2_interface;
237 extern const wl_interface zwp_tablet_tool_v2_interface;
238 extern const wl_interface zwp_tablet_v2_interface;
239 extern const wl_interface zwp_tablet_pad_ring_v2_interface;
240 extern const wl_interface zwp_tablet_pad_strip_v2_interface;
241 extern const wl_interface zwp_tablet_pad_group_v2_interface;
242 extern const wl_interface zwp_tablet_pad_v2_interface;
243 extern const wl_interface zwp_text_input_v1_interface;
244 extern const wl_interface zwp_text_input_manager_v1_interface;
245 extern const wl_interface zwp_text_input_v3_interface;
246 extern const wl_interface zwp_text_input_manager_v3_interface;
247 extern const wl_interface xdg_activation_v1_interface;
248 extern const wl_interface xdg_activation_token_v1_interface;
249 extern const wl_interface zxdg_decoration_manager_v1_interface;
250 extern const wl_interface zxdg_toplevel_decoration_v1_interface;
251 extern const wl_interface zxdg_exporter_v1_interface;
252 extern const wl_interface zxdg_importer_v1_interface;
253 extern const wl_interface zxdg_exported_v1_interface;
254 extern const wl_interface zxdg_imported_v1_interface;
255 extern const wl_interface zxdg_exporter_v2_interface;
256 extern const wl_interface zxdg_importer_v2_interface;
257 extern const wl_interface zxdg_exported_v2_interface;
258 extern const wl_interface zxdg_imported_v2_interface;
259 extern const wl_interface zxdg_output_manager_v1_interface;
260 extern const wl_interface zxdg_output_v1_interface;
261 extern const wl_interface zxdg_shell_v6_interface;
262 extern const wl_interface zxdg_positioner_v6_interface;
263 extern const wl_interface zxdg_surface_v6_interface;
264 extern const wl_interface zxdg_toplevel_v6_interface;
265 extern const wl_interface zxdg_popup_v6_interface;
266 extern const wl_interface zwp_xwayland_keyboard_grab_manager_v1_interface;
267 extern const wl_interface zwp_xwayland_keyboard_grab_v1_interface;
268}
269
307class zwp_fullscreen_shell_v1_t : public resource_t
308{
309private:
310 struct events_t : public resource_t::events_base_t
311 {
312 std::function<void()> release;
313 std::function<void(surface_t, zwp_fullscreen_shell_v1_present_method, output_t)> present_surface;
314 std::function<void(surface_t, output_t, int32_t, zwp_fullscreen_shell_mode_feedback_v1_t)> present_surface_for_mode;
315 };
316
317 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
318
319protected:
320 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_fullscreen_shell_v1_interface;
321 static constexpr const unsigned int max_version = 1;
322
324 friend class global_base_t;
325
326public:
327 zwp_fullscreen_shell_v1_t() = default;
328 zwp_fullscreen_shell_v1_t(const client_t& client, uint32_t id, int version = 1);
329 zwp_fullscreen_shell_v1_t(const resource_t &resource);
330
331 static const std::string interface_name;
332
333 operator zwp_fullscreen_shell_v1*() const;
334
344 std::function<void()> &on_release();
345
374 std::function<void(surface_t, zwp_fullscreen_shell_v1_present_method, output_t)> &on_present_surface();
375
425 std::function<void(surface_t, output_t, int32_t, zwp_fullscreen_shell_mode_feedback_v1_t)> &on_present_surface_for_mode();
426
440 void capability(zwp_fullscreen_shell_v1_capability const& capability, bool post = true);
441
444 static constexpr std::uint32_t capability_since_version = 1;
445
448 void post_invalid_method(std::string const& msg);
449
452 void post_role(std::string const& msg);
453
454};
455
457
483enum class zwp_fullscreen_shell_v1_capability : uint32_t
484 {
486 arbitrary_modes = 1,
488 cursor_plane = 2
489};
490
498enum class zwp_fullscreen_shell_v1_present_method : uint32_t
499 {
501 _default = 0,
503 center = 1,
505 zoom = 2,
507 zoom_crop = 3,
509 stretch = 4
510};
511
517enum class zwp_fullscreen_shell_v1_error : uint32_t
518 {
520 invalid_method = 0,
522 role = 1
523};
524
525
529class zwp_fullscreen_shell_mode_feedback_v1_t : public resource_t
530{
531private:
532 struct events_t : public resource_t::events_base_t
533 {
534 };
535
536 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
537
538protected:
539 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_fullscreen_shell_mode_feedback_v1_interface;
540 static constexpr const unsigned int max_version = 1;
541
542 friend class global_t<zwp_fullscreen_shell_mode_feedback_v1_t>;
543 friend class global_base_t;
544
545public:
546 zwp_fullscreen_shell_mode_feedback_v1_t() = default;
547 zwp_fullscreen_shell_mode_feedback_v1_t(const client_t& client, uint32_t id, int version = 1);
548 zwp_fullscreen_shell_mode_feedback_v1_t(const resource_t &resource);
549
550 static const std::string interface_name;
551
552 operator zwp_fullscreen_shell_mode_feedback_v1*() const;
553
564 void mode_successful(bool post = true);
565
568 static constexpr std::uint32_t mode_successful_since_version = 1;
569
580 void mode_failed(bool post = true);
581
584 static constexpr std::uint32_t mode_failed_since_version = 1;
585
596 void present_cancelled(bool post = true);
597
600 static constexpr std::uint32_t present_cancelled_since_version = 1;
601
602};
603
604using global_zwp_fullscreen_shell_mode_feedback_v1_t = global_t<zwp_fullscreen_shell_mode_feedback_v1_t>;
605
606
623class zwp_idle_inhibit_manager_v1_t : public resource_t
624{
625private:
626 struct events_t : public resource_t::events_base_t
627 {
628 std::function<void()> destroy;
629 std::function<void(zwp_idle_inhibitor_v1_t, surface_t)> create_inhibitor;
630 };
631
632 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
633
634protected:
635 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_idle_inhibit_manager_v1_interface;
636 static constexpr const unsigned int max_version = 1;
637
639 friend class global_base_t;
640
641public:
643 zwp_idle_inhibit_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
644 zwp_idle_inhibit_manager_v1_t(const resource_t &resource);
645
646 static const std::string interface_name;
647
648 operator zwp_idle_inhibit_manager_v1*() const;
649
655 std::function<void()> &on_destroy();
656
665
666};
667
669
670
687class zwp_idle_inhibitor_v1_t : public resource_t
688{
689private:
690 struct events_t : public resource_t::events_base_t
691 {
692 std::function<void()> destroy;
693 };
694
695 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
696
697protected:
698 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_idle_inhibitor_v1_interface;
699 static constexpr const unsigned int max_version = 1;
700
701 friend class global_t<zwp_idle_inhibitor_v1_t>;
702 friend class global_base_t;
703
704public:
705 zwp_idle_inhibitor_v1_t() = default;
706 zwp_idle_inhibitor_v1_t(const client_t& client, uint32_t id, int version = 1);
707 zwp_idle_inhibitor_v1_t(const resource_t &resource);
708
709 static const std::string interface_name;
710
711 operator zwp_idle_inhibitor_v1*() const;
712
718 std::function<void()> &on_destroy();
719
720};
721
723
724
752class zwp_input_method_context_v1_t : public resource_t
753{
754private:
755 struct events_t : public resource_t::events_base_t
756 {
757 std::function<void()> destroy;
758 std::function<void(uint32_t, std::string)> commit_string;
759 std::function<void(uint32_t, std::string, std::string)> preedit_string;
760 std::function<void(uint32_t, uint32_t, zwp_text_input_v1_preedit_style)> preedit_styling;
761 std::function<void(int32_t)> preedit_cursor;
762 std::function<void(int32_t, uint32_t)> delete_surrounding_text;
763 std::function<void(int32_t, int32_t)> cursor_position;
764 std::function<void(array_t)> modifiers_map;
765 std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state, uint32_t)> keysym;
766 std::function<void(keyboard_t)> grab_keyboard;
767 std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> key;
768 std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> modifiers;
769 std::function<void(uint32_t, std::string)> language;
770 std::function<void(uint32_t, uint32_t)> text_direction;
771 };
772
773 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
774
775protected:
776 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_method_context_v1_interface;
777 static constexpr const unsigned int max_version = 1;
778
780 friend class global_base_t;
781
782public:
784 zwp_input_method_context_v1_t(const client_t& client, uint32_t id, int version = 1);
785 zwp_input_method_context_v1_t(const resource_t &resource);
786
787 static const std::string interface_name;
788
789 operator zwp_input_method_context_v1*() const;
790
794 std::function<void()> &on_destroy();
795
811 std::function<void(uint32_t, std::string)> &on_commit_string();
812
827 std::function<void(uint32_t, std::string, std::string)> &on_preedit_string();
828
842 std::function<void(uint32_t, uint32_t, zwp_text_input_v1_preedit_style)> &on_preedit_styling();
843
855 std::function<void(int32_t)> &on_preedit_cursor();
856
867 std::function<void(int32_t, uint32_t)> &on_delete_surrounding_text();
868
885 std::function<void(int32_t, int32_t)> &on_cursor_position();
886
891 std::function<void(array_t)> &on_modifiers_map();
892
906 std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state, uint32_t)> &on_keysym();
907
917 std::function<void(keyboard_t)> &on_grab_keyboard();
918
933 std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> &on_key();
934
948 std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> &on_modifiers();
949
955 std::function<void(uint32_t, std::string)> &on_language();
956
962 std::function<void(uint32_t, uint32_t)> &on_text_direction();
963
976 void surrounding_text(std::string const& text, uint32_t cursor, uint32_t anchor, bool post = true);
977
980 static constexpr std::uint32_t surrounding_text_since_version = 1;
981
985 void reset(bool post = true);
986
989 static constexpr std::uint32_t reset_since_version = 1;
990
996 void content_type(zwp_text_input_v1_content_hint const& hint, zwp_text_input_v1_content_purpose const& purpose, bool post = true);
997
1000 static constexpr std::uint32_t content_type_since_version = 1;
1001
1007 void invoke_action(uint32_t button, uint32_t index, bool post = true);
1008
1011 static constexpr std::uint32_t invoke_action_since_version = 1;
1012
1017 void commit_state(uint32_t serial, bool post = true);
1018
1021 static constexpr std::uint32_t commit_state_since_version = 1;
1022
1027 void preferred_language(std::string const& language, bool post = true);
1028
1031 static constexpr std::uint32_t preferred_language_since_version = 1;
1032
1033};
1034
1036
1037
1046class zwp_input_method_v1_t : public resource_t
1047{
1048private:
1049 struct events_t : public resource_t::events_base_t
1050 {
1051 };
1052
1053 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1054
1055protected:
1056 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_method_v1_interface;
1057 static constexpr const unsigned int max_version = 1;
1058
1059 friend class global_t<zwp_input_method_v1_t>;
1060 friend class global_base_t;
1061
1062public:
1063 zwp_input_method_v1_t() = default;
1064 zwp_input_method_v1_t(const client_t& client, uint32_t id, int version = 1);
1065 zwp_input_method_v1_t(const resource_t &resource);
1066
1067 static const std::string interface_name;
1068
1069 operator zwp_input_method_v1*() const;
1070
1077 void activate(bool post = true);
1078
1081 static constexpr std::uint32_t activate_since_version = 1;
1082
1091 void deactivate(zwp_input_method_context_v1_t const& context, bool post = true);
1092
1095 static constexpr std::uint32_t deactivate_since_version = 1;
1096
1097};
1098
1100
1101
1107class zwp_input_panel_v1_t : public resource_t
1108{
1109private:
1110 struct events_t : public resource_t::events_base_t
1111 {
1112 std::function<void(zwp_input_panel_surface_v1_t, surface_t)> get_input_panel_surface;
1113 };
1114
1115 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1116
1117protected:
1118 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_panel_v1_interface;
1119 static constexpr const unsigned int max_version = 1;
1120
1121 friend class global_t<zwp_input_panel_v1_t>;
1122 friend class global_base_t;
1123
1124public:
1125 zwp_input_panel_v1_t() = default;
1126 zwp_input_panel_v1_t(const client_t& client, uint32_t id, int version = 1);
1127 zwp_input_panel_v1_t(const resource_t &resource);
1128
1129 static const std::string interface_name;
1130
1131 operator zwp_input_panel_v1*() const;
1132
1138 std::function<void(zwp_input_panel_surface_v1_t, surface_t)> &on_get_input_panel_surface();
1139
1140};
1141
1143
1144
1148class zwp_input_panel_surface_v1_t : public resource_t
1149{
1150private:
1151 struct events_t : public resource_t::events_base_t
1152 {
1153 std::function<void(output_t, zwp_input_panel_surface_v1_position)> set_toplevel;
1154 std::function<void()> set_overlay_panel;
1155 };
1156
1157 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1158
1159protected:
1160 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_panel_surface_v1_interface;
1161 static constexpr const unsigned int max_version = 1;
1162
1163 friend class global_t<zwp_input_panel_surface_v1_t>;
1164 friend class global_base_t;
1165
1166public:
1167 zwp_input_panel_surface_v1_t() = default;
1168 zwp_input_panel_surface_v1_t(const client_t& client, uint32_t id, int version = 1);
1169 zwp_input_panel_surface_v1_t(const resource_t &resource);
1170
1171 static const std::string interface_name;
1172
1173 operator zwp_input_panel_surface_v1*() const;
1174
1184 std::function<void(output_t, zwp_input_panel_surface_v1_position)> &on_set_toplevel();
1185
1194 std::function<void()> &on_set_overlay_panel();
1195
1196};
1197
1198using global_zwp_input_panel_surface_v1_t = global_t<zwp_input_panel_surface_v1_t>;
1199
1203enum class zwp_input_panel_surface_v1_position : uint32_t
1204 {
1205 center_bottom = 0
1206};
1207
1208
1215class zwp_input_timestamps_manager_v1_t : public resource_t
1216{
1217private:
1218 struct events_t : public resource_t::events_base_t
1219 {
1220 std::function<void()> destroy;
1221 std::function<void(zwp_input_timestamps_v1_t, keyboard_t)> get_keyboard_timestamps;
1222 std::function<void(zwp_input_timestamps_v1_t, pointer_t)> get_pointer_timestamps;
1223 std::function<void(zwp_input_timestamps_v1_t, touch_t)> get_touch_timestamps;
1224 };
1225
1226 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1227
1228protected:
1229 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_timestamps_manager_v1_interface;
1230 static constexpr const unsigned int max_version = 1;
1231
1233 friend class global_base_t;
1234
1235public:
1237 zwp_input_timestamps_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
1238 zwp_input_timestamps_manager_v1_t(const resource_t &resource);
1239
1240 static const std::string interface_name;
1241
1242 operator zwp_input_timestamps_manager_v1*() const;
1243
1251 std::function<void()> &on_destroy();
1252
1268
1284
1300
1301};
1302
1304
1305
1313class zwp_input_timestamps_v1_t : public resource_t
1314{
1315private:
1316 struct events_t : public resource_t::events_base_t
1317 {
1318 std::function<void()> destroy;
1319 };
1320
1321 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1322
1323protected:
1324 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_timestamps_v1_interface;
1325 static constexpr const unsigned int max_version = 1;
1326
1327 friend class global_t<zwp_input_timestamps_v1_t>;
1328 friend class global_base_t;
1329
1330public:
1331 zwp_input_timestamps_v1_t() = default;
1332 zwp_input_timestamps_v1_t(const client_t& client, uint32_t id, int version = 1);
1333 zwp_input_timestamps_v1_t(const resource_t &resource);
1334
1335 static const std::string interface_name;
1336
1337 operator zwp_input_timestamps_v1*() const;
1338
1346 std::function<void()> &on_destroy();
1347
1369 void timestamp(uint32_t tv_sec_hi, uint32_t tv_sec_lo, uint32_t tv_nsec, bool post = true);
1370
1373 static constexpr std::uint32_t timestamp_since_version = 1;
1374
1375};
1376
1378
1379
1386{
1387private:
1388 struct events_t : public resource_t::events_base_t
1389 {
1390 std::function<void()> destroy;
1391 std::function<void(zwp_keyboard_shortcuts_inhibitor_v1_t, surface_t, seat_t)> inhibit_shortcuts;
1392 };
1393
1394 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1395
1396protected:
1397 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_keyboard_shortcuts_inhibit_manager_v1_interface;
1398 static constexpr const unsigned int max_version = 1;
1399
1401 friend class global_base_t;
1402
1403public:
1405 zwp_keyboard_shortcuts_inhibit_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
1406 zwp_keyboard_shortcuts_inhibit_manager_v1_t(const resource_t &resource);
1407
1408 static const std::string interface_name;
1409
1410 operator zwp_keyboard_shortcuts_inhibit_manager_v1*() const;
1411
1417 std::function<void()> &on_destroy();
1418
1432
1435 void post_already_inhibited(std::string const& msg);
1436
1437};
1438
1440
1444enum class zwp_keyboard_shortcuts_inhibit_manager_v1_error : uint32_t
1445 {
1447 already_inhibited = 0
1448};
1449
1450
1489{
1490private:
1491 struct events_t : public resource_t::events_base_t
1492 {
1493 std::function<void()> destroy;
1494 };
1495
1496 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1497
1498protected:
1499 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_keyboard_shortcuts_inhibitor_v1_interface;
1500 static constexpr const unsigned int max_version = 1;
1501
1503 friend class global_base_t;
1504
1505public:
1507 zwp_keyboard_shortcuts_inhibitor_v1_t(const client_t& client, uint32_t id, int version = 1);
1508 zwp_keyboard_shortcuts_inhibitor_v1_t(const resource_t &resource);
1509
1510 static const std::string interface_name;
1511
1512 operator zwp_keyboard_shortcuts_inhibitor_v1*() const;
1513
1519 std::function<void()> &on_destroy();
1520
1536 void active(bool post = true);
1537
1540 static constexpr std::uint32_t active_since_version = 1;
1541
1548 void inactive(bool post = true);
1549
1552 static constexpr std::uint32_t inactive_since_version = 1;
1553
1554};
1555
1557
1558
1631class zwp_linux_dmabuf_v1_t : public resource_t
1632{
1633private:
1634 struct events_t : public resource_t::events_base_t
1635 {
1636 std::function<void()> destroy;
1637 std::function<void(zwp_linux_buffer_params_v1_t)> create_params;
1638 std::function<void(zwp_linux_dmabuf_feedback_v1_t)> get_default_feedback;
1639 std::function<void(zwp_linux_dmabuf_feedback_v1_t, surface_t)> get_surface_feedback;
1640 };
1641
1642 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1643
1644protected:
1645 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_dmabuf_v1_interface;
1646 static constexpr const unsigned int max_version = 4;
1647
1648 friend class global_t<zwp_linux_dmabuf_v1_t>;
1649 friend class global_base_t;
1650
1651public:
1652 zwp_linux_dmabuf_v1_t() = default;
1653 zwp_linux_dmabuf_v1_t(const client_t& client, uint32_t id, int version = 4);
1654 zwp_linux_dmabuf_v1_t(const resource_t &resource);
1655
1656 static const std::string interface_name;
1657
1658 operator zwp_linux_dmabuf_v1*() const;
1659
1666 std::function<void()> &on_destroy();
1667
1677 std::function<void(zwp_linux_buffer_params_v1_t)> &on_create_params();
1678
1689
1703
1720 void format(uint32_t format, bool post = true);
1721
1724 static constexpr std::uint32_t format_since_version = 1;
1725
1756 void modifier(uint32_t format, uint32_t modifier_hi, uint32_t modifier_lo, bool post = true);
1757
1760 static constexpr std::uint32_t modifier_since_version = 3;
1761
1765 bool can_modifier() const;
1766
1767};
1768
1770
1771
1790class zwp_linux_buffer_params_v1_t : public resource_t
1791{
1792private:
1793 struct events_t : public resource_t::events_base_t
1794 {
1795 std::function<void()> destroy;
1796 std::function<void(int, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> add;
1797 std::function<void(int32_t, int32_t, uint32_t, zwp_linux_buffer_params_v1_flags)> create;
1798 std::function<void(buffer_t, int32_t, int32_t, uint32_t, zwp_linux_buffer_params_v1_flags)> create_immed;
1799 };
1800
1801 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1802
1803protected:
1804 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_buffer_params_v1_interface;
1805 static constexpr const unsigned int max_version = 4;
1806
1808 friend class global_base_t;
1809
1810public:
1811 zwp_linux_buffer_params_v1_t() = default;
1812 zwp_linux_buffer_params_v1_t(const client_t& client, uint32_t id, int version = 4);
1813 zwp_linux_buffer_params_v1_t(const resource_t &resource);
1814
1815 static const std::string interface_name;
1816
1817 operator zwp_linux_buffer_params_v1*() const;
1818
1825 std::function<void()> &on_destroy();
1826
1853 std::function<void(int, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> &on_add();
1854
1922 std::function<void(int32_t, int32_t, uint32_t, zwp_linux_buffer_params_v1_flags)> &on_create();
1923
1956 std::function<void(buffer_t, int32_t, int32_t, uint32_t, zwp_linux_buffer_params_v1_flags)> &on_create_immed();
1957
1968 void created(bool post = true);
1969
1972 static constexpr std::uint32_t created_since_version = 1;
1973
1984 void failed(bool post = true);
1985
1988 static constexpr std::uint32_t failed_since_version = 1;
1989
1992 void post_already_used(std::string const& msg);
1993
1996 void post_plane_idx(std::string const& msg);
1997
2000 void post_plane_set(std::string const& msg);
2001
2004 void post_incomplete(std::string const& msg);
2005
2008 void post_invalid_format(std::string const& msg);
2009
2012 void post_invalid_dimensions(std::string const& msg);
2013
2016 void post_out_of_bounds(std::string const& msg);
2017
2020 void post_invalid_wl_buffer(std::string const& msg);
2021
2022};
2023
2025
2029enum class zwp_linux_buffer_params_v1_error : uint32_t
2030 {
2032 already_used = 0,
2034 plane_idx = 1,
2036 plane_set = 2,
2038 incomplete = 3,
2040 invalid_format = 4,
2042 invalid_dimensions = 5,
2044 out_of_bounds = 6,
2046 invalid_wl_buffer = 7
2047};
2048
2052struct zwp_linux_buffer_params_v1_flags : public wayland::detail::bitfield<3, 6>
2053{
2054 zwp_linux_buffer_params_v1_flags(const wayland::detail::bitfield<3, 6> &b)
2055 : wayland::detail::bitfield<3, 6>(b) {}
2056 zwp_linux_buffer_params_v1_flags(const uint32_t value)
2057 : wayland::detail::bitfield<3, 6>(value) {}
2059 static const wayland::detail::bitfield<3, 6> y_invert;
2061 static const wayland::detail::bitfield<3, 6> interlaced;
2063 static const wayland::detail::bitfield<3, 6> bottom_first;
2064};
2065
2066
2096class zwp_linux_dmabuf_feedback_v1_t : public resource_t
2097{
2098private:
2099 struct events_t : public resource_t::events_base_t
2100 {
2101 std::function<void()> destroy;
2102 };
2103
2104 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2105
2106protected:
2107 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_dmabuf_feedback_v1_interface;
2108 static constexpr const unsigned int max_version = 4;
2109
2111 friend class global_base_t;
2112
2113public:
2115 zwp_linux_dmabuf_feedback_v1_t(const client_t& client, uint32_t id, int version = 4);
2116 zwp_linux_dmabuf_feedback_v1_t(const resource_t &resource);
2117
2118 static const std::string interface_name;
2119
2120 operator zwp_linux_dmabuf_feedback_v1*() const;
2121
2128 std::function<void()> &on_destroy();
2129
2139 void done(bool post = true);
2140
2143 static constexpr std::uint32_t done_since_version = 1;
2144
2165 void format_table(int fd, uint32_t size, bool post = true);
2166
2169 static constexpr std::uint32_t format_table_since_version = 1;
2170
2199 void main_device(array_t const& device, bool post = true);
2200
2203 static constexpr std::uint32_t main_device_since_version = 1;
2204
2213 void tranche_done(bool post = true);
2214
2217 static constexpr std::uint32_t tranche_done_since_version = 1;
2218
2250 void tranche_target_device(array_t const& device, bool post = true);
2251
2254 static constexpr std::uint32_t tranche_target_device_since_version = 1;
2255
2285 void tranche_formats(array_t const& indices, bool post = true);
2286
2289 static constexpr std::uint32_t tranche_formats_since_version = 1;
2290
2304 void tranche_flags(zwp_linux_dmabuf_feedback_v1_tranche_flags const& flags, bool post = true);
2305
2308 static constexpr std::uint32_t tranche_flags_since_version = 1;
2309
2310};
2311
2313
2317struct zwp_linux_dmabuf_feedback_v1_tranche_flags : public wayland::detail::bitfield<1, 7>
2318{
2319 zwp_linux_dmabuf_feedback_v1_tranche_flags(const wayland::detail::bitfield<1, 7> &b)
2320 : wayland::detail::bitfield<1, 7>(b) {}
2321 zwp_linux_dmabuf_feedback_v1_tranche_flags(const uint32_t value)
2322 : wayland::detail::bitfield<1, 7>(value) {}
2324 static const wayland::detail::bitfield<1, 7> scanout;
2325};
2326
2327
2349{
2350private:
2351 struct events_t : public resource_t::events_base_t
2352 {
2353 std::function<void()> destroy;
2354 std::function<void(zwp_linux_surface_synchronization_v1_t, surface_t)> get_synchronization;
2355 };
2356
2357 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2358
2359protected:
2360 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_explicit_synchronization_v1_interface;
2361 static constexpr const unsigned int max_version = 2;
2362
2364 friend class global_base_t;
2365
2366public:
2368 zwp_linux_explicit_synchronization_v1_t(const client_t& client, uint32_t id, int version = 2);
2369 zwp_linux_explicit_synchronization_v1_t(const resource_t &resource);
2370
2371 static const std::string interface_name;
2372
2373 operator zwp_linux_explicit_synchronization_v1*() const;
2374
2382 std::function<void()> &on_destroy();
2383
2402
2405 void post_synchronization_exists(std::string const& msg);
2406
2407};
2408
2410
2414enum class zwp_linux_explicit_synchronization_v1_error : uint32_t
2415 {
2417 synchronization_exists = 0
2418};
2419
2420
2456{
2457private:
2458 struct events_t : public resource_t::events_base_t
2459 {
2460 std::function<void()> destroy;
2461 std::function<void(int)> set_acquire_fence;
2462 std::function<void(zwp_linux_buffer_release_v1_t)> get_release;
2463 };
2464
2465 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2466
2467protected:
2468 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_surface_synchronization_v1_interface;
2469 static constexpr const unsigned int max_version = 2;
2470
2472 friend class global_base_t;
2473
2474public:
2476 zwp_linux_surface_synchronization_v1_t(const client_t& client, uint32_t id, int version = 2);
2477 zwp_linux_surface_synchronization_v1_t(const resource_t &resource);
2478
2479 static const std::string interface_name;
2480
2481 operator zwp_linux_surface_synchronization_v1*() const;
2482
2495 std::function<void()> &on_destroy();
2496
2525 std::function<void(int)> &on_set_acquire_fence();
2526
2549 std::function<void(zwp_linux_buffer_release_v1_t)> &on_get_release();
2550
2553 void post_invalid_fence(std::string const& msg);
2554
2557 void post_duplicate_fence(std::string const& msg);
2558
2561 void post_duplicate_release(std::string const& msg);
2562
2565 void post_no_surface(std::string const& msg);
2566
2569 void post_unsupported_buffer(std::string const& msg);
2570
2573 void post_no_buffer(std::string const& msg);
2574
2575};
2576
2578
2582enum class zwp_linux_surface_synchronization_v1_error : uint32_t
2583 {
2585 invalid_fence = 0,
2587 duplicate_fence = 1,
2589 duplicate_release = 2,
2591 no_surface = 3,
2593 unsupported_buffer = 4,
2595 no_buffer = 5
2596};
2597
2598
2620class zwp_linux_buffer_release_v1_t : public resource_t
2621{
2622private:
2623 struct events_t : public resource_t::events_base_t
2624 {
2625 };
2626
2627 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2628
2629protected:
2630 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_buffer_release_v1_interface;
2631 static constexpr const unsigned int max_version = 1;
2632
2634 friend class global_base_t;
2635
2636public:
2638 zwp_linux_buffer_release_v1_t(const client_t& client, uint32_t id, int version = 1);
2639 zwp_linux_buffer_release_v1_t(const resource_t &resource);
2640
2641 static const std::string interface_name;
2642
2643 operator zwp_linux_buffer_release_v1*() const;
2644
2661 void fenced_release(int fence, bool post = true);
2662
2665 static constexpr std::uint32_t fenced_release_since_version = 1;
2666
2682 void immediate_release(bool post = true);
2683
2686 static constexpr std::uint32_t immediate_release_since_version = 1;
2687
2688};
2689
2691
2692
2710class zwp_pointer_constraints_v1_t : public resource_t
2711{
2712private:
2713 struct events_t : public resource_t::events_base_t
2714 {
2715 std::function<void()> destroy;
2716 std::function<void(zwp_locked_pointer_v1_t, surface_t, pointer_t, region_t, zwp_pointer_constraints_v1_lifetime)> lock_pointer;
2717 std::function<void(zwp_confined_pointer_v1_t, surface_t, pointer_t, region_t, zwp_pointer_constraints_v1_lifetime)> confine_pointer;
2718 };
2719
2720 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2721
2722protected:
2723 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_pointer_constraints_v1_interface;
2724 static constexpr const unsigned int max_version = 1;
2725
2727 friend class global_base_t;
2728
2729public:
2730 zwp_pointer_constraints_v1_t() = default;
2731 zwp_pointer_constraints_v1_t(const client_t& client, uint32_t id, int version = 1);
2732 zwp_pointer_constraints_v1_t(const resource_t &resource);
2733
2734 static const std::string interface_name;
2735
2736 operator zwp_pointer_constraints_v1*() const;
2737
2744 std::function<void()> &on_destroy();
2745
2789 std::function<void(zwp_locked_pointer_v1_t, surface_t, pointer_t, region_t, zwp_pointer_constraints_v1_lifetime)> &on_lock_pointer();
2790
2817 std::function<void(zwp_confined_pointer_v1_t, surface_t, pointer_t, region_t, zwp_pointer_constraints_v1_lifetime)> &on_confine_pointer();
2818
2821 void post_already_constrained(std::string const& msg);
2822
2823};
2824
2826
2833enum class zwp_pointer_constraints_v1_error : uint32_t
2834 {
2836 already_constrained = 1
2837};
2838
2846enum class zwp_pointer_constraints_v1_lifetime : uint32_t
2847 {
2848 oneshot = 1,
2849 persistent = 2
2850};
2851
2852
2880class zwp_locked_pointer_v1_t : public resource_t
2881{
2882private:
2883 struct events_t : public resource_t::events_base_t
2884 {
2885 std::function<void()> destroy;
2886 std::function<void(double, double)> set_cursor_position_hint;
2887 std::function<void(region_t)> set_region;
2888 };
2889
2890 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2891
2892protected:
2893 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_locked_pointer_v1_interface;
2894 static constexpr const unsigned int max_version = 1;
2895
2896 friend class global_t<zwp_locked_pointer_v1_t>;
2897 friend class global_base_t;
2898
2899public:
2900 zwp_locked_pointer_v1_t() = default;
2901 zwp_locked_pointer_v1_t(const client_t& client, uint32_t id, int version = 1);
2902 zwp_locked_pointer_v1_t(const resource_t &resource);
2903
2904 static const std::string interface_name;
2905
2906 operator zwp_locked_pointer_v1*() const;
2907
2914 std::function<void()> &on_destroy();
2915
2933 std::function<void(double, double)> &on_set_cursor_position_hint();
2934
2947 std::function<void(region_t)> &on_set_region();
2948
2954 void locked(bool post = true);
2955
2958 static constexpr std::uint32_t locked_since_version = 1;
2959
2970 void unlocked(bool post = true);
2971
2974 static constexpr std::uint32_t unlocked_since_version = 1;
2975
2976};
2977
2979
2980
3001class zwp_confined_pointer_v1_t : public resource_t
3002{
3003private:
3004 struct events_t : public resource_t::events_base_t
3005 {
3006 std::function<void()> destroy;
3007 std::function<void(region_t)> set_region;
3008 };
3009
3010 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3011
3012protected:
3013 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_confined_pointer_v1_interface;
3014 static constexpr const unsigned int max_version = 1;
3015
3016 friend class global_t<zwp_confined_pointer_v1_t>;
3017 friend class global_base_t;
3018
3019public:
3020 zwp_confined_pointer_v1_t() = default;
3021 zwp_confined_pointer_v1_t(const client_t& client, uint32_t id, int version = 1);
3022 zwp_confined_pointer_v1_t(const resource_t &resource);
3023
3024 static const std::string interface_name;
3025
3026 operator zwp_confined_pointer_v1*() const;
3027
3034 std::function<void()> &on_destroy();
3035
3057 std::function<void(region_t)> &on_set_region();
3058
3065 void confined(bool post = true);
3066
3069 static constexpr std::uint32_t confined_since_version = 1;
3070
3081 void unconfined(bool post = true);
3082
3085 static constexpr std::uint32_t unconfined_since_version = 1;
3086
3087};
3088
3090
3091
3112class zwp_pointer_gestures_v1_t : public resource_t
3113{
3114private:
3115 struct events_t : public resource_t::events_base_t
3116 {
3117 std::function<void(zwp_pointer_gesture_swipe_v1_t, pointer_t)> get_swipe_gesture;
3118 std::function<void(zwp_pointer_gesture_pinch_v1_t, pointer_t)> get_pinch_gesture;
3119 std::function<void()> release;
3120 std::function<void(zwp_pointer_gesture_hold_v1_t, pointer_t)> get_hold_gesture;
3121 };
3122
3123 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3124
3125protected:
3126 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_pointer_gestures_v1_interface;
3127 static constexpr const unsigned int max_version = 3;
3128
3129 friend class global_t<zwp_pointer_gestures_v1_t>;
3130 friend class global_base_t;
3131
3132public:
3133 zwp_pointer_gestures_v1_t() = default;
3134 zwp_pointer_gestures_v1_t(const client_t& client, uint32_t id, int version = 3);
3135 zwp_pointer_gestures_v1_t(const resource_t &resource);
3136
3137 static const std::string interface_name;
3138
3139 operator zwp_pointer_gestures_v1*() const;
3140
3150
3160
3167 std::function<void()> &on_release();
3168
3178
3179};
3180
3182
3183
3203class zwp_pointer_gesture_swipe_v1_t : public resource_t
3204{
3205private:
3206 struct events_t : public resource_t::events_base_t
3207 {
3208 std::function<void()> destroy;
3209 };
3210
3211 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3212
3213protected:
3214 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_pointer_gesture_swipe_v1_interface;
3215 static constexpr const unsigned int max_version = 2;
3216
3218 friend class global_base_t;
3219
3220public:
3222 zwp_pointer_gesture_swipe_v1_t(const client_t& client, uint32_t id, int version = 2);
3223 zwp_pointer_gesture_swipe_v1_t(const resource_t &resource);
3224
3225 static const std::string interface_name;
3226
3227 operator zwp_pointer_gesture_swipe_v1*() const;
3228
3232 std::function<void()> &on_destroy();
3233
3244 void begin(uint32_t serial, uint32_t time, surface_t const& surface, uint32_t fingers, bool post = true);
3245
3248 static constexpr std::uint32_t begin_since_version = 1;
3249
3262 void update(uint32_t time, double dx, double dy, bool post = true);
3263
3266 static constexpr std::uint32_t update_since_version = 1;
3267
3282 void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post = true);
3283
3286 static constexpr std::uint32_t end_since_version = 1;
3287
3288};
3289
3291
3292
3312class zwp_pointer_gesture_pinch_v1_t : public resource_t
3313{
3314private:
3315 struct events_t : public resource_t::events_base_t
3316 {
3317 std::function<void()> destroy;
3318 };
3319
3320 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3321
3322protected:
3323 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_pointer_gesture_pinch_v1_interface;
3324 static constexpr const unsigned int max_version = 2;
3325
3327 friend class global_base_t;
3328
3329public:
3331 zwp_pointer_gesture_pinch_v1_t(const client_t& client, uint32_t id, int version = 2);
3332 zwp_pointer_gesture_pinch_v1_t(const resource_t &resource);
3333
3334 static const std::string interface_name;
3335
3336 operator zwp_pointer_gesture_pinch_v1*() const;
3337
3341 std::function<void()> &on_destroy();
3342
3353 void begin(uint32_t serial, uint32_t time, surface_t const& surface, uint32_t fingers, bool post = true);
3354
3357 static constexpr std::uint32_t begin_since_version = 1;
3358
3380 void update(uint32_t time, double dx, double dy, double scale, double rotation, bool post = true);
3381
3384 static constexpr std::uint32_t update_since_version = 1;
3385
3400 void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post = true);
3401
3404 static constexpr std::uint32_t end_since_version = 1;
3405
3406};
3407
3409
3410
3432class zwp_pointer_gesture_hold_v1_t : public resource_t
3433{
3434private:
3435 struct events_t : public resource_t::events_base_t
3436 {
3437 std::function<void()> destroy;
3438 };
3439
3440 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3441
3442protected:
3443 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_pointer_gesture_hold_v1_interface;
3444 static constexpr const unsigned int max_version = 3;
3445
3447 friend class global_base_t;
3448
3449public:
3451 zwp_pointer_gesture_hold_v1_t(const client_t& client, uint32_t id, int version = 3);
3452 zwp_pointer_gesture_hold_v1_t(const resource_t &resource);
3453
3454 static const std::string interface_name;
3455
3456 operator zwp_pointer_gesture_hold_v1*() const;
3457
3461 std::function<void()> &on_destroy();
3462
3472 void begin(uint32_t serial, uint32_t time, surface_t const& surface, uint32_t fingers, bool post = true);
3473
3476 static constexpr std::uint32_t begin_since_version = 3;
3477
3481 bool can_begin() const;
3482
3499 void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post = true);
3500
3503 static constexpr std::uint32_t end_since_version = 3;
3504
3508 bool can_end() const;
3509
3510};
3511
3513
3514
3524{
3525private:
3526 struct events_t : public resource_t::events_base_t
3527 {
3528 std::function<void(zwp_primary_selection_source_v1_t)> create_source;
3529 std::function<void(zwp_primary_selection_device_v1_t, seat_t)> get_device;
3530 std::function<void()> destroy;
3531 };
3532
3533 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3534
3535protected:
3536 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_primary_selection_device_manager_v1_interface;
3537 static constexpr const unsigned int max_version = 1;
3538
3540 friend class global_base_t;
3541
3542public:
3544 zwp_primary_selection_device_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
3545 zwp_primary_selection_device_manager_v1_t(const resource_t &resource);
3546
3547 static const std::string interface_name;
3548
3549 operator zwp_primary_selection_device_manager_v1*() const;
3550
3558
3566 std::function<void(zwp_primary_selection_device_v1_t, seat_t)> &on_get_device();
3567
3573 std::function<void()> &on_destroy();
3574
3575};
3576
3578
3579
3583class zwp_primary_selection_device_v1_t : public resource_t
3584{
3585private:
3586 struct events_t : public resource_t::events_base_t
3587 {
3588 std::function<void(zwp_primary_selection_source_v1_t, uint32_t)> set_selection;
3589 std::function<void()> destroy;
3590 };
3591
3592 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3593
3594protected:
3595 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_primary_selection_device_v1_interface;
3596 static constexpr const unsigned int max_version = 1;
3597
3598 friend class global_t<zwp_primary_selection_device_v1_t>;
3599 friend class global_base_t;
3600
3601public:
3602 zwp_primary_selection_device_v1_t() = default;
3603 zwp_primary_selection_device_v1_t(const client_t& client, uint32_t id, int version = 1);
3604 zwp_primary_selection_device_v1_t(const resource_t &resource);
3605
3606 static const std::string interface_name;
3607
3608 operator zwp_primary_selection_device_v1*() const;
3609
3620 std::function<void(zwp_primary_selection_source_v1_t, uint32_t)> &on_set_selection();
3621
3627 std::function<void()> &on_destroy();
3628
3638 void data_offer(bool post = true);
3639
3642 static constexpr std::uint32_t data_offer_since_version = 1;
3643
3658 void selection(zwp_primary_selection_offer_v1_t const& id, bool post = true);
3659
3662 static constexpr std::uint32_t selection_since_version = 1;
3663
3664};
3665
3666using global_zwp_primary_selection_device_v1_t = global_t<zwp_primary_selection_device_v1_t>;
3667
3668
3678class zwp_primary_selection_offer_v1_t : public resource_t
3679{
3680private:
3681 struct events_t : public resource_t::events_base_t
3682 {
3683 std::function<void(std::string, int)> receive;
3684 std::function<void()> destroy;
3685 };
3686
3687 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3688
3689protected:
3690 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_primary_selection_offer_v1_interface;
3691 static constexpr const unsigned int max_version = 1;
3692
3694 friend class global_base_t;
3695
3696public:
3698 zwp_primary_selection_offer_v1_t(const client_t& client, uint32_t id, int version = 1);
3699 zwp_primary_selection_offer_v1_t(const resource_t &resource);
3700
3701 static const std::string interface_name;
3702
3703 operator zwp_primary_selection_offer_v1*() const;
3704
3720 std::function<void(std::string, int)> &on_receive();
3721
3727 std::function<void()> &on_destroy();
3728
3738 void offer(std::string const& mime_type, bool post = true);
3739
3742 static constexpr std::uint32_t offer_since_version = 1;
3743
3744};
3745
3747
3748
3756class zwp_primary_selection_source_v1_t : public resource_t
3757{
3758private:
3759 struct events_t : public resource_t::events_base_t
3760 {
3761 std::function<void(std::string)> offer;
3762 std::function<void()> destroy;
3763 };
3764
3765 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3766
3767protected:
3768 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_primary_selection_source_v1_interface;
3769 static constexpr const unsigned int max_version = 1;
3770
3772 friend class global_base_t;
3773
3774public:
3776 zwp_primary_selection_source_v1_t(const client_t& client, uint32_t id, int version = 1);
3777 zwp_primary_selection_source_v1_t(const resource_t &resource);
3778
3779 static const std::string interface_name;
3780
3781 operator zwp_primary_selection_source_v1*() const;
3782
3790 std::function<void(std::string)> &on_offer();
3791
3797 std::function<void()> &on_destroy();
3798
3808 void send(std::string const& mime_type, int fd, bool post = true);
3809
3812 static constexpr std::uint32_t send_since_version = 1;
3813
3820 void cancelled(bool post = true);
3821
3824 static constexpr std::uint32_t cancelled_since_version = 1;
3825
3826};
3827
3829
3830
3837class zwp_relative_pointer_manager_v1_t : public resource_t
3838{
3839private:
3840 struct events_t : public resource_t::events_base_t
3841 {
3842 std::function<void()> destroy;
3843 std::function<void(zwp_relative_pointer_v1_t, pointer_t)> get_relative_pointer;
3844 };
3845
3846 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3847
3848protected:
3849 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_relative_pointer_manager_v1_interface;
3850 static constexpr const unsigned int max_version = 1;
3851
3853 friend class global_base_t;
3854
3855public:
3857 zwp_relative_pointer_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
3858 zwp_relative_pointer_manager_v1_t(const resource_t &resource);
3859
3860 static const std::string interface_name;
3861
3862 operator zwp_relative_pointer_manager_v1*() const;
3863
3870 std::function<void()> &on_destroy();
3871
3881
3882};
3883
3885
3886
3895class zwp_relative_pointer_v1_t : public resource_t
3896{
3897private:
3898 struct events_t : public resource_t::events_base_t
3899 {
3900 std::function<void()> destroy;
3901 };
3902
3903 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3904
3905protected:
3906 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_relative_pointer_v1_interface;
3907 static constexpr const unsigned int max_version = 1;
3908
3909 friend class global_t<zwp_relative_pointer_v1_t>;
3910 friend class global_base_t;
3911
3912public:
3913 zwp_relative_pointer_v1_t() = default;
3914 zwp_relative_pointer_v1_t(const client_t& client, uint32_t id, int version = 1);
3915 zwp_relative_pointer_v1_t(const resource_t &resource);
3916
3917 static const std::string interface_name;
3918
3919 operator zwp_relative_pointer_v1*() const;
3920
3924 std::function<void()> &on_destroy();
3925
3966 void relative_motion(uint32_t utime_hi, uint32_t utime_lo, double dx, double dy, double dx_unaccel, double dy_unaccel, bool post = true);
3967
3970 static constexpr std::uint32_t relative_motion_since_version = 1;
3971
3972};
3973
3975
3976
3984class zwp_tablet_manager_v1_t : public resource_t
3985{
3986private:
3987 struct events_t : public resource_t::events_base_t
3988 {
3989 std::function<void(zwp_tablet_seat_v1_t, seat_t)> get_tablet_seat;
3990 std::function<void()> destroy;
3991 };
3992
3993 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3994
3995protected:
3996 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_manager_v1_interface;
3997 static constexpr const unsigned int max_version = 1;
3998
3999 friend class global_t<zwp_tablet_manager_v1_t>;
4000 friend class global_base_t;
4001
4002public:
4003 zwp_tablet_manager_v1_t() = default;
4004 zwp_tablet_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
4005 zwp_tablet_manager_v1_t(const resource_t &resource);
4006
4007 static const std::string interface_name;
4008
4009 operator zwp_tablet_manager_v1*() const;
4010
4019 std::function<void(zwp_tablet_seat_v1_t, seat_t)> &on_get_tablet_seat();
4020
4027 std::function<void()> &on_destroy();
4028
4029};
4030
4032
4033
4041class zwp_tablet_seat_v1_t : public resource_t
4042{
4043private:
4044 struct events_t : public resource_t::events_base_t
4045 {
4046 std::function<void()> destroy;
4047 };
4048
4049 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4050
4051protected:
4052 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_seat_v1_interface;
4053 static constexpr const unsigned int max_version = 1;
4054
4055 friend class global_t<zwp_tablet_seat_v1_t>;
4056 friend class global_base_t;
4057
4058public:
4059 zwp_tablet_seat_v1_t() = default;
4060 zwp_tablet_seat_v1_t(const client_t& client, uint32_t id, int version = 1);
4061 zwp_tablet_seat_v1_t(const resource_t &resource);
4062
4063 static const std::string interface_name;
4064
4065 operator zwp_tablet_seat_v1*() const;
4066
4073 std::function<void()> &on_destroy();
4074
4084 void tablet_added(bool post = true);
4085
4088 static constexpr std::uint32_t tablet_added_since_version = 1;
4089
4099 void tool_added(bool post = true);
4100
4103 static constexpr std::uint32_t tool_added_since_version = 1;
4104
4105};
4106
4108
4109
4134class zwp_tablet_tool_v1_t : public resource_t
4135{
4136private:
4137 struct events_t : public resource_t::events_base_t
4138 {
4139 std::function<void(uint32_t, surface_t, int32_t, int32_t)> set_cursor;
4140 std::function<void()> destroy;
4141 };
4142
4143 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4144
4145protected:
4146 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_tool_v1_interface;
4147 static constexpr const unsigned int max_version = 1;
4148
4149 friend class global_t<zwp_tablet_tool_v1_t>;
4150 friend class global_base_t;
4151
4152public:
4153 zwp_tablet_tool_v1_t() = default;
4154 zwp_tablet_tool_v1_t(const client_t& client, uint32_t id, int version = 1);
4155 zwp_tablet_tool_v1_t(const resource_t &resource);
4156
4157 static const std::string interface_name;
4158
4159 operator zwp_tablet_tool_v1*() const;
4160
4201 std::function<void(uint32_t, surface_t, int32_t, int32_t)> &on_set_cursor();
4202
4208 std::function<void()> &on_destroy();
4209
4220 void type(zwp_tablet_tool_v1_type const& tool_type, bool post = true);
4221
4224 static constexpr std::uint32_t type_since_version = 1;
4225
4247 void hardware_serial(uint32_t hardware_serial_hi, uint32_t hardware_serial_lo, bool post = true);
4248
4251 static constexpr std::uint32_t hardware_serial_since_version = 1;
4252
4269 void hardware_id_wacom(uint32_t hardware_id_hi, uint32_t hardware_id_lo, bool post = true);
4270
4273 static constexpr std::uint32_t hardware_id_wacom_since_version = 1;
4274
4287 void capability(zwp_tablet_tool_v1_capability const& capability, bool post = true);
4288
4291 static constexpr std::uint32_t capability_since_version = 1;
4292
4300 void done(bool post = true);
4301
4304 static constexpr std::uint32_t done_since_version = 1;
4305
4324 void removed(bool post = true);
4325
4328 static constexpr std::uint32_t removed_since_version = 1;
4329
4346 void proximity_in(uint32_t serial, zwp_tablet_v1_t const& tablet, surface_t const& surface, bool post = true);
4347
4350 static constexpr std::uint32_t proximity_in_since_version = 1;
4351
4368 void proximity_out(bool post = true);
4369
4372 static constexpr std::uint32_t proximity_out_since_version = 1;
4373
4391 void down(uint32_t serial, bool post = true);
4392
4395 static constexpr std::uint32_t down_since_version = 1;
4396
4417 void up(bool post = true);
4418
4421 static constexpr std::uint32_t up_since_version = 1;
4422
4430 void motion(double x, double y, bool post = true);
4431
4434 static constexpr std::uint32_t motion_since_version = 1;
4435
4446 void pressure(uint32_t pressure, bool post = true);
4447
4450 static constexpr std::uint32_t pressure_since_version = 1;
4451
4462 void distance(uint32_t distance, bool post = true);
4463
4466 static constexpr std::uint32_t distance_since_version = 1;
4467
4478 void tilt(int32_t tilt_x, int32_t tilt_y, bool post = true);
4479
4482 static constexpr std::uint32_t tilt_since_version = 1;
4483
4492 void rotation(int32_t degrees, bool post = true);
4493
4496 static constexpr std::uint32_t rotation_since_version = 1;
4497
4508 void slider(int32_t position, bool post = true);
4509
4512 static constexpr std::uint32_t slider_since_version = 1;
4513
4532 void wheel(int32_t degrees, int32_t clicks, bool post = true);
4533
4536 static constexpr std::uint32_t wheel_since_version = 1;
4537
4551 void button(uint32_t serial, uint32_t button, zwp_tablet_tool_v1_button_state const& state, bool post = true);
4552
4555 static constexpr std::uint32_t button_since_version = 1;
4556
4566 void frame(uint32_t time, bool post = true);
4567
4570 static constexpr std::uint32_t frame_since_version = 1;
4571
4574 void post_role(std::string const& msg);
4575
4576};
4577
4579
4593enum class zwp_tablet_tool_v1_type : uint32_t
4594 {
4596 pen = 0x140,
4598 eraser = 0x141,
4600 brush = 0x142,
4602 pencil = 0x143,
4604 airbrush = 0x144,
4606 finger = 0x145,
4608 mouse = 0x146,
4610 lens = 0x147
4611};
4612
4621enum class zwp_tablet_tool_v1_capability : uint32_t
4622 {
4624 tilt = 1,
4626 pressure = 2,
4628 distance = 3,
4630 rotation = 4,
4632 slider = 5,
4634 wheel = 6
4635};
4636
4642enum class zwp_tablet_tool_v1_button_state : uint32_t
4643 {
4645 released = 0,
4647 pressed = 1
4648};
4649
4653enum class zwp_tablet_tool_v1_error : uint32_t
4654 {
4656 role = 0
4657};
4658
4659
4672class zwp_tablet_v1_t : public resource_t
4673{
4674private:
4675 struct events_t : public resource_t::events_base_t
4676 {
4677 std::function<void()> destroy;
4678 };
4679
4680 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4681
4682protected:
4683 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_v1_interface;
4684 static constexpr const unsigned int max_version = 1;
4685
4686 friend class global_t<zwp_tablet_v1_t>;
4687 friend class global_base_t;
4688
4689public:
4690 zwp_tablet_v1_t() = default;
4691 zwp_tablet_v1_t(const client_t& client, uint32_t id, int version = 1);
4692 zwp_tablet_v1_t(const resource_t &resource);
4693
4694 static const std::string interface_name;
4695
4696 operator zwp_tablet_v1*() const;
4697
4703 std::function<void()> &on_destroy();
4704
4712 void name(std::string const& name, bool post = true);
4713
4716 static constexpr std::uint32_t name_since_version = 1;
4717
4726 void id(uint32_t vid, uint32_t pid, bool post = true);
4727
4730 static constexpr std::uint32_t id_since_version = 1;
4731
4751 void path(std::string const& path, bool post = true);
4752
4755 static constexpr std::uint32_t path_since_version = 1;
4756
4765 void done(bool post = true);
4766
4769 static constexpr std::uint32_t done_since_version = 1;
4770
4780 void removed(bool post = true);
4781
4784 static constexpr std::uint32_t removed_since_version = 1;
4785
4786};
4787
4789
4790
4798class zwp_tablet_manager_v2_t : public resource_t
4799{
4800private:
4801 struct events_t : public resource_t::events_base_t
4802 {
4803 std::function<void(zwp_tablet_seat_v2_t, seat_t)> get_tablet_seat;
4804 std::function<void()> destroy;
4805 };
4806
4807 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4808
4809protected:
4810 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_manager_v2_interface;
4811 static constexpr const unsigned int max_version = 1;
4812
4813 friend class global_t<zwp_tablet_manager_v2_t>;
4814 friend class global_base_t;
4815
4816public:
4817 zwp_tablet_manager_v2_t() = default;
4818 zwp_tablet_manager_v2_t(const client_t& client, uint32_t id, int version = 1);
4819 zwp_tablet_manager_v2_t(const resource_t &resource);
4820
4821 static const std::string interface_name;
4822
4823 operator zwp_tablet_manager_v2*() const;
4824
4833 std::function<void(zwp_tablet_seat_v2_t, seat_t)> &on_get_tablet_seat();
4834
4841 std::function<void()> &on_destroy();
4842
4843};
4844
4846
4847
4855class zwp_tablet_seat_v2_t : public resource_t
4856{
4857private:
4858 struct events_t : public resource_t::events_base_t
4859 {
4860 std::function<void()> destroy;
4861 };
4862
4863 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4864
4865protected:
4866 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_seat_v2_interface;
4867 static constexpr const unsigned int max_version = 1;
4868
4869 friend class global_t<zwp_tablet_seat_v2_t>;
4870 friend class global_base_t;
4871
4872public:
4873 zwp_tablet_seat_v2_t() = default;
4874 zwp_tablet_seat_v2_t(const client_t& client, uint32_t id, int version = 1);
4875 zwp_tablet_seat_v2_t(const resource_t &resource);
4876
4877 static const std::string interface_name;
4878
4879 operator zwp_tablet_seat_v2*() const;
4880
4887 std::function<void()> &on_destroy();
4888
4898 void tablet_added(bool post = true);
4899
4902 static constexpr std::uint32_t tablet_added_since_version = 1;
4903
4913 void tool_added(bool post = true);
4914
4917 static constexpr std::uint32_t tool_added_since_version = 1;
4918
4934 void pad_added(bool post = true);
4935
4938 static constexpr std::uint32_t pad_added_since_version = 1;
4939
4940};
4941
4943
4944
4969class zwp_tablet_tool_v2_t : public resource_t
4970{
4971private:
4972 struct events_t : public resource_t::events_base_t
4973 {
4974 std::function<void(uint32_t, surface_t, int32_t, int32_t)> set_cursor;
4975 std::function<void()> destroy;
4976 };
4977
4978 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4979
4980protected:
4981 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_tool_v2_interface;
4982 static constexpr const unsigned int max_version = 1;
4983
4984 friend class global_t<zwp_tablet_tool_v2_t>;
4985 friend class global_base_t;
4986
4987public:
4988 zwp_tablet_tool_v2_t() = default;
4989 zwp_tablet_tool_v2_t(const client_t& client, uint32_t id, int version = 1);
4990 zwp_tablet_tool_v2_t(const resource_t &resource);
4991
4992 static const std::string interface_name;
4993
4994 operator zwp_tablet_tool_v2*() const;
4995
5034 std::function<void(uint32_t, surface_t, int32_t, int32_t)> &on_set_cursor();
5035
5041 std::function<void()> &on_destroy();
5042
5053 void type(zwp_tablet_tool_v2_type const& tool_type, bool post = true);
5054
5057 static constexpr std::uint32_t type_since_version = 1;
5058
5080 void hardware_serial(uint32_t hardware_serial_hi, uint32_t hardware_serial_lo, bool post = true);
5081
5084 static constexpr std::uint32_t hardware_serial_since_version = 1;
5085
5102 void hardware_id_wacom(uint32_t hardware_id_hi, uint32_t hardware_id_lo, bool post = true);
5103
5106 static constexpr std::uint32_t hardware_id_wacom_since_version = 1;
5107
5120 void capability(zwp_tablet_tool_v2_capability const& capability, bool post = true);
5121
5124 static constexpr std::uint32_t capability_since_version = 1;
5125
5133 void done(bool post = true);
5134
5137 static constexpr std::uint32_t done_since_version = 1;
5138
5157 void removed(bool post = true);
5158
5161 static constexpr std::uint32_t removed_since_version = 1;
5162
5179 void proximity_in(uint32_t serial, zwp_tablet_v2_t const& tablet, surface_t const& surface, bool post = true);
5180
5183 static constexpr std::uint32_t proximity_in_since_version = 1;
5184
5201 void proximity_out(bool post = true);
5202
5205 static constexpr std::uint32_t proximity_out_since_version = 1;
5206
5224 void down(uint32_t serial, bool post = true);
5225
5228 static constexpr std::uint32_t down_since_version = 1;
5229
5250 void up(bool post = true);
5251
5254 static constexpr std::uint32_t up_since_version = 1;
5255
5263 void motion(double x, double y, bool post = true);
5264
5267 static constexpr std::uint32_t motion_since_version = 1;
5268
5279 void pressure(uint32_t pressure, bool post = true);
5280
5283 static constexpr std::uint32_t pressure_since_version = 1;
5284
5295 void distance(uint32_t distance, bool post = true);
5296
5299 static constexpr std::uint32_t distance_since_version = 1;
5300
5311 void tilt(double tilt_x, double tilt_y, bool post = true);
5312
5315 static constexpr std::uint32_t tilt_since_version = 1;
5316
5325 void rotation(double degrees, bool post = true);
5326
5329 static constexpr std::uint32_t rotation_since_version = 1;
5330
5341 void slider(int32_t position, bool post = true);
5342
5345 static constexpr std::uint32_t slider_since_version = 1;
5346
5365 void wheel(double degrees, int32_t clicks, bool post = true);
5366
5369 static constexpr std::uint32_t wheel_since_version = 1;
5370
5384 void button(uint32_t serial, uint32_t button, zwp_tablet_tool_v2_button_state const& state, bool post = true);
5385
5388 static constexpr std::uint32_t button_since_version = 1;
5389
5399 void frame(uint32_t time, bool post = true);
5400
5403 static constexpr std::uint32_t frame_since_version = 1;
5404
5407 void post_role(std::string const& msg);
5408
5409};
5410
5412
5426enum class zwp_tablet_tool_v2_type : uint32_t
5427 {
5429 pen = 0x140,
5431 eraser = 0x141,
5433 brush = 0x142,
5435 pencil = 0x143,
5437 airbrush = 0x144,
5439 finger = 0x145,
5441 mouse = 0x146,
5443 lens = 0x147
5444};
5445
5454enum class zwp_tablet_tool_v2_capability : uint32_t
5455 {
5457 tilt = 1,
5459 pressure = 2,
5461 distance = 3,
5463 rotation = 4,
5465 slider = 5,
5467 wheel = 6
5468};
5469
5475enum class zwp_tablet_tool_v2_button_state : uint32_t
5476 {
5478 released = 0,
5480 pressed = 1
5481};
5482
5486enum class zwp_tablet_tool_v2_error : uint32_t
5487 {
5489 role = 0
5490};
5491
5492
5505class zwp_tablet_v2_t : public resource_t
5506{
5507private:
5508 struct events_t : public resource_t::events_base_t
5509 {
5510 std::function<void()> destroy;
5511 };
5512
5513 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
5514
5515protected:
5516 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_v2_interface;
5517 static constexpr const unsigned int max_version = 1;
5518
5519 friend class global_t<zwp_tablet_v2_t>;
5520 friend class global_base_t;
5521
5522public:
5523 zwp_tablet_v2_t() = default;
5524 zwp_tablet_v2_t(const client_t& client, uint32_t id, int version = 1);
5525 zwp_tablet_v2_t(const resource_t &resource);
5526
5527 static const std::string interface_name;
5528
5529 operator zwp_tablet_v2*() const;
5530
5536 std::function<void()> &on_destroy();
5537
5545 void name(std::string const& name, bool post = true);
5546
5549 static constexpr std::uint32_t name_since_version = 1;
5550
5559 void id(uint32_t vid, uint32_t pid, bool post = true);
5560
5563 static constexpr std::uint32_t id_since_version = 1;
5564
5584 void path(std::string const& path, bool post = true);
5585
5588 static constexpr std::uint32_t path_since_version = 1;
5589
5598 void done(bool post = true);
5599
5602 static constexpr std::uint32_t done_since_version = 1;
5603
5613 void removed(bool post = true);
5614
5617 static constexpr std::uint32_t removed_since_version = 1;
5618
5619};
5620
5622
5623
5633class zwp_tablet_pad_ring_v2_t : public resource_t
5634{
5635private:
5636 struct events_t : public resource_t::events_base_t
5637 {
5638 std::function<void(std::string, uint32_t)> set_feedback;
5639 std::function<void()> destroy;
5640 };
5641
5642 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
5643
5644protected:
5645 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_pad_ring_v2_interface;
5646 static constexpr const unsigned int max_version = 1;
5647
5648 friend class global_t<zwp_tablet_pad_ring_v2_t>;
5649 friend class global_base_t;
5650
5651public:
5652 zwp_tablet_pad_ring_v2_t() = default;
5653 zwp_tablet_pad_ring_v2_t(const client_t& client, uint32_t id, int version = 1);
5654 zwp_tablet_pad_ring_v2_t(const resource_t &resource);
5655
5656 static const std::string interface_name;
5657
5658 operator zwp_tablet_pad_ring_v2*() const;
5659
5685 std::function<void(std::string, uint32_t)> &on_set_feedback();
5686
5692 std::function<void()> &on_destroy();
5693
5711 void source(zwp_tablet_pad_ring_v2_source const& source, bool post = true);
5712
5715 static constexpr std::uint32_t source_since_version = 1;
5716
5726 void angle(double degrees, bool post = true);
5727
5730 static constexpr std::uint32_t angle_since_version = 1;
5731
5746 void stop(bool post = true);
5747
5750 static constexpr std::uint32_t stop_since_version = 1;
5751
5770 void frame(uint32_t time, bool post = true);
5771
5774 static constexpr std::uint32_t frame_since_version = 1;
5775
5776};
5777
5779
5788enum class zwp_tablet_pad_ring_v2_source : uint32_t
5789 {
5791 finger = 1
5792};
5793
5794
5804class zwp_tablet_pad_strip_v2_t : public resource_t
5805{
5806private:
5807 struct events_t : public resource_t::events_base_t
5808 {
5809 std::function<void(std::string, uint32_t)> set_feedback;
5810 std::function<void()> destroy;
5811 };
5812
5813 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
5814
5815protected:
5816 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_pad_strip_v2_interface;
5817 static constexpr const unsigned int max_version = 1;
5818
5819 friend class global_t<zwp_tablet_pad_strip_v2_t>;
5820 friend class global_base_t;
5821
5822public:
5823 zwp_tablet_pad_strip_v2_t() = default;
5824 zwp_tablet_pad_strip_v2_t(const client_t& client, uint32_t id, int version = 1);
5825 zwp_tablet_pad_strip_v2_t(const resource_t &resource);
5826
5827 static const std::string interface_name;
5828
5829 operator zwp_tablet_pad_strip_v2*() const;
5830
5856 std::function<void(std::string, uint32_t)> &on_set_feedback();
5857
5863 std::function<void()> &on_destroy();
5864
5882 void source(zwp_tablet_pad_strip_v2_source const& source, bool post = true);
5883
5886 static constexpr std::uint32_t source_since_version = 1;
5887
5898 void position(uint32_t position, bool post = true);
5899
5902 static constexpr std::uint32_t position_since_version = 1;
5903
5918 void stop(bool post = true);
5919
5922 static constexpr std::uint32_t stop_since_version = 1;
5923
5943 void frame(uint32_t time, bool post = true);
5944
5947 static constexpr std::uint32_t frame_since_version = 1;
5948
5949};
5950
5952
5961enum class zwp_tablet_pad_strip_v2_source : uint32_t
5962 {
5964 finger = 1
5965};
5966
5967
5993class zwp_tablet_pad_group_v2_t : public resource_t
5994{
5995private:
5996 struct events_t : public resource_t::events_base_t
5997 {
5998 std::function<void()> destroy;
5999 };
6000
6001 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
6002
6003protected:
6004 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_pad_group_v2_interface;
6005 static constexpr const unsigned int max_version = 1;
6006
6007 friend class global_t<zwp_tablet_pad_group_v2_t>;
6008 friend class global_base_t;
6009
6010public:
6011 zwp_tablet_pad_group_v2_t() = default;
6012 zwp_tablet_pad_group_v2_t(const client_t& client, uint32_t id, int version = 1);
6013 zwp_tablet_pad_group_v2_t(const resource_t &resource);
6014
6015 static const std::string interface_name;
6016
6017 operator zwp_tablet_pad_group_v2*() const;
6018
6025 std::function<void()> &on_destroy();
6026
6044 void buttons(array_t const& buttons, bool post = true);
6045
6048 static constexpr std::uint32_t buttons_since_version = 1;
6049
6059 void ring(bool post = true);
6060
6063 static constexpr std::uint32_t ring_since_version = 1;
6064
6074 void strip(bool post = true);
6075
6078 static constexpr std::uint32_t strip_since_version = 1;
6079
6097 void modes(uint32_t modes, bool post = true);
6098
6101 static constexpr std::uint32_t modes_since_version = 1;
6102
6111 void done(bool post = true);
6112
6115 static constexpr std::uint32_t done_since_version = 1;
6116
6151 void mode_switch(uint32_t time, uint32_t serial, uint32_t mode, bool post = true);
6152
6155 static constexpr std::uint32_t mode_switch_since_version = 1;
6156
6157};
6158
6160
6161
6188class zwp_tablet_pad_v2_t : public resource_t
6189{
6190private:
6191 struct events_t : public resource_t::events_base_t
6192 {
6193 std::function<void(uint32_t, std::string, uint32_t)> set_feedback;
6194 std::function<void()> destroy;
6195 };
6196
6197 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
6198
6199protected:
6200 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_pad_v2_interface;
6201 static constexpr const unsigned int max_version = 1;
6202
6203 friend class global_t<zwp_tablet_pad_v2_t>;
6204 friend class global_base_t;
6205
6206public:
6207 zwp_tablet_pad_v2_t() = default;
6208 zwp_tablet_pad_v2_t(const client_t& client, uint32_t id, int version = 1);
6209 zwp_tablet_pad_v2_t(const resource_t &resource);
6210
6211 static const std::string interface_name;
6212
6213 operator zwp_tablet_pad_v2*() const;
6214
6246 std::function<void(uint32_t, std::string, uint32_t)> &on_set_feedback();
6247
6254 std::function<void()> &on_destroy();
6255
6265 void group(bool post = true);
6266
6269 static constexpr std::uint32_t group_since_version = 1;
6270
6286 void path(std::string const& path, bool post = true);
6287
6290 static constexpr std::uint32_t path_since_version = 1;
6291
6303 void buttons(uint32_t buttons, bool post = true);
6304
6307 static constexpr std::uint32_t buttons_since_version = 1;
6308
6316 void done(bool post = true);
6317
6320 static constexpr std::uint32_t done_since_version = 1;
6321
6330 void button(uint32_t time, uint32_t button, zwp_tablet_pad_v2_button_state const& state, bool post = true);
6331
6334 static constexpr std::uint32_t button_since_version = 1;
6335
6344 void enter(uint32_t serial, zwp_tablet_v2_t const& tablet, surface_t const& surface, bool post = true);
6345
6348 static constexpr std::uint32_t enter_since_version = 1;
6349
6358 void leave(uint32_t serial, surface_t const& surface, bool post = true);
6359
6362 static constexpr std::uint32_t leave_since_version = 1;
6363
6374 void removed(bool post = true);
6375
6378 static constexpr std::uint32_t removed_since_version = 1;
6379
6380};
6381
6383
6390enum class zwp_tablet_pad_v2_button_state : uint32_t
6391 {
6393 released = 0,
6395 pressed = 1
6396};
6397
6398
6432class zwp_text_input_v1_t : public resource_t
6433{
6434private:
6435 struct events_t : public resource_t::events_base_t
6436 {
6437 std::function<void(seat_t, surface_t)> activate;
6438 std::function<void(seat_t)> deactivate;
6439 std::function<void()> show_input_panel;
6440 std::function<void()> hide_input_panel;
6441 std::function<void()> reset;
6442 std::function<void(std::string, uint32_t, uint32_t)> set_surrounding_text;
6443 std::function<void(zwp_text_input_v1_content_hint, zwp_text_input_v1_content_purpose)> set_content_type;
6444 std::function<void(int32_t, int32_t, int32_t, int32_t)> set_cursor_rectangle;
6445 std::function<void(std::string)> set_preferred_language;
6446 std::function<void(uint32_t)> commit_state;
6447 std::function<void(uint32_t, uint32_t)> invoke_action;
6448 };
6449
6450 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
6451
6452protected:
6453 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_text_input_v1_interface;
6454 static constexpr const unsigned int max_version = 1;
6455
6456 friend class global_t<zwp_text_input_v1_t>;
6457 friend class global_base_t;
6458
6459public:
6460 zwp_text_input_v1_t() = default;
6461 zwp_text_input_v1_t(const client_t& client, uint32_t id, int version = 1);
6462 zwp_text_input_v1_t(const resource_t &resource);
6463
6464 static const std::string interface_name;
6465
6466 operator zwp_text_input_v1*() const;
6467
6481 std::function<void(seat_t, surface_t)> &on_activate();
6482
6491 std::function<void(seat_t)> &on_deactivate();
6492
6498 std::function<void()> &on_show_input_panel();
6499
6505 std::function<void()> &on_hide_input_panel();
6506
6514 std::function<void()> &on_reset();
6515
6528 std::function<void(std::string, uint32_t, uint32_t)> &on_set_surrounding_text();
6529
6543 std::function<void(zwp_text_input_v1_content_hint, zwp_text_input_v1_content_purpose)> &on_set_content_type();
6544
6552 std::function<void(int32_t, int32_t, int32_t, int32_t)> &on_set_cursor_rectangle();
6553
6566 std::function<void(std::string)> &on_set_preferred_language();
6567
6572 std::function<void(uint32_t)> &on_commit_state();
6573
6579 std::function<void(uint32_t, uint32_t)> &on_invoke_action();
6580
6588 void enter(surface_t const& surface, bool post = true);
6589
6592 static constexpr std::uint32_t enter_since_version = 1;
6593
6601 void leave(bool post = true);
6602
6605 static constexpr std::uint32_t leave_since_version = 1;
6606
6615 void modifiers_map(array_t const& map, bool post = true);
6616
6619 static constexpr std::uint32_t modifiers_map_since_version = 1;
6620
6627 void input_panel_state(uint32_t state, bool post = true);
6628
6631 static constexpr std::uint32_t input_panel_state_since_version = 1;
6632
6649 void preedit_string(uint32_t serial, std::string const& text, std::string const& commit, bool post = true);
6650
6653 static constexpr std::uint32_t preedit_string_since_version = 1;
6654
6669 void preedit_styling(uint32_t index, uint32_t length, zwp_text_input_v1_preedit_style const& style, bool post = true);
6670
6673 static constexpr std::uint32_t preedit_styling_since_version = 1;
6674
6685 void preedit_cursor(int32_t index, bool post = true);
6686
6689 static constexpr std::uint32_t preedit_cursor_since_version = 1;
6690
6704 void commit_string(uint32_t serial, std::string const& text, bool post = true);
6705
6708 static constexpr std::uint32_t commit_string_since_version = 1;
6709
6720 void cursor_position(int32_t index, int32_t anchor, bool post = true);
6721
6724 static constexpr std::uint32_t cursor_position_since_version = 1;
6725
6740 void delete_surrounding_text(int32_t index, uint32_t length, bool post = true);
6741
6744 static constexpr std::uint32_t delete_surrounding_text_since_version = 1;
6745
6761 void keysym(uint32_t serial, uint32_t time, uint32_t sym, keyboard_key_state const& state, uint32_t modifiers, bool post = true);
6762
6765 static constexpr std::uint32_t keysym_since_version = 1;
6766
6775 void language(uint32_t serial, std::string const& language, bool post = true);
6776
6779 static constexpr std::uint32_t language_since_version = 1;
6780
6792 void text_direction(uint32_t serial, zwp_text_input_v1_text_direction const& direction, bool post = true);
6793
6796 static constexpr std::uint32_t text_direction_since_version = 1;
6797
6798};
6799
6801
6808struct zwp_text_input_v1_content_hint : public wayland::detail::bitfield<10, 23>
6809{
6810 zwp_text_input_v1_content_hint(const wayland::detail::bitfield<10, 23> &b)
6811 : wayland::detail::bitfield<10, 23>(b) {}
6812 zwp_text_input_v1_content_hint(const uint32_t value)
6813 : wayland::detail::bitfield<10, 23>(value) {}
6815 static const wayland::detail::bitfield<10, 23> none;
6817 static const wayland::detail::bitfield<10, 23> _default;
6819 static const wayland::detail::bitfield<10, 23> password;
6821 static const wayland::detail::bitfield<10, 23> auto_completion;
6823 static const wayland::detail::bitfield<10, 23> auto_correction;
6825 static const wayland::detail::bitfield<10, 23> auto_capitalization;
6827 static const wayland::detail::bitfield<10, 23> lowercase;
6829 static const wayland::detail::bitfield<10, 23> uppercase;
6831 static const wayland::detail::bitfield<10, 23> titlecase;
6833 static const wayland::detail::bitfield<10, 23> hidden_text;
6835 static const wayland::detail::bitfield<10, 23> sensitive_data;
6837 static const wayland::detail::bitfield<10, 23> latin;
6839 static const wayland::detail::bitfield<10, 23> multiline;
6840};
6841
6851enum class zwp_text_input_v1_content_purpose : uint32_t
6852 {
6854 normal = 0,
6856 alpha = 1,
6858 digits = 2,
6860 number = 3,
6862 phone = 4,
6864 url = 5,
6866 email = 6,
6868 name = 7,
6870 password = 8,
6872 date = 9,
6874 time = 10,
6876 datetime = 11,
6878 terminal = 12
6879};
6880
6884enum class zwp_text_input_v1_preedit_style : uint32_t
6885 {
6887 _default = 0,
6889 none = 1,
6890 active = 2,
6891 inactive = 3,
6892 highlight = 4,
6893 underline = 5,
6894 selection = 6,
6895 incorrect = 7
6896};
6897
6901enum class zwp_text_input_v1_text_direction : uint32_t
6902 {
6904 _auto = 0,
6906 ltr = 1,
6908 rtl = 2
6909};
6910
6911
6917class zwp_text_input_manager_v1_t : public resource_t
6918{
6919private:
6920 struct events_t : public resource_t::events_base_t
6921 {
6922 std::function<void(zwp_text_input_v1_t)> create_text_input;
6923 };
6924
6925 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
6926
6927protected:
6928 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_text_input_manager_v1_interface;
6929 static constexpr const unsigned int max_version = 1;
6930
6932 friend class global_base_t;
6933
6934public:
6935 zwp_text_input_manager_v1_t() = default;
6936 zwp_text_input_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
6937 zwp_text_input_manager_v1_t(const resource_t &resource);
6938
6939 static const std::string interface_name;
6940
6941 operator zwp_text_input_manager_v1*() const;
6942
6949 std::function<void(zwp_text_input_v1_t)> &on_create_text_input();
6950
6951};
6952
6954
6955
6986class zwp_text_input_v3_t : public resource_t
6987{
6988private:
6989 struct events_t : public resource_t::events_base_t
6990 {
6991 std::function<void()> destroy;
6992 std::function<void()> enable;
6993 std::function<void()> disable;
6994 std::function<void(std::string, int32_t, int32_t)> set_surrounding_text;
6995 std::function<void(zwp_text_input_v3_change_cause)> set_text_change_cause;
6996 std::function<void(zwp_text_input_v3_content_hint, zwp_text_input_v3_content_purpose)> set_content_type;
6997 std::function<void(int32_t, int32_t, int32_t, int32_t)> set_cursor_rectangle;
6998 std::function<void()> commit;
6999 };
7000
7001 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7002
7003protected:
7004 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_text_input_v3_interface;
7005 static constexpr const unsigned int max_version = 1;
7006
7007 friend class global_t<zwp_text_input_v3_t>;
7008 friend class global_base_t;
7009
7010public:
7011 zwp_text_input_v3_t() = default;
7012 zwp_text_input_v3_t(const client_t& client, uint32_t id, int version = 1);
7013 zwp_text_input_v3_t(const resource_t &resource);
7014
7015 static const std::string interface_name;
7016
7017 operator zwp_text_input_v3*() const;
7018
7025 std::function<void()> &on_destroy();
7026
7060 std::function<void()> &on_enable();
7061
7071 std::function<void()> &on_disable();
7072
7111 std::function<void(std::string, int32_t, int32_t)> &on_set_surrounding_text();
7112
7132 std::function<void(zwp_text_input_v3_change_cause)> &on_set_text_change_cause();
7133
7151 std::function<void(zwp_text_input_v3_content_hint, zwp_text_input_v3_content_purpose)> &on_set_content_type();
7152
7178 std::function<void(int32_t, int32_t, int32_t, int32_t)> &on_set_cursor_rectangle();
7179
7207 std::function<void()> &on_commit();
7208
7222 void enter(surface_t const& surface, bool post = true);
7223
7226 static constexpr std::uint32_t enter_since_version = 1;
7227
7244 void leave(surface_t const& surface, bool post = true);
7245
7248 static constexpr std::uint32_t leave_since_version = 1;
7249
7275 void preedit_string(std::string const& text, int32_t cursor_begin, int32_t cursor_end, bool post = true);
7276
7279 static constexpr std::uint32_t preedit_string_since_version = 1;
7280
7294 void commit_string(std::string const& text, bool post = true);
7295
7298 static constexpr std::uint32_t commit_string_since_version = 1;
7299
7320 void delete_surrounding_text(uint32_t before_length, uint32_t after_length, bool post = true);
7321
7324 static constexpr std::uint32_t delete_surrounding_text_since_version = 1;
7325
7353 void done(uint32_t serial, bool post = true);
7354
7357 static constexpr std::uint32_t done_since_version = 1;
7358
7359};
7360
7362
7368enum class zwp_text_input_v3_change_cause : uint32_t
7369 {
7371 input_method = 0,
7373 other = 1
7374};
7375
7382struct zwp_text_input_v3_content_hint : public wayland::detail::bitfield<10, 28>
7383{
7384 zwp_text_input_v3_content_hint(const wayland::detail::bitfield<10, 28> &b)
7385 : wayland::detail::bitfield<10, 28>(b) {}
7386 zwp_text_input_v3_content_hint(const uint32_t value)
7387 : wayland::detail::bitfield<10, 28>(value) {}
7389 static const wayland::detail::bitfield<10, 28> none;
7391 static const wayland::detail::bitfield<10, 28> completion;
7393 static const wayland::detail::bitfield<10, 28> spellcheck;
7395 static const wayland::detail::bitfield<10, 28> auto_capitalization;
7397 static const wayland::detail::bitfield<10, 28> lowercase;
7399 static const wayland::detail::bitfield<10, 28> uppercase;
7401 static const wayland::detail::bitfield<10, 28> titlecase;
7403 static const wayland::detail::bitfield<10, 28> hidden_text;
7405 static const wayland::detail::bitfield<10, 28> sensitive_data;
7407 static const wayland::detail::bitfield<10, 28> latin;
7409 static const wayland::detail::bitfield<10, 28> multiline;
7410};
7411
7421enum class zwp_text_input_v3_content_purpose : uint32_t
7422 {
7424 normal = 0,
7426 alpha = 1,
7428 digits = 2,
7430 number = 3,
7432 phone = 4,
7434 url = 5,
7436 email = 6,
7438 name = 7,
7440 password = 8,
7442 pin = 9,
7444 date = 10,
7446 time = 11,
7448 datetime = 12,
7450 terminal = 13
7451};
7452
7453
7459class zwp_text_input_manager_v3_t : public resource_t
7460{
7461private:
7462 struct events_t : public resource_t::events_base_t
7463 {
7464 std::function<void()> destroy;
7465 std::function<void(zwp_text_input_v3_t, seat_t)> get_text_input;
7466 };
7467
7468 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7469
7470protected:
7471 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_text_input_manager_v3_interface;
7472 static constexpr const unsigned int max_version = 1;
7473
7475 friend class global_base_t;
7476
7477public:
7478 zwp_text_input_manager_v3_t() = default;
7479 zwp_text_input_manager_v3_t(const client_t& client, uint32_t id, int version = 1);
7480 zwp_text_input_manager_v3_t(const resource_t &resource);
7481
7482 static const std::string interface_name;
7483
7484 operator zwp_text_input_manager_v3*() const;
7485
7491 std::function<void()> &on_destroy();
7492
7500 std::function<void(zwp_text_input_v3_t, seat_t)> &on_get_text_input();
7501
7502};
7503
7505
7506
7514class xdg_activation_v1_t : public resource_t
7515{
7516private:
7517 struct events_t : public resource_t::events_base_t
7518 {
7519 std::function<void()> destroy;
7520 std::function<void(xdg_activation_token_v1_t)> get_activation_token;
7521 std::function<void(std::string, surface_t)> activate;
7522 };
7523
7524 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7525
7526protected:
7527 static constexpr const wl_interface *interface = &wayland::server::detail::xdg_activation_v1_interface;
7528 static constexpr const unsigned int max_version = 1;
7529
7530 friend class global_t<xdg_activation_v1_t>;
7531 friend class global_base_t;
7532
7533public:
7534 xdg_activation_v1_t() = default;
7535 xdg_activation_v1_t(const client_t& client, uint32_t id, int version = 1);
7536 xdg_activation_v1_t(const resource_t &resource);
7537
7538 static const std::string interface_name;
7539
7540 operator xdg_activation_v1*() const;
7541
7551 std::function<void()> &on_destroy();
7552
7561 std::function<void(xdg_activation_token_v1_t)> &on_get_activation_token();
7562
7579 std::function<void(std::string, surface_t)> &on_activate();
7580
7581};
7582
7584
7585
7598class xdg_activation_token_v1_t : public resource_t
7599{
7600private:
7601 struct events_t : public resource_t::events_base_t
7602 {
7603 std::function<void(uint32_t, seat_t)> set_serial;
7604 std::function<void(std::string)> set_app_id;
7605 std::function<void(surface_t)> set_surface;
7606 std::function<void()> commit;
7607 std::function<void()> destroy;
7608 };
7609
7610 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7611
7612protected:
7613 static constexpr const wl_interface *interface = &wayland::server::detail::xdg_activation_token_v1_interface;
7614 static constexpr const unsigned int max_version = 1;
7615
7616 friend class global_t<xdg_activation_token_v1_t>;
7617 friend class global_base_t;
7618
7619public:
7620 xdg_activation_token_v1_t() = default;
7621 xdg_activation_token_v1_t(const client_t& client, uint32_t id, int version = 1);
7622 xdg_activation_token_v1_t(const resource_t &resource);
7623
7624 static const std::string interface_name;
7625
7626 operator xdg_activation_token_v1*() const;
7627
7638 std::function<void(uint32_t, seat_t)> &on_set_serial();
7639
7649 std::function<void(std::string)> &on_set_app_id();
7650
7660 std::function<void(surface_t)> &on_set_surface();
7661
7668 std::function<void()> &on_commit();
7669
7676 std::function<void()> &on_destroy();
7677
7696 void done(std::string const& token, bool post = true);
7697
7700 static constexpr std::uint32_t done_since_version = 1;
7701
7704 void post_already_used(std::string const& msg);
7705
7706};
7707
7709
7713enum class xdg_activation_token_v1_error : uint32_t
7714 {
7716 already_used = 0
7717};
7718
7719
7746class zxdg_decoration_manager_v1_t : public resource_t
7747{
7748private:
7749 struct events_t : public resource_t::events_base_t
7750 {
7751 std::function<void()> destroy;
7752 std::function<void(zxdg_toplevel_decoration_v1_t, xdg_toplevel_t)> get_toplevel_decoration;
7753 };
7754
7755 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7756
7757protected:
7758 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_decoration_manager_v1_interface;
7759 static constexpr const unsigned int max_version = 1;
7760
7762 friend class global_base_t;
7763
7764public:
7765 zxdg_decoration_manager_v1_t() = default;
7766 zxdg_decoration_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
7767 zxdg_decoration_manager_v1_t(const resource_t &resource);
7768
7769 static const std::string interface_name;
7770
7771 operator zxdg_decoration_manager_v1*() const;
7772
7779 std::function<void()> &on_destroy();
7780
7795
7796};
7797
7799
7800
7811class zxdg_toplevel_decoration_v1_t : public resource_t
7812{
7813private:
7814 struct events_t : public resource_t::events_base_t
7815 {
7816 std::function<void()> destroy;
7817 std::function<void(zxdg_toplevel_decoration_v1_mode)> set_mode;
7818 std::function<void()> unset_mode;
7819 };
7820
7821 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7822
7823protected:
7824 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_toplevel_decoration_v1_interface;
7825 static constexpr const unsigned int max_version = 1;
7826
7828 friend class global_base_t;
7829
7830public:
7832 zxdg_toplevel_decoration_v1_t(const client_t& client, uint32_t id, int version = 1);
7833 zxdg_toplevel_decoration_v1_t(const resource_t &resource);
7834
7835 static const std::string interface_name;
7836
7837 operator zxdg_toplevel_decoration_v1*() const;
7838
7845 std::function<void()> &on_destroy();
7846
7870 std::function<void(zxdg_toplevel_decoration_v1_mode)> &on_set_mode();
7871
7880 std::function<void()> &on_unset_mode();
7881
7894 void configure(zxdg_toplevel_decoration_v1_mode const& mode, bool post = true);
7895
7898 static constexpr std::uint32_t configure_since_version = 1;
7899
7902 void post_unconfigured_buffer(std::string const& msg);
7903
7906 void post_already_constructed(std::string const& msg);
7907
7910 void post_orphaned(std::string const& msg);
7911
7912};
7913
7915
7919enum class zxdg_toplevel_decoration_v1_error : uint32_t
7920 {
7922 unconfigured_buffer = 0,
7924 already_constructed = 1,
7926 orphaned = 2
7927};
7928
7934enum class zxdg_toplevel_decoration_v1_mode : uint32_t
7935 {
7937 client_side = 1,
7939 server_side = 2
7940};
7941
7942
7949class zxdg_exporter_v1_t : public resource_t
7950{
7951private:
7952 struct events_t : public resource_t::events_base_t
7953 {
7954 std::function<void()> destroy;
7955 std::function<void(zxdg_exported_v1_t, surface_t)> _export;
7956 };
7957
7958 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7959
7960protected:
7961 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_exporter_v1_interface;
7962 static constexpr const unsigned int max_version = 1;
7963
7964 friend class global_t<zxdg_exporter_v1_t>;
7965 friend class global_base_t;
7966
7967public:
7968 zxdg_exporter_v1_t() = default;
7969 zxdg_exporter_v1_t(const client_t& client, uint32_t id, int version = 1);
7970 zxdg_exporter_v1_t(const resource_t &resource);
7971
7972 static const std::string interface_name;
7973
7974 operator zxdg_exporter_v1*() const;
7975
7982 std::function<void()> &on_destroy();
7983
7998 std::function<void(zxdg_exported_v1_t, surface_t)> &on_export();
7999
8000};
8001
8003
8004
8012class zxdg_importer_v1_t : public resource_t
8013{
8014private:
8015 struct events_t : public resource_t::events_base_t
8016 {
8017 std::function<void()> destroy;
8018 std::function<void(zxdg_imported_v1_t, std::string)> import;
8019 };
8020
8021 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8022
8023protected:
8024 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_importer_v1_interface;
8025 static constexpr const unsigned int max_version = 1;
8026
8027 friend class global_t<zxdg_importer_v1_t>;
8028 friend class global_base_t;
8029
8030public:
8031 zxdg_importer_v1_t() = default;
8032 zxdg_importer_v1_t(const client_t& client, uint32_t id, int version = 1);
8033 zxdg_importer_v1_t(const resource_t &resource);
8034
8035 static const std::string interface_name;
8036
8037 operator zxdg_importer_v1*() const;
8038
8045 std::function<void()> &on_destroy();
8046
8058 std::function<void(zxdg_imported_v1_t, std::string)> &on_import();
8059
8060};
8061
8063
8064
8073class zxdg_exported_v1_t : public resource_t
8074{
8075private:
8076 struct events_t : public resource_t::events_base_t
8077 {
8078 std::function<void()> destroy;
8079 };
8080
8081 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8082
8083protected:
8084 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_exported_v1_interface;
8085 static constexpr const unsigned int max_version = 1;
8086
8087 friend class global_t<zxdg_exported_v1_t>;
8088 friend class global_base_t;
8089
8090public:
8091 zxdg_exported_v1_t() = default;
8092 zxdg_exported_v1_t(const client_t& client, uint32_t id, int version = 1);
8093 zxdg_exported_v1_t(const resource_t &resource);
8094
8095 static const std::string interface_name;
8096
8097 operator zxdg_exported_v1*() const;
8098
8106 std::function<void()> &on_destroy();
8107
8117 void handle(std::string const& handle, bool post = true);
8118
8121 static constexpr std::uint32_t handle_since_version = 1;
8122
8123};
8124
8126
8127
8135class zxdg_imported_v1_t : public resource_t
8136{
8137private:
8138 struct events_t : public resource_t::events_base_t
8139 {
8140 std::function<void()> destroy;
8141 std::function<void(surface_t)> set_parent_of;
8142 };
8143
8144 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8145
8146protected:
8147 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_imported_v1_interface;
8148 static constexpr const unsigned int max_version = 1;
8149
8150 friend class global_t<zxdg_imported_v1_t>;
8151 friend class global_base_t;
8152
8153public:
8154 zxdg_imported_v1_t() = default;
8155 zxdg_imported_v1_t(const client_t& client, uint32_t id, int version = 1);
8156 zxdg_imported_v1_t(const resource_t &resource);
8157
8158 static const std::string interface_name;
8159
8160 operator zxdg_imported_v1*() const;
8161
8169 std::function<void()> &on_destroy();
8170
8180 std::function<void(surface_t)> &on_set_parent_of();
8181
8190 void destroyed(bool post = true);
8191
8194 static constexpr std::uint32_t destroyed_since_version = 1;
8195
8196};
8197
8199
8200
8207class zxdg_exporter_v2_t : public resource_t
8208{
8209private:
8210 struct events_t : public resource_t::events_base_t
8211 {
8212 std::function<void()> destroy;
8213 std::function<void(zxdg_exported_v2_t, surface_t)> export_toplevel;
8214 };
8215
8216 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8217
8218protected:
8219 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_exporter_v2_interface;
8220 static constexpr const unsigned int max_version = 1;
8221
8222 friend class global_t<zxdg_exporter_v2_t>;
8223 friend class global_base_t;
8224
8225public:
8226 zxdg_exporter_v2_t() = default;
8227 zxdg_exporter_v2_t(const client_t& client, uint32_t id, int version = 1);
8228 zxdg_exporter_v2_t(const resource_t &resource);
8229
8230 static const std::string interface_name;
8231
8232 operator zxdg_exporter_v2*() const;
8233
8240 std::function<void()> &on_destroy();
8241
8257 std::function<void(zxdg_exported_v2_t, surface_t)> &on_export_toplevel();
8258
8261 void post_invalid_surface(std::string const& msg);
8262
8263};
8264
8266
8273enum class zxdg_exporter_v2_error : uint32_t
8274 {
8276 invalid_surface = 0
8277};
8278
8279
8287class zxdg_importer_v2_t : public resource_t
8288{
8289private:
8290 struct events_t : public resource_t::events_base_t
8291 {
8292 std::function<void()> destroy;
8293 std::function<void(zxdg_imported_v2_t, std::string)> import_toplevel;
8294 };
8295
8296 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8297
8298protected:
8299 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_importer_v2_interface;
8300 static constexpr const unsigned int max_version = 1;
8301
8302 friend class global_t<zxdg_importer_v2_t>;
8303 friend class global_base_t;
8304
8305public:
8306 zxdg_importer_v2_t() = default;
8307 zxdg_importer_v2_t(const client_t& client, uint32_t id, int version = 1);
8308 zxdg_importer_v2_t(const resource_t &resource);
8309
8310 static const std::string interface_name;
8311
8312 operator zxdg_importer_v2*() const;
8313
8320 std::function<void()> &on_destroy();
8321
8333 std::function<void(zxdg_imported_v2_t, std::string)> &on_import_toplevel();
8334
8335};
8336
8338
8339
8348class zxdg_exported_v2_t : public resource_t
8349{
8350private:
8351 struct events_t : public resource_t::events_base_t
8352 {
8353 std::function<void()> destroy;
8354 };
8355
8356 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8357
8358protected:
8359 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_exported_v2_interface;
8360 static constexpr const unsigned int max_version = 1;
8361
8362 friend class global_t<zxdg_exported_v2_t>;
8363 friend class global_base_t;
8364
8365public:
8366 zxdg_exported_v2_t() = default;
8367 zxdg_exported_v2_t(const client_t& client, uint32_t id, int version = 1);
8368 zxdg_exported_v2_t(const resource_t &resource);
8369
8370 static const std::string interface_name;
8371
8372 operator zxdg_exported_v2*() const;
8373
8381 std::function<void()> &on_destroy();
8382
8392 void handle(std::string const& handle, bool post = true);
8393
8396 static constexpr std::uint32_t handle_since_version = 1;
8397
8398};
8399
8401
8402
8410class zxdg_imported_v2_t : public resource_t
8411{
8412private:
8413 struct events_t : public resource_t::events_base_t
8414 {
8415 std::function<void()> destroy;
8416 std::function<void(surface_t)> set_parent_of;
8417 };
8418
8419 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8420
8421protected:
8422 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_imported_v2_interface;
8423 static constexpr const unsigned int max_version = 1;
8424
8425 friend class global_t<zxdg_imported_v2_t>;
8426 friend class global_base_t;
8427
8428public:
8429 zxdg_imported_v2_t() = default;
8430 zxdg_imported_v2_t(const client_t& client, uint32_t id, int version = 1);
8431 zxdg_imported_v2_t(const resource_t &resource);
8432
8433 static const std::string interface_name;
8434
8435 operator zxdg_imported_v2*() const;
8436
8444 std::function<void()> &on_destroy();
8445
8456 std::function<void(surface_t)> &on_set_parent_of();
8457
8466 void destroyed(bool post = true);
8467
8470 static constexpr std::uint32_t destroyed_since_version = 1;
8471
8474 void post_invalid_surface(std::string const& msg);
8475
8476};
8477
8479
8486enum class zxdg_imported_v2_error : uint32_t
8487 {
8489 invalid_surface = 0
8490};
8491
8492
8498class zxdg_output_manager_v1_t : public resource_t
8499{
8500private:
8501 struct events_t : public resource_t::events_base_t
8502 {
8503 std::function<void()> destroy;
8504 std::function<void(zxdg_output_v1_t, output_t)> get_xdg_output;
8505 };
8506
8507 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8508
8509protected:
8510 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_output_manager_v1_interface;
8511 static constexpr const unsigned int max_version = 3;
8512
8513 friend class global_t<zxdg_output_manager_v1_t>;
8514 friend class global_base_t;
8515
8516public:
8517 zxdg_output_manager_v1_t() = default;
8518 zxdg_output_manager_v1_t(const client_t& client, uint32_t id, int version = 3);
8519 zxdg_output_manager_v1_t(const resource_t &resource);
8520
8521 static const std::string interface_name;
8522
8523 operator zxdg_output_manager_v1*() const;
8524
8533 std::function<void()> &on_destroy();
8534
8542 std::function<void(zxdg_output_v1_t, output_t)> &on_get_xdg_output();
8543
8544};
8545
8547
8548
8562class zxdg_output_v1_t : public resource_t
8563{
8564private:
8565 struct events_t : public resource_t::events_base_t
8566 {
8567 std::function<void()> destroy;
8568 };
8569
8570 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8571
8572protected:
8573 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_output_v1_interface;
8574 static constexpr const unsigned int max_version = 3;
8575
8576 friend class global_t<zxdg_output_v1_t>;
8577 friend class global_base_t;
8578
8579public:
8580 zxdg_output_v1_t() = default;
8581 zxdg_output_v1_t(const client_t& client, uint32_t id, int version = 3);
8582 zxdg_output_v1_t(const resource_t &resource);
8583
8584 static const std::string interface_name;
8585
8586 operator zxdg_output_v1*() const;
8587
8594 std::function<void()> &on_destroy();
8595
8608 void logical_position(int32_t x, int32_t y, bool post = true);
8609
8612 static constexpr std::uint32_t logical_position_since_version = 1;
8613
8654 void logical_size(int32_t width, int32_t height, bool post = true);
8655
8658 static constexpr std::uint32_t logical_size_since_version = 1;
8659
8673 void done(bool post = true);
8674
8677 static constexpr std::uint32_t done_since_version = 1;
8678
8702 void name(std::string const& name, bool post = true);
8703
8706 static constexpr std::uint32_t name_since_version = 2;
8707
8711 bool can_name() const;
8712
8733 void description(std::string const& description, bool post = true);
8734
8737 static constexpr std::uint32_t description_since_version = 2;
8738
8742 bool can_description() const;
8743
8744};
8745
8747
8748
8757class zxdg_shell_v6_t : public resource_t
8758{
8759private:
8760 struct events_t : public resource_t::events_base_t
8761 {
8762 std::function<void()> destroy;
8763 std::function<void(zxdg_positioner_v6_t)> create_positioner;
8764 std::function<void(zxdg_surface_v6_t, surface_t)> get_xdg_surface;
8765 std::function<void(uint32_t)> pong;
8766 };
8767
8768 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8769
8770protected:
8771 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_shell_v6_interface;
8772 static constexpr const unsigned int max_version = 1;
8773
8774 friend class global_t<zxdg_shell_v6_t>;
8775 friend class global_base_t;
8776
8777public:
8778 zxdg_shell_v6_t() = default;
8779 zxdg_shell_v6_t(const client_t& client, uint32_t id, int version = 1);
8780 zxdg_shell_v6_t(const resource_t &resource);
8781
8782 static const std::string interface_name;
8783
8784 operator zxdg_shell_v6*() const;
8785
8795 std::function<void()> &on_destroy();
8796
8805 std::function<void(zxdg_positioner_v6_t)> &on_create_positioner();
8806
8824 std::function<void(zxdg_surface_v6_t, surface_t)> &on_get_xdg_surface();
8825
8833 std::function<void(uint32_t)> &on_pong();
8834
8851 void ping(uint32_t serial, bool post = true);
8852
8855 static constexpr std::uint32_t ping_since_version = 1;
8856
8859 void post_role(std::string const& msg);
8860
8863 void post_defunct_surfaces(std::string const& msg);
8864
8867 void post_not_the_topmost_popup(std::string const& msg);
8868
8871 void post_invalid_popup_parent(std::string const& msg);
8872
8875 void post_invalid_surface_state(std::string const& msg);
8876
8879 void post_invalid_positioner(std::string const& msg);
8880
8881};
8882
8884
8888enum class zxdg_shell_v6_error : uint32_t
8889 {
8891 role = 0,
8893 defunct_surfaces = 1,
8895 not_the_topmost_popup = 2,
8897 invalid_popup_parent = 3,
8899 invalid_surface_state = 4,
8901 invalid_positioner = 5
8902};
8903
8904
8928class zxdg_positioner_v6_t : public resource_t
8929{
8930private:
8931 struct events_t : public resource_t::events_base_t
8932 {
8933 std::function<void()> destroy;
8934 std::function<void(int32_t, int32_t)> set_size;
8935 std::function<void(int32_t, int32_t, int32_t, int32_t)> set_anchor_rect;
8936 std::function<void(zxdg_positioner_v6_anchor)> set_anchor;
8937 std::function<void(zxdg_positioner_v6_gravity)> set_gravity;
8938 std::function<void(zxdg_positioner_v6_constraint_adjustment)> set_constraint_adjustment;
8939 std::function<void(int32_t, int32_t)> set_offset;
8940 };
8941
8942 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8943
8944protected:
8945 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_positioner_v6_interface;
8946 static constexpr const unsigned int max_version = 1;
8947
8948 friend class global_t<zxdg_positioner_v6_t>;
8949 friend class global_base_t;
8950
8951public:
8952 zxdg_positioner_v6_t() = default;
8953 zxdg_positioner_v6_t(const client_t& client, uint32_t id, int version = 1);
8954 zxdg_positioner_v6_t(const resource_t &resource);
8955
8956 static const std::string interface_name;
8957
8958 operator zxdg_positioner_v6*() const;
8959
8965 std::function<void()> &on_destroy();
8966
8978 std::function<void(int32_t, int32_t)> &on_set_size();
8979
8998 std::function<void(int32_t, int32_t, int32_t, int32_t)> &on_set_anchor_rect();
8999
9015 std::function<void(zxdg_positioner_v6_anchor)> &on_set_anchor();
9016
9031 std::function<void(zxdg_positioner_v6_gravity)> &on_set_gravity();
9032
9052
9070 std::function<void(int32_t, int32_t)> &on_set_offset();
9071
9074 void post_invalid_input(std::string const& msg);
9075
9076};
9077
9079
9083enum class zxdg_positioner_v6_error : uint32_t
9084 {
9086 invalid_input = 0
9087};
9088
9092struct zxdg_positioner_v6_anchor : public wayland::detail::bitfield<4, 37>
9093{
9094 zxdg_positioner_v6_anchor(const wayland::detail::bitfield<4, 37> &b)
9095 : wayland::detail::bitfield<4, 37>(b) {}
9096 zxdg_positioner_v6_anchor(const uint32_t value)
9097 : wayland::detail::bitfield<4, 37>(value) {}
9099 static const wayland::detail::bitfield<4, 37> none;
9101 static const wayland::detail::bitfield<4, 37> top;
9103 static const wayland::detail::bitfield<4, 37> bottom;
9105 static const wayland::detail::bitfield<4, 37> left;
9107 static const wayland::detail::bitfield<4, 37> right;
9108};
9109
9113struct zxdg_positioner_v6_gravity : public wayland::detail::bitfield<4, 38>
9114{
9115 zxdg_positioner_v6_gravity(const wayland::detail::bitfield<4, 38> &b)
9116 : wayland::detail::bitfield<4, 38>(b) {}
9117 zxdg_positioner_v6_gravity(const uint32_t value)
9118 : wayland::detail::bitfield<4, 38>(value) {}
9120 static const wayland::detail::bitfield<4, 38> none;
9122 static const wayland::detail::bitfield<4, 38> top;
9124 static const wayland::detail::bitfield<4, 38> bottom;
9126 static const wayland::detail::bitfield<4, 38> left;
9128 static const wayland::detail::bitfield<4, 38> right;
9129};
9130
9146struct zxdg_positioner_v6_constraint_adjustment : public wayland::detail::bitfield<6, 39>
9147{
9148 zxdg_positioner_v6_constraint_adjustment(const wayland::detail::bitfield<6, 39> &b)
9149 : wayland::detail::bitfield<6, 39>(b) {}
9150 zxdg_positioner_v6_constraint_adjustment(const uint32_t value)
9151 : wayland::detail::bitfield<6, 39>(value) {}
9152 static const wayland::detail::bitfield<6, 39> none;
9153 static const wayland::detail::bitfield<6, 39> slide_x;
9154 static const wayland::detail::bitfield<6, 39> slide_y;
9155 static const wayland::detail::bitfield<6, 39> flip_x;
9156 static const wayland::detail::bitfield<6, 39> flip_y;
9157 static const wayland::detail::bitfield<6, 39> resize_x;
9158 static const wayland::detail::bitfield<6, 39> resize_y;
9159};
9160
9161
9196class zxdg_surface_v6_t : public resource_t
9197{
9198private:
9199 struct events_t : public resource_t::events_base_t
9200 {
9201 std::function<void()> destroy;
9202 std::function<void(zxdg_toplevel_v6_t)> get_toplevel;
9203 std::function<void(zxdg_popup_v6_t, zxdg_surface_v6_t, zxdg_positioner_v6_t)> get_popup;
9204 std::function<void(int32_t, int32_t, int32_t, int32_t)> set_window_geometry;
9205 std::function<void(uint32_t)> ack_configure;
9206 };
9207
9208 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
9209
9210protected:
9211 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_surface_v6_interface;
9212 static constexpr const unsigned int max_version = 1;
9213
9214 friend class global_t<zxdg_surface_v6_t>;
9215 friend class global_base_t;
9216
9217public:
9218 zxdg_surface_v6_t() = default;
9219 zxdg_surface_v6_t(const client_t& client, uint32_t id, int version = 1);
9220 zxdg_surface_v6_t(const resource_t &resource);
9221
9222 static const std::string interface_name;
9223
9224 operator zxdg_surface_v6*() const;
9225
9232 std::function<void()> &on_destroy();
9233
9244 std::function<void(zxdg_toplevel_v6_t)> &on_get_toplevel();
9245
9259
9292 std::function<void(int32_t, int32_t, int32_t, int32_t)> &on_set_window_geometry();
9293
9318 std::function<void(uint32_t)> &on_ack_configure();
9319
9341 void configure(uint32_t serial, bool post = true);
9342
9345 static constexpr std::uint32_t configure_since_version = 1;
9346
9349 void post_not_constructed(std::string const& msg);
9350
9353 void post_already_constructed(std::string const& msg);
9354
9357 void post_unconfigured_buffer(std::string const& msg);
9358
9359};
9360
9362
9366enum class zxdg_surface_v6_error : uint32_t
9367 {
9368 not_constructed = 1,
9369 already_constructed = 2,
9370 unconfigured_buffer = 3
9371};
9372
9373
9383class zxdg_toplevel_v6_t : public resource_t
9384{
9385private:
9386 struct events_t : public resource_t::events_base_t
9387 {
9388 std::function<void()> destroy;
9389 std::function<void(zxdg_toplevel_v6_t)> set_parent;
9390 std::function<void(std::string)> set_title;
9391 std::function<void(std::string)> set_app_id;
9392 std::function<void(seat_t, uint32_t, int32_t, int32_t)> show_window_menu;
9393 std::function<void(seat_t, uint32_t)> move;
9394 std::function<void(seat_t, uint32_t, zxdg_toplevel_v6_resize_edge)> resize;
9395 std::function<void(int32_t, int32_t)> set_max_size;
9396 std::function<void(int32_t, int32_t)> set_min_size;
9397 std::function<void()> set_maximized;
9398 std::function<void()> unset_maximized;
9399 std::function<void(output_t)> set_fullscreen;
9400 std::function<void()> unset_fullscreen;
9401 std::function<void()> set_minimized;
9402 };
9403
9404 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
9405
9406protected:
9407 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_toplevel_v6_interface;
9408 static constexpr const unsigned int max_version = 1;
9409
9410 friend class global_t<zxdg_toplevel_v6_t>;
9411 friend class global_base_t;
9412
9413public:
9414 zxdg_toplevel_v6_t() = default;
9415 zxdg_toplevel_v6_t(const client_t& client, uint32_t id, int version = 1);
9416 zxdg_toplevel_v6_t(const resource_t &resource);
9417
9418 static const std::string interface_name;
9419
9420 operator zxdg_toplevel_v6*() const;
9421
9429 std::function<void()> &on_destroy();
9430
9443 std::function<void(zxdg_toplevel_v6_t)> &on_set_parent();
9444
9457 std::function<void(std::string)> &on_set_title();
9458
9484 std::function<void(std::string)> &on_set_app_id();
9485
9505 std::function<void(seat_t, uint32_t, int32_t, int32_t)> &on_show_window_menu();
9506
9529 std::function<void(seat_t, uint32_t)> &on_move();
9530
9568 std::function<void(seat_t, uint32_t, zxdg_toplevel_v6_resize_edge)> &on_resize();
9569
9610 std::function<void(int32_t, int32_t)> &on_set_max_size();
9611
9652 std::function<void(int32_t, int32_t)> &on_set_min_size();
9653
9674 std::function<void()> &on_set_maximized();
9675
9697 std::function<void()> &on_unset_maximized();
9698
9713 std::function<void(output_t)> &on_set_fullscreen();
9714
9718 std::function<void()> &on_unset_fullscreen();
9719
9732 std::function<void()> &on_set_minimized();
9733
9760 void configure(int32_t width, int32_t height, array_t const& states, bool post = true);
9761
9764 static constexpr std::uint32_t configure_since_version = 1;
9765
9778 void close(bool post = true);
9779
9782 static constexpr std::uint32_t close_since_version = 1;
9783
9784};
9785
9787
9794struct zxdg_toplevel_v6_resize_edge : public wayland::detail::bitfield<4, 41>
9795{
9796 zxdg_toplevel_v6_resize_edge(const wayland::detail::bitfield<4, 41> &b)
9797 : wayland::detail::bitfield<4, 41>(b) {}
9798 zxdg_toplevel_v6_resize_edge(const uint32_t value)
9799 : wayland::detail::bitfield<4, 41>(value) {}
9800 static const wayland::detail::bitfield<4, 41> none;
9801 static const wayland::detail::bitfield<4, 41> top;
9802 static const wayland::detail::bitfield<4, 41> bottom;
9803 static const wayland::detail::bitfield<4, 41> left;
9804 static const wayland::detail::bitfield<4, 41> top_left;
9805 static const wayland::detail::bitfield<4, 41> bottom_left;
9806 static const wayland::detail::bitfield<4, 41> right;
9807 static const wayland::detail::bitfield<4, 41> top_right;
9808 static const wayland::detail::bitfield<4, 41> bottom_right;
9809};
9810
9822enum class zxdg_toplevel_v6_state : uint32_t
9823 {
9825 maximized = 1,
9827 fullscreen = 2,
9829 resizing = 3,
9831 activated = 4
9832};
9833
9834
9872class zxdg_popup_v6_t : public resource_t
9873{
9874private:
9875 struct events_t : public resource_t::events_base_t
9876 {
9877 std::function<void()> destroy;
9878 std::function<void(seat_t, uint32_t)> grab;
9879 };
9880
9881 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
9882
9883protected:
9884 static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_popup_v6_interface;
9885 static constexpr const unsigned int max_version = 1;
9886
9887 friend class global_t<zxdg_popup_v6_t>;
9888 friend class global_base_t;
9889
9890public:
9891 zxdg_popup_v6_t() = default;
9892 zxdg_popup_v6_t(const client_t& client, uint32_t id, int version = 1);
9893 zxdg_popup_v6_t(const resource_t &resource);
9894
9895 static const std::string interface_name;
9896
9897 operator zxdg_popup_v6*() const;
9898
9908 std::function<void()> &on_destroy();
9909
9957 std::function<void(seat_t, uint32_t)> &on_grab();
9958
9974 void configure(int32_t x, int32_t y, int32_t width, int32_t height, bool post = true);
9975
9978 static constexpr std::uint32_t configure_since_version = 1;
9979
9987 void popup_done(bool post = true);
9988
9991 static constexpr std::uint32_t popup_done_since_version = 1;
9992
9995 void post_invalid_grab(std::string const& msg);
9996
9997};
9998
10000
10004enum class zxdg_popup_v6_error : uint32_t
10005 {
10007 invalid_grab = 0
10008};
10009
10010
10017{
10018private:
10019 struct events_t : public resource_t::events_base_t
10020 {
10021 std::function<void()> destroy;
10022 std::function<void(zwp_xwayland_keyboard_grab_v1_t, surface_t, seat_t)> grab_keyboard;
10023 };
10024
10025 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
10026
10027protected:
10028 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_xwayland_keyboard_grab_manager_v1_interface;
10029 static constexpr const unsigned int max_version = 1;
10030
10032 friend class global_base_t;
10033
10034public:
10036 zwp_xwayland_keyboard_grab_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
10037 zwp_xwayland_keyboard_grab_manager_v1_t(const resource_t &resource);
10038
10039 static const std::string interface_name;
10040
10041 operator zwp_xwayland_keyboard_grab_manager_v1*() const;
10042
10048 std::function<void()> &on_destroy();
10049
10077
10078};
10079
10081
10082
10088class zwp_xwayland_keyboard_grab_v1_t : public resource_t
10089{
10090private:
10091 struct events_t : public resource_t::events_base_t
10092 {
10093 std::function<void()> destroy;
10094 };
10095
10096 static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
10097
10098protected:
10099 static constexpr const wl_interface *interface = &wayland::server::detail::zwp_xwayland_keyboard_grab_v1_interface;
10100 static constexpr const unsigned int max_version = 1;
10101
10103 friend class global_base_t;
10104
10105public:
10107 zwp_xwayland_keyboard_grab_v1_t(const client_t& client, uint32_t id, int version = 1);
10108 zwp_xwayland_keyboard_grab_v1_t(const resource_t &resource);
10109
10110 static const std::string interface_name;
10111
10112 operator zwp_xwayland_keyboard_grab_v1*() const;
10113
10120 std::function<void()> &on_destroy();
10121
10122};
10123
10125
10126
10127
10128}
10129}
compositor output region
void post_already_used(std::string const &msg)
Post error: The token has already been used previously.
std::function< void()> & on_destroy()
destroy the xdg_activation_token_v1 object
std::function< void()> & on_commit()
issues the token request
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
void done(std::string const &token, bool post=true)
the exported activation token
std::function< void(surface_t)> & on_set_surface()
specifies the application being activated
std::function< void(std::string)> & on_set_app_id()
specifies the application being activated
std::function< void(uint32_t, seat_t)> & on_set_serial()
specifies the seat and serial of the activating event
std::function< void()> & on_destroy()
destroy the xdg_activation object
std::function< void(std::string, surface_t)> & on_activate()
notify new interaction being available
std::function< void(xdg_activation_token_v1_t)> & on_get_activation_token()
requests a token
static constexpr std::uint32_t unconfined_since_version
Minimum protocol version required for the unconfined function.
std::function< void()> & on_destroy()
destroy the confined pointer object
std::function< void(region_t)> & on_set_region()
set a new confine region
static constexpr std::uint32_t confined_since_version
Minimum protocol version required for the confined function.
void post_role(std::string const &msg)
Post error: given wl_surface has another role.
static constexpr std::uint32_t capability_since_version
Minimum protocol version required for the capability function.
std::function< void(surface_t, zwp_fullscreen_shell_v1_present_method, output_t)> & on_present_surface()
present surface for display
void capability(zwp_fullscreen_shell_v1_capability const &capability, bool post=true)
advertises a capability of the compositor
void post_invalid_method(std::string const &msg)
Post error: present_method is not known.
std::function< void()> & on_release()
release the wl_fullscreen_shell interface
std::function< void(surface_t, output_t, int32_t, zwp_fullscreen_shell_mode_feedback_v1_t)> & on_present_surface_for_mode()
present surface for display at a particular mode
std::function< void()> & on_destroy()
destroy the idle inhibitor object
std::function< void(zwp_idle_inhibitor_v1_t, surface_t)> & on_create_inhibitor()
create a new inhibitor object
context object for inhibiting idle behavior
std::function< void()> & on_destroy()
destroy the idle inhibitor object
static constexpr std::uint32_t commit_state_since_version
Minimum protocol version required for the commit_state function.
void invoke_action(uint32_t button, uint32_t index, bool post=true)
void surrounding_text(std::string const &text, uint32_t cursor, uint32_t anchor, bool post=true)
surrounding text event
static constexpr std::uint32_t content_type_since_version
Minimum protocol version required for the content_type function.
std::function< void(uint32_t, uint32_t, uint32_t, keyboard_key_state, uint32_t)> & on_keysym()
keysym
static constexpr std::uint32_t preferred_language_since_version
Minimum protocol version required for the preferred_language function.
std::function< void(int32_t)> & on_preedit_cursor()
pre-edit cursor
static constexpr std::uint32_t surrounding_text_since_version
Minimum protocol version required for the surrounding_text function.
std::function< void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> & on_modifiers()
forward modifiers event
static constexpr std::uint32_t invoke_action_since_version
Minimum protocol version required for the invoke_action function.
std::function< void(int32_t, int32_t)> & on_cursor_position()
set cursor to a new position
std::function< void(uint32_t, uint32_t)> & on_text_direction()
std::function< void(uint32_t, std::string)> & on_commit_string()
commit string
std::function< void(uint32_t, uint32_t, zwp_text_input_v1_preedit_style)> & on_preedit_styling()
pre-edit styling
static constexpr std::uint32_t reset_since_version
Minimum protocol version required for the reset function.
std::function< void(uint32_t, std::string, std::string)> & on_preedit_string()
pre-edit string
std::function< void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> & on_key()
forward key event
std::function< void(int32_t, uint32_t)> & on_delete_surrounding_text()
delete text
void preferred_language(std::string const &language, bool post=true)
std::function< void(uint32_t, std::string)> & on_language()
void content_type(zwp_text_input_v1_content_hint const &hint, zwp_text_input_v1_content_purpose const &purpose, bool post=true)
std::function< void(keyboard_t)> & on_grab_keyboard()
grab hardware keyboard
static constexpr std::uint32_t activate_since_version
Minimum protocol version required for the activate function.
void deactivate(zwp_input_method_context_v1_t const &context, bool post=true)
deactivate event
static constexpr std::uint32_t deactivate_since_version
Minimum protocol version required for the deactivate function.
std::function< void(zwp_input_panel_surface_v1_t, surface_t)> & on_get_input_panel_surface()
context object for high-resolution input timestamps
std::function< void(zwp_input_timestamps_v1_t, keyboard_t)> & on_get_keyboard_timestamps()
subscribe to high-resolution keyboard timestamp events
std::function< void(zwp_input_timestamps_v1_t, touch_t)> & on_get_touch_timestamps()
subscribe to high-resolution touch timestamp events
std::function< void(zwp_input_timestamps_v1_t, pointer_t)> & on_get_pointer_timestamps()
subscribe to high-resolution pointer timestamp events
std::function< void()> & on_destroy()
destroy the input timestamps manager object
std::function< void()> & on_destroy()
destroy the input timestamps object
static constexpr std::uint32_t timestamp_since_version
Minimum protocol version required for the timestamp function.
void timestamp(uint32_t tv_sec_hi, uint32_t tv_sec_lo, uint32_t tv_nsec, bool post=true)
high-resolution timestamp event
std::function< void(zwp_keyboard_shortcuts_inhibitor_v1_t, surface_t, seat_t)> & on_inhibit_shortcuts()
create a new keyboard shortcuts inhibitor object
void post_already_inhibited(std::string const &msg)
Post error: the shortcuts are already inhibited for this surface.
std::function< void()> & on_destroy()
destroy the keyboard shortcuts inhibitor object
std::function< void()> & on_destroy()
destroy the keyboard shortcuts inhibitor object
static constexpr std::uint32_t active_since_version
Minimum protocol version required for the active function.
static constexpr std::uint32_t inactive_since_version
Minimum protocol version required for the inactive function.
parameters for creating a dmabuf-based wl_buffer
static constexpr std::uint32_t created_since_version
Minimum protocol version required for the created function.
void post_incomplete(std::string const &msg)
Post error: missing or too many planes to create a buffer.
void post_already_used(std::string const &msg)
Post error: the dmabuf_batch object has already been used to create a wl_buffer.
void created(bool post=true)
buffer creation succeeded
void post_out_of_bounds(std::string const &msg)
Post error: offset + stride * height goes out of dmabuf bounds.
void post_invalid_format(std::string const &msg)
Post error: format not supported.
std::function< void(int, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> & on_add()
add a dmabuf to the temporary set
void post_invalid_wl_buffer(std::string const &msg)
Post error: invalid wl_buffer resulted from importing dmabufs via the create_immed request on given b...
std::function< void(int32_t, int32_t, uint32_t, zwp_linux_buffer_params_v1_flags)> & on_create()
create a wl_buffer from the given dmabufs
void post_plane_idx(std::string const &msg)
Post error: plane index out of bounds.
void post_invalid_dimensions(std::string const &msg)
Post error: invalid width or height.
std::function< void()> & on_destroy()
delete this object, used or not
void post_plane_set(std::string const &msg)
Post error: the plane index was already set.
std::function< void(buffer_t, int32_t, int32_t, uint32_t, zwp_linux_buffer_params_v1_flags)> & on_create_immed()
immediately create a wl_buffer from the given dmabufs
static constexpr std::uint32_t failed_since_version
Minimum protocol version required for the failed function.
static constexpr std::uint32_t immediate_release_since_version
Minimum protocol version required for the immediate_release function.
void immediate_release(bool post=true)
release buffer immediately
void fenced_release(int fence, bool post=true)
release buffer with fence
static constexpr std::uint32_t fenced_release_since_version
Minimum protocol version required for the fenced_release function.
static constexpr std::uint32_t tranche_done_since_version
Minimum protocol version required for the tranche_done function.
static constexpr std::uint32_t main_device_since_version
Minimum protocol version required for the main_device function.
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
static constexpr std::uint32_t tranche_flags_since_version
Minimum protocol version required for the tranche_flags function.
static constexpr std::uint32_t tranche_target_device_since_version
Minimum protocol version required for the tranche_target_device function.
void tranche_formats(array_t const &indices, bool post=true)
supported buffer format modifier
void tranche_target_device(array_t const &device, bool post=true)
target device
static constexpr std::uint32_t tranche_formats_since_version
Minimum protocol version required for the tranche_formats function.
void tranche_flags(zwp_linux_dmabuf_feedback_v1_tranche_flags const &flags, bool post=true)
tranche flags
void main_device(array_t const &device, bool post=true)
preferred main device
static constexpr std::uint32_t format_table_since_version
Minimum protocol version required for the format_table function.
std::function< void()> & on_destroy()
destroy the feedback object
void format_table(int fd, uint32_t size, bool post=true)
format and modifier table
void done(bool post=true)
all feedback has been sent
void tranche_done(bool post=true)
a preference tranche has been sent
factory for creating dmabuf-based wl_buffers
std::function< void(zwp_linux_dmabuf_feedback_v1_t, surface_t)> & on_get_surface_feedback()
get feedback for a surface
static constexpr std::uint32_t format_since_version
Minimum protocol version required for the format function.
std::function< void()> & on_destroy()
unbind the factory
bool can_modifier() const
Check whether the modifier function is available with the currently bound version of the protocol.
static constexpr std::uint32_t modifier_since_version
Minimum protocol version required for the modifier function.
std::function< void(zwp_linux_dmabuf_feedback_v1_t)> & on_get_default_feedback()
get default feedback
std::function< void(zwp_linux_buffer_params_v1_t)> & on_create_params()
create a temporary object for buffer parameters
void modifier(uint32_t format, uint32_t modifier_hi, uint32_t modifier_lo, bool post=true)
supported buffer format modifier
void format(uint32_t format, bool post=true)
supported buffer format
std::function< void()> & on_destroy()
destroy explicit synchronization factory object
std::function< void(zwp_linux_surface_synchronization_v1_t, surface_t)> & on_get_synchronization()
extend surface interface for explicit synchronization
void post_synchronization_exists(std::string const &msg)
Post error: the surface already has a synchronization object associated.
std::function< void(int)> & on_set_acquire_fence()
set the acquire fence
void post_duplicate_release(std::string const &msg)
Post error: multiple releases added for a single surface commit.
std::function< void()> & on_destroy()
destroy synchronization object
void post_unsupported_buffer(std::string const &msg)
Post error: the buffer does not support explicit synchronization.
void post_no_buffer(std::string const &msg)
Post error: no buffer was attached.
void post_duplicate_fence(std::string const &msg)
Post error: multiple fences added for a single surface commit.
void post_invalid_fence(std::string const &msg)
Post error: the fence specified by the client could not be imported.
std::function< void(zwp_linux_buffer_release_v1_t)> & on_get_release()
release fence for last-attached buffer
void post_no_surface(std::string const &msg)
Post error: the associated wl_surface was destroyed.
std::function< void()> & on_destroy()
destroy the locked pointer object
std::function< void(double, double)> & on_set_cursor_position_hint()
set the pointer cursor position hint
static constexpr std::uint32_t locked_since_version
Minimum protocol version required for the locked function.
void unlocked(bool post=true)
lock deactivation event
void locked(bool post=true)
lock activation event
static constexpr std::uint32_t unlocked_since_version
Minimum protocol version required for the unlocked function.
std::function< void(region_t)> & on_set_region()
set a new lock region
std::function< void(zwp_confined_pointer_v1_t, surface_t, pointer_t, region_t, zwp_pointer_constraints_v1_lifetime)> & on_confine_pointer()
confine pointer to a region
std::function< void()> & on_destroy()
destroy the pointer constraints manager object
void post_already_constrained(std::string const &msg)
Post error: pointer constraint already requested on that surface.
std::function< void(zwp_locked_pointer_v1_t, surface_t, pointer_t, region_t, zwp_pointer_constraints_v1_lifetime)> & on_lock_pointer()
lock pointer to a position
bool can_end() const
Check whether the end function is available with the currently bound version of the protocol.
static constexpr std::uint32_t end_since_version
Minimum protocol version required for the end function.
void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post=true)
multi-finger hold end
std::function< void()> & on_destroy()
destroy the hold gesture object
void begin(uint32_t serial, uint32_t time, surface_t const &surface, uint32_t fingers, bool post=true)
multi-finger hold begin
bool can_begin() const
Check whether the begin function is available with the currently bound version of the protocol.
static constexpr std::uint32_t begin_since_version
Minimum protocol version required for the begin function.
static constexpr std::uint32_t begin_since_version
Minimum protocol version required for the begin function.
std::function< void()> & on_destroy()
destroy the pinch gesture object
static constexpr std::uint32_t end_since_version
Minimum protocol version required for the end function.
void begin(uint32_t serial, uint32_t time, surface_t const &surface, uint32_t fingers, bool post=true)
multi-finger pinch begin
void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post=true)
multi-finger pinch end
static constexpr std::uint32_t update_since_version
Minimum protocol version required for the update function.
void update(uint32_t time, double dx, double dy, double scale, double rotation, bool post=true)
multi-finger pinch motion
void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post=true)
multi-finger swipe end
void update(uint32_t time, double dx, double dy, bool post=true)
multi-finger swipe motion
std::function< void()> & on_destroy()
destroy the pointer swipe gesture object
static constexpr std::uint32_t end_since_version
Minimum protocol version required for the end function.
void begin(uint32_t serial, uint32_t time, surface_t const &surface, uint32_t fingers, bool post=true)
multi-finger swipe begin
static constexpr std::uint32_t begin_since_version
Minimum protocol version required for the begin function.
static constexpr std::uint32_t update_since_version
Minimum protocol version required for the update function.
std::function< void(zwp_pointer_gesture_swipe_v1_t, pointer_t)> & on_get_swipe_gesture()
get swipe gesture
std::function< void(zwp_pointer_gesture_hold_v1_t, pointer_t)> & on_get_hold_gesture()
get hold gesture
std::function< void(zwp_pointer_gesture_pinch_v1_t, pointer_t)> & on_get_pinch_gesture()
get pinch gesture
std::function< void()> & on_release()
destroy the pointer gesture object
std::function< void(zwp_primary_selection_source_v1_t)> & on_create_source()
create a new primary selection source
std::function< void()> & on_destroy()
destroy the primary selection device manager
std::function< void(zwp_primary_selection_device_v1_t, seat_t)> & on_get_device()
create a new primary selection device
void offer(std::string const &mime_type, bool post=true)
advertise offered mime type
static constexpr std::uint32_t offer_since_version
Minimum protocol version required for the offer function.
std::function< void(std::string, int)> & on_receive()
request that the data is transferred
std::function< void()> & on_destroy()
destroy the primary selection offer
offer to replace the contents of the primary selection
static constexpr std::uint32_t send_since_version
Minimum protocol version required for the send function.
static constexpr std::uint32_t cancelled_since_version
Minimum protocol version required for the cancelled function.
void send(std::string const &mime_type, int fd, bool post=true)
send the primary selection contents
std::function< void()> & on_destroy()
destroy the primary selection source
std::function< void(std::string)> & on_offer()
add an offered mime type
void cancelled(bool post=true)
request for primary selection contents was canceled
std::function< void()> & on_destroy()
destroy the relative pointer manager object
std::function< void(zwp_relative_pointer_v1_t, pointer_t)> & on_get_relative_pointer()
get a relative pointer object
static constexpr std::uint32_t relative_motion_since_version
Minimum protocol version required for the relative_motion function.
std::function< void()> & on_destroy()
release the relative pointer object
void relative_motion(uint32_t utime_hi, uint32_t utime_lo, double dx, double dy, double dx_unaccel, double dy_unaccel, bool post=true)
relative pointer motion
controller object for graphic tablet devices
std::function< void()> & on_destroy()
release the memory for the tablet manager object
std::function< void(zwp_tablet_seat_v1_t, seat_t)> & on_get_tablet_seat()
get the tablet seat
controller object for graphic tablet devices
std::function< void()> & on_destroy()
release the memory for the tablet manager object
std::function< void(zwp_tablet_seat_v2_t, seat_t)> & on_get_tablet_seat()
get the tablet seat
static constexpr std::uint32_t strip_since_version
Minimum protocol version required for the strip function.
static constexpr std::uint32_t modes_since_version
Minimum protocol version required for the modes function.
void done(bool post=true)
tablet group description events sequence complete
void buttons(array_t const &buttons, bool post=true)
buttons announced
std::function< void()> & on_destroy()
destroy the pad object
void mode_switch(uint32_t time, uint32_t serial, uint32_t mode, bool post=true)
mode switch event
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
static constexpr std::uint32_t buttons_since_version
Minimum protocol version required for the buttons function.
static constexpr std::uint32_t ring_since_version
Minimum protocol version required for the ring function.
void modes(uint32_t modes, bool post=true)
mode-switch ability announced
static constexpr std::uint32_t mode_switch_since_version
Minimum protocol version required for the mode_switch function.
static constexpr std::uint32_t angle_since_version
Minimum protocol version required for the angle function.
static constexpr std::uint32_t frame_since_version
Minimum protocol version required for the frame function.
static constexpr std::uint32_t source_since_version
Minimum protocol version required for the source function.
void angle(double degrees, bool post=true)
angle changed
std::function< void()> & on_destroy()
destroy the ring object
std::function< void(std::string, uint32_t)> & on_set_feedback()
set compositor feedback
void source(zwp_tablet_pad_ring_v2_source const &source, bool post=true)
ring event source
static constexpr std::uint32_t stop_since_version
Minimum protocol version required for the stop function.
void frame(uint32_t time, bool post=true)
end of a ring event sequence
void frame(uint32_t time, bool post=true)
end of a strip event sequence
void position(uint32_t position, bool post=true)
position changed
static constexpr std::uint32_t position_since_version
Minimum protocol version required for the position function.
std::function< void()> & on_destroy()
destroy the strip object
static constexpr std::uint32_t source_since_version
Minimum protocol version required for the source function.
std::function< void(std::string, uint32_t)> & on_set_feedback()
set compositor feedback
void source(zwp_tablet_pad_strip_v2_source const &source, bool post=true)
strip event source
static constexpr std::uint32_t frame_since_version
Minimum protocol version required for the frame function.
static constexpr std::uint32_t stop_since_version
Minimum protocol version required for the stop function.
std::function< void(uint32_t, std::string, uint32_t)> & on_set_feedback()
set compositor feedback
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
void leave(uint32_t serial, surface_t const &surface, bool post=true)
enter event
void path(std::string const &path, bool post=true)
path to the device
std::function< void()> & on_destroy()
destroy the pad object
void button(uint32_t time, uint32_t button, zwp_tablet_pad_v2_button_state const &state, bool post=true)
physical button state
static constexpr std::uint32_t buttons_since_version
Minimum protocol version required for the buttons function.
void done(bool post=true)
pad description event sequence complete
void buttons(uint32_t buttons, bool post=true)
buttons announced
static constexpr std::uint32_t leave_since_version
Minimum protocol version required for the leave function.
static constexpr std::uint32_t button_since_version
Minimum protocol version required for the button function.
static constexpr std::uint32_t group_since_version
Minimum protocol version required for the group function.
void enter(uint32_t serial, zwp_tablet_v2_t const &tablet, surface_t const &surface, bool post=true)
enter event
static constexpr std::uint32_t path_since_version
Minimum protocol version required for the path function.
static constexpr std::uint32_t removed_since_version
Minimum protocol version required for the removed function.
static constexpr std::uint32_t enter_since_version
Minimum protocol version required for the enter function.
controller object for graphic tablet devices of a seat
void tablet_added(bool post=true)
new device notification
void tool_added(bool post=true)
a new tool has been used with a tablet
static constexpr std::uint32_t tablet_added_since_version
Minimum protocol version required for the tablet_added function.
static constexpr std::uint32_t tool_added_since_version
Minimum protocol version required for the tool_added function.
std::function< void()> & on_destroy()
release the memory for the tablet seat object
controller object for graphic tablet devices of a seat
static constexpr std::uint32_t tablet_added_since_version
Minimum protocol version required for the tablet_added function.
std::function< void()> & on_destroy()
release the memory for the tablet seat object
static constexpr std::uint32_t tool_added_since_version
Minimum protocol version required for the tool_added function.
void tablet_added(bool post=true)
new device notification
void pad_added(bool post=true)
new pad notification
static constexpr std::uint32_t pad_added_since_version
Minimum protocol version required for the pad_added function.
void tool_added(bool post=true)
a new tool has been used with a tablet
void slider(int32_t position, bool post=true)
Slider position change event.
static constexpr std::uint32_t hardware_serial_since_version
Minimum protocol version required for the hardware_serial function.
void post_role(std::string const &msg)
Post error: given wl_surface has another role.
void hardware_id_wacom(uint32_t hardware_id_hi, uint32_t hardware_id_lo, bool post=true)
hardware id notification in Wacom's format
static constexpr std::uint32_t capability_since_version
Minimum protocol version required for the capability function.
static constexpr std::uint32_t motion_since_version
Minimum protocol version required for the motion function.
static constexpr std::uint32_t type_since_version
Minimum protocol version required for the type function.
static constexpr std::uint32_t proximity_in_since_version
Minimum protocol version required for the proximity_in function.
static constexpr std::uint32_t distance_since_version
Minimum protocol version required for the distance function.
static constexpr std::uint32_t tilt_since_version
Minimum protocol version required for the tilt function.
static constexpr std::uint32_t proximity_out_since_version
Minimum protocol version required for the proximity_out function.
static constexpr std::uint32_t removed_since_version
Minimum protocol version required for the removed function.
void done(bool post=true)
tool description events sequence complete
static constexpr std::uint32_t frame_since_version
Minimum protocol version required for the frame function.
static constexpr std::uint32_t rotation_since_version
Minimum protocol version required for the rotation function.
void button(uint32_t serial, uint32_t button, zwp_tablet_tool_v1_button_state const &state, bool post=true)
button event
void up(bool post=true)
tablet tool is no longer making contact
static constexpr std::uint32_t up_since_version
Minimum protocol version required for the up function.
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
static constexpr std::uint32_t pressure_since_version
Minimum protocol version required for the pressure function.
void rotation(int32_t degrees, bool post=true)
z-rotation change event
static constexpr std::uint32_t button_since_version
Minimum protocol version required for the button function.
std::function< void()> & on_destroy()
destroy the tool object
std::function< void(uint32_t, surface_t, int32_t, int32_t)> & on_set_cursor()
set the tablet tool's surface
static constexpr std::uint32_t down_since_version
Minimum protocol version required for the down function.
void down(uint32_t serial, bool post=true)
tablet tool is making contact
void distance(uint32_t distance, bool post=true)
distance change event
void frame(uint32_t time, bool post=true)
frame event
void tilt(int32_t tilt_x, int32_t tilt_y, bool post=true)
tilt change event
void proximity_out(bool post=true)
proximity out event
void wheel(int32_t degrees, int32_t clicks, bool post=true)
Wheel delta event.
static constexpr std::uint32_t wheel_since_version
Minimum protocol version required for the wheel function.
void pressure(uint32_t pressure, bool post=true)
pressure change event
void type(zwp_tablet_tool_v1_type const &tool_type, bool post=true)
tool type
static constexpr std::uint32_t hardware_id_wacom_since_version
Minimum protocol version required for the hardware_id_wacom function.
void hardware_serial(uint32_t hardware_serial_hi, uint32_t hardware_serial_lo, bool post=true)
unique hardware serial number of the tool
void motion(double x, double y, bool post=true)
motion event
static constexpr std::uint32_t slider_since_version
Minimum protocol version required for the slider function.
void proximity_in(uint32_t serial, zwp_tablet_v1_t const &tablet, surface_t const &surface, bool post=true)
proximity in event
void capability(zwp_tablet_tool_v1_capability const &capability, bool post=true)
tool capability notification
static constexpr std::uint32_t hardware_id_wacom_since_version
Minimum protocol version required for the hardware_id_wacom function.
void tilt(double tilt_x, double tilt_y, bool post=true)
tilt change event
static constexpr std::uint32_t motion_since_version
Minimum protocol version required for the motion function.
static constexpr std::uint32_t up_since_version
Minimum protocol version required for the up function.
void type(zwp_tablet_tool_v2_type const &tool_type, bool post=true)
tool type
static constexpr std::uint32_t down_since_version
Minimum protocol version required for the down function.
void done(bool post=true)
tool description events sequence complete
static constexpr std::uint32_t hardware_serial_since_version
Minimum protocol version required for the hardware_serial function.
static constexpr std::uint32_t slider_since_version
Minimum protocol version required for the slider function.
void proximity_out(bool post=true)
proximity out event
static constexpr std::uint32_t removed_since_version
Minimum protocol version required for the removed function.
static constexpr std::uint32_t distance_since_version
Minimum protocol version required for the distance function.
static constexpr std::uint32_t frame_since_version
Minimum protocol version required for the frame function.
static constexpr std::uint32_t rotation_since_version
Minimum protocol version required for the rotation function.
void wheel(double degrees, int32_t clicks, bool post=true)
Wheel delta event.
void rotation(double degrees, bool post=true)
z-rotation change event
void capability(zwp_tablet_tool_v2_capability const &capability, bool post=true)
tool capability notification
static constexpr std::uint32_t tilt_since_version
Minimum protocol version required for the tilt function.
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
void hardware_serial(uint32_t hardware_serial_hi, uint32_t hardware_serial_lo, bool post=true)
unique hardware serial number of the tool
void frame(uint32_t time, bool post=true)
frame event
std::function< void(uint32_t, surface_t, int32_t, int32_t)> & on_set_cursor()
set the tablet tool's surface
void hardware_id_wacom(uint32_t hardware_id_hi, uint32_t hardware_id_lo, bool post=true)
hardware id notification in Wacom's format
static constexpr std::uint32_t capability_since_version
Minimum protocol version required for the capability function.
static constexpr std::uint32_t button_since_version
Minimum protocol version required for the button function.
void button(uint32_t serial, uint32_t button, zwp_tablet_tool_v2_button_state const &state, bool post=true)
button event
static constexpr std::uint32_t wheel_since_version
Minimum protocol version required for the wheel function.
std::function< void()> & on_destroy()
destroy the tool object
void motion(double x, double y, bool post=true)
motion event
void post_role(std::string const &msg)
Post error: given wl_surface has another role.
void pressure(uint32_t pressure, bool post=true)
pressure change event
void up(bool post=true)
tablet tool is no longer making contact
static constexpr std::uint32_t proximity_in_since_version
Minimum protocol version required for the proximity_in function.
static constexpr std::uint32_t proximity_out_since_version
Minimum protocol version required for the proximity_out function.
static constexpr std::uint32_t pressure_since_version
Minimum protocol version required for the pressure function.
void distance(uint32_t distance, bool post=true)
distance change event
void down(uint32_t serial, bool post=true)
tablet tool is making contact
void slider(int32_t position, bool post=true)
Slider position change event.
void proximity_in(uint32_t serial, zwp_tablet_v2_t const &tablet, surface_t const &surface, bool post=true)
proximity in event
static constexpr std::uint32_t type_since_version
Minimum protocol version required for the type function.
void path(std::string const &path, bool post=true)
path to the device
static constexpr std::uint32_t id_since_version
Minimum protocol version required for the id function.
void name(std::string const &name, bool post=true)
tablet device name
void id(uint32_t vid, uint32_t pid, bool post=true)
tablet device USB vendor/product id
void removed(bool post=true)
tablet removed event
std::function< void()> & on_destroy()
destroy the tablet object
void done(bool post=true)
tablet description events sequence complete
static constexpr std::uint32_t path_since_version
Minimum protocol version required for the path function.
static constexpr std::uint32_t name_since_version
Minimum protocol version required for the name function.
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
static constexpr std::uint32_t removed_since_version
Minimum protocol version required for the removed function.
void removed(bool post=true)
tablet removed event
void id(uint32_t vid, uint32_t pid, bool post=true)
tablet device USB vendor/product id
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
void path(std::string const &path, bool post=true)
path to the device
static constexpr std::uint32_t path_since_version
Minimum protocol version required for the path function.
void done(bool post=true)
tablet description events sequence complete
void name(std::string const &name, bool post=true)
tablet device name
static constexpr std::uint32_t name_since_version
Minimum protocol version required for the name function.
static constexpr std::uint32_t removed_since_version
Minimum protocol version required for the removed function.
static constexpr std::uint32_t id_since_version
Minimum protocol version required for the id function.
std::function< void()> & on_destroy()
destroy the tablet object
std::function< void(zwp_text_input_v1_t)> & on_create_text_input()
create text input
std::function< void()> & on_destroy()
Destroy the wp_text_input_manager.
std::function< void(zwp_text_input_v3_t, seat_t)> & on_get_text_input()
create a new text input object
void input_panel_state(uint32_t state, bool post=true)
state of the input panel
std::function< void(int32_t, int32_t, int32_t, int32_t)> & on_set_cursor_rectangle()
void language(uint32_t serial, std::string const &language, bool post=true)
language
void preedit_styling(uint32_t index, uint32_t length, zwp_text_input_v1_preedit_style const &style, bool post=true)
pre-edit styling
void modifiers_map(array_t const &map, bool post=true)
modifiers map
std::function< void()> & on_hide_input_panel()
hide input panels
std::function< void(seat_t, surface_t)> & on_activate()
request activation
static constexpr std::uint32_t leave_since_version
Minimum protocol version required for the leave function.
static constexpr std::uint32_t keysym_since_version
Minimum protocol version required for the keysym function.
static constexpr std::uint32_t modifiers_map_since_version
Minimum protocol version required for the modifiers_map function.
std::function< void(seat_t)> & on_deactivate()
request deactivation
std::function< void(zwp_text_input_v1_content_hint, zwp_text_input_v1_content_purpose)> & on_set_content_type()
set content purpose and hint
void keysym(uint32_t serial, uint32_t time, uint32_t sym, keyboard_key_state const &state, uint32_t modifiers, bool post=true)
keysym
void cursor_position(int32_t index, int32_t anchor, bool post=true)
set cursor to new position
std::function< void(uint32_t, uint32_t)> & on_invoke_action()
void text_direction(uint32_t serial, zwp_text_input_v1_text_direction const &direction, bool post=true)
text direction
static constexpr std::uint32_t language_since_version
Minimum protocol version required for the language function.
static constexpr std::uint32_t preedit_string_since_version
Minimum protocol version required for the preedit_string function.
static constexpr std::uint32_t preedit_cursor_since_version
Minimum protocol version required for the preedit_cursor function.
static constexpr std::uint32_t text_direction_since_version
Minimum protocol version required for the text_direction function.
static constexpr std::uint32_t delete_surrounding_text_since_version
Minimum protocol version required for the delete_surrounding_text function.
void preedit_string(uint32_t serial, std::string const &text, std::string const &commit, bool post=true)
pre-edit
void preedit_cursor(int32_t index, bool post=true)
pre-edit cursor
static constexpr std::uint32_t preedit_styling_since_version
Minimum protocol version required for the preedit_styling function.
void delete_surrounding_text(int32_t index, uint32_t length, bool post=true)
delete surrounding text
std::function< void(std::string)> & on_set_preferred_language()
sets preferred language
std::function< void()> & on_show_input_panel()
show input panels
static constexpr std::uint32_t enter_since_version
Minimum protocol version required for the enter function.
static constexpr std::uint32_t input_panel_state_since_version
Minimum protocol version required for the input_panel_state function.
static constexpr std::uint32_t cursor_position_since_version
Minimum protocol version required for the cursor_position function.
static constexpr std::uint32_t commit_string_since_version
Minimum protocol version required for the commit_string function.
std::function< void(std::string, uint32_t, uint32_t)> & on_set_surrounding_text()
sets the surrounding text
void commit_string(uint32_t serial, std::string const &text, bool post=true)
commit
void enter(surface_t const &surface, bool post=true)
enter event
void enter(surface_t const &surface, bool post=true)
enter event
std::function< void()> & on_destroy()
Destroy the wp_text_input.
std::function< void(zwp_text_input_v3_change_cause)> & on_set_text_change_cause()
indicates the cause of surrounding text change
static constexpr std::uint32_t delete_surrounding_text_since_version
Minimum protocol version required for the delete_surrounding_text function.
std::function< void()> & on_enable()
Request text input to be enabled.
std::function< void(std::string, int32_t, int32_t)> & on_set_surrounding_text()
sets the surrounding text
void preedit_string(std::string const &text, int32_t cursor_begin, int32_t cursor_end, bool post=true)
pre-edit
std::function< void()> & on_commit()
commit state
void commit_string(std::string const &text, bool post=true)
text commit
void done(uint32_t serial, bool post=true)
apply changes
static constexpr std::uint32_t preedit_string_since_version
Minimum protocol version required for the preedit_string function.
std::function< void(zwp_text_input_v3_content_hint, zwp_text_input_v3_content_purpose)> & on_set_content_type()
set content purpose and hint
static constexpr std::uint32_t enter_since_version
Minimum protocol version required for the enter function.
void delete_surrounding_text(uint32_t before_length, uint32_t after_length, bool post=true)
delete surrounding text
void leave(surface_t const &surface, bool post=true)
leave event
std::function< void()> & on_disable()
Disable text input on a surface.
std::function< void(int32_t, int32_t, int32_t, int32_t)> & on_set_cursor_rectangle()
set cursor position
static constexpr std::uint32_t commit_string_since_version
Minimum protocol version required for the commit_string function.
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
static constexpr std::uint32_t leave_since_version
Minimum protocol version required for the leave function.
std::function< void(zwp_xwayland_keyboard_grab_v1_t, surface_t, seat_t)> & on_grab_keyboard()
grab the keyboard to a surface
std::function< void()> & on_destroy()
destroy the keyboard grab manager
std::function< void()> & on_destroy()
destroy the grabbed keyboard object
std::function< void(zxdg_toplevel_decoration_v1_t, xdg_toplevel_t)> & on_get_toplevel_decoration()
create a new toplevel decoration object
std::function< void()> & on_destroy()
destroy the decoration manager object
void handle(std::string const &handle, bool post=true)
the exported surface handle
std::function< void()> & on_destroy()
unexport the exported surface
static constexpr std::uint32_t handle_since_version
Minimum protocol version required for the handle function.
std::function< void()> & on_destroy()
unexport the exported surface
static constexpr std::uint32_t handle_since_version
Minimum protocol version required for the handle function.
void handle(std::string const &handle, bool post=true)
the exported surface handle
std::function< void(zxdg_exported_v1_t, surface_t)> & on_export()
export a surface
std::function< void()> & on_destroy()
destroy the xdg_exporter object
std::function< void(zxdg_exported_v2_t, surface_t)> & on_export_toplevel()
export a toplevel surface
void post_invalid_surface(std::string const &msg)
Post error: surface is not an xdg_toplevel.
std::function< void()> & on_destroy()
destroy the xdg_exporter object
void destroyed(bool post=true)
the imported surface handle has been destroyed
std::function< void(surface_t)> & on_set_parent_of()
set as the parent of some surface
std::function< void()> & on_destroy()
destroy the xdg_imported object
static constexpr std::uint32_t destroyed_since_version
Minimum protocol version required for the destroyed function.
static constexpr std::uint32_t destroyed_since_version
Minimum protocol version required for the destroyed function.
void post_invalid_surface(std::string const &msg)
Post error: surface is not an xdg_toplevel.
void destroyed(bool post=true)
the imported surface handle has been destroyed
std::function< void()> & on_destroy()
destroy the xdg_imported object
std::function< void(surface_t)> & on_set_parent_of()
set as the parent of some surface
std::function< void(zxdg_imported_v1_t, std::string)> & on_import()
import a surface
std::function< void()> & on_destroy()
destroy the xdg_importer object
std::function< void()> & on_destroy()
destroy the xdg_importer object
std::function< void(zxdg_imported_v2_t, std::string)> & on_import_toplevel()
import a toplevel surface
std::function< void()> & on_destroy()
destroy the xdg_output_manager object
std::function< void(zxdg_output_v1_t, output_t)> & on_get_xdg_output()
create an xdg output from a wl_output
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
bool can_name() const
Check whether the name function is available with the currently bound version of the protocol.
void logical_position(int32_t x, int32_t y, bool post=true)
position of the output within the global compositor space
void done(bool post=true)
all information about the output have been sent
bool can_description() const
Check whether the description function is available with the currently bound version of the protocol.
static constexpr std::uint32_t logical_position_since_version
Minimum protocol version required for the logical_position function.
static constexpr std::uint32_t name_since_version
Minimum protocol version required for the name function.
void logical_size(int32_t width, int32_t height, bool post=true)
size of the output in the global compositor space
std::function< void()> & on_destroy()
destroy the xdg_output object
static constexpr std::uint32_t description_since_version
Minimum protocol version required for the description function.
void name(std::string const &name, bool post=true)
name of this output
void description(std::string const &description, bool post=true)
human-readable description of this output
static constexpr std::uint32_t logical_size_since_version
Minimum protocol version required for the logical_size function.
short-lived, popup surfaces for menus
void post_invalid_grab(std::string const &msg)
Post error: tried to grab after being mapped.
void popup_done(bool post=true)
popup interaction is done
static constexpr std::uint32_t configure_since_version
Minimum protocol version required for the configure function.
static constexpr std::uint32_t popup_done_since_version
Minimum protocol version required for the popup_done function.
std::function< void(seat_t, uint32_t)> & on_grab()
make the popup take an explicit grab
std::function< void()> & on_destroy()
remove xdg_popup interface
void configure(int32_t x, int32_t y, int32_t width, int32_t height, bool post=true)
configure the popup surface
std::function< void(zxdg_positioner_v6_anchor)> & on_set_anchor()
set anchor rectangle anchor edges
std::function< void()> & on_destroy()
destroy the xdg_positioner object
std::function< void(int32_t, int32_t)> & on_set_offset()
set surface position offset
std::function< void(zxdg_positioner_v6_constraint_adjustment)> & on_set_constraint_adjustment()
set the adjustment to be done when constrained
std::function< void(zxdg_positioner_v6_gravity)> & on_set_gravity()
set child surface gravity
std::function< void(int32_t, int32_t)> & on_set_size()
set the size of the to-be positioned rectangle
void post_invalid_input(std::string const &msg)
Post error: invalid input provided.
std::function< void(int32_t, int32_t, int32_t, int32_t)> & on_set_anchor_rect()
set the anchor rectangle within the parent surface
void post_invalid_surface_state(std::string const &msg)
Post error: the client provided an invalid surface state.
void post_invalid_positioner(std::string const &msg)
Post error: the client provided an invalid positioner.
static constexpr std::uint32_t ping_since_version
Minimum protocol version required for the ping function.
void ping(uint32_t serial, bool post=true)
check if the client is alive
void post_defunct_surfaces(std::string const &msg)
Post error: xdg_shell was destroyed before children.
std::function< void(zxdg_positioner_v6_t)> & on_create_positioner()
create a positioner object
std::function< void(uint32_t)> & on_pong()
respond to a ping event
void post_role(std::string const &msg)
Post error: given wl_surface has another role.
std::function< void(zxdg_surface_v6_t, surface_t)> & on_get_xdg_surface()
create a shell surface from a surface
void post_not_the_topmost_popup(std::string const &msg)
Post error: the client tried to map or destroy a non-topmost popup.
void post_invalid_popup_parent(std::string const &msg)
Post error: the client specified an invalid popup parent surface.
std::function< void()> & on_destroy()
destroy xdg_shell
desktop user interface surface base interface
static constexpr std::uint32_t configure_since_version
Minimum protocol version required for the configure function.
std::function< void(uint32_t)> & on_ack_configure()
ack a configure event
void configure(uint32_t serial, bool post=true)
suggest a surface change
std::function< void(zxdg_toplevel_v6_t)> & on_get_toplevel()
assign the xdg_toplevel surface role
std::function< void(zxdg_popup_v6_t, zxdg_surface_v6_t, zxdg_positioner_v6_t)> & on_get_popup()
assign the xdg_popup surface role
void post_not_constructed(std::string const &msg)
Post error:
void post_unconfigured_buffer(std::string const &msg)
Post error:
std::function< void(int32_t, int32_t, int32_t, int32_t)> & on_set_window_geometry()
set the new window geometry
std::function< void()> & on_destroy()
destroy the xdg_surface
void post_already_constructed(std::string const &msg)
Post error:
void post_already_constructed(std::string const &msg)
Post error: xdg_toplevel already has a decoration object.
std::function< void()> & on_destroy()
destroy the decoration object
std::function< void()> & on_unset_mode()
unset the decoration mode
std::function< void(zxdg_toplevel_decoration_v1_mode)> & on_set_mode()
set the decoration mode
void configure(zxdg_toplevel_decoration_v1_mode const &mode, bool post=true)
suggest a surface change
void post_unconfigured_buffer(std::string const &msg)
Post error: xdg_toplevel has a buffer attached before configure.
void post_orphaned(std::string const &msg)
Post error: xdg_toplevel destroyed before the decoration object.
static constexpr std::uint32_t configure_since_version
Minimum protocol version required for the configure function.
static constexpr std::uint32_t close_since_version
Minimum protocol version required for the close function.
std::function< void(std::string)> & on_set_title()
set surface title
std::function< void(std::string)> & on_set_app_id()
set application ID
std::function< void(output_t)> & on_set_fullscreen()
set the window as fullscreen on a monitor
std::function< void(seat_t, uint32_t)> & on_move()
start an interactive move
std::function< void()> & on_unset_maximized()
unmaximize the window
void close(bool post=true)
surface wants to be closed
std::function< void()> & on_set_maximized()
maximize the window
std::function< void(zxdg_toplevel_v6_t)> & on_set_parent()
set the parent of this surface
std::function< void(seat_t, uint32_t, int32_t, int32_t)> & on_show_window_menu()
show the window menu
std::function< void(int32_t, int32_t)> & on_set_min_size()
set the minimum size
std::function< void()> & on_destroy()
destroy the xdg_toplevel
std::function< void()> & on_set_minimized()
set the window as minimized
static constexpr std::uint32_t configure_since_version
Minimum protocol version required for the configure function.
std::function< void(seat_t, uint32_t, zxdg_toplevel_v6_resize_edge)> & on_resize()
start an interactive resize
std::function< void(int32_t, int32_t)> & on_set_max_size()
set the maximum size
void configure(int32_t width, int32_t height, array_t const &states, bool post=true)
suggest a surface change
offer to transfer primary selection contents
offer to replace the contents of the primary selection
static const wayland::detail::bitfield< 10, 23 > latin
just latin characters should be entered
static const wayland::detail::bitfield< 10, 23 > lowercase
prefer lowercase letters
static const wayland::detail::bitfield< 10, 23 > hidden_text
characters should be hidden
static const wayland::detail::bitfield< 10, 23 > multiline
the text input is multiline
static const wayland::detail::bitfield< 10, 23 > auto_completion
suggest word completions
static const wayland::detail::bitfield< 10, 23 > auto_correction
suggest word corrections
static const wayland::detail::bitfield< 10, 23 > _default
auto completion, correction and capitalization
static const wayland::detail::bitfield< 10, 23 > none
no special behaviour
static const wayland::detail::bitfield< 10, 23 > uppercase
prefer uppercase letters
static const wayland::detail::bitfield< 10, 23 > titlecase
prefer casing for titles and headings (can be language dependent)
static const wayland::detail::bitfield< 10, 23 > sensitive_data
typed text should not be stored
static const wayland::detail::bitfield< 10, 23 > password
hidden and sensitive text
static const wayland::detail::bitfield< 10, 23 > auto_capitalization
switch to uppercase letters at the start of a sentence
static const wayland::detail::bitfield< 10, 28 > lowercase
prefer lowercase letters
static const wayland::detail::bitfield< 10, 28 > latin
just Latin characters should be entered
static const wayland::detail::bitfield< 10, 28 > spellcheck
suggest word corrections
static const wayland::detail::bitfield< 10, 28 > titlecase
prefer casing for titles and headings (can be language dependent)
static const wayland::detail::bitfield< 10, 28 > uppercase
prefer uppercase letters
static const wayland::detail::bitfield< 10, 28 > completion
suggest word completions
static const wayland::detail::bitfield< 10, 28 > auto_capitalization
switch to uppercase letters at the start of a sentence
static const wayland::detail::bitfield< 10, 28 > multiline
the text input is multiline
static const wayland::detail::bitfield< 10, 28 > sensitive_data
typed text should not be stored
static const wayland::detail::bitfield< 10, 28 > hidden_text
characters should be hidden
static const wayland::detail::bitfield< 10, 28 > none
no special behavior