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