Wayland++  1.0.0
C++ Bindings for Wayland
wayland-server-protocol-unstable.hpp
1 #pragma once
2 
3 #include <array>
4 #include <cstdint>
5 #include <functional>
6 #include <memory>
7 #include <string>
8 #include <vector>
9 
10 #include <wayland-server.hpp>
11 #include <wayland-server-protocol-extra.hpp>
12 
13 struct zwp_fullscreen_shell_v1;
14 struct zwp_fullscreen_shell_mode_feedback_v1;
15 struct zwp_idle_inhibit_manager_v1;
16 struct zwp_idle_inhibitor_v1;
17 struct zwp_input_method_context_v1;
18 struct zwp_input_method_v1;
19 struct zwp_input_panel_v1;
20 struct zwp_input_panel_surface_v1;
21 struct zwp_input_timestamps_manager_v1;
22 struct zwp_input_timestamps_v1;
23 struct zwp_keyboard_shortcuts_inhibit_manager_v1;
24 struct zwp_keyboard_shortcuts_inhibitor_v1;
25 struct zwp_linux_dmabuf_v1;
26 struct zwp_linux_buffer_params_v1;
27 struct zwp_linux_dmabuf_feedback_v1;
28 struct zwp_linux_explicit_synchronization_v1;
29 struct zwp_linux_surface_synchronization_v1;
30 struct zwp_linux_buffer_release_v1;
31 struct zwp_pointer_constraints_v1;
32 struct zwp_locked_pointer_v1;
33 struct zwp_confined_pointer_v1;
34 struct zwp_pointer_gestures_v1;
35 struct zwp_pointer_gesture_swipe_v1;
36 struct zwp_pointer_gesture_pinch_v1;
37 struct zwp_pointer_gesture_hold_v1;
38 struct zwp_primary_selection_device_manager_v1;
39 struct zwp_primary_selection_device_v1;
40 struct zwp_primary_selection_offer_v1;
41 struct zwp_primary_selection_source_v1;
42 struct zwp_relative_pointer_manager_v1;
43 struct zwp_relative_pointer_v1;
44 struct zwp_tablet_manager_v1;
45 struct zwp_tablet_seat_v1;
46 struct zwp_tablet_tool_v1;
47 struct zwp_tablet_v1;
48 struct zwp_tablet_manager_v2;
49 struct zwp_tablet_seat_v2;
50 struct zwp_tablet_tool_v2;
51 struct zwp_tablet_v2;
52 struct zwp_tablet_pad_ring_v2;
53 struct zwp_tablet_pad_strip_v2;
54 struct zwp_tablet_pad_group_v2;
55 struct zwp_tablet_pad_v2;
56 struct zwp_text_input_v1;
57 struct zwp_text_input_manager_v1;
58 struct zwp_text_input_v3;
59 struct zwp_text_input_manager_v3;
60 struct xdg_activation_v1;
61 struct xdg_activation_token_v1;
62 struct zxdg_decoration_manager_v1;
63 struct zxdg_toplevel_decoration_v1;
64 struct zxdg_exporter_v1;
65 struct zxdg_importer_v1;
66 struct zxdg_exported_v1;
67 struct zxdg_imported_v1;
68 struct zxdg_exporter_v2;
69 struct zxdg_importer_v2;
70 struct zxdg_exported_v2;
71 struct zxdg_imported_v2;
72 struct zxdg_output_manager_v1;
73 struct zxdg_output_v1;
74 struct zxdg_shell_v6;
75 struct zxdg_positioner_v6;
76 struct zxdg_surface_v6;
77 struct zxdg_toplevel_v6;
78 struct zxdg_popup_v6;
79 struct zwp_xwayland_keyboard_grab_manager_v1;
80 struct zwp_xwayland_keyboard_grab_v1;
81 
82 namespace wayland
83 {
84 namespace server
85 {
86 class zwp_fullscreen_shell_v1_t;
87 enum class zwp_fullscreen_shell_v1_capability : uint32_t;
88 enum class zwp_fullscreen_shell_v1_present_method : uint32_t;
89 enum class zwp_fullscreen_shell_v1_error : uint32_t;
90 class zwp_fullscreen_shell_mode_feedback_v1_t;
91 class zwp_idle_inhibit_manager_v1_t;
92 class zwp_idle_inhibitor_v1_t;
93 class zwp_input_method_context_v1_t;
94 class zwp_input_method_v1_t;
95 class zwp_input_panel_v1_t;
96 class zwp_input_panel_surface_v1_t;
97 enum class zwp_input_panel_surface_v1_position : uint32_t;
98 class zwp_input_timestamps_manager_v1_t;
99 class zwp_input_timestamps_v1_t;
100 class zwp_keyboard_shortcuts_inhibit_manager_v1_t;
101 enum class zwp_keyboard_shortcuts_inhibit_manager_v1_error : uint32_t;
102 class zwp_keyboard_shortcuts_inhibitor_v1_t;
103 class zwp_linux_dmabuf_v1_t;
104 class zwp_linux_buffer_params_v1_t;
105 enum class zwp_linux_buffer_params_v1_error : uint32_t;
106 struct zwp_linux_buffer_params_v1_flags;
107 class zwp_linux_dmabuf_feedback_v1_t;
108 struct zwp_linux_dmabuf_feedback_v1_tranche_flags;
109 class zwp_linux_explicit_synchronization_v1_t;
110 enum class zwp_linux_explicit_synchronization_v1_error : uint32_t;
111 class zwp_linux_surface_synchronization_v1_t;
112 enum class zwp_linux_surface_synchronization_v1_error : uint32_t;
113 class zwp_linux_buffer_release_v1_t;
114 class zwp_pointer_constraints_v1_t;
115 enum class zwp_pointer_constraints_v1_error : uint32_t;
116 enum class zwp_pointer_constraints_v1_lifetime : uint32_t;
117 class zwp_locked_pointer_v1_t;
118 class zwp_confined_pointer_v1_t;
119 class zwp_pointer_gestures_v1_t;
120 class zwp_pointer_gesture_swipe_v1_t;
121 class zwp_pointer_gesture_pinch_v1_t;
122 class zwp_pointer_gesture_hold_v1_t;
123 class zwp_primary_selection_device_manager_v1_t;
124 class zwp_primary_selection_device_v1_t;
125 class zwp_primary_selection_offer_v1_t;
126 class zwp_primary_selection_source_v1_t;
127 class zwp_relative_pointer_manager_v1_t;
128 class zwp_relative_pointer_v1_t;
129 class zwp_tablet_manager_v1_t;
130 class zwp_tablet_seat_v1_t;
131 class zwp_tablet_tool_v1_t;
132 enum class zwp_tablet_tool_v1_type : uint32_t;
133 enum class zwp_tablet_tool_v1_capability : uint32_t;
134 enum class zwp_tablet_tool_v1_button_state : uint32_t;
135 enum class zwp_tablet_tool_v1_error : uint32_t;
136 class zwp_tablet_v1_t;
137 class zwp_tablet_manager_v2_t;
138 class zwp_tablet_seat_v2_t;
139 class zwp_tablet_tool_v2_t;
140 enum class zwp_tablet_tool_v2_type : uint32_t;
141 enum class zwp_tablet_tool_v2_capability : uint32_t;
142 enum class zwp_tablet_tool_v2_button_state : uint32_t;
143 enum class zwp_tablet_tool_v2_error : uint32_t;
144 class zwp_tablet_v2_t;
145 class zwp_tablet_pad_ring_v2_t;
146 enum class zwp_tablet_pad_ring_v2_source : uint32_t;
147 class zwp_tablet_pad_strip_v2_t;
148 enum class zwp_tablet_pad_strip_v2_source : uint32_t;
149 class zwp_tablet_pad_group_v2_t;
150 class zwp_tablet_pad_v2_t;
151 enum class zwp_tablet_pad_v2_button_state : uint32_t;
152 class zwp_text_input_v1_t;
153 struct zwp_text_input_v1_content_hint;
154 enum class zwp_text_input_v1_content_purpose : uint32_t;
155 enum class zwp_text_input_v1_preedit_style : uint32_t;
156 enum class zwp_text_input_v1_text_direction : uint32_t;
157 class zwp_text_input_manager_v1_t;
158 class zwp_text_input_v3_t;
159 enum class zwp_text_input_v3_change_cause : uint32_t;
160 struct zwp_text_input_v3_content_hint;
161 enum class zwp_text_input_v3_content_purpose : uint32_t;
162 class zwp_text_input_manager_v3_t;
163 class xdg_activation_v1_t;
164 class xdg_activation_token_v1_t;
165 enum class xdg_activation_token_v1_error : uint32_t;
166 class zxdg_decoration_manager_v1_t;
167 class zxdg_toplevel_decoration_v1_t;
168 enum class zxdg_toplevel_decoration_v1_error : uint32_t;
169 enum class zxdg_toplevel_decoration_v1_mode : uint32_t;
170 class zxdg_exporter_v1_t;
171 class zxdg_importer_v1_t;
172 class zxdg_exported_v1_t;
173 class zxdg_imported_v1_t;
174 class zxdg_exporter_v2_t;
175 enum class zxdg_exporter_v2_error : uint32_t;
176 class zxdg_importer_v2_t;
177 class zxdg_exported_v2_t;
178 class zxdg_imported_v2_t;
179 enum class zxdg_imported_v2_error : uint32_t;
180 class zxdg_output_manager_v1_t;
181 class zxdg_output_v1_t;
182 class zxdg_shell_v6_t;
183 enum class zxdg_shell_v6_error : uint32_t;
184 class zxdg_positioner_v6_t;
185 enum class zxdg_positioner_v6_error : uint32_t;
186 struct zxdg_positioner_v6_anchor;
187 struct zxdg_positioner_v6_gravity;
188 struct zxdg_positioner_v6_constraint_adjustment;
189 class zxdg_surface_v6_t;
190 enum class zxdg_surface_v6_error : uint32_t;
191 class zxdg_toplevel_v6_t;
192 struct zxdg_toplevel_v6_resize_edge;
193 enum class zxdg_toplevel_v6_state : uint32_t;
194 class zxdg_popup_v6_t;
195 enum class zxdg_popup_v6_error : uint32_t;
196 class zwp_xwayland_keyboard_grab_manager_v1_t;
197 class zwp_xwayland_keyboard_grab_v1_t;
198 
199 namespace detail
200 {
201  extern const wl_interface zwp_fullscreen_shell_v1_interface;
202  extern const wl_interface zwp_fullscreen_shell_mode_feedback_v1_interface;
203  extern const wl_interface zwp_idle_inhibit_manager_v1_interface;
204  extern const wl_interface zwp_idle_inhibitor_v1_interface;
205  extern const wl_interface zwp_input_method_context_v1_interface;
206  extern const wl_interface zwp_input_method_v1_interface;
207  extern const wl_interface zwp_input_panel_v1_interface;
208  extern const wl_interface zwp_input_panel_surface_v1_interface;
209  extern const wl_interface zwp_input_timestamps_manager_v1_interface;
210  extern const wl_interface zwp_input_timestamps_v1_interface;
211  extern const wl_interface zwp_keyboard_shortcuts_inhibit_manager_v1_interface;
212  extern const wl_interface zwp_keyboard_shortcuts_inhibitor_v1_interface;
213  extern const wl_interface zwp_linux_dmabuf_v1_interface;
214  extern const wl_interface zwp_linux_buffer_params_v1_interface;
215  extern const wl_interface zwp_linux_dmabuf_feedback_v1_interface;
216  extern const wl_interface zwp_linux_explicit_synchronization_v1_interface;
217  extern const wl_interface zwp_linux_surface_synchronization_v1_interface;
218  extern const wl_interface zwp_linux_buffer_release_v1_interface;
219  extern const wl_interface zwp_pointer_constraints_v1_interface;
220  extern const wl_interface zwp_locked_pointer_v1_interface;
221  extern const wl_interface zwp_confined_pointer_v1_interface;
222  extern const wl_interface zwp_pointer_gestures_v1_interface;
223  extern const wl_interface zwp_pointer_gesture_swipe_v1_interface;
224  extern const wl_interface zwp_pointer_gesture_pinch_v1_interface;
225  extern const wl_interface zwp_pointer_gesture_hold_v1_interface;
226  extern const wl_interface zwp_primary_selection_device_manager_v1_interface;
227  extern const wl_interface zwp_primary_selection_device_v1_interface;
228  extern const wl_interface zwp_primary_selection_offer_v1_interface;
229  extern const wl_interface zwp_primary_selection_source_v1_interface;
230  extern const wl_interface zwp_relative_pointer_manager_v1_interface;
231  extern const wl_interface zwp_relative_pointer_v1_interface;
232  extern const wl_interface zwp_tablet_manager_v1_interface;
233  extern const wl_interface zwp_tablet_seat_v1_interface;
234  extern const wl_interface zwp_tablet_tool_v1_interface;
235  extern const wl_interface zwp_tablet_v1_interface;
236  extern const wl_interface zwp_tablet_manager_v2_interface;
237  extern const wl_interface zwp_tablet_seat_v2_interface;
238  extern const wl_interface zwp_tablet_tool_v2_interface;
239  extern const wl_interface zwp_tablet_v2_interface;
240  extern const wl_interface zwp_tablet_pad_ring_v2_interface;
241  extern const wl_interface zwp_tablet_pad_strip_v2_interface;
242  extern const wl_interface zwp_tablet_pad_group_v2_interface;
243  extern const wl_interface zwp_tablet_pad_v2_interface;
244  extern const wl_interface zwp_text_input_v1_interface;
245  extern const wl_interface zwp_text_input_manager_v1_interface;
246  extern const wl_interface zwp_text_input_v3_interface;
247  extern const wl_interface zwp_text_input_manager_v3_interface;
248  extern const wl_interface xdg_activation_v1_interface;
249  extern const wl_interface xdg_activation_token_v1_interface;
250  extern const wl_interface zxdg_decoration_manager_v1_interface;
251  extern const wl_interface zxdg_toplevel_decoration_v1_interface;
252  extern const wl_interface zxdg_exporter_v1_interface;
253  extern const wl_interface zxdg_importer_v1_interface;
254  extern const wl_interface zxdg_exported_v1_interface;
255  extern const wl_interface zxdg_imported_v1_interface;
256  extern const wl_interface zxdg_exporter_v2_interface;
257  extern const wl_interface zxdg_importer_v2_interface;
258  extern const wl_interface zxdg_exported_v2_interface;
259  extern const wl_interface zxdg_imported_v2_interface;
260  extern const wl_interface zxdg_output_manager_v1_interface;
261  extern const wl_interface zxdg_output_v1_interface;
262  extern const wl_interface zxdg_shell_v6_interface;
263  extern const wl_interface zxdg_positioner_v6_interface;
264  extern const wl_interface zxdg_surface_v6_interface;
265  extern const wl_interface zxdg_toplevel_v6_interface;
266  extern const wl_interface zxdg_popup_v6_interface;
267  extern const wl_interface zwp_xwayland_keyboard_grab_manager_v1_interface;
268  extern const wl_interface zwp_xwayland_keyboard_grab_v1_interface;
269 }
270 
308 class zwp_fullscreen_shell_v1_t : public resource_t
309 {
310 private:
311  struct events_t : public resource_t::events_base_t
312  {
313  std::function<void()> release;
314  std::function<void(surface_t, zwp_fullscreen_shell_v1_present_method, output_t)> present_surface;
315  std::function<void(surface_t, output_t, int32_t, zwp_fullscreen_shell_mode_feedback_v1_t)> present_surface_for_mode;
316  };
317 
318  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
319 
320 protected:
321  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_fullscreen_shell_v1_interface;
322  static constexpr const unsigned int max_version = 1;
323 
324  friend class global_t<zwp_fullscreen_shell_v1_t>;
325  friend class global_base_t;
326 
327 public:
328  zwp_fullscreen_shell_v1_t() = default;
329  zwp_fullscreen_shell_v1_t(const client_t& client, uint32_t id, int version = 1);
330  zwp_fullscreen_shell_v1_t(const resource_t &resource);
331 
332  static const std::string interface_name;
333 
334  operator zwp_fullscreen_shell_v1*() const;
335 
345  std::function<void()> &on_release();
346 
375  std::function<void(surface_t, zwp_fullscreen_shell_v1_present_method, output_t)> &on_present_surface();
376 
426  std::function<void(surface_t, output_t, int32_t, zwp_fullscreen_shell_mode_feedback_v1_t)> &on_present_surface_for_mode();
427 
441  void capability(zwp_fullscreen_shell_v1_capability const& capability, bool post = true);
442 
445  static constexpr std::uint32_t capability_since_version = 1;
446 
449  void post_invalid_method(std::string const& msg);
450 
453  void post_role(std::string const& msg);
454 
455 };
456 
458 
484 enum class zwp_fullscreen_shell_v1_capability : uint32_t
485  {
487  arbitrary_modes = 1,
489  cursor_plane = 2
490 };
491 
499 enum class zwp_fullscreen_shell_v1_present_method : uint32_t
500  {
502  _default = 0,
504  center = 1,
506  zoom = 2,
508  zoom_crop = 3,
510  stretch = 4
511 };
512 
518 enum class zwp_fullscreen_shell_v1_error : uint32_t
519  {
521  invalid_method = 0,
523  role = 1
524 };
525 
526 
530 class zwp_fullscreen_shell_mode_feedback_v1_t : public resource_t
531 {
532 private:
533  struct events_t : public resource_t::events_base_t
534  {
535  };
536 
537  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
538 
539 protected:
540  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_fullscreen_shell_mode_feedback_v1_interface;
541  static constexpr const unsigned int max_version = 1;
542 
543  friend class global_t<zwp_fullscreen_shell_mode_feedback_v1_t>;
544  friend class global_base_t;
545 
546 public:
547  zwp_fullscreen_shell_mode_feedback_v1_t() = default;
548  zwp_fullscreen_shell_mode_feedback_v1_t(const client_t& client, uint32_t id, int version = 1);
549  zwp_fullscreen_shell_mode_feedback_v1_t(const resource_t &resource);
550 
551  static const std::string interface_name;
552 
553  operator zwp_fullscreen_shell_mode_feedback_v1*() const;
554 
565  void mode_successful(bool post = true);
566 
569  static constexpr std::uint32_t mode_successful_since_version = 1;
570 
581  void mode_failed(bool post = true);
582 
585  static constexpr std::uint32_t mode_failed_since_version = 1;
586 
597  void present_cancelled(bool post = true);
598 
601  static constexpr std::uint32_t present_cancelled_since_version = 1;
602 
603 };
604 
605 using global_zwp_fullscreen_shell_mode_feedback_v1_t = global_t<zwp_fullscreen_shell_mode_feedback_v1_t>;
606 
607 
624 class zwp_idle_inhibit_manager_v1_t : public resource_t
625 {
626 private:
627  struct events_t : public resource_t::events_base_t
628  {
629  std::function<void()> destroy;
630  std::function<void(zwp_idle_inhibitor_v1_t, surface_t)> create_inhibitor;
631  };
632 
633  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
634 
635 protected:
636  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_idle_inhibit_manager_v1_interface;
637  static constexpr const unsigned int max_version = 1;
638 
639  friend class global_t<zwp_idle_inhibit_manager_v1_t>;
640  friend class global_base_t;
641 
642 public:
643  zwp_idle_inhibit_manager_v1_t() = default;
644  zwp_idle_inhibit_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
645  zwp_idle_inhibit_manager_v1_t(const resource_t &resource);
646 
647  static const std::string interface_name;
648 
649  operator zwp_idle_inhibit_manager_v1*() const;
650 
656  std::function<void()> &on_destroy();
657 
665  std::function<void(zwp_idle_inhibitor_v1_t, surface_t)> &on_create_inhibitor();
666 
667 };
668 
670 
671 
688 class zwp_idle_inhibitor_v1_t : public resource_t
689 {
690 private:
691  struct events_t : public resource_t::events_base_t
692  {
693  std::function<void()> destroy;
694  };
695 
696  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
697 
698 protected:
699  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_idle_inhibitor_v1_interface;
700  static constexpr const unsigned int max_version = 1;
701 
702  friend class global_t<zwp_idle_inhibitor_v1_t>;
703  friend class global_base_t;
704 
705 public:
706  zwp_idle_inhibitor_v1_t() = default;
707  zwp_idle_inhibitor_v1_t(const client_t& client, uint32_t id, int version = 1);
708  zwp_idle_inhibitor_v1_t(const resource_t &resource);
709 
710  static const std::string interface_name;
711 
712  operator zwp_idle_inhibitor_v1*() const;
713 
719  std::function<void()> &on_destroy();
720 
721 };
722 
724 
725 
753 class zwp_input_method_context_v1_t : public resource_t
754 {
755 private:
756  struct events_t : public resource_t::events_base_t
757  {
758  std::function<void()> destroy;
759  std::function<void(uint32_t, std::string)> commit_string;
760  std::function<void(uint32_t, std::string, std::string)> preedit_string;
761  std::function<void(uint32_t, uint32_t, zwp_text_input_v1_preedit_style)> preedit_styling;
762  std::function<void(int32_t)> preedit_cursor;
763  std::function<void(int32_t, uint32_t)> delete_surrounding_text;
764  std::function<void(int32_t, int32_t)> cursor_position;
765  std::function<void(array_t)> modifiers_map;
766  std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state, uint32_t)> keysym;
767  std::function<void(keyboard_t)> grab_keyboard;
768  std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> key;
769  std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> modifiers;
770  std::function<void(uint32_t, std::string)> language;
771  std::function<void(uint32_t, uint32_t)> text_direction;
772  };
773 
774  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
775 
776 protected:
777  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_method_context_v1_interface;
778  static constexpr const unsigned int max_version = 1;
779 
780  friend class global_t<zwp_input_method_context_v1_t>;
781  friend class global_base_t;
782 
783 public:
784  zwp_input_method_context_v1_t() = default;
785  zwp_input_method_context_v1_t(const client_t& client, uint32_t id, int version = 1);
786  zwp_input_method_context_v1_t(const resource_t &resource);
787 
788  static const std::string interface_name;
789 
790  operator zwp_input_method_context_v1*() const;
791 
795  std::function<void()> &on_destroy();
796 
812  std::function<void(uint32_t, std::string)> &on_commit_string();
813 
828  std::function<void(uint32_t, std::string, std::string)> &on_preedit_string();
829 
843  std::function<void(uint32_t, uint32_t, zwp_text_input_v1_preedit_style)> &on_preedit_styling();
844 
856  std::function<void(int32_t)> &on_preedit_cursor();
857 
868  std::function<void(int32_t, uint32_t)> &on_delete_surrounding_text();
869 
886  std::function<void(int32_t, int32_t)> &on_cursor_position();
887 
892  std::function<void(array_t)> &on_modifiers_map();
893 
907  std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state, uint32_t)> &on_keysym();
908 
918  std::function<void(keyboard_t)> &on_grab_keyboard();
919 
934  std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> &on_key();
935 
949  std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> &on_modifiers();
950 
956  std::function<void(uint32_t, std::string)> &on_language();
957 
963  std::function<void(uint32_t, uint32_t)> &on_text_direction();
964 
977  void surrounding_text(std::string const& text, uint32_t cursor, uint32_t anchor, bool post = true);
978 
981  static constexpr std::uint32_t surrounding_text_since_version = 1;
982 
986  void reset(bool post = true);
987 
990  static constexpr std::uint32_t reset_since_version = 1;
991 
997  void content_type(zwp_text_input_v1_content_hint const& hint, zwp_text_input_v1_content_purpose const& purpose, bool post = true);
998 
1001  static constexpr std::uint32_t content_type_since_version = 1;
1002 
1008  void invoke_action(uint32_t button, uint32_t index, bool post = true);
1009 
1012  static constexpr std::uint32_t invoke_action_since_version = 1;
1013 
1018  void commit_state(uint32_t serial, bool post = true);
1019 
1022  static constexpr std::uint32_t commit_state_since_version = 1;
1023 
1028  void preferred_language(std::string const& language, bool post = true);
1029 
1032  static constexpr std::uint32_t preferred_language_since_version = 1;
1033 
1034 };
1035 
1037 
1038 
1047 class zwp_input_method_v1_t : public resource_t
1048 {
1049 private:
1050  struct events_t : public resource_t::events_base_t
1051  {
1052  };
1053 
1054  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1055 
1056 protected:
1057  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_method_v1_interface;
1058  static constexpr const unsigned int max_version = 1;
1059 
1060  friend class global_t<zwp_input_method_v1_t>;
1061  friend class global_base_t;
1062 
1063 public:
1064  zwp_input_method_v1_t() = default;
1065  zwp_input_method_v1_t(const client_t& client, uint32_t id, int version = 1);
1066  zwp_input_method_v1_t(const resource_t &resource);
1067 
1068  static const std::string interface_name;
1069 
1070  operator zwp_input_method_v1*() const;
1071 
1078  void activate(bool post = true);
1079 
1082  static constexpr std::uint32_t activate_since_version = 1;
1083 
1092  void deactivate(zwp_input_method_context_v1_t const& context, bool post = true);
1093 
1096  static constexpr std::uint32_t deactivate_since_version = 1;
1097 
1098 };
1099 
1101 
1102 
1108 class zwp_input_panel_v1_t : public resource_t
1109 {
1110 private:
1111  struct events_t : public resource_t::events_base_t
1112  {
1113  std::function<void(zwp_input_panel_surface_v1_t, surface_t)> get_input_panel_surface;
1114  };
1115 
1116  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1117 
1118 protected:
1119  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_panel_v1_interface;
1120  static constexpr const unsigned int max_version = 1;
1121 
1122  friend class global_t<zwp_input_panel_v1_t>;
1123  friend class global_base_t;
1124 
1125 public:
1126  zwp_input_panel_v1_t() = default;
1127  zwp_input_panel_v1_t(const client_t& client, uint32_t id, int version = 1);
1128  zwp_input_panel_v1_t(const resource_t &resource);
1129 
1130  static const std::string interface_name;
1131 
1132  operator zwp_input_panel_v1*() const;
1133 
1139  std::function<void(zwp_input_panel_surface_v1_t, surface_t)> &on_get_input_panel_surface();
1140 
1141 };
1142 
1144 
1145 
1149 class zwp_input_panel_surface_v1_t : public resource_t
1150 {
1151 private:
1152  struct events_t : public resource_t::events_base_t
1153  {
1154  std::function<void(output_t, zwp_input_panel_surface_v1_position)> set_toplevel;
1155  std::function<void()> set_overlay_panel;
1156  };
1157 
1158  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1159 
1160 protected:
1161  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_panel_surface_v1_interface;
1162  static constexpr const unsigned int max_version = 1;
1163 
1164  friend class global_t<zwp_input_panel_surface_v1_t>;
1165  friend class global_base_t;
1166 
1167 public:
1168  zwp_input_panel_surface_v1_t() = default;
1169  zwp_input_panel_surface_v1_t(const client_t& client, uint32_t id, int version = 1);
1170  zwp_input_panel_surface_v1_t(const resource_t &resource);
1171 
1172  static const std::string interface_name;
1173 
1174  operator zwp_input_panel_surface_v1*() const;
1175 
1185  std::function<void(output_t, zwp_input_panel_surface_v1_position)> &on_set_toplevel();
1186 
1195  std::function<void()> &on_set_overlay_panel();
1196 
1197 };
1198 
1199 using global_zwp_input_panel_surface_v1_t = global_t<zwp_input_panel_surface_v1_t>;
1200 
1204 enum class zwp_input_panel_surface_v1_position : uint32_t
1205  {
1206  center_bottom = 0
1207 };
1208 
1209 
1216 class zwp_input_timestamps_manager_v1_t : public resource_t
1217 {
1218 private:
1219  struct events_t : public resource_t::events_base_t
1220  {
1221  std::function<void()> destroy;
1222  std::function<void(zwp_input_timestamps_v1_t, keyboard_t)> get_keyboard_timestamps;
1223  std::function<void(zwp_input_timestamps_v1_t, pointer_t)> get_pointer_timestamps;
1224  std::function<void(zwp_input_timestamps_v1_t, touch_t)> get_touch_timestamps;
1225  };
1226 
1227  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1228 
1229 protected:
1230  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_timestamps_manager_v1_interface;
1231  static constexpr const unsigned int max_version = 1;
1232 
1233  friend class global_t<zwp_input_timestamps_manager_v1_t>;
1234  friend class global_base_t;
1235 
1236 public:
1237  zwp_input_timestamps_manager_v1_t() = default;
1238  zwp_input_timestamps_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
1239  zwp_input_timestamps_manager_v1_t(const resource_t &resource);
1240 
1241  static const std::string interface_name;
1242 
1243  operator zwp_input_timestamps_manager_v1*() const;
1244 
1252  std::function<void()> &on_destroy();
1253 
1268  std::function<void(zwp_input_timestamps_v1_t, keyboard_t)> &on_get_keyboard_timestamps();
1269 
1284  std::function<void(zwp_input_timestamps_v1_t, pointer_t)> &on_get_pointer_timestamps();
1285 
1300  std::function<void(zwp_input_timestamps_v1_t, touch_t)> &on_get_touch_timestamps();
1301 
1302 };
1303 
1305 
1306 
1314 class zwp_input_timestamps_v1_t : public resource_t
1315 {
1316 private:
1317  struct events_t : public resource_t::events_base_t
1318  {
1319  std::function<void()> destroy;
1320  };
1321 
1322  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1323 
1324 protected:
1325  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_input_timestamps_v1_interface;
1326  static constexpr const unsigned int max_version = 1;
1327 
1328  friend class global_t<zwp_input_timestamps_v1_t>;
1329  friend class global_base_t;
1330 
1331 public:
1332  zwp_input_timestamps_v1_t() = default;
1333  zwp_input_timestamps_v1_t(const client_t& client, uint32_t id, int version = 1);
1334  zwp_input_timestamps_v1_t(const resource_t &resource);
1335 
1336  static const std::string interface_name;
1337 
1338  operator zwp_input_timestamps_v1*() const;
1339 
1347  std::function<void()> &on_destroy();
1348 
1370  void timestamp(uint32_t tv_sec_hi, uint32_t tv_sec_lo, uint32_t tv_nsec, bool post = true);
1371 
1374  static constexpr std::uint32_t timestamp_since_version = 1;
1375 
1376 };
1377 
1379 
1380 
1387 {
1388 private:
1389  struct events_t : public resource_t::events_base_t
1390  {
1391  std::function<void()> destroy;
1392  std::function<void(zwp_keyboard_shortcuts_inhibitor_v1_t, surface_t, seat_t)> inhibit_shortcuts;
1393  };
1394 
1395  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1396 
1397 protected:
1398  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_keyboard_shortcuts_inhibit_manager_v1_interface;
1399  static constexpr const unsigned int max_version = 1;
1400 
1401  friend class global_t<zwp_keyboard_shortcuts_inhibit_manager_v1_t>;
1402  friend class global_base_t;
1403 
1404 public:
1405  zwp_keyboard_shortcuts_inhibit_manager_v1_t() = default;
1406  zwp_keyboard_shortcuts_inhibit_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
1407  zwp_keyboard_shortcuts_inhibit_manager_v1_t(const resource_t &resource);
1408 
1409  static const std::string interface_name;
1410 
1411  operator zwp_keyboard_shortcuts_inhibit_manager_v1*() const;
1412 
1418  std::function<void()> &on_destroy();
1419 
1432  std::function<void(zwp_keyboard_shortcuts_inhibitor_v1_t, surface_t, seat_t)> &on_inhibit_shortcuts();
1433 
1436  void post_already_inhibited(std::string const& msg);
1437 
1438 };
1439 
1441 
1445 enum class zwp_keyboard_shortcuts_inhibit_manager_v1_error : uint32_t
1446  {
1448  already_inhibited = 0
1449 };
1450 
1451 
1489 class zwp_keyboard_shortcuts_inhibitor_v1_t : public resource_t
1490 {
1491 private:
1492  struct events_t : public resource_t::events_base_t
1493  {
1494  std::function<void()> destroy;
1495  };
1496 
1497  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1498 
1499 protected:
1500  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_keyboard_shortcuts_inhibitor_v1_interface;
1501  static constexpr const unsigned int max_version = 1;
1502 
1503  friend class global_t<zwp_keyboard_shortcuts_inhibitor_v1_t>;
1504  friend class global_base_t;
1505 
1506 public:
1507  zwp_keyboard_shortcuts_inhibitor_v1_t() = default;
1508  zwp_keyboard_shortcuts_inhibitor_v1_t(const client_t& client, uint32_t id, int version = 1);
1509  zwp_keyboard_shortcuts_inhibitor_v1_t(const resource_t &resource);
1510 
1511  static const std::string interface_name;
1512 
1513  operator zwp_keyboard_shortcuts_inhibitor_v1*() const;
1514 
1520  std::function<void()> &on_destroy();
1521 
1537  void active(bool post = true);
1538 
1541  static constexpr std::uint32_t active_since_version = 1;
1542 
1549  void inactive(bool post = true);
1550 
1553  static constexpr std::uint32_t inactive_since_version = 1;
1554 
1555 };
1556 
1558 
1559 
1632 class zwp_linux_dmabuf_v1_t : public resource_t
1633 {
1634 private:
1635  struct events_t : public resource_t::events_base_t
1636  {
1637  std::function<void()> destroy;
1638  std::function<void(zwp_linux_buffer_params_v1_t)> create_params;
1639  std::function<void(zwp_linux_dmabuf_feedback_v1_t)> get_default_feedback;
1640  std::function<void(zwp_linux_dmabuf_feedback_v1_t, surface_t)> get_surface_feedback;
1641  };
1642 
1643  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1644 
1645 protected:
1646  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_dmabuf_v1_interface;
1647  static constexpr const unsigned int max_version = 4;
1648 
1649  friend class global_t<zwp_linux_dmabuf_v1_t>;
1650  friend class global_base_t;
1651 
1652 public:
1653  zwp_linux_dmabuf_v1_t() = default;
1654  zwp_linux_dmabuf_v1_t(const client_t& client, uint32_t id, int version = 4);
1655  zwp_linux_dmabuf_v1_t(const resource_t &resource);
1656 
1657  static const std::string interface_name;
1658 
1659  operator zwp_linux_dmabuf_v1*() const;
1660 
1667  std::function<void()> &on_destroy();
1668 
1678  std::function<void(zwp_linux_buffer_params_v1_t)> &on_create_params();
1679 
1689  std::function<void(zwp_linux_dmabuf_feedback_v1_t)> &on_get_default_feedback();
1690 
1703  std::function<void(zwp_linux_dmabuf_feedback_v1_t, surface_t)> &on_get_surface_feedback();
1704 
1721  void format(uint32_t format, bool post = true);
1722 
1725  static constexpr std::uint32_t format_since_version = 1;
1726 
1757  void modifier(uint32_t format, uint32_t modifier_hi, uint32_t modifier_lo, bool post = true);
1758 
1761  static constexpr std::uint32_t modifier_since_version = 3;
1762 
1766  bool can_modifier() const;
1767 
1768 };
1769 
1771 
1772 
1791 class zwp_linux_buffer_params_v1_t : public resource_t
1792 {
1793 private:
1794  struct events_t : public resource_t::events_base_t
1795  {
1796  std::function<void()> destroy;
1797  std::function<void(int, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> add;
1798  std::function<void(int32_t, int32_t, uint32_t, zwp_linux_buffer_params_v1_flags)> create;
1799  std::function<void(buffer_t, int32_t, int32_t, uint32_t, zwp_linux_buffer_params_v1_flags)> create_immed;
1800  };
1801 
1802  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
1803 
1804 protected:
1805  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_buffer_params_v1_interface;
1806  static constexpr const unsigned int max_version = 4;
1807 
1808  friend class global_t<zwp_linux_buffer_params_v1_t>;
1809  friend class global_base_t;
1810 
1811 public:
1812  zwp_linux_buffer_params_v1_t() = default;
1813  zwp_linux_buffer_params_v1_t(const client_t& client, uint32_t id, int version = 4);
1814  zwp_linux_buffer_params_v1_t(const resource_t &resource);
1815 
1816  static const std::string interface_name;
1817 
1818  operator zwp_linux_buffer_params_v1*() const;
1819 
1826  std::function<void()> &on_destroy();
1827 
1854  std::function<void(int, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> &on_add();
1855 
1923  std::function<void(int32_t, int32_t, uint32_t, zwp_linux_buffer_params_v1_flags)> &on_create();
1924 
1957  std::function<void(buffer_t, int32_t, int32_t, uint32_t, zwp_linux_buffer_params_v1_flags)> &on_create_immed();
1958 
1969  void created(bool post = true);
1970 
1973  static constexpr std::uint32_t created_since_version = 1;
1974 
1985  void failed(bool post = true);
1986 
1989  static constexpr std::uint32_t failed_since_version = 1;
1990 
1993  void post_already_used(std::string const& msg);
1994 
1997  void post_plane_idx(std::string const& msg);
1998 
2001  void post_plane_set(std::string const& msg);
2002 
2005  void post_incomplete(std::string const& msg);
2006 
2009  void post_invalid_format(std::string const& msg);
2010 
2013  void post_invalid_dimensions(std::string const& msg);
2014 
2017  void post_out_of_bounds(std::string const& msg);
2018 
2021  void post_invalid_wl_buffer(std::string const& msg);
2022 
2023 };
2024 
2026 
2030 enum class zwp_linux_buffer_params_v1_error : uint32_t
2031  {
2033  already_used = 0,
2035  plane_idx = 1,
2037  plane_set = 2,
2039  incomplete = 3,
2041  invalid_format = 4,
2043  invalid_dimensions = 5,
2045  out_of_bounds = 6,
2047  invalid_wl_buffer = 7
2048 };
2049 
2053 struct zwp_linux_buffer_params_v1_flags : public wayland::detail::bitfield<3, 6>
2054 {
2055  zwp_linux_buffer_params_v1_flags(const wayland::detail::bitfield<3, 6> &b)
2056  : wayland::detail::bitfield<3, 6>(b) {}
2057  zwp_linux_buffer_params_v1_flags(const uint32_t value)
2058  : wayland::detail::bitfield<3, 6>(value) {}
2060  static const wayland::detail::bitfield<3, 6> y_invert;
2062  static const wayland::detail::bitfield<3, 6> interlaced;
2064  static const wayland::detail::bitfield<3, 6> bottom_first;
2065 };
2066 
2067 
2097 class zwp_linux_dmabuf_feedback_v1_t : public resource_t
2098 {
2099 private:
2100  struct events_t : public resource_t::events_base_t
2101  {
2102  std::function<void()> destroy;
2103  };
2104 
2105  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2106 
2107 protected:
2108  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_dmabuf_feedback_v1_interface;
2109  static constexpr const unsigned int max_version = 4;
2110 
2111  friend class global_t<zwp_linux_dmabuf_feedback_v1_t>;
2112  friend class global_base_t;
2113 
2114 public:
2115  zwp_linux_dmabuf_feedback_v1_t() = default;
2116  zwp_linux_dmabuf_feedback_v1_t(const client_t& client, uint32_t id, int version = 4);
2117  zwp_linux_dmabuf_feedback_v1_t(const resource_t &resource);
2118 
2119  static const std::string interface_name;
2120 
2121  operator zwp_linux_dmabuf_feedback_v1*() const;
2122 
2129  std::function<void()> &on_destroy();
2130 
2140  void done(bool post = true);
2141 
2144  static constexpr std::uint32_t done_since_version = 1;
2145 
2166  void format_table(int fd, uint32_t size, bool post = true);
2167 
2170  static constexpr std::uint32_t format_table_since_version = 1;
2171 
2200  void main_device(array_t const& device, bool post = true);
2201 
2204  static constexpr std::uint32_t main_device_since_version = 1;
2205 
2214  void tranche_done(bool post = true);
2215 
2218  static constexpr std::uint32_t tranche_done_since_version = 1;
2219 
2251  void tranche_target_device(array_t const& device, bool post = true);
2252 
2255  static constexpr std::uint32_t tranche_target_device_since_version = 1;
2256 
2286  void tranche_formats(array_t const& indices, bool post = true);
2287 
2290  static constexpr std::uint32_t tranche_formats_since_version = 1;
2291 
2305  void tranche_flags(zwp_linux_dmabuf_feedback_v1_tranche_flags const& flags, bool post = true);
2306 
2309  static constexpr std::uint32_t tranche_flags_since_version = 1;
2310 
2311 };
2312 
2314 
2318 struct zwp_linux_dmabuf_feedback_v1_tranche_flags : public wayland::detail::bitfield<1, 7>
2319 {
2320  zwp_linux_dmabuf_feedback_v1_tranche_flags(const wayland::detail::bitfield<1, 7> &b)
2321  : wayland::detail::bitfield<1, 7>(b) {}
2322  zwp_linux_dmabuf_feedback_v1_tranche_flags(const uint32_t value)
2323  : wayland::detail::bitfield<1, 7>(value) {}
2325  static const wayland::detail::bitfield<1, 7> scanout;
2326 };
2327 
2328 
2350 {
2351 private:
2352  struct events_t : public resource_t::events_base_t
2353  {
2354  std::function<void()> destroy;
2355  std::function<void(zwp_linux_surface_synchronization_v1_t, surface_t)> get_synchronization;
2356  };
2357 
2358  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2359 
2360 protected:
2361  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_explicit_synchronization_v1_interface;
2362  static constexpr const unsigned int max_version = 2;
2363 
2364  friend class global_t<zwp_linux_explicit_synchronization_v1_t>;
2365  friend class global_base_t;
2366 
2367 public:
2368  zwp_linux_explicit_synchronization_v1_t() = default;
2369  zwp_linux_explicit_synchronization_v1_t(const client_t& client, uint32_t id, int version = 2);
2370  zwp_linux_explicit_synchronization_v1_t(const resource_t &resource);
2371 
2372  static const std::string interface_name;
2373 
2374  operator zwp_linux_explicit_synchronization_v1*() const;
2375 
2383  std::function<void()> &on_destroy();
2384 
2402  std::function<void(zwp_linux_surface_synchronization_v1_t, surface_t)> &on_get_synchronization();
2403 
2406  void post_synchronization_exists(std::string const& msg);
2407 
2408 };
2409 
2411 
2415 enum class zwp_linux_explicit_synchronization_v1_error : uint32_t
2416  {
2418  synchronization_exists = 0
2419 };
2420 
2421 
2457 {
2458 private:
2459  struct events_t : public resource_t::events_base_t
2460  {
2461  std::function<void()> destroy;
2462  std::function<void(int)> set_acquire_fence;
2463  std::function<void(zwp_linux_buffer_release_v1_t)> get_release;
2464  };
2465 
2466  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2467 
2468 protected:
2469  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_surface_synchronization_v1_interface;
2470  static constexpr const unsigned int max_version = 2;
2471 
2472  friend class global_t<zwp_linux_surface_synchronization_v1_t>;
2473  friend class global_base_t;
2474 
2475 public:
2476  zwp_linux_surface_synchronization_v1_t() = default;
2477  zwp_linux_surface_synchronization_v1_t(const client_t& client, uint32_t id, int version = 2);
2478  zwp_linux_surface_synchronization_v1_t(const resource_t &resource);
2479 
2480  static const std::string interface_name;
2481 
2482  operator zwp_linux_surface_synchronization_v1*() const;
2483 
2496  std::function<void()> &on_destroy();
2497 
2526  std::function<void(int)> &on_set_acquire_fence();
2527 
2550  std::function<void(zwp_linux_buffer_release_v1_t)> &on_get_release();
2551 
2554  void post_invalid_fence(std::string const& msg);
2555 
2558  void post_duplicate_fence(std::string const& msg);
2559 
2562  void post_duplicate_release(std::string const& msg);
2563 
2566  void post_no_surface(std::string const& msg);
2567 
2570  void post_unsupported_buffer(std::string const& msg);
2571 
2574  void post_no_buffer(std::string const& msg);
2575 
2576 };
2577 
2579 
2583 enum class zwp_linux_surface_synchronization_v1_error : uint32_t
2584  {
2586  invalid_fence = 0,
2588  duplicate_fence = 1,
2590  duplicate_release = 2,
2592  no_surface = 3,
2594  unsupported_buffer = 4,
2596  no_buffer = 5
2597 };
2598 
2599 
2621 class zwp_linux_buffer_release_v1_t : public resource_t
2622 {
2623 private:
2624  struct events_t : public resource_t::events_base_t
2625  {
2626  };
2627 
2628  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2629 
2630 protected:
2631  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_linux_buffer_release_v1_interface;
2632  static constexpr const unsigned int max_version = 1;
2633 
2634  friend class global_t<zwp_linux_buffer_release_v1_t>;
2635  friend class global_base_t;
2636 
2637 public:
2638  zwp_linux_buffer_release_v1_t() = default;
2639  zwp_linux_buffer_release_v1_t(const client_t& client, uint32_t id, int version = 1);
2640  zwp_linux_buffer_release_v1_t(const resource_t &resource);
2641 
2642  static const std::string interface_name;
2643 
2644  operator zwp_linux_buffer_release_v1*() const;
2645 
2662  void fenced_release(int fence, bool post = true);
2663 
2666  static constexpr std::uint32_t fenced_release_since_version = 1;
2667 
2683  void immediate_release(bool post = true);
2684 
2687  static constexpr std::uint32_t immediate_release_since_version = 1;
2688 
2689 };
2690 
2692 
2693 
2711 class zwp_pointer_constraints_v1_t : public resource_t
2712 {
2713 private:
2714  struct events_t : public resource_t::events_base_t
2715  {
2716  std::function<void()> destroy;
2717  std::function<void(zwp_locked_pointer_v1_t, surface_t, pointer_t, region_t, zwp_pointer_constraints_v1_lifetime)> lock_pointer;
2718  std::function<void(zwp_confined_pointer_v1_t, surface_t, pointer_t, region_t, zwp_pointer_constraints_v1_lifetime)> confine_pointer;
2719  };
2720 
2721  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2722 
2723 protected:
2724  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_pointer_constraints_v1_interface;
2725  static constexpr const unsigned int max_version = 1;
2726 
2727  friend class global_t<zwp_pointer_constraints_v1_t>;
2728  friend class global_base_t;
2729 
2730 public:
2731  zwp_pointer_constraints_v1_t() = default;
2732  zwp_pointer_constraints_v1_t(const client_t& client, uint32_t id, int version = 1);
2733  zwp_pointer_constraints_v1_t(const resource_t &resource);
2734 
2735  static const std::string interface_name;
2736 
2737  operator zwp_pointer_constraints_v1*() const;
2738 
2745  std::function<void()> &on_destroy();
2746 
2790  std::function<void(zwp_locked_pointer_v1_t, surface_t, pointer_t, region_t, zwp_pointer_constraints_v1_lifetime)> &on_lock_pointer();
2791 
2818  std::function<void(zwp_confined_pointer_v1_t, surface_t, pointer_t, region_t, zwp_pointer_constraints_v1_lifetime)> &on_confine_pointer();
2819 
2822  void post_already_constrained(std::string const& msg);
2823 
2824 };
2825 
2827 
2834 enum class zwp_pointer_constraints_v1_error : uint32_t
2835  {
2837  already_constrained = 1
2838 };
2839 
2847 enum class zwp_pointer_constraints_v1_lifetime : uint32_t
2848  {
2849  oneshot = 1,
2850  persistent = 2
2851 };
2852 
2853 
2881 class zwp_locked_pointer_v1_t : public resource_t
2882 {
2883 private:
2884  struct events_t : public resource_t::events_base_t
2885  {
2886  std::function<void()> destroy;
2887  std::function<void(double, double)> set_cursor_position_hint;
2888  std::function<void(region_t)> set_region;
2889  };
2890 
2891  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
2892 
2893 protected:
2894  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_locked_pointer_v1_interface;
2895  static constexpr const unsigned int max_version = 1;
2896 
2897  friend class global_t<zwp_locked_pointer_v1_t>;
2898  friend class global_base_t;
2899 
2900 public:
2901  zwp_locked_pointer_v1_t() = default;
2902  zwp_locked_pointer_v1_t(const client_t& client, uint32_t id, int version = 1);
2903  zwp_locked_pointer_v1_t(const resource_t &resource);
2904 
2905  static const std::string interface_name;
2906 
2907  operator zwp_locked_pointer_v1*() const;
2908 
2915  std::function<void()> &on_destroy();
2916 
2934  std::function<void(double, double)> &on_set_cursor_position_hint();
2935 
2948  std::function<void(region_t)> &on_set_region();
2949 
2955  void locked(bool post = true);
2956 
2959  static constexpr std::uint32_t locked_since_version = 1;
2960 
2971  void unlocked(bool post = true);
2972 
2975  static constexpr std::uint32_t unlocked_since_version = 1;
2976 
2977 };
2978 
2980 
2981 
3002 class zwp_confined_pointer_v1_t : public resource_t
3003 {
3004 private:
3005  struct events_t : public resource_t::events_base_t
3006  {
3007  std::function<void()> destroy;
3008  std::function<void(region_t)> set_region;
3009  };
3010 
3011  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3012 
3013 protected:
3014  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_confined_pointer_v1_interface;
3015  static constexpr const unsigned int max_version = 1;
3016 
3017  friend class global_t<zwp_confined_pointer_v1_t>;
3018  friend class global_base_t;
3019 
3020 public:
3021  zwp_confined_pointer_v1_t() = default;
3022  zwp_confined_pointer_v1_t(const client_t& client, uint32_t id, int version = 1);
3023  zwp_confined_pointer_v1_t(const resource_t &resource);
3024 
3025  static const std::string interface_name;
3026 
3027  operator zwp_confined_pointer_v1*() const;
3028 
3035  std::function<void()> &on_destroy();
3036 
3058  std::function<void(region_t)> &on_set_region();
3059 
3066  void confined(bool post = true);
3067 
3070  static constexpr std::uint32_t confined_since_version = 1;
3071 
3082  void unconfined(bool post = true);
3083 
3086  static constexpr std::uint32_t unconfined_since_version = 1;
3087 
3088 };
3089 
3091 
3092 
3113 class zwp_pointer_gestures_v1_t : public resource_t
3114 {
3115 private:
3116  struct events_t : public resource_t::events_base_t
3117  {
3118  std::function<void(zwp_pointer_gesture_swipe_v1_t, pointer_t)> get_swipe_gesture;
3119  std::function<void(zwp_pointer_gesture_pinch_v1_t, pointer_t)> get_pinch_gesture;
3120  std::function<void()> release;
3121  std::function<void(zwp_pointer_gesture_hold_v1_t, pointer_t)> get_hold_gesture;
3122  };
3123 
3124  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3125 
3126 protected:
3127  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_pointer_gestures_v1_interface;
3128  static constexpr const unsigned int max_version = 3;
3129 
3130  friend class global_t<zwp_pointer_gestures_v1_t>;
3131  friend class global_base_t;
3132 
3133 public:
3134  zwp_pointer_gestures_v1_t() = default;
3135  zwp_pointer_gestures_v1_t(const client_t& client, uint32_t id, int version = 3);
3136  zwp_pointer_gestures_v1_t(const resource_t &resource);
3137 
3138  static const std::string interface_name;
3139 
3140  operator zwp_pointer_gestures_v1*() const;
3141 
3150  std::function<void(zwp_pointer_gesture_swipe_v1_t, pointer_t)> &on_get_swipe_gesture();
3151 
3160  std::function<void(zwp_pointer_gesture_pinch_v1_t, pointer_t)> &on_get_pinch_gesture();
3161 
3168  std::function<void()> &on_release();
3169 
3178  std::function<void(zwp_pointer_gesture_hold_v1_t, pointer_t)> &on_get_hold_gesture();
3179 
3180 };
3181 
3183 
3184 
3204 class zwp_pointer_gesture_swipe_v1_t : public resource_t
3205 {
3206 private:
3207  struct events_t : public resource_t::events_base_t
3208  {
3209  std::function<void()> destroy;
3210  };
3211 
3212  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3213 
3214 protected:
3215  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_pointer_gesture_swipe_v1_interface;
3216  static constexpr const unsigned int max_version = 2;
3217 
3218  friend class global_t<zwp_pointer_gesture_swipe_v1_t>;
3219  friend class global_base_t;
3220 
3221 public:
3222  zwp_pointer_gesture_swipe_v1_t() = default;
3223  zwp_pointer_gesture_swipe_v1_t(const client_t& client, uint32_t id, int version = 2);
3224  zwp_pointer_gesture_swipe_v1_t(const resource_t &resource);
3225 
3226  static const std::string interface_name;
3227 
3228  operator zwp_pointer_gesture_swipe_v1*() const;
3229 
3233  std::function<void()> &on_destroy();
3234 
3245  void begin(uint32_t serial, uint32_t time, surface_t const& surface, uint32_t fingers, bool post = true);
3246 
3249  static constexpr std::uint32_t begin_since_version = 1;
3250 
3263  void update(uint32_t time, double dx, double dy, bool post = true);
3264 
3267  static constexpr std::uint32_t update_since_version = 1;
3268 
3283  void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post = true);
3284 
3287  static constexpr std::uint32_t end_since_version = 1;
3288 
3289 };
3290 
3292 
3293 
3313 class zwp_pointer_gesture_pinch_v1_t : public resource_t
3314 {
3315 private:
3316  struct events_t : public resource_t::events_base_t
3317  {
3318  std::function<void()> destroy;
3319  };
3320 
3321  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3322 
3323 protected:
3324  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_pointer_gesture_pinch_v1_interface;
3325  static constexpr const unsigned int max_version = 2;
3326 
3327  friend class global_t<zwp_pointer_gesture_pinch_v1_t>;
3328  friend class global_base_t;
3329 
3330 public:
3331  zwp_pointer_gesture_pinch_v1_t() = default;
3332  zwp_pointer_gesture_pinch_v1_t(const client_t& client, uint32_t id, int version = 2);
3333  zwp_pointer_gesture_pinch_v1_t(const resource_t &resource);
3334 
3335  static const std::string interface_name;
3336 
3337  operator zwp_pointer_gesture_pinch_v1*() const;
3338 
3342  std::function<void()> &on_destroy();
3343 
3354  void begin(uint32_t serial, uint32_t time, surface_t const& surface, uint32_t fingers, bool post = true);
3355 
3358  static constexpr std::uint32_t begin_since_version = 1;
3359 
3381  void update(uint32_t time, double dx, double dy, double scale, double rotation, bool post = true);
3382 
3385  static constexpr std::uint32_t update_since_version = 1;
3386 
3401  void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post = true);
3402 
3405  static constexpr std::uint32_t end_since_version = 1;
3406 
3407 };
3408 
3410 
3411 
3433 class zwp_pointer_gesture_hold_v1_t : public resource_t
3434 {
3435 private:
3436  struct events_t : public resource_t::events_base_t
3437  {
3438  std::function<void()> destroy;
3439  };
3440 
3441  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3442 
3443 protected:
3444  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_pointer_gesture_hold_v1_interface;
3445  static constexpr const unsigned int max_version = 3;
3446 
3447  friend class global_t<zwp_pointer_gesture_hold_v1_t>;
3448  friend class global_base_t;
3449 
3450 public:
3451  zwp_pointer_gesture_hold_v1_t() = default;
3452  zwp_pointer_gesture_hold_v1_t(const client_t& client, uint32_t id, int version = 3);
3453  zwp_pointer_gesture_hold_v1_t(const resource_t &resource);
3454 
3455  static const std::string interface_name;
3456 
3457  operator zwp_pointer_gesture_hold_v1*() const;
3458 
3462  std::function<void()> &on_destroy();
3463 
3473  void begin(uint32_t serial, uint32_t time, surface_t const& surface, uint32_t fingers, bool post = true);
3474 
3477  static constexpr std::uint32_t begin_since_version = 3;
3478 
3482  bool can_begin() const;
3483 
3500  void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post = true);
3501 
3504  static constexpr std::uint32_t end_since_version = 3;
3505 
3509  bool can_end() const;
3510 
3511 };
3512 
3514 
3515 
3525 {
3526 private:
3527  struct events_t : public resource_t::events_base_t
3528  {
3529  std::function<void(zwp_primary_selection_source_v1_t)> create_source;
3530  std::function<void(zwp_primary_selection_device_v1_t, seat_t)> get_device;
3531  std::function<void()> destroy;
3532  };
3533 
3534  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3535 
3536 protected:
3537  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_primary_selection_device_manager_v1_interface;
3538  static constexpr const unsigned int max_version = 1;
3539 
3540  friend class global_t<zwp_primary_selection_device_manager_v1_t>;
3541  friend class global_base_t;
3542 
3543 public:
3544  zwp_primary_selection_device_manager_v1_t() = default;
3545  zwp_primary_selection_device_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
3546  zwp_primary_selection_device_manager_v1_t(const resource_t &resource);
3547 
3548  static const std::string interface_name;
3549 
3550  operator zwp_primary_selection_device_manager_v1*() const;
3551 
3558  std::function<void(zwp_primary_selection_source_v1_t)> &on_create_source();
3559 
3567  std::function<void(zwp_primary_selection_device_v1_t, seat_t)> &on_get_device();
3568 
3574  std::function<void()> &on_destroy();
3575 
3576 };
3577 
3579 
3580 
3584 class zwp_primary_selection_device_v1_t : public resource_t
3585 {
3586 private:
3587  struct events_t : public resource_t::events_base_t
3588  {
3589  std::function<void(zwp_primary_selection_source_v1_t, uint32_t)> set_selection;
3590  std::function<void()> destroy;
3591  };
3592 
3593  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3594 
3595 protected:
3596  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_primary_selection_device_v1_interface;
3597  static constexpr const unsigned int max_version = 1;
3598 
3599  friend class global_t<zwp_primary_selection_device_v1_t>;
3600  friend class global_base_t;
3601 
3602 public:
3603  zwp_primary_selection_device_v1_t() = default;
3604  zwp_primary_selection_device_v1_t(const client_t& client, uint32_t id, int version = 1);
3605  zwp_primary_selection_device_v1_t(const resource_t &resource);
3606 
3607  static const std::string interface_name;
3608 
3609  operator zwp_primary_selection_device_v1*() const;
3610 
3621  std::function<void(zwp_primary_selection_source_v1_t, uint32_t)> &on_set_selection();
3622 
3628  std::function<void()> &on_destroy();
3629 
3639  void data_offer(bool post = true);
3640 
3643  static constexpr std::uint32_t data_offer_since_version = 1;
3644 
3659  void selection(zwp_primary_selection_offer_v1_t const& id, bool post = true);
3660 
3663  static constexpr std::uint32_t selection_since_version = 1;
3664 
3665 };
3666 
3667 using global_zwp_primary_selection_device_v1_t = global_t<zwp_primary_selection_device_v1_t>;
3668 
3669 
3679 class zwp_primary_selection_offer_v1_t : public resource_t
3680 {
3681 private:
3682  struct events_t : public resource_t::events_base_t
3683  {
3684  std::function<void(std::string, int)> receive;
3685  std::function<void()> destroy;
3686  };
3687 
3688  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3689 
3690 protected:
3691  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_primary_selection_offer_v1_interface;
3692  static constexpr const unsigned int max_version = 1;
3693 
3694  friend class global_t<zwp_primary_selection_offer_v1_t>;
3695  friend class global_base_t;
3696 
3697 public:
3698  zwp_primary_selection_offer_v1_t() = default;
3699  zwp_primary_selection_offer_v1_t(const client_t& client, uint32_t id, int version = 1);
3700  zwp_primary_selection_offer_v1_t(const resource_t &resource);
3701 
3702  static const std::string interface_name;
3703 
3704  operator zwp_primary_selection_offer_v1*() const;
3705 
3721  std::function<void(std::string, int)> &on_receive();
3722 
3728  std::function<void()> &on_destroy();
3729 
3739  void offer(std::string const& mime_type, bool post = true);
3740 
3743  static constexpr std::uint32_t offer_since_version = 1;
3744 
3745 };
3746 
3748 
3749 
3757 class zwp_primary_selection_source_v1_t : public resource_t
3758 {
3759 private:
3760  struct events_t : public resource_t::events_base_t
3761  {
3762  std::function<void(std::string)> offer;
3763  std::function<void()> destroy;
3764  };
3765 
3766  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3767 
3768 protected:
3769  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_primary_selection_source_v1_interface;
3770  static constexpr const unsigned int max_version = 1;
3771 
3772  friend class global_t<zwp_primary_selection_source_v1_t>;
3773  friend class global_base_t;
3774 
3775 public:
3776  zwp_primary_selection_source_v1_t() = default;
3777  zwp_primary_selection_source_v1_t(const client_t& client, uint32_t id, int version = 1);
3778  zwp_primary_selection_source_v1_t(const resource_t &resource);
3779 
3780  static const std::string interface_name;
3781 
3782  operator zwp_primary_selection_source_v1*() const;
3783 
3791  std::function<void(std::string)> &on_offer();
3792 
3798  std::function<void()> &on_destroy();
3799 
3809  void send(std::string const& mime_type, int fd, bool post = true);
3810 
3813  static constexpr std::uint32_t send_since_version = 1;
3814 
3821  void cancelled(bool post = true);
3822 
3825  static constexpr std::uint32_t cancelled_since_version = 1;
3826 
3827 };
3828 
3830 
3831 
3838 class zwp_relative_pointer_manager_v1_t : public resource_t
3839 {
3840 private:
3841  struct events_t : public resource_t::events_base_t
3842  {
3843  std::function<void()> destroy;
3844  std::function<void(zwp_relative_pointer_v1_t, pointer_t)> get_relative_pointer;
3845  };
3846 
3847  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3848 
3849 protected:
3850  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_relative_pointer_manager_v1_interface;
3851  static constexpr const unsigned int max_version = 1;
3852 
3853  friend class global_t<zwp_relative_pointer_manager_v1_t>;
3854  friend class global_base_t;
3855 
3856 public:
3857  zwp_relative_pointer_manager_v1_t() = default;
3858  zwp_relative_pointer_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
3859  zwp_relative_pointer_manager_v1_t(const resource_t &resource);
3860 
3861  static const std::string interface_name;
3862 
3863  operator zwp_relative_pointer_manager_v1*() const;
3864 
3871  std::function<void()> &on_destroy();
3872 
3881  std::function<void(zwp_relative_pointer_v1_t, pointer_t)> &on_get_relative_pointer();
3882 
3883 };
3884 
3886 
3887 
3896 class zwp_relative_pointer_v1_t : public resource_t
3897 {
3898 private:
3899  struct events_t : public resource_t::events_base_t
3900  {
3901  std::function<void()> destroy;
3902  };
3903 
3904  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3905 
3906 protected:
3907  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_relative_pointer_v1_interface;
3908  static constexpr const unsigned int max_version = 1;
3909 
3910  friend class global_t<zwp_relative_pointer_v1_t>;
3911  friend class global_base_t;
3912 
3913 public:
3914  zwp_relative_pointer_v1_t() = default;
3915  zwp_relative_pointer_v1_t(const client_t& client, uint32_t id, int version = 1);
3916  zwp_relative_pointer_v1_t(const resource_t &resource);
3917 
3918  static const std::string interface_name;
3919 
3920  operator zwp_relative_pointer_v1*() const;
3921 
3925  std::function<void()> &on_destroy();
3926 
3967  void relative_motion(uint32_t utime_hi, uint32_t utime_lo, double dx, double dy, double dx_unaccel, double dy_unaccel, bool post = true);
3968 
3971  static constexpr std::uint32_t relative_motion_since_version = 1;
3972 
3973 };
3974 
3976 
3977 
3985 class zwp_tablet_manager_v1_t : public resource_t
3986 {
3987 private:
3988  struct events_t : public resource_t::events_base_t
3989  {
3990  std::function<void(zwp_tablet_seat_v1_t, seat_t)> get_tablet_seat;
3991  std::function<void()> destroy;
3992  };
3993 
3994  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
3995 
3996 protected:
3997  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_manager_v1_interface;
3998  static constexpr const unsigned int max_version = 1;
3999 
4000  friend class global_t<zwp_tablet_manager_v1_t>;
4001  friend class global_base_t;
4002 
4003 public:
4004  zwp_tablet_manager_v1_t() = default;
4005  zwp_tablet_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
4006  zwp_tablet_manager_v1_t(const resource_t &resource);
4007 
4008  static const std::string interface_name;
4009 
4010  operator zwp_tablet_manager_v1*() const;
4011 
4020  std::function<void(zwp_tablet_seat_v1_t, seat_t)> &on_get_tablet_seat();
4021 
4028  std::function<void()> &on_destroy();
4029 
4030 };
4031 
4033 
4034 
4042 class zwp_tablet_seat_v1_t : public resource_t
4043 {
4044 private:
4045  struct events_t : public resource_t::events_base_t
4046  {
4047  std::function<void()> destroy;
4048  };
4049 
4050  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4051 
4052 protected:
4053  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_seat_v1_interface;
4054  static constexpr const unsigned int max_version = 1;
4055 
4056  friend class global_t<zwp_tablet_seat_v1_t>;
4057  friend class global_base_t;
4058 
4059 public:
4060  zwp_tablet_seat_v1_t() = default;
4061  zwp_tablet_seat_v1_t(const client_t& client, uint32_t id, int version = 1);
4062  zwp_tablet_seat_v1_t(const resource_t &resource);
4063 
4064  static const std::string interface_name;
4065 
4066  operator zwp_tablet_seat_v1*() const;
4067 
4074  std::function<void()> &on_destroy();
4075 
4085  void tablet_added(bool post = true);
4086 
4089  static constexpr std::uint32_t tablet_added_since_version = 1;
4090 
4100  void tool_added(bool post = true);
4101 
4104  static constexpr std::uint32_t tool_added_since_version = 1;
4105 
4106 };
4107 
4109 
4110 
4135 class zwp_tablet_tool_v1_t : public resource_t
4136 {
4137 private:
4138  struct events_t : public resource_t::events_base_t
4139  {
4140  std::function<void(uint32_t, surface_t, int32_t, int32_t)> set_cursor;
4141  std::function<void()> destroy;
4142  };
4143 
4144  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4145 
4146 protected:
4147  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_tool_v1_interface;
4148  static constexpr const unsigned int max_version = 1;
4149 
4150  friend class global_t<zwp_tablet_tool_v1_t>;
4151  friend class global_base_t;
4152 
4153 public:
4154  zwp_tablet_tool_v1_t() = default;
4155  zwp_tablet_tool_v1_t(const client_t& client, uint32_t id, int version = 1);
4156  zwp_tablet_tool_v1_t(const resource_t &resource);
4157 
4158  static const std::string interface_name;
4159 
4160  operator zwp_tablet_tool_v1*() const;
4161 
4202  std::function<void(uint32_t, surface_t, int32_t, int32_t)> &on_set_cursor();
4203 
4209  std::function<void()> &on_destroy();
4210 
4221  void type(zwp_tablet_tool_v1_type const& tool_type, bool post = true);
4222 
4225  static constexpr std::uint32_t type_since_version = 1;
4226 
4248  void hardware_serial(uint32_t hardware_serial_hi, uint32_t hardware_serial_lo, bool post = true);
4249 
4252  static constexpr std::uint32_t hardware_serial_since_version = 1;
4253 
4270  void hardware_id_wacom(uint32_t hardware_id_hi, uint32_t hardware_id_lo, bool post = true);
4271 
4274  static constexpr std::uint32_t hardware_id_wacom_since_version = 1;
4275 
4288  void capability(zwp_tablet_tool_v1_capability const& capability, bool post = true);
4289 
4292  static constexpr std::uint32_t capability_since_version = 1;
4293 
4301  void done(bool post = true);
4302 
4305  static constexpr std::uint32_t done_since_version = 1;
4306 
4325  void removed(bool post = true);
4326 
4329  static constexpr std::uint32_t removed_since_version = 1;
4330 
4347  void proximity_in(uint32_t serial, zwp_tablet_v1_t const& tablet, surface_t const& surface, bool post = true);
4348 
4351  static constexpr std::uint32_t proximity_in_since_version = 1;
4352 
4369  void proximity_out(bool post = true);
4370 
4373  static constexpr std::uint32_t proximity_out_since_version = 1;
4374 
4392  void down(uint32_t serial, bool post = true);
4393 
4396  static constexpr std::uint32_t down_since_version = 1;
4397 
4418  void up(bool post = true);
4419 
4422  static constexpr std::uint32_t up_since_version = 1;
4423 
4431  void motion(double x, double y, bool post = true);
4432 
4435  static constexpr std::uint32_t motion_since_version = 1;
4436 
4447  void pressure(uint32_t pressure, bool post = true);
4448 
4451  static constexpr std::uint32_t pressure_since_version = 1;
4452 
4463  void distance(uint32_t distance, bool post = true);
4464 
4467  static constexpr std::uint32_t distance_since_version = 1;
4468 
4479  void tilt(int32_t tilt_x, int32_t tilt_y, bool post = true);
4480 
4483  static constexpr std::uint32_t tilt_since_version = 1;
4484 
4493  void rotation(int32_t degrees, bool post = true);
4494 
4497  static constexpr std::uint32_t rotation_since_version = 1;
4498 
4509  void slider(int32_t position, bool post = true);
4510 
4513  static constexpr std::uint32_t slider_since_version = 1;
4514 
4533  void wheel(int32_t degrees, int32_t clicks, bool post = true);
4534 
4537  static constexpr std::uint32_t wheel_since_version = 1;
4538 
4552  void button(uint32_t serial, uint32_t button, zwp_tablet_tool_v1_button_state const& state, bool post = true);
4553 
4556  static constexpr std::uint32_t button_since_version = 1;
4557 
4567  void frame(uint32_t time, bool post = true);
4568 
4571  static constexpr std::uint32_t frame_since_version = 1;
4572 
4575  void post_role(std::string const& msg);
4576 
4577 };
4578 
4580 
4594 enum class zwp_tablet_tool_v1_type : uint32_t
4595  {
4597  pen = 0x140,
4599  eraser = 0x141,
4601  brush = 0x142,
4603  pencil = 0x143,
4605  airbrush = 0x144,
4607  finger = 0x145,
4609  mouse = 0x146,
4611  lens = 0x147
4612 };
4613 
4622 enum class zwp_tablet_tool_v1_capability : uint32_t
4623  {
4625  tilt = 1,
4627  pressure = 2,
4629  distance = 3,
4631  rotation = 4,
4633  slider = 5,
4635  wheel = 6
4636 };
4637 
4643 enum class zwp_tablet_tool_v1_button_state : uint32_t
4644  {
4646  released = 0,
4648  pressed = 1
4649 };
4650 
4654 enum class zwp_tablet_tool_v1_error : uint32_t
4655  {
4657  role = 0
4658 };
4659 
4660 
4673 class zwp_tablet_v1_t : public resource_t
4674 {
4675 private:
4676  struct events_t : public resource_t::events_base_t
4677  {
4678  std::function<void()> destroy;
4679  };
4680 
4681  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4682 
4683 protected:
4684  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_v1_interface;
4685  static constexpr const unsigned int max_version = 1;
4686 
4687  friend class global_t<zwp_tablet_v1_t>;
4688  friend class global_base_t;
4689 
4690 public:
4691  zwp_tablet_v1_t() = default;
4692  zwp_tablet_v1_t(const client_t& client, uint32_t id, int version = 1);
4693  zwp_tablet_v1_t(const resource_t &resource);
4694 
4695  static const std::string interface_name;
4696 
4697  operator zwp_tablet_v1*() const;
4698 
4704  std::function<void()> &on_destroy();
4705 
4713  void name(std::string const& name, bool post = true);
4714 
4717  static constexpr std::uint32_t name_since_version = 1;
4718 
4727  void id(uint32_t vid, uint32_t pid, bool post = true);
4728 
4731  static constexpr std::uint32_t id_since_version = 1;
4732 
4752  void path(std::string const& path, bool post = true);
4753 
4756  static constexpr std::uint32_t path_since_version = 1;
4757 
4766  void done(bool post = true);
4767 
4770  static constexpr std::uint32_t done_since_version = 1;
4771 
4781  void removed(bool post = true);
4782 
4785  static constexpr std::uint32_t removed_since_version = 1;
4786 
4787 };
4788 
4790 
4791 
4799 class zwp_tablet_manager_v2_t : public resource_t
4800 {
4801 private:
4802  struct events_t : public resource_t::events_base_t
4803  {
4804  std::function<void(zwp_tablet_seat_v2_t, seat_t)> get_tablet_seat;
4805  std::function<void()> destroy;
4806  };
4807 
4808  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4809 
4810 protected:
4811  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_manager_v2_interface;
4812  static constexpr const unsigned int max_version = 1;
4813 
4814  friend class global_t<zwp_tablet_manager_v2_t>;
4815  friend class global_base_t;
4816 
4817 public:
4818  zwp_tablet_manager_v2_t() = default;
4819  zwp_tablet_manager_v2_t(const client_t& client, uint32_t id, int version = 1);
4820  zwp_tablet_manager_v2_t(const resource_t &resource);
4821 
4822  static const std::string interface_name;
4823 
4824  operator zwp_tablet_manager_v2*() const;
4825 
4834  std::function<void(zwp_tablet_seat_v2_t, seat_t)> &on_get_tablet_seat();
4835 
4842  std::function<void()> &on_destroy();
4843 
4844 };
4845 
4847 
4848 
4856 class zwp_tablet_seat_v2_t : public resource_t
4857 {
4858 private:
4859  struct events_t : public resource_t::events_base_t
4860  {
4861  std::function<void()> destroy;
4862  };
4863 
4864  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4865 
4866 protected:
4867  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_seat_v2_interface;
4868  static constexpr const unsigned int max_version = 1;
4869 
4870  friend class global_t<zwp_tablet_seat_v2_t>;
4871  friend class global_base_t;
4872 
4873 public:
4874  zwp_tablet_seat_v2_t() = default;
4875  zwp_tablet_seat_v2_t(const client_t& client, uint32_t id, int version = 1);
4876  zwp_tablet_seat_v2_t(const resource_t &resource);
4877 
4878  static const std::string interface_name;
4879 
4880  operator zwp_tablet_seat_v2*() const;
4881 
4888  std::function<void()> &on_destroy();
4889 
4899  void tablet_added(bool post = true);
4900 
4903  static constexpr std::uint32_t tablet_added_since_version = 1;
4904 
4914  void tool_added(bool post = true);
4915 
4918  static constexpr std::uint32_t tool_added_since_version = 1;
4919 
4935  void pad_added(bool post = true);
4936 
4939  static constexpr std::uint32_t pad_added_since_version = 1;
4940 
4941 };
4942 
4944 
4945 
4970 class zwp_tablet_tool_v2_t : public resource_t
4971 {
4972 private:
4973  struct events_t : public resource_t::events_base_t
4974  {
4975  std::function<void(uint32_t, surface_t, int32_t, int32_t)> set_cursor;
4976  std::function<void()> destroy;
4977  };
4978 
4979  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
4980 
4981 protected:
4982  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_tool_v2_interface;
4983  static constexpr const unsigned int max_version = 1;
4984 
4985  friend class global_t<zwp_tablet_tool_v2_t>;
4986  friend class global_base_t;
4987 
4988 public:
4989  zwp_tablet_tool_v2_t() = default;
4990  zwp_tablet_tool_v2_t(const client_t& client, uint32_t id, int version = 1);
4991  zwp_tablet_tool_v2_t(const resource_t &resource);
4992 
4993  static const std::string interface_name;
4994 
4995  operator zwp_tablet_tool_v2*() const;
4996 
5035  std::function<void(uint32_t, surface_t, int32_t, int32_t)> &on_set_cursor();
5036 
5042  std::function<void()> &on_destroy();
5043 
5054  void type(zwp_tablet_tool_v2_type const& tool_type, bool post = true);
5055 
5058  static constexpr std::uint32_t type_since_version = 1;
5059 
5081  void hardware_serial(uint32_t hardware_serial_hi, uint32_t hardware_serial_lo, bool post = true);
5082 
5085  static constexpr std::uint32_t hardware_serial_since_version = 1;
5086 
5103  void hardware_id_wacom(uint32_t hardware_id_hi, uint32_t hardware_id_lo, bool post = true);
5104 
5107  static constexpr std::uint32_t hardware_id_wacom_since_version = 1;
5108 
5121  void capability(zwp_tablet_tool_v2_capability const& capability, bool post = true);
5122 
5125  static constexpr std::uint32_t capability_since_version = 1;
5126 
5134  void done(bool post = true);
5135 
5138  static constexpr std::uint32_t done_since_version = 1;
5139 
5158  void removed(bool post = true);
5159 
5162  static constexpr std::uint32_t removed_since_version = 1;
5163 
5180  void proximity_in(uint32_t serial, zwp_tablet_v2_t const& tablet, surface_t const& surface, bool post = true);
5181 
5184  static constexpr std::uint32_t proximity_in_since_version = 1;
5185 
5202  void proximity_out(bool post = true);
5203 
5206  static constexpr std::uint32_t proximity_out_since_version = 1;
5207 
5225  void down(uint32_t serial, bool post = true);
5226 
5229  static constexpr std::uint32_t down_since_version = 1;
5230 
5251  void up(bool post = true);
5252 
5255  static constexpr std::uint32_t up_since_version = 1;
5256 
5264  void motion(double x, double y, bool post = true);
5265 
5268  static constexpr std::uint32_t motion_since_version = 1;
5269 
5280  void pressure(uint32_t pressure, bool post = true);
5281 
5284  static constexpr std::uint32_t pressure_since_version = 1;
5285 
5296  void distance(uint32_t distance, bool post = true);
5297 
5300  static constexpr std::uint32_t distance_since_version = 1;
5301 
5312  void tilt(double tilt_x, double tilt_y, bool post = true);
5313 
5316  static constexpr std::uint32_t tilt_since_version = 1;
5317 
5326  void rotation(double degrees, bool post = true);
5327 
5330  static constexpr std::uint32_t rotation_since_version = 1;
5331 
5342  void slider(int32_t position, bool post = true);
5343 
5346  static constexpr std::uint32_t slider_since_version = 1;
5347 
5366  void wheel(double degrees, int32_t clicks, bool post = true);
5367 
5370  static constexpr std::uint32_t wheel_since_version = 1;
5371 
5385  void button(uint32_t serial, uint32_t button, zwp_tablet_tool_v2_button_state const& state, bool post = true);
5386 
5389  static constexpr std::uint32_t button_since_version = 1;
5390 
5400  void frame(uint32_t time, bool post = true);
5401 
5404  static constexpr std::uint32_t frame_since_version = 1;
5405 
5408  void post_role(std::string const& msg);
5409 
5410 };
5411 
5413 
5427 enum class zwp_tablet_tool_v2_type : uint32_t
5428  {
5430  pen = 0x140,
5432  eraser = 0x141,
5434  brush = 0x142,
5436  pencil = 0x143,
5438  airbrush = 0x144,
5440  finger = 0x145,
5442  mouse = 0x146,
5444  lens = 0x147
5445 };
5446 
5455 enum class zwp_tablet_tool_v2_capability : uint32_t
5456  {
5458  tilt = 1,
5460  pressure = 2,
5462  distance = 3,
5464  rotation = 4,
5466  slider = 5,
5468  wheel = 6
5469 };
5470 
5476 enum class zwp_tablet_tool_v2_button_state : uint32_t
5477  {
5479  released = 0,
5481  pressed = 1
5482 };
5483 
5487 enum class zwp_tablet_tool_v2_error : uint32_t
5488  {
5490  role = 0
5491 };
5492 
5493 
5506 class zwp_tablet_v2_t : public resource_t
5507 {
5508 private:
5509  struct events_t : public resource_t::events_base_t
5510  {
5511  std::function<void()> destroy;
5512  };
5513 
5514  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
5515 
5516 protected:
5517  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_v2_interface;
5518  static constexpr const unsigned int max_version = 1;
5519 
5520  friend class global_t<zwp_tablet_v2_t>;
5521  friend class global_base_t;
5522 
5523 public:
5524  zwp_tablet_v2_t() = default;
5525  zwp_tablet_v2_t(const client_t& client, uint32_t id, int version = 1);
5526  zwp_tablet_v2_t(const resource_t &resource);
5527 
5528  static const std::string interface_name;
5529 
5530  operator zwp_tablet_v2*() const;
5531 
5537  std::function<void()> &on_destroy();
5538 
5546  void name(std::string const& name, bool post = true);
5547 
5550  static constexpr std::uint32_t name_since_version = 1;
5551 
5560  void id(uint32_t vid, uint32_t pid, bool post = true);
5561 
5564  static constexpr std::uint32_t id_since_version = 1;
5565 
5585  void path(std::string const& path, bool post = true);
5586 
5589  static constexpr std::uint32_t path_since_version = 1;
5590 
5599  void done(bool post = true);
5600 
5603  static constexpr std::uint32_t done_since_version = 1;
5604 
5614  void removed(bool post = true);
5615 
5618  static constexpr std::uint32_t removed_since_version = 1;
5619 
5620 };
5621 
5623 
5624 
5634 class zwp_tablet_pad_ring_v2_t : public resource_t
5635 {
5636 private:
5637  struct events_t : public resource_t::events_base_t
5638  {
5639  std::function<void(std::string, uint32_t)> set_feedback;
5640  std::function<void()> destroy;
5641  };
5642 
5643  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
5644 
5645 protected:
5646  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_pad_ring_v2_interface;
5647  static constexpr const unsigned int max_version = 1;
5648 
5649  friend class global_t<zwp_tablet_pad_ring_v2_t>;
5650  friend class global_base_t;
5651 
5652 public:
5653  zwp_tablet_pad_ring_v2_t() = default;
5654  zwp_tablet_pad_ring_v2_t(const client_t& client, uint32_t id, int version = 1);
5655  zwp_tablet_pad_ring_v2_t(const resource_t &resource);
5656 
5657  static const std::string interface_name;
5658 
5659  operator zwp_tablet_pad_ring_v2*() const;
5660 
5686  std::function<void(std::string, uint32_t)> &on_set_feedback();
5687 
5693  std::function<void()> &on_destroy();
5694 
5712  void source(zwp_tablet_pad_ring_v2_source const& source, bool post = true);
5713 
5716  static constexpr std::uint32_t source_since_version = 1;
5717 
5727  void angle(double degrees, bool post = true);
5728 
5731  static constexpr std::uint32_t angle_since_version = 1;
5732 
5747  void stop(bool post = true);
5748 
5751  static constexpr std::uint32_t stop_since_version = 1;
5752 
5771  void frame(uint32_t time, bool post = true);
5772 
5775  static constexpr std::uint32_t frame_since_version = 1;
5776 
5777 };
5778 
5780 
5789 enum class zwp_tablet_pad_ring_v2_source : uint32_t
5790  {
5792  finger = 1
5793 };
5794 
5795 
5805 class zwp_tablet_pad_strip_v2_t : public resource_t
5806 {
5807 private:
5808  struct events_t : public resource_t::events_base_t
5809  {
5810  std::function<void(std::string, uint32_t)> set_feedback;
5811  std::function<void()> destroy;
5812  };
5813 
5814  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
5815 
5816 protected:
5817  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_pad_strip_v2_interface;
5818  static constexpr const unsigned int max_version = 1;
5819 
5820  friend class global_t<zwp_tablet_pad_strip_v2_t>;
5821  friend class global_base_t;
5822 
5823 public:
5824  zwp_tablet_pad_strip_v2_t() = default;
5825  zwp_tablet_pad_strip_v2_t(const client_t& client, uint32_t id, int version = 1);
5826  zwp_tablet_pad_strip_v2_t(const resource_t &resource);
5827 
5828  static const std::string interface_name;
5829 
5830  operator zwp_tablet_pad_strip_v2*() const;
5831 
5857  std::function<void(std::string, uint32_t)> &on_set_feedback();
5858 
5864  std::function<void()> &on_destroy();
5865 
5883  void source(zwp_tablet_pad_strip_v2_source const& source, bool post = true);
5884 
5887  static constexpr std::uint32_t source_since_version = 1;
5888 
5899  void position(uint32_t position, bool post = true);
5900 
5903  static constexpr std::uint32_t position_since_version = 1;
5904 
5919  void stop(bool post = true);
5920 
5923  static constexpr std::uint32_t stop_since_version = 1;
5924 
5944  void frame(uint32_t time, bool post = true);
5945 
5948  static constexpr std::uint32_t frame_since_version = 1;
5949 
5950 };
5951 
5953 
5962 enum class zwp_tablet_pad_strip_v2_source : uint32_t
5963  {
5965  finger = 1
5966 };
5967 
5968 
5994 class zwp_tablet_pad_group_v2_t : public resource_t
5995 {
5996 private:
5997  struct events_t : public resource_t::events_base_t
5998  {
5999  std::function<void()> destroy;
6000  };
6001 
6002  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
6003 
6004 protected:
6005  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_pad_group_v2_interface;
6006  static constexpr const unsigned int max_version = 1;
6007 
6008  friend class global_t<zwp_tablet_pad_group_v2_t>;
6009  friend class global_base_t;
6010 
6011 public:
6012  zwp_tablet_pad_group_v2_t() = default;
6013  zwp_tablet_pad_group_v2_t(const client_t& client, uint32_t id, int version = 1);
6014  zwp_tablet_pad_group_v2_t(const resource_t &resource);
6015 
6016  static const std::string interface_name;
6017 
6018  operator zwp_tablet_pad_group_v2*() const;
6019 
6026  std::function<void()> &on_destroy();
6027 
6045  void buttons(array_t const& buttons, bool post = true);
6046 
6049  static constexpr std::uint32_t buttons_since_version = 1;
6050 
6060  void ring(bool post = true);
6061 
6064  static constexpr std::uint32_t ring_since_version = 1;
6065 
6075  void strip(bool post = true);
6076 
6079  static constexpr std::uint32_t strip_since_version = 1;
6080 
6098  void modes(uint32_t modes, bool post = true);
6099 
6102  static constexpr std::uint32_t modes_since_version = 1;
6103 
6112  void done(bool post = true);
6113 
6116  static constexpr std::uint32_t done_since_version = 1;
6117 
6152  void mode_switch(uint32_t time, uint32_t serial, uint32_t mode, bool post = true);
6153 
6156  static constexpr std::uint32_t mode_switch_since_version = 1;
6157 
6158 };
6159 
6161 
6162 
6189 class zwp_tablet_pad_v2_t : public resource_t
6190 {
6191 private:
6192  struct events_t : public resource_t::events_base_t
6193  {
6194  std::function<void(uint32_t, std::string, uint32_t)> set_feedback;
6195  std::function<void()> destroy;
6196  };
6197 
6198  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
6199 
6200 protected:
6201  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_tablet_pad_v2_interface;
6202  static constexpr const unsigned int max_version = 1;
6203 
6204  friend class global_t<zwp_tablet_pad_v2_t>;
6205  friend class global_base_t;
6206 
6207 public:
6208  zwp_tablet_pad_v2_t() = default;
6209  zwp_tablet_pad_v2_t(const client_t& client, uint32_t id, int version = 1);
6210  zwp_tablet_pad_v2_t(const resource_t &resource);
6211 
6212  static const std::string interface_name;
6213 
6214  operator zwp_tablet_pad_v2*() const;
6215 
6247  std::function<void(uint32_t, std::string, uint32_t)> &on_set_feedback();
6248 
6255  std::function<void()> &on_destroy();
6256 
6266  void group(bool post = true);
6267 
6270  static constexpr std::uint32_t group_since_version = 1;
6271 
6287  void path(std::string const& path, bool post = true);
6288 
6291  static constexpr std::uint32_t path_since_version = 1;
6292 
6304  void buttons(uint32_t buttons, bool post = true);
6305 
6308  static constexpr std::uint32_t buttons_since_version = 1;
6309 
6317  void done(bool post = true);
6318 
6321  static constexpr std::uint32_t done_since_version = 1;
6322 
6331  void button(uint32_t time, uint32_t button, zwp_tablet_pad_v2_button_state const& state, bool post = true);
6332 
6335  static constexpr std::uint32_t button_since_version = 1;
6336 
6345  void enter(uint32_t serial, zwp_tablet_v2_t const& tablet, surface_t const& surface, bool post = true);
6346 
6349  static constexpr std::uint32_t enter_since_version = 1;
6350 
6359  void leave(uint32_t serial, surface_t const& surface, bool post = true);
6360 
6363  static constexpr std::uint32_t leave_since_version = 1;
6364 
6375  void removed(bool post = true);
6376 
6379  static constexpr std::uint32_t removed_since_version = 1;
6380 
6381 };
6382 
6384 
6391 enum class zwp_tablet_pad_v2_button_state : uint32_t
6392  {
6394  released = 0,
6396  pressed = 1
6397 };
6398 
6399 
6433 class zwp_text_input_v1_t : public resource_t
6434 {
6435 private:
6436  struct events_t : public resource_t::events_base_t
6437  {
6438  std::function<void(seat_t, surface_t)> activate;
6439  std::function<void(seat_t)> deactivate;
6440  std::function<void()> show_input_panel;
6441  std::function<void()> hide_input_panel;
6442  std::function<void()> reset;
6443  std::function<void(std::string, uint32_t, uint32_t)> set_surrounding_text;
6444  std::function<void(zwp_text_input_v1_content_hint, zwp_text_input_v1_content_purpose)> set_content_type;
6445  std::function<void(int32_t, int32_t, int32_t, int32_t)> set_cursor_rectangle;
6446  std::function<void(std::string)> set_preferred_language;
6447  std::function<void(uint32_t)> commit_state;
6448  std::function<void(uint32_t, uint32_t)> invoke_action;
6449  };
6450 
6451  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
6452 
6453 protected:
6454  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_text_input_v1_interface;
6455  static constexpr const unsigned int max_version = 1;
6456 
6457  friend class global_t<zwp_text_input_v1_t>;
6458  friend class global_base_t;
6459 
6460 public:
6461  zwp_text_input_v1_t() = default;
6462  zwp_text_input_v1_t(const client_t& client, uint32_t id, int version = 1);
6463  zwp_text_input_v1_t(const resource_t &resource);
6464 
6465  static const std::string interface_name;
6466 
6467  operator zwp_text_input_v1*() const;
6468 
6482  std::function<void(seat_t, surface_t)> &on_activate();
6483 
6492  std::function<void(seat_t)> &on_deactivate();
6493 
6499  std::function<void()> &on_show_input_panel();
6500 
6506  std::function<void()> &on_hide_input_panel();
6507 
6515  std::function<void()> &on_reset();
6516 
6529  std::function<void(std::string, uint32_t, uint32_t)> &on_set_surrounding_text();
6530 
6544  std::function<void(zwp_text_input_v1_content_hint, zwp_text_input_v1_content_purpose)> &on_set_content_type();
6545 
6553  std::function<void(int32_t, int32_t, int32_t, int32_t)> &on_set_cursor_rectangle();
6554 
6567  std::function<void(std::string)> &on_set_preferred_language();
6568 
6573  std::function<void(uint32_t)> &on_commit_state();
6574 
6580  std::function<void(uint32_t, uint32_t)> &on_invoke_action();
6581 
6589  void enter(surface_t const& surface, bool post = true);
6590 
6593  static constexpr std::uint32_t enter_since_version = 1;
6594 
6602  void leave(bool post = true);
6603 
6606  static constexpr std::uint32_t leave_since_version = 1;
6607 
6616  void modifiers_map(array_t const& map, bool post = true);
6617 
6620  static constexpr std::uint32_t modifiers_map_since_version = 1;
6621 
6628  void input_panel_state(uint32_t state, bool post = true);
6629 
6632  static constexpr std::uint32_t input_panel_state_since_version = 1;
6633 
6650  void preedit_string(uint32_t serial, std::string const& text, std::string const& commit, bool post = true);
6651 
6654  static constexpr std::uint32_t preedit_string_since_version = 1;
6655 
6670  void preedit_styling(uint32_t index, uint32_t length, zwp_text_input_v1_preedit_style const& style, bool post = true);
6671 
6674  static constexpr std::uint32_t preedit_styling_since_version = 1;
6675 
6686  void preedit_cursor(int32_t index, bool post = true);
6687 
6690  static constexpr std::uint32_t preedit_cursor_since_version = 1;
6691 
6705  void commit_string(uint32_t serial, std::string const& text, bool post = true);
6706 
6709  static constexpr std::uint32_t commit_string_since_version = 1;
6710 
6721  void cursor_position(int32_t index, int32_t anchor, bool post = true);
6722 
6725  static constexpr std::uint32_t cursor_position_since_version = 1;
6726 
6741  void delete_surrounding_text(int32_t index, uint32_t length, bool post = true);
6742 
6745  static constexpr std::uint32_t delete_surrounding_text_since_version = 1;
6746 
6762  void keysym(uint32_t serial, uint32_t time, uint32_t sym, keyboard_key_state const& state, uint32_t modifiers, bool post = true);
6763 
6766  static constexpr std::uint32_t keysym_since_version = 1;
6767 
6776  void language(uint32_t serial, std::string const& language, bool post = true);
6777 
6780  static constexpr std::uint32_t language_since_version = 1;
6781 
6793  void text_direction(uint32_t serial, zwp_text_input_v1_text_direction const& direction, bool post = true);
6794 
6797  static constexpr std::uint32_t text_direction_since_version = 1;
6798 
6799 };
6800 
6802 
6809 struct zwp_text_input_v1_content_hint : public wayland::detail::bitfield<10, 23>
6810 {
6811  zwp_text_input_v1_content_hint(const wayland::detail::bitfield<10, 23> &b)
6812  : wayland::detail::bitfield<10, 23>(b) {}
6813  zwp_text_input_v1_content_hint(const uint32_t value)
6814  : wayland::detail::bitfield<10, 23>(value) {}
6816  static const wayland::detail::bitfield<10, 23> none;
6818  static const wayland::detail::bitfield<10, 23> _default;
6820  static const wayland::detail::bitfield<10, 23> password;
6822  static const wayland::detail::bitfield<10, 23> auto_completion;
6824  static const wayland::detail::bitfield<10, 23> auto_correction;
6826  static const wayland::detail::bitfield<10, 23> auto_capitalization;
6828  static const wayland::detail::bitfield<10, 23> lowercase;
6830  static const wayland::detail::bitfield<10, 23> uppercase;
6832  static const wayland::detail::bitfield<10, 23> titlecase;
6834  static const wayland::detail::bitfield<10, 23> hidden_text;
6836  static const wayland::detail::bitfield<10, 23> sensitive_data;
6838  static const wayland::detail::bitfield<10, 23> latin;
6840  static const wayland::detail::bitfield<10, 23> multiline;
6841 };
6842 
6852 enum class zwp_text_input_v1_content_purpose : uint32_t
6853  {
6855  normal = 0,
6857  alpha = 1,
6859  digits = 2,
6861  number = 3,
6863  phone = 4,
6865  url = 5,
6867  email = 6,
6869  name = 7,
6871  password = 8,
6873  date = 9,
6875  time = 10,
6877  datetime = 11,
6879  terminal = 12
6880 };
6881 
6885 enum class zwp_text_input_v1_preedit_style : uint32_t
6886  {
6888  _default = 0,
6890  none = 1,
6891  active = 2,
6892  inactive = 3,
6893  highlight = 4,
6894  underline = 5,
6895  selection = 6,
6896  incorrect = 7
6897 };
6898 
6902 enum class zwp_text_input_v1_text_direction : uint32_t
6903  {
6905  _auto = 0,
6907  ltr = 1,
6909  rtl = 2
6910 };
6911 
6912 
6918 class zwp_text_input_manager_v1_t : public resource_t
6919 {
6920 private:
6921  struct events_t : public resource_t::events_base_t
6922  {
6923  std::function<void(zwp_text_input_v1_t)> create_text_input;
6924  };
6925 
6926  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
6927 
6928 protected:
6929  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_text_input_manager_v1_interface;
6930  static constexpr const unsigned int max_version = 1;
6931 
6932  friend class global_t<zwp_text_input_manager_v1_t>;
6933  friend class global_base_t;
6934 
6935 public:
6936  zwp_text_input_manager_v1_t() = default;
6937  zwp_text_input_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
6938  zwp_text_input_manager_v1_t(const resource_t &resource);
6939 
6940  static const std::string interface_name;
6941 
6942  operator zwp_text_input_manager_v1*() const;
6943 
6950  std::function<void(zwp_text_input_v1_t)> &on_create_text_input();
6951 
6952 };
6953 
6955 
6956 
6987 class zwp_text_input_v3_t : public resource_t
6988 {
6989 private:
6990  struct events_t : public resource_t::events_base_t
6991  {
6992  std::function<void()> destroy;
6993  std::function<void()> enable;
6994  std::function<void()> disable;
6995  std::function<void(std::string, int32_t, int32_t)> set_surrounding_text;
6996  std::function<void(zwp_text_input_v3_change_cause)> set_text_change_cause;
6997  std::function<void(zwp_text_input_v3_content_hint, zwp_text_input_v3_content_purpose)> set_content_type;
6998  std::function<void(int32_t, int32_t, int32_t, int32_t)> set_cursor_rectangle;
6999  std::function<void()> commit;
7000  };
7001 
7002  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7003 
7004 protected:
7005  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_text_input_v3_interface;
7006  static constexpr const unsigned int max_version = 1;
7007 
7008  friend class global_t<zwp_text_input_v3_t>;
7009  friend class global_base_t;
7010 
7011 public:
7012  zwp_text_input_v3_t() = default;
7013  zwp_text_input_v3_t(const client_t& client, uint32_t id, int version = 1);
7014  zwp_text_input_v3_t(const resource_t &resource);
7015 
7016  static const std::string interface_name;
7017 
7018  operator zwp_text_input_v3*() const;
7019 
7026  std::function<void()> &on_destroy();
7027 
7061  std::function<void()> &on_enable();
7062 
7072  std::function<void()> &on_disable();
7073 
7112  std::function<void(std::string, int32_t, int32_t)> &on_set_surrounding_text();
7113 
7133  std::function<void(zwp_text_input_v3_change_cause)> &on_set_text_change_cause();
7134 
7152  std::function<void(zwp_text_input_v3_content_hint, zwp_text_input_v3_content_purpose)> &on_set_content_type();
7153 
7179  std::function<void(int32_t, int32_t, int32_t, int32_t)> &on_set_cursor_rectangle();
7180 
7208  std::function<void()> &on_commit();
7209 
7223  void enter(surface_t const& surface, bool post = true);
7224 
7227  static constexpr std::uint32_t enter_since_version = 1;
7228 
7245  void leave(surface_t const& surface, bool post = true);
7246 
7249  static constexpr std::uint32_t leave_since_version = 1;
7250 
7276  void preedit_string(std::string const& text, int32_t cursor_begin, int32_t cursor_end, bool post = true);
7277 
7280  static constexpr std::uint32_t preedit_string_since_version = 1;
7281 
7295  void commit_string(std::string const& text, bool post = true);
7296 
7299  static constexpr std::uint32_t commit_string_since_version = 1;
7300 
7321  void delete_surrounding_text(uint32_t before_length, uint32_t after_length, bool post = true);
7322 
7325  static constexpr std::uint32_t delete_surrounding_text_since_version = 1;
7326 
7354  void done(uint32_t serial, bool post = true);
7355 
7358  static constexpr std::uint32_t done_since_version = 1;
7359 
7360 };
7361 
7363 
7369 enum class zwp_text_input_v3_change_cause : uint32_t
7370  {
7372  input_method = 0,
7374  other = 1
7375 };
7376 
7383 struct zwp_text_input_v3_content_hint : public wayland::detail::bitfield<10, 28>
7384 {
7385  zwp_text_input_v3_content_hint(const wayland::detail::bitfield<10, 28> &b)
7386  : wayland::detail::bitfield<10, 28>(b) {}
7387  zwp_text_input_v3_content_hint(const uint32_t value)
7388  : wayland::detail::bitfield<10, 28>(value) {}
7390  static const wayland::detail::bitfield<10, 28> none;
7392  static const wayland::detail::bitfield<10, 28> completion;
7394  static const wayland::detail::bitfield<10, 28> spellcheck;
7396  static const wayland::detail::bitfield<10, 28> auto_capitalization;
7398  static const wayland::detail::bitfield<10, 28> lowercase;
7400  static const wayland::detail::bitfield<10, 28> uppercase;
7402  static const wayland::detail::bitfield<10, 28> titlecase;
7404  static const wayland::detail::bitfield<10, 28> hidden_text;
7406  static const wayland::detail::bitfield<10, 28> sensitive_data;
7408  static const wayland::detail::bitfield<10, 28> latin;
7410  static const wayland::detail::bitfield<10, 28> multiline;
7411 };
7412 
7422 enum class zwp_text_input_v3_content_purpose : uint32_t
7423  {
7425  normal = 0,
7427  alpha = 1,
7429  digits = 2,
7431  number = 3,
7433  phone = 4,
7435  url = 5,
7437  email = 6,
7439  name = 7,
7441  password = 8,
7443  pin = 9,
7445  date = 10,
7447  time = 11,
7449  datetime = 12,
7451  terminal = 13
7452 };
7453 
7454 
7460 class zwp_text_input_manager_v3_t : public resource_t
7461 {
7462 private:
7463  struct events_t : public resource_t::events_base_t
7464  {
7465  std::function<void()> destroy;
7466  std::function<void(zwp_text_input_v3_t, seat_t)> get_text_input;
7467  };
7468 
7469  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7470 
7471 protected:
7472  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_text_input_manager_v3_interface;
7473  static constexpr const unsigned int max_version = 1;
7474 
7475  friend class global_t<zwp_text_input_manager_v3_t>;
7476  friend class global_base_t;
7477 
7478 public:
7479  zwp_text_input_manager_v3_t() = default;
7480  zwp_text_input_manager_v3_t(const client_t& client, uint32_t id, int version = 1);
7481  zwp_text_input_manager_v3_t(const resource_t &resource);
7482 
7483  static const std::string interface_name;
7484 
7485  operator zwp_text_input_manager_v3*() const;
7486 
7492  std::function<void()> &on_destroy();
7493 
7501  std::function<void(zwp_text_input_v3_t, seat_t)> &on_get_text_input();
7502 
7503 };
7504 
7506 
7507 
7515 class xdg_activation_v1_t : public resource_t
7516 {
7517 private:
7518  struct events_t : public resource_t::events_base_t
7519  {
7520  std::function<void()> destroy;
7521  std::function<void(xdg_activation_token_v1_t)> get_activation_token;
7522  std::function<void(std::string, surface_t)> activate;
7523  };
7524 
7525  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7526 
7527 protected:
7528  static constexpr const wl_interface *interface = &wayland::server::detail::xdg_activation_v1_interface;
7529  static constexpr const unsigned int max_version = 1;
7530 
7531  friend class global_t<xdg_activation_v1_t>;
7532  friend class global_base_t;
7533 
7534 public:
7535  xdg_activation_v1_t() = default;
7536  xdg_activation_v1_t(const client_t& client, uint32_t id, int version = 1);
7537  xdg_activation_v1_t(const resource_t &resource);
7538 
7539  static const std::string interface_name;
7540 
7541  operator xdg_activation_v1*() const;
7542 
7552  std::function<void()> &on_destroy();
7553 
7562  std::function<void(xdg_activation_token_v1_t)> &on_get_activation_token();
7563 
7580  std::function<void(std::string, surface_t)> &on_activate();
7581 
7582 };
7583 
7585 
7586 
7599 class xdg_activation_token_v1_t : public resource_t
7600 {
7601 private:
7602  struct events_t : public resource_t::events_base_t
7603  {
7604  std::function<void(uint32_t, seat_t)> set_serial;
7605  std::function<void(std::string)> set_app_id;
7606  std::function<void(surface_t)> set_surface;
7607  std::function<void()> commit;
7608  std::function<void()> destroy;
7609  };
7610 
7611  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7612 
7613 protected:
7614  static constexpr const wl_interface *interface = &wayland::server::detail::xdg_activation_token_v1_interface;
7615  static constexpr const unsigned int max_version = 1;
7616 
7617  friend class global_t<xdg_activation_token_v1_t>;
7618  friend class global_base_t;
7619 
7620 public:
7621  xdg_activation_token_v1_t() = default;
7622  xdg_activation_token_v1_t(const client_t& client, uint32_t id, int version = 1);
7623  xdg_activation_token_v1_t(const resource_t &resource);
7624 
7625  static const std::string interface_name;
7626 
7627  operator xdg_activation_token_v1*() const;
7628 
7639  std::function<void(uint32_t, seat_t)> &on_set_serial();
7640 
7650  std::function<void(std::string)> &on_set_app_id();
7651 
7661  std::function<void(surface_t)> &on_set_surface();
7662 
7669  std::function<void()> &on_commit();
7670 
7677  std::function<void()> &on_destroy();
7678 
7697  void done(std::string const& token, bool post = true);
7698 
7701  static constexpr std::uint32_t done_since_version = 1;
7702 
7705  void post_already_used(std::string const& msg);
7706 
7707 };
7708 
7710 
7714 enum class xdg_activation_token_v1_error : uint32_t
7715  {
7717  already_used = 0
7718 };
7719 
7720 
7747 class zxdg_decoration_manager_v1_t : public resource_t
7748 {
7749 private:
7750  struct events_t : public resource_t::events_base_t
7751  {
7752  std::function<void()> destroy;
7753  std::function<void(zxdg_toplevel_decoration_v1_t, xdg_toplevel_t)> get_toplevel_decoration;
7754  };
7755 
7756  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7757 
7758 protected:
7759  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_decoration_manager_v1_interface;
7760  static constexpr const unsigned int max_version = 1;
7761 
7762  friend class global_t<zxdg_decoration_manager_v1_t>;
7763  friend class global_base_t;
7764 
7765 public:
7766  zxdg_decoration_manager_v1_t() = default;
7767  zxdg_decoration_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
7768  zxdg_decoration_manager_v1_t(const resource_t &resource);
7769 
7770  static const std::string interface_name;
7771 
7772  operator zxdg_decoration_manager_v1*() const;
7773 
7780  std::function<void()> &on_destroy();
7781 
7795  std::function<void(zxdg_toplevel_decoration_v1_t, xdg_toplevel_t)> &on_get_toplevel_decoration();
7796 
7797 };
7798 
7800 
7801 
7812 class zxdg_toplevel_decoration_v1_t : public resource_t
7813 {
7814 private:
7815  struct events_t : public resource_t::events_base_t
7816  {
7817  std::function<void()> destroy;
7818  std::function<void(zxdg_toplevel_decoration_v1_mode)> set_mode;
7819  std::function<void()> unset_mode;
7820  };
7821 
7822  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7823 
7824 protected:
7825  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_toplevel_decoration_v1_interface;
7826  static constexpr const unsigned int max_version = 1;
7827 
7828  friend class global_t<zxdg_toplevel_decoration_v1_t>;
7829  friend class global_base_t;
7830 
7831 public:
7832  zxdg_toplevel_decoration_v1_t() = default;
7833  zxdg_toplevel_decoration_v1_t(const client_t& client, uint32_t id, int version = 1);
7834  zxdg_toplevel_decoration_v1_t(const resource_t &resource);
7835 
7836  static const std::string interface_name;
7837 
7838  operator zxdg_toplevel_decoration_v1*() const;
7839 
7846  std::function<void()> &on_destroy();
7847 
7871  std::function<void(zxdg_toplevel_decoration_v1_mode)> &on_set_mode();
7872 
7881  std::function<void()> &on_unset_mode();
7882 
7895  void configure(zxdg_toplevel_decoration_v1_mode const& mode, bool post = true);
7896 
7899  static constexpr std::uint32_t configure_since_version = 1;
7900 
7903  void post_unconfigured_buffer(std::string const& msg);
7904 
7907  void post_already_constructed(std::string const& msg);
7908 
7911  void post_orphaned(std::string const& msg);
7912 
7913 };
7914 
7916 
7920 enum class zxdg_toplevel_decoration_v1_error : uint32_t
7921  {
7923  unconfigured_buffer = 0,
7925  already_constructed = 1,
7927  orphaned = 2
7928 };
7929 
7935 enum class zxdg_toplevel_decoration_v1_mode : uint32_t
7936  {
7938  client_side = 1,
7940  server_side = 2
7941 };
7942 
7943 
7950 class zxdg_exporter_v1_t : public resource_t
7951 {
7952 private:
7953  struct events_t : public resource_t::events_base_t
7954  {
7955  std::function<void()> destroy;
7956  std::function<void(zxdg_exported_v1_t, surface_t)> _export;
7957  };
7958 
7959  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
7960 
7961 protected:
7962  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_exporter_v1_interface;
7963  static constexpr const unsigned int max_version = 1;
7964 
7965  friend class global_t<zxdg_exporter_v1_t>;
7966  friend class global_base_t;
7967 
7968 public:
7969  zxdg_exporter_v1_t() = default;
7970  zxdg_exporter_v1_t(const client_t& client, uint32_t id, int version = 1);
7971  zxdg_exporter_v1_t(const resource_t &resource);
7972 
7973  static const std::string interface_name;
7974 
7975  operator zxdg_exporter_v1*() const;
7976 
7983  std::function<void()> &on_destroy();
7984 
7999  std::function<void(zxdg_exported_v1_t, surface_t)> &on_export();
8000 
8001 };
8002 
8004 
8005 
8013 class zxdg_importer_v1_t : public resource_t
8014 {
8015 private:
8016  struct events_t : public resource_t::events_base_t
8017  {
8018  std::function<void()> destroy;
8019  std::function<void(zxdg_imported_v1_t, std::string)> import;
8020  };
8021 
8022  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8023 
8024 protected:
8025  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_importer_v1_interface;
8026  static constexpr const unsigned int max_version = 1;
8027 
8028  friend class global_t<zxdg_importer_v1_t>;
8029  friend class global_base_t;
8030 
8031 public:
8032  zxdg_importer_v1_t() = default;
8033  zxdg_importer_v1_t(const client_t& client, uint32_t id, int version = 1);
8034  zxdg_importer_v1_t(const resource_t &resource);
8035 
8036  static const std::string interface_name;
8037 
8038  operator zxdg_importer_v1*() const;
8039 
8046  std::function<void()> &on_destroy();
8047 
8059  std::function<void(zxdg_imported_v1_t, std::string)> &on_import();
8060 
8061 };
8062 
8064 
8065 
8074 class zxdg_exported_v1_t : public resource_t
8075 {
8076 private:
8077  struct events_t : public resource_t::events_base_t
8078  {
8079  std::function<void()> destroy;
8080  };
8081 
8082  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8083 
8084 protected:
8085  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_exported_v1_interface;
8086  static constexpr const unsigned int max_version = 1;
8087 
8088  friend class global_t<zxdg_exported_v1_t>;
8089  friend class global_base_t;
8090 
8091 public:
8092  zxdg_exported_v1_t() = default;
8093  zxdg_exported_v1_t(const client_t& client, uint32_t id, int version = 1);
8094  zxdg_exported_v1_t(const resource_t &resource);
8095 
8096  static const std::string interface_name;
8097 
8098  operator zxdg_exported_v1*() const;
8099 
8107  std::function<void()> &on_destroy();
8108 
8118  void handle(std::string const& handle, bool post = true);
8119 
8122  static constexpr std::uint32_t handle_since_version = 1;
8123 
8124 };
8125 
8127 
8128 
8136 class zxdg_imported_v1_t : public resource_t
8137 {
8138 private:
8139  struct events_t : public resource_t::events_base_t
8140  {
8141  std::function<void()> destroy;
8142  std::function<void(surface_t)> set_parent_of;
8143  };
8144 
8145  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8146 
8147 protected:
8148  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_imported_v1_interface;
8149  static constexpr const unsigned int max_version = 1;
8150 
8151  friend class global_t<zxdg_imported_v1_t>;
8152  friend class global_base_t;
8153 
8154 public:
8155  zxdg_imported_v1_t() = default;
8156  zxdg_imported_v1_t(const client_t& client, uint32_t id, int version = 1);
8157  zxdg_imported_v1_t(const resource_t &resource);
8158 
8159  static const std::string interface_name;
8160 
8161  operator zxdg_imported_v1*() const;
8162 
8170  std::function<void()> &on_destroy();
8171 
8181  std::function<void(surface_t)> &on_set_parent_of();
8182 
8191  void destroyed(bool post = true);
8192 
8195  static constexpr std::uint32_t destroyed_since_version = 1;
8196 
8197 };
8198 
8200 
8201 
8208 class zxdg_exporter_v2_t : public resource_t
8209 {
8210 private:
8211  struct events_t : public resource_t::events_base_t
8212  {
8213  std::function<void()> destroy;
8214  std::function<void(zxdg_exported_v2_t, surface_t)> export_toplevel;
8215  };
8216 
8217  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8218 
8219 protected:
8220  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_exporter_v2_interface;
8221  static constexpr const unsigned int max_version = 1;
8222 
8223  friend class global_t<zxdg_exporter_v2_t>;
8224  friend class global_base_t;
8225 
8226 public:
8227  zxdg_exporter_v2_t() = default;
8228  zxdg_exporter_v2_t(const client_t& client, uint32_t id, int version = 1);
8229  zxdg_exporter_v2_t(const resource_t &resource);
8230 
8231  static const std::string interface_name;
8232 
8233  operator zxdg_exporter_v2*() const;
8234 
8241  std::function<void()> &on_destroy();
8242 
8258  std::function<void(zxdg_exported_v2_t, surface_t)> &on_export_toplevel();
8259 
8262  void post_invalid_surface(std::string const& msg);
8263 
8264 };
8265 
8267 
8274 enum class zxdg_exporter_v2_error : uint32_t
8275  {
8277  invalid_surface = 0
8278 };
8279 
8280 
8288 class zxdg_importer_v2_t : public resource_t
8289 {
8290 private:
8291  struct events_t : public resource_t::events_base_t
8292  {
8293  std::function<void()> destroy;
8294  std::function<void(zxdg_imported_v2_t, std::string)> import_toplevel;
8295  };
8296 
8297  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8298 
8299 protected:
8300  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_importer_v2_interface;
8301  static constexpr const unsigned int max_version = 1;
8302 
8303  friend class global_t<zxdg_importer_v2_t>;
8304  friend class global_base_t;
8305 
8306 public:
8307  zxdg_importer_v2_t() = default;
8308  zxdg_importer_v2_t(const client_t& client, uint32_t id, int version = 1);
8309  zxdg_importer_v2_t(const resource_t &resource);
8310 
8311  static const std::string interface_name;
8312 
8313  operator zxdg_importer_v2*() const;
8314 
8321  std::function<void()> &on_destroy();
8322 
8334  std::function<void(zxdg_imported_v2_t, std::string)> &on_import_toplevel();
8335 
8336 };
8337 
8339 
8340 
8349 class zxdg_exported_v2_t : public resource_t
8350 {
8351 private:
8352  struct events_t : public resource_t::events_base_t
8353  {
8354  std::function<void()> destroy;
8355  };
8356 
8357  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8358 
8359 protected:
8360  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_exported_v2_interface;
8361  static constexpr const unsigned int max_version = 1;
8362 
8363  friend class global_t<zxdg_exported_v2_t>;
8364  friend class global_base_t;
8365 
8366 public:
8367  zxdg_exported_v2_t() = default;
8368  zxdg_exported_v2_t(const client_t& client, uint32_t id, int version = 1);
8369  zxdg_exported_v2_t(const resource_t &resource);
8370 
8371  static const std::string interface_name;
8372 
8373  operator zxdg_exported_v2*() const;
8374 
8382  std::function<void()> &on_destroy();
8383 
8393  void handle(std::string const& handle, bool post = true);
8394 
8397  static constexpr std::uint32_t handle_since_version = 1;
8398 
8399 };
8400 
8402 
8403 
8411 class zxdg_imported_v2_t : public resource_t
8412 {
8413 private:
8414  struct events_t : public resource_t::events_base_t
8415  {
8416  std::function<void()> destroy;
8417  std::function<void(surface_t)> set_parent_of;
8418  };
8419 
8420  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8421 
8422 protected:
8423  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_imported_v2_interface;
8424  static constexpr const unsigned int max_version = 1;
8425 
8426  friend class global_t<zxdg_imported_v2_t>;
8427  friend class global_base_t;
8428 
8429 public:
8430  zxdg_imported_v2_t() = default;
8431  zxdg_imported_v2_t(const client_t& client, uint32_t id, int version = 1);
8432  zxdg_imported_v2_t(const resource_t &resource);
8433 
8434  static const std::string interface_name;
8435 
8436  operator zxdg_imported_v2*() const;
8437 
8445  std::function<void()> &on_destroy();
8446 
8457  std::function<void(surface_t)> &on_set_parent_of();
8458 
8467  void destroyed(bool post = true);
8468 
8471  static constexpr std::uint32_t destroyed_since_version = 1;
8472 
8475  void post_invalid_surface(std::string const& msg);
8476 
8477 };
8478 
8480 
8487 enum class zxdg_imported_v2_error : uint32_t
8488  {
8490  invalid_surface = 0
8491 };
8492 
8493 
8499 class zxdg_output_manager_v1_t : public resource_t
8500 {
8501 private:
8502  struct events_t : public resource_t::events_base_t
8503  {
8504  std::function<void()> destroy;
8505  std::function<void(zxdg_output_v1_t, output_t)> get_xdg_output;
8506  };
8507 
8508  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8509 
8510 protected:
8511  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_output_manager_v1_interface;
8512  static constexpr const unsigned int max_version = 3;
8513 
8514  friend class global_t<zxdg_output_manager_v1_t>;
8515  friend class global_base_t;
8516 
8517 public:
8518  zxdg_output_manager_v1_t() = default;
8519  zxdg_output_manager_v1_t(const client_t& client, uint32_t id, int version = 3);
8520  zxdg_output_manager_v1_t(const resource_t &resource);
8521 
8522  static const std::string interface_name;
8523 
8524  operator zxdg_output_manager_v1*() const;
8525 
8534  std::function<void()> &on_destroy();
8535 
8543  std::function<void(zxdg_output_v1_t, output_t)> &on_get_xdg_output();
8544 
8545 };
8546 
8548 
8549 
8563 class zxdg_output_v1_t : public resource_t
8564 {
8565 private:
8566  struct events_t : public resource_t::events_base_t
8567  {
8568  std::function<void()> destroy;
8569  };
8570 
8571  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8572 
8573 protected:
8574  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_output_v1_interface;
8575  static constexpr const unsigned int max_version = 3;
8576 
8577  friend class global_t<zxdg_output_v1_t>;
8578  friend class global_base_t;
8579 
8580 public:
8581  zxdg_output_v1_t() = default;
8582  zxdg_output_v1_t(const client_t& client, uint32_t id, int version = 3);
8583  zxdg_output_v1_t(const resource_t &resource);
8584 
8585  static const std::string interface_name;
8586 
8587  operator zxdg_output_v1*() const;
8588 
8595  std::function<void()> &on_destroy();
8596 
8609  void logical_position(int32_t x, int32_t y, bool post = true);
8610 
8613  static constexpr std::uint32_t logical_position_since_version = 1;
8614 
8655  void logical_size(int32_t width, int32_t height, bool post = true);
8656 
8659  static constexpr std::uint32_t logical_size_since_version = 1;
8660 
8674  void done(bool post = true);
8675 
8678  static constexpr std::uint32_t done_since_version = 1;
8679 
8703  void name(std::string const& name, bool post = true);
8704 
8707  static constexpr std::uint32_t name_since_version = 2;
8708 
8712  bool can_name() const;
8713 
8734  void description(std::string const& description, bool post = true);
8735 
8738  static constexpr std::uint32_t description_since_version = 2;
8739 
8743  bool can_description() const;
8744 
8745 };
8746 
8748 
8749 
8758 class zxdg_shell_v6_t : public resource_t
8759 {
8760 private:
8761  struct events_t : public resource_t::events_base_t
8762  {
8763  std::function<void()> destroy;
8764  std::function<void(zxdg_positioner_v6_t)> create_positioner;
8765  std::function<void(zxdg_surface_v6_t, surface_t)> get_xdg_surface;
8766  std::function<void(uint32_t)> pong;
8767  };
8768 
8769  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8770 
8771 protected:
8772  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_shell_v6_interface;
8773  static constexpr const unsigned int max_version = 1;
8774 
8775  friend class global_t<zxdg_shell_v6_t>;
8776  friend class global_base_t;
8777 
8778 public:
8779  zxdg_shell_v6_t() = default;
8780  zxdg_shell_v6_t(const client_t& client, uint32_t id, int version = 1);
8781  zxdg_shell_v6_t(const resource_t &resource);
8782 
8783  static const std::string interface_name;
8784 
8785  operator zxdg_shell_v6*() const;
8786 
8796  std::function<void()> &on_destroy();
8797 
8806  std::function<void(zxdg_positioner_v6_t)> &on_create_positioner();
8807 
8825  std::function<void(zxdg_surface_v6_t, surface_t)> &on_get_xdg_surface();
8826 
8834  std::function<void(uint32_t)> &on_pong();
8835 
8852  void ping(uint32_t serial, bool post = true);
8853 
8856  static constexpr std::uint32_t ping_since_version = 1;
8857 
8860  void post_role(std::string const& msg);
8861 
8864  void post_defunct_surfaces(std::string const& msg);
8865 
8868  void post_not_the_topmost_popup(std::string const& msg);
8869 
8872  void post_invalid_popup_parent(std::string const& msg);
8873 
8876  void post_invalid_surface_state(std::string const& msg);
8877 
8880  void post_invalid_positioner(std::string const& msg);
8881 
8882 };
8883 
8885 
8889 enum class zxdg_shell_v6_error : uint32_t
8890  {
8892  role = 0,
8894  defunct_surfaces = 1,
8896  not_the_topmost_popup = 2,
8898  invalid_popup_parent = 3,
8900  invalid_surface_state = 4,
8902  invalid_positioner = 5
8903 };
8904 
8905 
8929 class zxdg_positioner_v6_t : public resource_t
8930 {
8931 private:
8932  struct events_t : public resource_t::events_base_t
8933  {
8934  std::function<void()> destroy;
8935  std::function<void(int32_t, int32_t)> set_size;
8936  std::function<void(int32_t, int32_t, int32_t, int32_t)> set_anchor_rect;
8937  std::function<void(zxdg_positioner_v6_anchor)> set_anchor;
8938  std::function<void(zxdg_positioner_v6_gravity)> set_gravity;
8939  std::function<void(zxdg_positioner_v6_constraint_adjustment)> set_constraint_adjustment;
8940  std::function<void(int32_t, int32_t)> set_offset;
8941  };
8942 
8943  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
8944 
8945 protected:
8946  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_positioner_v6_interface;
8947  static constexpr const unsigned int max_version = 1;
8948 
8949  friend class global_t<zxdg_positioner_v6_t>;
8950  friend class global_base_t;
8951 
8952 public:
8953  zxdg_positioner_v6_t() = default;
8954  zxdg_positioner_v6_t(const client_t& client, uint32_t id, int version = 1);
8955  zxdg_positioner_v6_t(const resource_t &resource);
8956 
8957  static const std::string interface_name;
8958 
8959  operator zxdg_positioner_v6*() const;
8960 
8966  std::function<void()> &on_destroy();
8967 
8979  std::function<void(int32_t, int32_t)> &on_set_size();
8980 
8999  std::function<void(int32_t, int32_t, int32_t, int32_t)> &on_set_anchor_rect();
9000 
9016  std::function<void(zxdg_positioner_v6_anchor)> &on_set_anchor();
9017 
9032  std::function<void(zxdg_positioner_v6_gravity)> &on_set_gravity();
9033 
9052  std::function<void(zxdg_positioner_v6_constraint_adjustment)> &on_set_constraint_adjustment();
9053 
9071  std::function<void(int32_t, int32_t)> &on_set_offset();
9072 
9075  void post_invalid_input(std::string const& msg);
9076 
9077 };
9078 
9080 
9084 enum class zxdg_positioner_v6_error : uint32_t
9085  {
9087  invalid_input = 0
9088 };
9089 
9093 struct zxdg_positioner_v6_anchor : public wayland::detail::bitfield<4, 37>
9094 {
9095  zxdg_positioner_v6_anchor(const wayland::detail::bitfield<4, 37> &b)
9096  : wayland::detail::bitfield<4, 37>(b) {}
9097  zxdg_positioner_v6_anchor(const uint32_t value)
9098  : wayland::detail::bitfield<4, 37>(value) {}
9100  static const wayland::detail::bitfield<4, 37> none;
9102  static const wayland::detail::bitfield<4, 37> top;
9104  static const wayland::detail::bitfield<4, 37> bottom;
9106  static const wayland::detail::bitfield<4, 37> left;
9108  static const wayland::detail::bitfield<4, 37> right;
9109 };
9110 
9114 struct zxdg_positioner_v6_gravity : public wayland::detail::bitfield<4, 38>
9115 {
9116  zxdg_positioner_v6_gravity(const wayland::detail::bitfield<4, 38> &b)
9117  : wayland::detail::bitfield<4, 38>(b) {}
9118  zxdg_positioner_v6_gravity(const uint32_t value)
9119  : wayland::detail::bitfield<4, 38>(value) {}
9121  static const wayland::detail::bitfield<4, 38> none;
9123  static const wayland::detail::bitfield<4, 38> top;
9125  static const wayland::detail::bitfield<4, 38> bottom;
9127  static const wayland::detail::bitfield<4, 38> left;
9129  static const wayland::detail::bitfield<4, 38> right;
9130 };
9131 
9147 struct zxdg_positioner_v6_constraint_adjustment : public wayland::detail::bitfield<6, 39>
9148 {
9149  zxdg_positioner_v6_constraint_adjustment(const wayland::detail::bitfield<6, 39> &b)
9150  : wayland::detail::bitfield<6, 39>(b) {}
9151  zxdg_positioner_v6_constraint_adjustment(const uint32_t value)
9152  : wayland::detail::bitfield<6, 39>(value) {}
9153  static const wayland::detail::bitfield<6, 39> none;
9154  static const wayland::detail::bitfield<6, 39> slide_x;
9155  static const wayland::detail::bitfield<6, 39> slide_y;
9156  static const wayland::detail::bitfield<6, 39> flip_x;
9157  static const wayland::detail::bitfield<6, 39> flip_y;
9158  static const wayland::detail::bitfield<6, 39> resize_x;
9159  static const wayland::detail::bitfield<6, 39> resize_y;
9160 };
9161 
9162 
9197 class zxdg_surface_v6_t : public resource_t
9198 {
9199 private:
9200  struct events_t : public resource_t::events_base_t
9201  {
9202  std::function<void()> destroy;
9203  std::function<void(zxdg_toplevel_v6_t)> get_toplevel;
9204  std::function<void(zxdg_popup_v6_t, zxdg_surface_v6_t, zxdg_positioner_v6_t)> get_popup;
9205  std::function<void(int32_t, int32_t, int32_t, int32_t)> set_window_geometry;
9206  std::function<void(uint32_t)> ack_configure;
9207  };
9208 
9209  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
9210 
9211 protected:
9212  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_surface_v6_interface;
9213  static constexpr const unsigned int max_version = 1;
9214 
9215  friend class global_t<zxdg_surface_v6_t>;
9216  friend class global_base_t;
9217 
9218 public:
9219  zxdg_surface_v6_t() = default;
9220  zxdg_surface_v6_t(const client_t& client, uint32_t id, int version = 1);
9221  zxdg_surface_v6_t(const resource_t &resource);
9222 
9223  static const std::string interface_name;
9224 
9225  operator zxdg_surface_v6*() const;
9226 
9233  std::function<void()> &on_destroy();
9234 
9245  std::function<void(zxdg_toplevel_v6_t)> &on_get_toplevel();
9246 
9259  std::function<void(zxdg_popup_v6_t, zxdg_surface_v6_t, zxdg_positioner_v6_t)> &on_get_popup();
9260 
9293  std::function<void(int32_t, int32_t, int32_t, int32_t)> &on_set_window_geometry();
9294 
9319  std::function<void(uint32_t)> &on_ack_configure();
9320 
9342  void configure(uint32_t serial, bool post = true);
9343 
9346  static constexpr std::uint32_t configure_since_version = 1;
9347 
9350  void post_not_constructed(std::string const& msg);
9351 
9354  void post_already_constructed(std::string const& msg);
9355 
9358  void post_unconfigured_buffer(std::string const& msg);
9359 
9360 };
9361 
9363 
9367 enum class zxdg_surface_v6_error : uint32_t
9368  {
9369  not_constructed = 1,
9370  already_constructed = 2,
9371  unconfigured_buffer = 3
9372 };
9373 
9374 
9384 class zxdg_toplevel_v6_t : public resource_t
9385 {
9386 private:
9387  struct events_t : public resource_t::events_base_t
9388  {
9389  std::function<void()> destroy;
9390  std::function<void(zxdg_toplevel_v6_t)> set_parent;
9391  std::function<void(std::string)> set_title;
9392  std::function<void(std::string)> set_app_id;
9393  std::function<void(seat_t, uint32_t, int32_t, int32_t)> show_window_menu;
9394  std::function<void(seat_t, uint32_t)> move;
9395  std::function<void(seat_t, uint32_t, zxdg_toplevel_v6_resize_edge)> resize;
9396  std::function<void(int32_t, int32_t)> set_max_size;
9397  std::function<void(int32_t, int32_t)> set_min_size;
9398  std::function<void()> set_maximized;
9399  std::function<void()> unset_maximized;
9400  std::function<void(output_t)> set_fullscreen;
9401  std::function<void()> unset_fullscreen;
9402  std::function<void()> set_minimized;
9403  };
9404 
9405  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
9406 
9407 protected:
9408  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_toplevel_v6_interface;
9409  static constexpr const unsigned int max_version = 1;
9410 
9411  friend class global_t<zxdg_toplevel_v6_t>;
9412  friend class global_base_t;
9413 
9414 public:
9415  zxdg_toplevel_v6_t() = default;
9416  zxdg_toplevel_v6_t(const client_t& client, uint32_t id, int version = 1);
9417  zxdg_toplevel_v6_t(const resource_t &resource);
9418 
9419  static const std::string interface_name;
9420 
9421  operator zxdg_toplevel_v6*() const;
9422 
9430  std::function<void()> &on_destroy();
9431 
9444  std::function<void(zxdg_toplevel_v6_t)> &on_set_parent();
9445 
9458  std::function<void(std::string)> &on_set_title();
9459 
9485  std::function<void(std::string)> &on_set_app_id();
9486 
9506  std::function<void(seat_t, uint32_t, int32_t, int32_t)> &on_show_window_menu();
9507 
9530  std::function<void(seat_t, uint32_t)> &on_move();
9531 
9569  std::function<void(seat_t, uint32_t, zxdg_toplevel_v6_resize_edge)> &on_resize();
9570 
9611  std::function<void(int32_t, int32_t)> &on_set_max_size();
9612 
9653  std::function<void(int32_t, int32_t)> &on_set_min_size();
9654 
9675  std::function<void()> &on_set_maximized();
9676 
9698  std::function<void()> &on_unset_maximized();
9699 
9714  std::function<void(output_t)> &on_set_fullscreen();
9715 
9719  std::function<void()> &on_unset_fullscreen();
9720 
9733  std::function<void()> &on_set_minimized();
9734 
9761  void configure(int32_t width, int32_t height, array_t const& states, bool post = true);
9762 
9765  static constexpr std::uint32_t configure_since_version = 1;
9766 
9779  void close(bool post = true);
9780 
9783  static constexpr std::uint32_t close_since_version = 1;
9784 
9785 };
9786 
9788 
9795 struct zxdg_toplevel_v6_resize_edge : public wayland::detail::bitfield<4, 41>
9796 {
9797  zxdg_toplevel_v6_resize_edge(const wayland::detail::bitfield<4, 41> &b)
9798  : wayland::detail::bitfield<4, 41>(b) {}
9799  zxdg_toplevel_v6_resize_edge(const uint32_t value)
9800  : wayland::detail::bitfield<4, 41>(value) {}
9801  static const wayland::detail::bitfield<4, 41> none;
9802  static const wayland::detail::bitfield<4, 41> top;
9803  static const wayland::detail::bitfield<4, 41> bottom;
9804  static const wayland::detail::bitfield<4, 41> left;
9805  static const wayland::detail::bitfield<4, 41> top_left;
9806  static const wayland::detail::bitfield<4, 41> bottom_left;
9807  static const wayland::detail::bitfield<4, 41> right;
9808  static const wayland::detail::bitfield<4, 41> top_right;
9809  static const wayland::detail::bitfield<4, 41> bottom_right;
9810 };
9811 
9823 enum class zxdg_toplevel_v6_state : uint32_t
9824  {
9826  maximized = 1,
9828  fullscreen = 2,
9830  resizing = 3,
9832  activated = 4
9833 };
9834 
9835 
9873 class zxdg_popup_v6_t : public resource_t
9874 {
9875 private:
9876  struct events_t : public resource_t::events_base_t
9877  {
9878  std::function<void()> destroy;
9879  std::function<void(seat_t, uint32_t)> grab;
9880  };
9881 
9882  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
9883 
9884 protected:
9885  static constexpr const wl_interface *interface = &wayland::server::detail::zxdg_popup_v6_interface;
9886  static constexpr const unsigned int max_version = 1;
9887 
9888  friend class global_t<zxdg_popup_v6_t>;
9889  friend class global_base_t;
9890 
9891 public:
9892  zxdg_popup_v6_t() = default;
9893  zxdg_popup_v6_t(const client_t& client, uint32_t id, int version = 1);
9894  zxdg_popup_v6_t(const resource_t &resource);
9895 
9896  static const std::string interface_name;
9897 
9898  operator zxdg_popup_v6*() const;
9899 
9909  std::function<void()> &on_destroy();
9910 
9958  std::function<void(seat_t, uint32_t)> &on_grab();
9959 
9975  void configure(int32_t x, int32_t y, int32_t width, int32_t height, bool post = true);
9976 
9979  static constexpr std::uint32_t configure_since_version = 1;
9980 
9988  void popup_done(bool post = true);
9989 
9992  static constexpr std::uint32_t popup_done_since_version = 1;
9993 
9996  void post_invalid_grab(std::string const& msg);
9997 
9998 };
9999 
10001 
10005 enum class zxdg_popup_v6_error : uint32_t
10006  {
10008  invalid_grab = 0
10009 };
10010 
10011 
10018 {
10019 private:
10020  struct events_t : public resource_t::events_base_t
10021  {
10022  std::function<void()> destroy;
10023  std::function<void(zwp_xwayland_keyboard_grab_v1_t, surface_t, seat_t)> grab_keyboard;
10024  };
10025 
10026  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
10027 
10028 protected:
10029  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_xwayland_keyboard_grab_manager_v1_interface;
10030  static constexpr const unsigned int max_version = 1;
10031 
10032  friend class global_t<zwp_xwayland_keyboard_grab_manager_v1_t>;
10033  friend class global_base_t;
10034 
10035 public:
10036  zwp_xwayland_keyboard_grab_manager_v1_t() = default;
10037  zwp_xwayland_keyboard_grab_manager_v1_t(const client_t& client, uint32_t id, int version = 1);
10038  zwp_xwayland_keyboard_grab_manager_v1_t(const resource_t &resource);
10039 
10040  static const std::string interface_name;
10041 
10042  operator zwp_xwayland_keyboard_grab_manager_v1*() const;
10043 
10049  std::function<void()> &on_destroy();
10050 
10077  std::function<void(zwp_xwayland_keyboard_grab_v1_t, surface_t, seat_t)> &on_grab_keyboard();
10078 
10079 };
10080 
10082 
10083 
10089 class zwp_xwayland_keyboard_grab_v1_t : public resource_t
10090 {
10091 private:
10092  struct events_t : public resource_t::events_base_t
10093  {
10094  std::function<void()> destroy;
10095  };
10096 
10097  static int dispatcher(int opcode, const std::vector<wayland::detail::any>& args, const std::shared_ptr<resource_t::events_base_t>& e);
10098 
10099 protected:
10100  static constexpr const wl_interface *interface = &wayland::server::detail::zwp_xwayland_keyboard_grab_v1_interface;
10101  static constexpr const unsigned int max_version = 1;
10102 
10103  friend class global_t<zwp_xwayland_keyboard_grab_v1_t>;
10104  friend class global_base_t;
10105 
10106 public:
10107  zwp_xwayland_keyboard_grab_v1_t() = default;
10108  zwp_xwayland_keyboard_grab_v1_t(const client_t& client, uint32_t id, int version = 1);
10109  zwp_xwayland_keyboard_grab_v1_t(const resource_t &resource);
10110 
10111  static const std::string interface_name;
10112 
10113  operator zwp_xwayland_keyboard_grab_v1*() const;
10114 
10121  std::function<void()> &on_destroy();
10122 
10123 };
10124 
10126 
10127 
10128 
10129 }
10130 }
std::function< void(std::string)> & on_set_preferred_language()
sets preferred language
static const wayland::detail::bitfield< 10, 23 > latin
just latin characters should be entered
static constexpr std::uint32_t enter_since_version
Minimum protocol version required for the enter function.
void angle(double degrees, bool post=true)
angle changed
std::function< void()> & on_destroy()
destroy the xdg_imported object
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
std::function< void()> & on_destroy()
destroy the ring object
static constexpr std::uint32_t capability_since_version
Minimum protocol version required for the capability function.
static constexpr std::uint32_t text_direction_since_version
Minimum protocol version required for the text_direction function.
void send(std::string const &mime_type, int fd, bool post=true)
send the primary selection contents
void done(bool post=true)
all information about the output have been sent
static constexpr std::uint32_t leave_since_version
Minimum protocol version required for the leave function.
void name(std::string const &name, bool post=true)
name of this output
std::function< void(zwp_xwayland_keyboard_grab_v1_t, surface_t, seat_t)> & on_grab_keyboard()
grab the keyboard to a surface
static constexpr std::uint32_t destroyed_since_version
Minimum protocol version required for the destroyed function.
static constexpr std::uint32_t inactive_since_version
Minimum protocol version required for the inactive function.
void post_already_constructed(std::string const &msg)
Post error:
static constexpr std::uint32_t cursor_position_since_version
Minimum protocol version required for the cursor_position function.
static constexpr std::uint32_t group_since_version
Minimum protocol version required for the group function.
std::function< void(zxdg_imported_v2_t, std::string)> & on_import_toplevel()
import a toplevel surface
void done(uint32_t serial, bool post=true)
apply changes
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 const wayland::detail::bitfield< 10, 28 > completion
suggest word completions
std::function< void(surface_t)> & on_set_surface()
specifies the application being activated
void post_invalid_surface_state(std::string const &msg)
Post error: the client provided an invalid surface state.
std::function< void()> & on_destroy()
destroy the keyboard shortcuts inhibitor object
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
void post_out_of_bounds(std::string const &msg)
Post error: offset + stride * height goes out of dmabuf bounds.
void post_role(std::string const &msg)
Post error: given wl_surface has another role.
std::function< void(int, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> & on_add()
add a dmabuf to the temporary set
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
static constexpr std::uint32_t modifier_since_version
Minimum protocol version required for the modifier function.
static constexpr std::uint32_t buttons_since_version
Minimum protocol version required for the buttons function.
short-lived, popup surfaces for menus
bool can_description() const
Check whether the description function is available with the currently bound version of the protocol...
std::function< void()> & on_destroy()
destroy the decoration manager object
std::function< void(zxdg_positioner_v6_gravity)> & on_set_gravity()
set child surface gravity
std::function< void()> & on_destroy()
destroy the pinch gesture object
static constexpr std::uint32_t locked_since_version
Minimum protocol version required for the locked function.
std::function< void()> & on_destroy()
destroy the xdg_importer object
std::function< void(uint32_t)> & on_ack_configure()
ack a configure event
void deactivate(zwp_input_method_context_v1_t const &context, bool post=true)
deactivate event
void locked(bool post=true)
lock activation event
void buttons(uint32_t buttons, bool post=true)
buttons announced
void tool_added(bool post=true)
a new tool has been used with a tablet
offer to transfer primary selection contents
void done(std::string const &token, bool post=true)
the exported activation token
static constexpr std::uint32_t stop_since_version
Minimum protocol version required for the stop function.
std::function< void(zwp_input_timestamps_v1_t, touch_t)> & on_get_touch_timestamps()
subscribe to high-resolution touch timestamp events
void logical_size(int32_t width, int32_t height, bool post=true)
size of the output in the global compositor space
void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post=true)
multi-finger pinch end
std::function< void()> & on_destroy()
destroy the xdg_positioner object
std::function< void(std::string, uint32_t, uint32_t)> & on_set_surrounding_text()
sets the surrounding text
void removed(bool post=true)
tablet removed event
void slider(int32_t position, bool post=true)
Slider position change event.
void preedit_string(uint32_t serial, std::string const &text, std::string const &commit, bool post=true)
pre-edit
std::function< void(zxdg_toplevel_decoration_v1_t, xdg_toplevel_t)> & on_get_toplevel_decoration()
create a new toplevel decoration object
void post_invalid_popup_parent(std::string const &msg)
Post error: the client specified an invalid popup parent surface.
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
static constexpr std::uint32_t leave_since_version
Minimum protocol version required for the leave function.
void done(bool post=true)
tablet description events sequence complete
std::function< void()> & on_destroy()
release the memory for the tablet manager object
static constexpr std::uint32_t path_since_version
Minimum protocol version required for the path function.
static constexpr std::uint32_t activate_since_version
Minimum protocol version required for the activate function.
void type(zwp_tablet_tool_v1_type const &tool_type, bool post=true)
tool type
std::function< void()> & on_unset_maximized()
unmaximize the window
void path(std::string const &path, bool post=true)
path to the device
offer to replace the contents of the primary selection
void mode_switch(uint32_t time, uint32_t serial, uint32_t mode, bool post=true)
mode switch event
std::function< void(zxdg_positioner_v6_constraint_adjustment)> & on_set_constraint_adjustment()
set the adjustment to be done when constrained
std::function< void()> & on_destroy()
Destroy the wp_text_input_manager.
void path(std::string const &path, bool post=true)
path to the device
static constexpr std::uint32_t capability_since_version
Minimum protocol version required for the capability function.
std::function< void()> & on_destroy()
destroy the xdg_surface
void preedit_cursor(int32_t index, bool post=true)
pre-edit cursor
static constexpr std::uint32_t id_since_version
Minimum protocol version required for the id function.
void tranche_target_device(array_t const &device, bool post=true)
target device
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 motion_since_version
Minimum protocol version required for the motion function.
static constexpr std::uint32_t removed_since_version
Minimum protocol version required for the removed function.
void modifier(uint32_t format, uint32_t modifier_hi, uint32_t modifier_lo, bool post=true)
supported buffer format modifier
std::function< void(std::string)> & on_set_app_id()
set application ID
bool can_modifier() const
Check whether the modifier function is available with the currently bound version of the protocol...
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
static constexpr std::uint32_t motion_since_version
Minimum protocol version required for the motion function.
std::function< void()> & on_destroy()
destroy the confined pointer object
std::function< void()> & on_destroy()
destroy the hold gesture object
static constexpr std::uint32_t tool_added_since_version
Minimum protocol version required for the tool_added 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 tablet_added(bool post=true)
new device notification
void post_invalid_surface(std::string const &msg)
Post error: surface is not an xdg_toplevel.
static constexpr std::uint32_t rotation_since_version
Minimum protocol version required for the rotation function.
void post_incomplete(std::string const &msg)
Post error: missing or too many planes to create a buffer.
void offer(std::string const &mime_type, bool post=true)
advertise offered mime type
void format_table(int fd, uint32_t size, bool post=true)
format and modifier table
std::function< void(int32_t, int32_t)> & on_set_min_size()
set the minimum size
static constexpr std::uint32_t down_since_version
Minimum protocol version required for the down function.
void name(std::string const &name, bool post=true)
tablet device name
static constexpr std::uint32_t preferred_language_since_version
Minimum protocol version required for the preferred_language function.
std::function< void(zwp_input_timestamps_v1_t, keyboard_t)> & on_get_keyboard_timestamps()
subscribe to high-resolution keyboard timestamp events
std::function< void()> & on_destroy()
destroy the idle inhibitor object
void post_unsupported_buffer(std::string const &msg)
Post error: the buffer does not support explicit synchronization.
void ping(uint32_t serial, bool post=true)
check if the client is alive
std::function< void()> & on_unset_mode()
unset the decoration mode
std::function< void()> & on_destroy()
destroy the pad object
std::function< void()> & on_destroy()
Destroy the wp_text_input.
std::function< void()> & on_destroy()
destroy the xdg_activation_token_v1 object
static const wayland::detail::bitfield< 10, 28 > titlecase
prefer casing for titles and headings (can be language dependent)
void up(bool post=true)
tablet tool is no longer making contact
static constexpr std::uint32_t frame_since_version
Minimum protocol version required for the frame function.
static constexpr std::uint32_t tilt_since_version
Minimum protocol version required for the tilt function.
static constexpr std::uint32_t ping_since_version
Minimum protocol version required for the ping function.
static constexpr std::uint32_t type_since_version
Minimum protocol version required for the type function.
static constexpr std::uint32_t end_since_version
Minimum protocol version required for the end function.
static constexpr std::uint32_t commit_string_since_version
Minimum protocol version required for the commit_string function.
void description(std::string const &description, bool post=true)
human-readable description of this output
void fenced_release(int fence, bool post=true)
release buffer with fence
std::function< void(zwp_pointer_gesture_hold_v1_t, pointer_t)> & on_get_hold_gesture()
get hold gesture
void format(uint32_t format, bool post=true)
supported buffer format
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 pointer swipe gesture object
std::function< void()> & on_destroy()
destroy the pad object
std::function< void(zxdg_toplevel_v6_t)> & on_get_toplevel()
assign the xdg_toplevel surface role
static constexpr std::uint32_t ring_since_version
Minimum protocol version required for the ring function.
static constexpr std::uint32_t tranche_flags_since_version
Minimum protocol version required for the tranche_flags function.
void tranche_done(bool post=true)
a preference tranche has been sent
static constexpr std::uint32_t delete_surrounding_text_since_version
Minimum protocol version required for the delete_surrounding_text function.
std::function< void(seat_t, surface_t)> & on_activate()
request activation
static constexpr std::uint32_t relative_motion_since_version
Minimum protocol version required for the relative_motion function.
context object for inhibiting idle behavior
static constexpr std::uint32_t removed_since_version
Minimum protocol version required for the removed function.
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, int32_t, int32_t)> & on_set_window_geometry()
set the new window geometry
static constexpr std::uint32_t handle_since_version
Minimum protocol version required for the handle function.
static const wayland::detail::bitfield< 10, 23 > auto_capitalization
switch to uppercase letters at the start of a sentence
void begin(uint32_t serial, uint32_t time, surface_t const &surface, uint32_t fingers, bool post=true)
multi-finger pinch begin
std::function< void(std::string)> & on_set_app_id()
specifies the application being activated
void pad_added(bool post=true)
new pad notification
std::function< void(seat_t, uint32_t)> & on_grab()
make the popup take an explicit grab
std::function< void()> & on_destroy()
unexport the exported surface
void begin(uint32_t serial, uint32_t time, surface_t const &surface, uint32_t fingers, bool post=true)
multi-finger hold begin
void post_invalid_format(std::string const &msg)
Post error: format not supported.
static constexpr std::uint32_t tilt_since_version
Minimum protocol version required for the tilt function.
void removed(bool post=true)
pad removed event
static constexpr std::uint32_t commit_string_since_version
Minimum protocol version required for the commit_string function.
std::function< void(uint32_t, uint32_t, uint32_t, keyboard_key_state, uint32_t)> & on_keysym()
keysym
std::function< void(zxdg_output_v1_t, output_t)> & on_get_xdg_output()
create an xdg output from a wl_output
void configure(int32_t width, int32_t height, array_t const &states, bool post=true)
suggest a surface change
std::function< void()> & on_release()
destroy the pointer gesture object
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
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
void post_no_buffer(std::string const &msg)
Post error: no buffer was attached.
bool can_end() const
Check whether the end function is available with the currently bound version of the protocol...
std::function< void(seat_t)> & on_deactivate()
request deactivation
void language(uint32_t serial, std::string const &language, bool post=true)
language
static const wayland::detail::bitfield< 10, 28 > latin
just Latin characters should be entered
static constexpr std::uint32_t enter_since_version
Minimum protocol version required for the enter function.
static const wayland::detail::bitfield< 10, 23 > lowercase
prefer lowercase letters
void post_duplicate_fence(std::string const &msg)
Post error: multiple fences added for a single surface commit.
static constexpr std::uint32_t leave_since_version
Minimum protocol version required for the leave function.
void tablet_added(bool post=true)
new device notification
static constexpr std::uint32_t preedit_styling_since_version
Minimum protocol version required for the preedit_styling function.
void configure(uint32_t serial, bool post=true)
suggest a surface change
static constexpr std::uint32_t fenced_release_since_version
Minimum protocol version required for the fenced_release function.
std::function< void()> & on_destroy()
destroy the strip object
std::function< void()> & on_destroy()
destroy the tool object
void commit_string(uint32_t serial, std::string const &text, bool post=true)
commit
void post_already_used(std::string const &msg)
Post error: the dmabuf_batch object has already been used to create a wl_buffer.
std::function< void(zxdg_surface_v6_t, surface_t)> & on_get_xdg_surface()
create a shell surface from a surface
void motion(double x, double y, bool post=true)
motion event
std::function< void(seat_t, uint32_t, zxdg_toplevel_v6_resize_edge)> & on_resize()
start an interactive resize
void buttons(array_t const &buttons, bool post=true)
buttons announced
void frame(uint32_t time, bool post=true)
frame event
std::function< void()> & on_destroy()
destroy the input timestamps manager object
std::function< void()> & on_hide_input_panel()
hide input panels
void done(bool post=true)
all feedback has been sent
std::function< void(int32_t, int32_t)> & on_set_offset()
set surface position offset
std::function< void(std::string, int)> & on_receive()
request that the data is transferred
void button(uint32_t serial, uint32_t button, zwp_tablet_tool_v2_button_state const &state, bool post=true)
button event
void post_orphaned(std::string const &msg)
Post error: xdg_toplevel destroyed before the decoration object.
static const wayland::detail::bitfield< 10, 23 > hidden_text
characters should be hidden
void source(zwp_tablet_pad_ring_v2_source const &source, bool post=true)
ring event source
static constexpr std::uint32_t button_since_version
Minimum protocol version required for the button function.
void cancelled(bool post=true)
request for primary selection contents was canceled
static constexpr std::uint32_t tool_added_since_version
Minimum protocol version required for the tool_added function.
void distance(uint32_t distance, bool post=true)
distance change event
std::function< void()> & on_destroy()
destroy the decoration object
void name(std::string const &name, bool post=true)
tablet device name
std::function< void()> & on_destroy()
destroy the xdg_exporter object
static constexpr std::uint32_t name_since_version
Minimum protocol version required for the name function.
std::function< void(int32_t, int32_t)> & on_set_max_size()
set the maximum size
std::function< void(int32_t, int32_t)> & on_set_size()
set the size of the to-be positioned rectangle
std::function< void()> & on_destroy()
destroy synchronization object
void post_invalid_positioner(std::string const &msg)
Post error: the client provided an invalid positioner.
std::function< void()> & on_destroy()
destroy the xdg_importer object
std::function< void(surface_t, zwp_fullscreen_shell_v1_present_method, output_t)> & on_present_surface()
present surface for display
static constexpr std::uint32_t configure_since_version
Minimum protocol version required for the configure function.
static constexpr std::uint32_t configure_since_version
Minimum protocol version required for the configure function.
std::function< void(std::string, surface_t)> & on_activate()
notify new interaction being available
std::function< void(uint32_t)> & on_pong()
respond to a ping event
std::function< void(zwp_pointer_gesture_pinch_v1_t, pointer_t)> & on_get_pinch_gesture()
get pinch gesture
std::function< void(zxdg_toplevel_v6_t)> & on_set_parent()
set the parent of this surface
void id(uint32_t vid, uint32_t pid, bool post=true)
tablet device USB vendor/product id
static constexpr std::uint32_t main_device_since_version
Minimum protocol version required for the main_device function.
static constexpr std::uint32_t hardware_serial_since_version
Minimum protocol version required for the hardware_serial function.
std::function< void()> & on_destroy()
destroy xdg_shell
void leave(uint32_t serial, surface_t const &surface, bool post=true)
enter event
void created(bool post=true)
buffer creation succeeded
void leave(surface_t const &surface, bool post=true)
leave event
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.
static constexpr std::uint32_t button_since_version
Minimum protocol version required for the button function.
static constexpr std::uint32_t source_since_version
Minimum protocol version required for the source function.
void post_invalid_grab(std::string const &msg)
Post error: tried to grab after being mapped.
std::function< void()> & on_release()
release the wl_fullscreen_shell interface
controller object for graphic tablet devices of a seat
std::function< void()> & on_destroy()
destroy the primary selection offer
std::function< void(zwp_text_input_v3_t, seat_t)> & on_get_text_input()
create a new text input object
static constexpr std::uint32_t name_since_version
Minimum protocol version required for the name function.
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
void keysym(uint32_t serial, uint32_t time, uint32_t sym, keyboard_key_state const &state, uint32_t modifiers, bool post=true)
keysym
static constexpr std::uint32_t content_type_since_version
Minimum protocol version required for the content_type function.
void enter(surface_t const &surface, bool post=true)
enter event
void down(uint32_t serial, bool post=true)
tablet tool is making contact
static constexpr std::uint32_t commit_state_since_version
Minimum protocol version required for the commit_state function.
static constexpr std::uint32_t rotation_since_version
Minimum protocol version required for the rotation function.
void post_no_surface(std::string const &msg)
Post error: the associated wl_surface was destroyed.
std::function< void(uint32_t, std::string)> & on_commit_string()
commit string
std::function< void()> & on_destroy()
unexport the exported surface
std::function< void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> & on_key()
forward key event
void hardware_serial(uint32_t hardware_serial_hi, uint32_t hardware_serial_lo, bool post=true)
unique hardware serial number of the tool
void id(uint32_t vid, uint32_t pid, bool post=true)
tablet device USB vendor/product id
static constexpr std::uint32_t close_since_version
Minimum protocol version required for the close function.
std::function< void(zwp_input_panel_surface_v1_t, surface_t)> & on_get_input_panel_surface()
controller object for graphic tablet devices of a seat
void handle(std::string const &handle, bool post=true)
the exported surface handle
std::function< void(std::string, uint32_t)> & on_set_feedback()
set compositor feedback
static constexpr std::uint32_t removed_since_version
Minimum protocol version required for the removed function.
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
desktop user interface surface base interface
bool can_begin() const
Check whether the begin function is available with the currently bound version of the protocol...
static constexpr std::uint32_t offer_since_version
Minimum protocol version required for the offer function.
static constexpr std::uint32_t delete_surrounding_text_since_version
Minimum protocol version required for the delete_surrounding_text function.
std::function< void()> & on_destroy()
destroy the relative pointer manager object
void handle(std::string const &handle, bool post=true)
the exported surface handle
static constexpr std::uint32_t frame_since_version
Minimum protocol version required for the frame function.
static constexpr std::uint32_t tranche_formats_since_version
Minimum protocol version required for the tranche_formats function.
std::function< void(surface_t)> & on_set_parent_of()
set as the parent of some surface
std::function< void()> & on_disable()
Disable text input on a surface.
std::function< void(seat_t, uint32_t, int32_t, int32_t)> & on_show_window_menu()
show the window menu
void commit_string(std::string const &text, bool post=true)
text commit
std::function< void()> & on_destroy()
unbind the factory
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
static constexpr std::uint32_t modes_since_version
Minimum protocol version required for the modes function.
std::function< void()> & on_set_minimized()
set the window as minimized
void post_duplicate_release(std::string const &msg)
Post error: multiple releases added for a single surface commit.
std::function< void()> & on_destroy()
destroy the feedback object
static const wayland::detail::bitfield< 10, 28 > lowercase
prefer lowercase letters
static constexpr std::uint32_t format_since_version
Minimum protocol version required for the format function.
static constexpr std::uint32_t tranche_target_device_since_version
Minimum protocol version required for the tranche_target_device function.
std::function< void(int32_t)> & on_preedit_cursor()
pre-edit cursor
static const wayland::detail::bitfield< 10, 23 > none
no special behaviour
static constexpr std::uint32_t logical_size_since_version
Minimum protocol version required for the logical_size function.
static const wayland::detail::bitfield< 10, 23 > multiline
the text input is multiline
std::function< void(uint32_t, std::string, uint32_t)> & on_set_feedback()
set compositor feedback
std::function< void(zwp_linux_dmabuf_feedback_v1_t, surface_t)> & on_get_surface_feedback()
get feedback for a surface
std::function< void(uint32_t, uint32_t)> & on_invoke_action()
void done(bool post=true)
pad description event sequence complete
static constexpr std::uint32_t modifiers_map_since_version
Minimum protocol version required for the modifiers_map function.
void tranche_formats(array_t const &indices, bool post=true)
supported buffer format modifier
static constexpr std::uint32_t pad_added_since_version
Minimum protocol version required for the pad_added function.
void update(uint32_t time, double dx, double dy, bool post=true)
multi-finger swipe motion
std::function< void(uint32_t, std::string, std::string)> & on_preedit_string()
pre-edit string
static constexpr std::uint32_t begin_since_version
Minimum protocol version required for the begin function.
static constexpr std::uint32_t send_since_version
Minimum protocol version required for the send function.
static constexpr std::uint32_t proximity_in_since_version
Minimum protocol version required for the proximity_in function.
void post_unconfigured_buffer(std::string const &msg)
Post error:
controller object for graphic tablet devices
std::function< void(output_t)> & on_set_fullscreen()
set the window as fullscreen on a monitor
std::function< void(zxdg_toplevel_decoration_v1_mode)> & on_set_mode()
set the decoration mode
void done(bool post=true)
tool description events sequence complete
void invoke_action(uint32_t button, uint32_t index, bool post=true)
static constexpr std::uint32_t pressure_since_version
Minimum protocol version required for the pressure function.
std::function< void(surface_t)> & on_set_parent_of()
set as the parent of some surface
void path(std::string const &path, bool post=true)
path to the device
std::function< void(zwp_linux_surface_synchronization_v1_t, surface_t)> & on_get_synchronization()
extend surface interface for explicit synchronization
static constexpr std::uint32_t removed_since_version
Minimum protocol version required for the removed function.
void post_role(std::string const &msg)
Post error: given wl_surface has another role.
static constexpr std::uint32_t enter_since_version
Minimum protocol version required for the enter function.
void capability(zwp_tablet_tool_v2_capability const &capability, bool post=true)
tool capability notification
std::function< void(zwp_linux_dmabuf_feedback_v1_t)> & on_get_default_feedback()
get default feedback
std::function< void()> & on_destroy()
destroy the keyboard grab manager
void modes(uint32_t modes, bool post=true)
mode-switch ability announced
static constexpr std::uint32_t preedit_string_since_version
Minimum protocol version required for the preedit_string function.
void source(zwp_tablet_pad_strip_v2_source const &source, bool post=true)
strip event source
std::function< void(int32_t, uint32_t)> & on_delete_surrounding_text()
delete text
void pressure(uint32_t pressure, bool post=true)
pressure change event
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
void configure(int32_t x, int32_t y, int32_t width, int32_t height, bool post=true)
configure the popup surface
static constexpr std::uint32_t capability_since_version
Minimum protocol version required for the capability function.
static constexpr std::uint32_t reset_since_version
Minimum protocol version required for the reset function.
std::function< void()> & on_destroy()
destroy the tablet object
std::function< void()> & on_destroy()
release the relative pointer object
void motion(double x, double y, bool post=true)
motion event
std::function< void(zwp_primary_selection_device_v1_t, seat_t)> & on_get_device()
create a new primary selection device
std::function< void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> & on_modifiers()
forward modifiers event
void tranche_flags(zwp_linux_dmabuf_feedback_v1_tranche_flags const &flags, bool post=true)
tranche flags
std::function< void()> & on_destroy()
destroy the idle inhibitor object
static constexpr std::uint32_t wheel_since_version
Minimum protocol version required for the wheel function.
static constexpr std::uint32_t begin_since_version
Minimum protocol version required for the begin function.
void post_already_constructed(std::string const &msg)
Post error: xdg_toplevel already has a decoration object.
factory for creating dmabuf-based wl_buffers
std::function< void()> & on_destroy()
destroy the xdg_activation object
static const wayland::detail::bitfield< 10, 28 > auto_capitalization
switch to uppercase letters at the start of a sentence
static constexpr std::uint32_t timestamp_since_version
Minimum protocol version required for the timestamp function.
static constexpr std::uint32_t down_since_version
Minimum protocol version required for the down function.
std::function< void(zwp_linux_buffer_release_v1_t)> & on_get_release()
release fence for last-attached buffer
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.
std::function< void()> & on_destroy()
remove xdg_popup interface
std::function< void()> & on_destroy()
destroy the locked pointer object
void post_invalid_method(std::string const &msg)
Post error: present_method is not known.
static constexpr std::uint32_t preedit_cursor_since_version
Minimum protocol version required for the preedit_cursor function.
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
std::function< void(zwp_text_input_v3_change_cause)> & on_set_text_change_cause()
indicates the cause of surrounding text change
controller object for graphic tablet devices
std::function< void()> & on_destroy()
destroy the pointer constraints manager object
void rotation(double degrees, bool post=true)
z-rotation change event
static constexpr std::uint32_t end_since_version
Minimum protocol version required for the end function.
static constexpr std::uint32_t position_since_version
Minimum protocol version required for the position function.
static constexpr std::uint32_t buttons_since_version
Minimum protocol version required for the buttons function.
static constexpr std::uint32_t stop_since_version
Minimum protocol version required for the stop function.
std::function< void(std::string, uint32_t)> & on_set_feedback()
set compositor feedback
static constexpr std::uint32_t angle_since_version
Minimum protocol version required for the angle function.
static const wayland::detail::bitfield< 10, 23 > titlecase
prefer casing for titles and headings (can be language dependent)
void wheel(double degrees, int32_t clicks, bool post=true)
Wheel delta event.
void post_already_used(std::string const &msg)
Post error: The token has already been used previously.
std::function< void(region_t)> & on_set_region()
set a new confine region
static constexpr std::uint32_t unconfined_since_version
Minimum protocol version required for the unconfined function.
static constexpr std::uint32_t source_since_version
Minimum protocol version required for the source function.
std::function< void()> & on_destroy()
destroy the primary selection source
void content_type(zwp_text_input_v1_content_hint const &hint, zwp_text_input_v1_content_purpose const &purpose, bool post=true)
static constexpr std::uint32_t proximity_out_since_version
Minimum protocol version required for the proximity_out function.
static constexpr std::uint32_t wheel_since_version
Minimum protocol version required for the wheel function.
std::function< void()> & on_destroy()
destroy the keyboard shortcuts inhibitor object
static constexpr std::uint32_t name_since_version
Minimum protocol version required for the name function.
static const wayland::detail::bitfield< 10, 28 > hidden_text
characters should be hidden
std::function< void(zwp_idle_inhibitor_v1_t, surface_t)> & on_create_inhibitor()
create a new inhibitor object
static constexpr std::uint32_t end_since_version
Minimum protocol version required for the end function.
static constexpr std::uint32_t created_since_version
Minimum protocol version required for the created function.
std::function< void()> & on_set_maximized()
maximize the window
void post_invalid_input(std::string const &msg)
Post error: invalid input provided.
void timestamp(uint32_t tv_sec_hi, uint32_t tv_sec_lo, uint32_t tv_nsec, bool post=true)
high-resolution timestamp event
void capability(zwp_tablet_tool_v1_capability const &capability, bool post=true)
tool capability notification
static constexpr std::uint32_t deactivate_since_version
Minimum protocol version required for the deactivate function.
std::function< void(std::string)> & on_set_title()
set surface title
std::function< void(uint32_t, seat_t)> & on_set_serial()
specifies the seat and serial of the activating event
void post_defunct_surfaces(std::string const &msg)
Post error: xdg_shell was destroyed before children.
void post_synchronization_exists(std::string const &msg)
Post error: the surface already has a synchronization object associated.
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
static constexpr std::uint32_t configure_since_version
Minimum protocol version required for the configure function.
static const wayland::detail::bitfield< 10, 28 > sensitive_data
typed text should not be stored
void proximity_in(uint32_t serial, zwp_tablet_v1_t const &tablet, surface_t const &surface, bool post=true)
proximity in event
void tilt(int32_t tilt_x, int32_t tilt_y, bool post=true)
tilt change event
std::function< void()> & on_enable()
Request text input to be enabled.
static constexpr std::uint32_t slider_since_version
Minimum protocol version required for the slider function.
std::function< void()> & on_destroy()
destroy the xdg_exporter object
void main_device(array_t const &device, bool post=true)
preferred main device
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 hardware_id_wacom_since_version
Minimum protocol version required for the hardware_id_wacom function.
void capability(zwp_fullscreen_shell_v1_capability const &capability, bool post=true)
advertises a capability of the compositor
static constexpr std::uint32_t failed_since_version
Minimum protocol version required for the failed function.
void delete_surrounding_text(int32_t index, uint32_t length, bool post=true)
delete surrounding text
static constexpr std::uint32_t tablet_added_since_version
Minimum protocol version required for the tablet_added function.
void proximity_in(uint32_t serial, zwp_tablet_v2_t const &tablet, surface_t const &surface, bool post=true)
proximity in event
void modifiers_map(array_t const &map, bool post=true)
modifiers map
static constexpr std::uint32_t type_since_version
Minimum protocol version required for the type function.
static constexpr std::uint32_t confined_since_version
Minimum protocol version required for the confined function.
static constexpr std::uint32_t handle_since_version
Minimum protocol version required for the handle function.
void hardware_id_wacom(uint32_t hardware_id_hi, uint32_t hardware_id_lo, bool post=true)
hardware id notification in Wacom's format
std::function< void(zwp_tablet_seat_v2_t, seat_t)> & on_get_tablet_seat()
get the tablet seat
std::function< void()> & on_destroy()
destroy the xdg_output object
bool can_name() const
Check whether the name function is available with the currently bound version of the protocol...
std::function< void()> & on_destroy()
release the memory for the tablet seat object
void immediate_release(bool post=true)
release buffer immediately
void post_plane_idx(std::string const &msg)
Post error: plane index out of bounds.
static constexpr std::uint32_t tranche_done_since_version
Minimum protocol version required for the tranche_done function.
void done(bool post=true)
tablet group description events sequence complete
std::function< void(region_t)> & on_set_region()
set a new lock region
static constexpr std::uint32_t keysym_since_version
Minimum protocol version required for the keysym function.
static const wayland::detail::bitfield< 10, 28 > spellcheck
suggest word corrections
void delete_surrounding_text(uint32_t before_length, uint32_t after_length, bool post=true)
delete surrounding text
std::function< void()> & on_commit()
issues the token request
static const wayland::detail::bitfield< 10, 23 > uppercase
prefer uppercase letters
static constexpr std::uint32_t mode_switch_since_version
Minimum protocol version required for the mode_switch function.
void proximity_out(bool post=true)
proximity out event
static constexpr std::uint32_t active_since_version
Minimum protocol version required for the active function.
static constexpr std::uint32_t path_since_version
Minimum protocol version required for the path function.
void position(uint32_t position, bool post=true)
position changed
std::function< void(zwp_text_input_v3_content_hint, zwp_text_input_v3_content_purpose)> & on_set_content_type()
set content purpose and hint
void wheel(int32_t degrees, int32_t clicks, bool post=true)
Wheel delta event.
void rotation(int32_t degrees, bool post=true)
z-rotation change event
static constexpr std::uint32_t hardware_serial_since_version
Minimum protocol version required for the hardware_serial function.
std::function< void(int)> & on_set_acquire_fence()
set the acquire fence
static const wayland::detail::bitfield< 10, 23 > password
hidden and sensitive text
void cursor_position(int32_t index, int32_t anchor, bool post=true)
set cursor to new position
void type(zwp_tablet_tool_v2_type const &tool_type, bool post=true)
tool type
std::function< void(zwp_tablet_seat_v1_t, seat_t)> & on_get_tablet_seat()
get the tablet seat
static constexpr std::uint32_t slider_since_version
Minimum protocol version required for the slider function.
static constexpr std::uint32_t immediate_release_since_version
Minimum protocol version required for the immediate_release function.
static constexpr std::uint32_t distance_since_version
Minimum protocol version required for the distance function.
void post_not_constructed(std::string const &msg)
Post error:
std::function< void()> & on_show_input_panel()
show input panels
static constexpr std::uint32_t proximity_in_since_version
Minimum protocol version required for the proximity_in function.
static constexpr std::uint32_t cancelled_since_version
Minimum protocol version required for the cancelled function.
std::function< void(keyboard_t)> & on_grab_keyboard()
grab hardware keyboard
void removed(bool post=true)
tablet removed event
std::function< void()> & on_destroy()
destroy explicit synchronization factory object
std::function< void(zwp_pointer_gesture_swipe_v1_t, pointer_t)> & on_get_swipe_gesture()
get swipe gesture
static constexpr std::uint32_t language_since_version
Minimum protocol version required for the language function.
void frame(uint32_t time, bool post=true)
end of a ring event sequence
static const wayland::detail::bitfield< 10, 28 > multiline
the text input is multiline
void done(bool post=true)
tool description events sequence complete
void enter(surface_t const &surface, bool post=true)
enter event
std::function< void()> & on_destroy()
destroy the tool object
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 destroyed(bool post=true)
the imported surface handle has been destroyed
static const wayland::detail::bitfield< 10, 23 > _default
auto completion, correction and capitalization
static constexpr std::uint32_t proximity_out_since_version
Minimum protocol version required for the proximity_out function.
std::function< void()> & on_destroy()
release the memory for the tablet seat object
void preedit_styling(uint32_t index, uint32_t length, zwp_text_input_v1_preedit_style const &style, bool post=true)
pre-edit styling
std::function< void()> & on_destroy()
destroy the xdg_toplevel
std::function< void(int32_t, int32_t, int32_t, int32_t)> & on_set_cursor_rectangle()
parameters for creating a dmabuf-based wl_buffer
void post_invalid_dimensions(std::string const &msg)
Post error: invalid width or height.
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 hardware_id_wacom_since_version
Minimum protocol version required for the hardware_id_wacom function.
std::function< void(zxdg_exported_v1_t, surface_t)> & on_export()
export a surface
static constexpr std::uint32_t update_since_version
Minimum protocol version required for the update function.
std::function< void(zwp_input_timestamps_v1_t, pointer_t)> & on_get_pointer_timestamps()
subscribe to high-resolution pointer timestamp events
std::function< void(zwp_keyboard_shortcuts_inhibitor_v1_t, surface_t, seat_t)> & on_inhibit_shortcuts()
create a new keyboard shortcuts inhibitor object
static const wayland::detail::bitfield< 10, 23 > sensitive_data
typed text should not be stored
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
std::function< void()> & on_destroy()
destroy the primary selection device manager
std::function< void(int32_t, int32_t)> & on_cursor_position()
set cursor to a new position
void button(uint32_t serial, uint32_t button, zwp_tablet_tool_v1_button_state const &state, bool post=true)
button event
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 hold end
std::function< void(std::string, int32_t, int32_t)> & on_set_surrounding_text()
sets the surrounding text
void close(bool post=true)
surface wants to be closed
static constexpr std::uint32_t id_since_version
Minimum protocol version required for the id function.
void post_role(std::string const &msg)
Post error: given wl_surface has another role.
void distance(uint32_t distance, bool post=true)
distance change event
std::function< void(uint32_t, std::string)> & on_language()
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
static constexpr std::uint32_t description_since_version
Minimum protocol version required for the description function.
static constexpr std::uint32_t strip_since_version
Minimum protocol version required for the strip function.
static constexpr std::uint32_t pressure_since_version
Minimum protocol version required for the pressure function.
std::function< void(uint32_t, uint32_t)> & on_text_direction()
std::function< void(zxdg_positioner_v6_t)> & on_create_positioner()
create a positioner object
static constexpr std::uint32_t invoke_action_since_version
Minimum protocol version required for the invoke_action function.
void proximity_out(bool post=true)
proximity out event
void input_panel_state(uint32_t state, bool post=true)
state of the input panel
void preferred_language(std::string const &language, bool post=true)
static constexpr std::uint32_t begin_since_version
Minimum protocol version required for the begin function.
static const wayland::detail::bitfield< 10, 28 > uppercase
prefer uppercase letters
void frame(uint32_t time, bool post=true)
end of a strip event sequence
static constexpr std::uint32_t unlocked_since_version
Minimum protocol version required for the unlocked function.
void surrounding_text(std::string const &text, uint32_t cursor, uint32_t anchor, bool post=true)
surrounding text event
std::function< void()> & on_destroy()
destroy the grabbed keyboard object
void begin(uint32_t serial, uint32_t time, surface_t const &surface, uint32_t fingers, bool post=true)
multi-finger swipe begin
static const wayland::detail::bitfield< 10, 23 > auto_correction
suggest word corrections
static constexpr std::uint32_t up_since_version
Minimum protocol version required for the up function.
void done(bool post=true)
tablet description events sequence complete
static constexpr std::uint32_t logical_position_since_version
Minimum protocol version required for the logical_position function.
std::function< void(seat_t, uint32_t)> & on_move()
start an interactive move
static constexpr std::uint32_t preedit_string_since_version
Minimum protocol version required for the preedit_string function.
void post_unconfigured_buffer(std::string const &msg)
Post error: xdg_toplevel has a buffer attached before configure.
static const wayland::detail::bitfield< 10, 28 > none
no special behavior
std::function< void(zwp_text_input_v1_content_hint, zwp_text_input_v1_content_purpose)> & on_set_content_type()
set content purpose and hint
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.
static constexpr std::uint32_t distance_since_version
Minimum protocol version required for the distance function.
void destroyed(bool post=true)
the imported surface handle has been destroyed
void configure(zxdg_toplevel_decoration_v1_mode const &mode, bool post=true)
suggest a surface change
static constexpr std::uint32_t up_since_version
Minimum protocol version required for the up function.
void logical_position(int32_t x, int32_t y, bool post=true)
position of the output within the global compositor space
static constexpr std::uint32_t configure_since_version
Minimum protocol version required for the configure function.
std::function< void()> & on_destroy()
delete this object, used or not
void preedit_string(std::string const &text, int32_t cursor_begin, int32_t cursor_end, bool post=true)
pre-edit
void unlocked(bool post=true)
lock deactivation event
std::function< void(zxdg_exported_v2_t, surface_t)> & on_export_toplevel()
export a toplevel surface
std::function< void(zwp_linux_buffer_params_v1_t)> & on_create_params()
create a temporary object for buffer parameters
static constexpr std::uint32_t path_since_version
Minimum protocol version required for the path function.
std::function< void()> & on_destroy()
destroy the input timestamps object
std::function< void(zwp_text_input_v1_t)> & on_create_text_input()
create text input
std::function< void(double, double)> & on_set_cursor_position_hint()
set the pointer cursor position hint
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.
void post_already_constrained(std::string const &msg)
Post error: pointer constraint already requested on that surface.
void end(uint32_t serial, uint32_t time, int32_t cancelled, bool post=true)
multi-finger swipe end
static constexpr std::uint32_t update_since_version
Minimum protocol version required for the update function.
void button(uint32_t time, uint32_t button, zwp_tablet_pad_v2_button_state const &state, bool post=true)
physical button state
void popup_done(bool post=true)
popup interaction is done
std::function< void(zxdg_positioner_v6_anchor)> & on_set_anchor()
set anchor rectangle anchor edges
void post_role(std::string const &msg)
Post error: given wl_surface has another role.
static constexpr std::uint32_t done_since_version
Minimum protocol version required for the done function.
std::function< void()> & on_destroy()
destroy the xdg_imported object
std::function< void(zwp_relative_pointer_v1_t, pointer_t)> & on_get_relative_pointer()
get a relative pointer object
void up(bool post=true)
tablet tool is no longer making contact
void pressure(uint32_t pressure, bool post=true)
pressure change event
std::function< void()> & on_destroy()
destroy the tablet object
static constexpr std::uint32_t popup_done_since_version
Minimum protocol version required for the popup_done function.
std::function< void(std::string)> & on_offer()
add an offered mime type
static constexpr std::uint32_t button_since_version
Minimum protocol version required for the button function.
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 xdg_output_manager object
void tilt(double tilt_x, double tilt_y, bool post=true)
tilt change event
void post_already_inhibited(std::string const &msg)
Post error: the shortcuts are already inhibited for this surface.
std::function< void()> & on_destroy()
release the memory for the tablet manager object
std::function< void()> & on_commit()
commit state
std::function< void(xdg_activation_token_v1_t)> & on_get_activation_token()
requests a token
context object for high-resolution input timestamps
static constexpr std::uint32_t frame_since_version
Minimum protocol version required for the frame function.
static constexpr std::uint32_t frame_since_version
Minimum protocol version required for the frame function.
std::function< void(zxdg_imported_v1_t, std::string)> & on_import()
import 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.
static constexpr std::uint32_t surrounding_text_since_version
Minimum protocol version required for the surrounding_text function.
void post_invalid_fence(std::string const &msg)
Post error: the fence specified by the client could not be imported.
std::function< void(uint32_t, uint32_t, zwp_text_input_v1_preedit_style)> & on_preedit_styling()
pre-edit styling
std::function< void(int32_t, int32_t, int32_t, int32_t)> & on_set_anchor_rect()
set the anchor rectangle within the parent surface
static const wayland::detail::bitfield< 10, 23 > auto_completion
suggest word completions
void text_direction(uint32_t serial, zwp_text_input_v1_text_direction const &direction, bool post=true)
text direction
void post_plane_set(std::string const &msg)
Post error: the plane index was already set.
std::function< void(int32_t, int32_t, int32_t, int32_t)> & on_set_cursor_rectangle()
set cursor position