Wayland++  0.2.6
C++ Bindings for Wayland
wayland-client-protocol.hpp
1 #pragma once
2 
3 #include <array>
4 #include <functional>
5 #include <memory>
6 #include <string>
7 #include <vector>
8 
9 #include <wayland-client.hpp>
10 
11 struct wl_registry;
12 struct wl_callback;
13 struct wl_compositor;
14 struct wl_shm_pool;
15 struct wl_shm;
16 struct wl_buffer;
17 struct wl_data_offer;
18 struct wl_data_source;
19 struct wl_data_device;
20 struct wl_data_device_manager;
21 struct wl_shell;
22 struct wl_shell_surface;
23 struct wl_surface;
24 struct wl_seat;
25 struct wl_pointer;
26 struct wl_keyboard;
27 struct wl_touch;
28 struct wl_output;
29 struct wl_region;
30 struct wl_subcompositor;
31 struct wl_subsurface;
32 
33 namespace wayland
34 {
35 class registry_t;
36 class callback_t;
37 class compositor_t;
38 class shm_pool_t;
39 class shm_t;
40 enum class shm_error : uint32_t;
41 enum class shm_format : uint32_t;
42 class buffer_t;
43 class data_offer_t;
44 enum class data_offer_error : uint32_t;
45 class data_source_t;
46 enum class data_source_error : uint32_t;
47 class data_device_t;
48 enum class data_device_error : uint32_t;
49 class data_device_manager_t;
50 struct data_device_manager_dnd_action;
51 class shell_t;
52 enum class shell_error : uint32_t;
53 class shell_surface_t;
54 struct shell_surface_resize;
55 struct shell_surface_transient;
56 enum class shell_surface_fullscreen_method : uint32_t;
57 class surface_t;
58 enum class surface_error : uint32_t;
59 class seat_t;
60 struct seat_capability;
61 class pointer_t;
62 enum class pointer_error : uint32_t;
63 enum class pointer_button_state : uint32_t;
64 enum class pointer_axis : uint32_t;
65 enum class pointer_axis_source : uint32_t;
66 class keyboard_t;
67 enum class keyboard_keymap_format : uint32_t;
68 enum class keyboard_key_state : uint32_t;
69 class touch_t;
70 class output_t;
71 enum class output_subpixel : uint32_t;
72 struct output_transform;
73 struct output_mode;
74 class region_t;
75 class subcompositor_t;
76 enum class subcompositor_error : uint32_t;
77 class subsurface_t;
78 enum class subsurface_error : uint32_t;
79 
80 namespace detail
81 {
82  extern const wl_interface display_interface;
83  extern const wl_interface registry_interface;
84  extern const wl_interface callback_interface;
85  extern const wl_interface compositor_interface;
86  extern const wl_interface shm_pool_interface;
87  extern const wl_interface shm_interface;
88  extern const wl_interface buffer_interface;
89  extern const wl_interface data_offer_interface;
90  extern const wl_interface data_source_interface;
91  extern const wl_interface data_device_interface;
92  extern const wl_interface data_device_manager_interface;
93  extern const wl_interface shell_interface;
94  extern const wl_interface shell_surface_interface;
95  extern const wl_interface surface_interface;
96  extern const wl_interface seat_interface;
97  extern const wl_interface pointer_interface;
98  extern const wl_interface keyboard_interface;
99  extern const wl_interface touch_interface;
100  extern const wl_interface output_interface;
101  extern const wl_interface region_interface;
102  extern const wl_interface subcompositor_interface;
103  extern const wl_interface subsurface_interface;
104 }
105 
130 class registry_t : public proxy_t
131 {
132 private:
133  struct events_t : public detail::events_base_t
134  {
135  std::function<void(uint32_t, std::string, uint32_t)> global;
136  std::function<void(uint32_t)> global_remove;
137  };
138 
139  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
140 
141  registry_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
142 
143 public:
144  registry_t();
145  explicit registry_t(const proxy_t &proxy);
146  registry_t(wl_registry *p, wrapper_type t = wrapper_type::standard);
147 
148  registry_t proxy_create_wrapper();
149 
150  static const std::string interface_name;
151 
152  operator wl_registry*() const;
153 
164  proxy_t bind(uint32_t name, proxy_t &interface, uint32_t version);
165 
168  static constexpr std::uint32_t bind_since_version = 1;
169 
182  std::function<void(uint32_t, std::string, uint32_t)> &on_global();
183 
199  std::function<void(uint32_t)> &on_global_remove();
200 
201 };
202 
203 
210 class callback_t : public proxy_t
211 {
212 private:
213  struct events_t : public detail::events_base_t
214  {
215  std::function<void(uint32_t)> done;
216  };
217 
218  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
219 
220  callback_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
221 
222 public:
223  callback_t();
224  explicit callback_t(const proxy_t &proxy);
225  callback_t(wl_callback *p, wrapper_type t = wrapper_type::standard);
226 
227  callback_t proxy_create_wrapper();
228 
229  static const std::string interface_name;
230 
231  operator wl_callback*() const;
232 
239  std::function<void(uint32_t)> &on_done();
240 
241 };
242 
243 
251 class compositor_t : public proxy_t
252 {
253 private:
254  struct events_t : public detail::events_base_t
255  {
256  };
257 
258  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
259 
260  compositor_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
261 
262 public:
263  compositor_t();
264  explicit compositor_t(const proxy_t &proxy);
265  compositor_t(wl_compositor *p, wrapper_type t = wrapper_type::standard);
266 
267  compositor_t proxy_create_wrapper();
268 
269  static const std::string interface_name;
270 
271  operator wl_compositor*() const;
272 
280 
283  static constexpr std::uint32_t create_surface_since_version = 1;
284 
292 
295  static constexpr std::uint32_t create_region_since_version = 1;
296 
297 };
298 
299 
311 class shm_pool_t : public proxy_t
312 {
313 private:
314  struct events_t : public detail::events_base_t
315  {
316  };
317 
318  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
319 
320  shm_pool_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
321 
322 public:
323  shm_pool_t();
324  explicit shm_pool_t(const proxy_t &proxy);
325  shm_pool_t(wl_shm_pool *p, wrapper_type t = wrapper_type::standard);
326 
327  shm_pool_t proxy_create_wrapper();
328 
329  static const std::string interface_name;
330 
331  operator wl_shm_pool*() const;
332 
354  buffer_t create_buffer(int32_t offset, int32_t width, int32_t height, int32_t stride, shm_format format);
355 
358  static constexpr std::uint32_t create_buffer_since_version = 1;
359 
369  void resize(int32_t size);
370 
373  static constexpr std::uint32_t resize_since_version = 1;
374 
375 };
376 
377 
391 class shm_t : public proxy_t
392 {
393 private:
394  struct events_t : public detail::events_base_t
395  {
396  std::function<void(shm_format)> format;
397  };
398 
399  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
400 
401  shm_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
402 
403 public:
404  shm_t();
405  explicit shm_t(const proxy_t &proxy);
406  shm_t(wl_shm *p, wrapper_type t = wrapper_type::standard);
407 
408  shm_t proxy_create_wrapper();
409 
410  static const std::string interface_name;
411 
412  operator wl_shm*() const;
413 
426  shm_pool_t create_pool(int fd, int32_t size);
427 
430  static constexpr std::uint32_t create_pool_since_version = 1;
431 
440  std::function<void(shm_format)> &on_format();
441 
442 };
443 
449 enum class shm_error : uint32_t
450  {
452  invalid_format = 0,
454  invalid_stride = 1,
456  invalid_fd = 2
457 };
458 
472 enum class shm_format : uint32_t
473  {
475  argb8888 = 0,
477  xrgb8888 = 1,
479  c8 = 0x20203843,
481  rgb332 = 0x38424752,
483  bgr233 = 0x38524742,
485  xrgb4444 = 0x32315258,
487  xbgr4444 = 0x32314258,
489  rgbx4444 = 0x32315852,
491  bgrx4444 = 0x32315842,
493  argb4444 = 0x32315241,
495  abgr4444 = 0x32314241,
497  rgba4444 = 0x32314152,
499  bgra4444 = 0x32314142,
501  xrgb1555 = 0x35315258,
503  xbgr1555 = 0x35314258,
505  rgbx5551 = 0x35315852,
507  bgrx5551 = 0x35315842,
509  argb1555 = 0x35315241,
511  abgr1555 = 0x35314241,
513  rgba5551 = 0x35314152,
515  bgra5551 = 0x35314142,
517  rgb565 = 0x36314752,
519  bgr565 = 0x36314742,
521  rgb888 = 0x34324752,
523  bgr888 = 0x34324742,
525  xbgr8888 = 0x34324258,
527  rgbx8888 = 0x34325852,
529  bgrx8888 = 0x34325842,
531  abgr8888 = 0x34324241,
533  rgba8888 = 0x34324152,
535  bgra8888 = 0x34324142,
537  xrgb2101010 = 0x30335258,
539  xbgr2101010 = 0x30334258,
541  rgbx1010102 = 0x30335852,
543  bgrx1010102 = 0x30335842,
545  argb2101010 = 0x30335241,
547  abgr2101010 = 0x30334241,
549  rgba1010102 = 0x30334152,
551  bgra1010102 = 0x30334142,
553  yuyv = 0x56595559,
555  yvyu = 0x55595659,
557  uyvy = 0x59565955,
559  vyuy = 0x59555956,
561  ayuv = 0x56555941,
563  nv12 = 0x3231564e,
565  nv21 = 0x3132564e,
567  nv16 = 0x3631564e,
569  nv61 = 0x3136564e,
571  yuv410 = 0x39565559,
573  yvu410 = 0x39555659,
575  yuv411 = 0x31315559,
577  yvu411 = 0x31315659,
579  yuv420 = 0x32315559,
581  yvu420 = 0x32315659,
583  yuv422 = 0x36315559,
585  yvu422 = 0x36315659,
587  yuv444 = 0x34325559,
589  yvu444 = 0x34325659
590 };
591 
592 
602 class buffer_t : public proxy_t
603 {
604 private:
605  struct events_t : public detail::events_base_t
606  {
607  std::function<void()> release;
608  };
609 
610  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
611 
612  buffer_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
613 
614 public:
615  buffer_t();
616  explicit buffer_t(const proxy_t &proxy);
617  buffer_t(wl_buffer *p, wrapper_type t = wrapper_type::standard);
618 
619  buffer_t proxy_create_wrapper();
620 
621  static const std::string interface_name;
622 
623  operator wl_buffer*() const;
624 
641  std::function<void()> &on_release();
642 
643 };
644 
645 
656 class data_offer_t : public proxy_t
657 {
658 private:
659  struct events_t : public detail::events_base_t
660  {
661  std::function<void(std::string)> offer;
662  std::function<void(data_device_manager_dnd_action)> source_actions;
663  std::function<void(data_device_manager_dnd_action)> action;
664  };
665 
666  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
667 
668  data_offer_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
669 
670 public:
671  data_offer_t();
672  explicit data_offer_t(const proxy_t &proxy);
673  data_offer_t(wl_data_offer *p, wrapper_type t = wrapper_type::standard);
674 
675  data_offer_t proxy_create_wrapper();
676 
677  static const std::string interface_name;
678 
679  operator wl_data_offer*() const;
680 
701  void accept(uint32_t serial, std::string mime_type);
702 
705  static constexpr std::uint32_t accept_since_version = 1;
706 
728  void receive(std::string mime_type, int fd);
729 
732  static constexpr std::uint32_t receive_since_version = 1;
733 
752  void finish();
753 
756  static constexpr std::uint32_t finish_since_version = 3;
757 
761  bool can_finish() const;
762 
801 
804  static constexpr std::uint32_t set_actions_since_version = 3;
805 
809  bool can_set_actions() const;
810 
818  std::function<void(std::string)> &on_offer();
819 
828  std::function<void(data_device_manager_dnd_action)> &on_source_actions();
829 
870  std::function<void(data_device_manager_dnd_action)> &on_action();
871 
872 };
873 
877 enum class data_offer_error : uint32_t
878  {
880  invalid_finish = 0,
882  invalid_action_mask = 1,
884  invalid_action = 2,
886  invalid_offer = 3
887 };
888 
889 
898 class data_source_t : public proxy_t
899 {
900 private:
901  struct events_t : public detail::events_base_t
902  {
903  std::function<void(std::string)> target;
904  std::function<void(std::string, int)> send;
905  std::function<void()> cancelled;
906  std::function<void()> dnd_drop_performed;
907  std::function<void()> dnd_finished;
908  std::function<void(data_device_manager_dnd_action)> action;
909  };
910 
911  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
912 
913  data_source_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
914 
915 public:
916  data_source_t();
917  explicit data_source_t(const proxy_t &proxy);
918  data_source_t(wl_data_source *p, wrapper_type t = wrapper_type::standard);
919 
920  data_source_t proxy_create_wrapper();
921 
922  static const std::string interface_name;
923 
924  operator wl_data_source*() const;
925 
934  void offer(std::string mime_type);
935 
938  static constexpr std::uint32_t offer_since_version = 1;
939 
959 
962  static constexpr std::uint32_t set_actions_since_version = 3;
963 
967  bool can_set_actions() const;
968 
978  std::function<void(std::string)> &on_target();
979 
989  std::function<void(std::string, int)> &on_send();
990 
1015  std::function<void()> &on_cancelled();
1016 
1030  std::function<void()> &on_dnd_drop_performed();
1031 
1042  std::function<void()> &on_dnd_finished();
1043 
1074  std::function<void(data_device_manager_dnd_action)> &on_action();
1075 
1076 };
1077 
1081 enum class data_source_error : uint32_t
1082  {
1084  invalid_action_mask = 0,
1086  invalid_source = 1
1087 };
1088 
1089 
1099 class data_device_t : public proxy_t
1100 {
1101 private:
1102  struct events_t : public detail::events_base_t
1103  {
1104  std::function<void(data_offer_t)> data_offer;
1105  std::function<void(uint32_t, surface_t, double, double, data_offer_t)> enter;
1106  std::function<void()> leave;
1107  std::function<void(uint32_t, double, double)> motion;
1108  std::function<void()> drop;
1109  std::function<void(data_offer_t)> selection;
1110  };
1111 
1112  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
1113 
1114  data_device_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
1115 
1116 public:
1117  data_device_t();
1118  explicit data_device_t(const proxy_t &proxy);
1119  data_device_t(wl_data_device *p, wrapper_type t = wrapper_type::standard);
1120 
1121  data_device_t proxy_create_wrapper();
1122 
1123  static const std::string interface_name;
1124 
1125  operator wl_data_device*() const;
1126 
1162  void start_drag(data_source_t source, surface_t origin, surface_t icon, uint32_t serial);
1163 
1166  static constexpr std::uint32_t start_drag_since_version = 1;
1167 
1178  void set_selection(data_source_t source, uint32_t serial);
1179 
1182  static constexpr std::uint32_t set_selection_since_version = 1;
1183 
1189  void release();
1190 
1193  static constexpr std::uint32_t release_since_version = 2;
1194 
1198  bool can_release() const;
1199 
1212  std::function<void(data_offer_t)> &on_data_offer();
1213 
1227  std::function<void(uint32_t, surface_t, double, double, data_offer_t)> &on_enter();
1228 
1236  std::function<void()> &on_leave();
1237 
1249  std::function<void(uint32_t, double, double)> &on_motion();
1250 
1268  std::function<void()> &on_drop();
1269 
1286  std::function<void(data_offer_t)> &on_selection();
1287 
1288 };
1289 
1293 enum class data_device_error : uint32_t
1294  {
1296  role = 0
1297 };
1298 
1299 
1315 {
1316 private:
1317  struct events_t : public detail::events_base_t
1318  {
1319  };
1320 
1321  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
1322 
1323  data_device_manager_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
1324 
1325 public:
1327  explicit data_device_manager_t(const proxy_t &proxy);
1328  data_device_manager_t(wl_data_device_manager *p, wrapper_type t = wrapper_type::standard);
1329 
1330  data_device_manager_t proxy_create_wrapper();
1331 
1332  static const std::string interface_name;
1333 
1334  operator wl_data_device_manager*() const;
1335 
1343 
1346  static constexpr std::uint32_t create_data_source_since_version = 1;
1347 
1356 
1359  static constexpr std::uint32_t get_data_device_since_version = 1;
1360 
1361 };
1362 
1390 struct data_device_manager_dnd_action : public detail::bitfield<3, 6>
1391 {
1392  data_device_manager_dnd_action(const detail::bitfield<3, 6> &b)
1393  : detail::bitfield<3, 6>(b) {}
1394  data_device_manager_dnd_action(const uint32_t value)
1395  : detail::bitfield<3, 6>(value) {}
1397  static const detail::bitfield<3, 6> none;
1399  static const detail::bitfield<3, 6> copy;
1401  static const detail::bitfield<3, 6> move;
1403  static const detail::bitfield<3, 6> ask;
1404 };
1405 
1406 
1419 class shell_t : public proxy_t
1420 {
1421 private:
1422  struct events_t : public detail::events_base_t
1423  {
1424  };
1425 
1426  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
1427 
1428  shell_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
1429 
1430 public:
1431  shell_t();
1432  explicit shell_t(const proxy_t &proxy);
1433  shell_t(wl_shell *p, wrapper_type t = wrapper_type::standard);
1434 
1435  shell_t proxy_create_wrapper();
1436 
1437  static const std::string interface_name;
1438 
1439  operator wl_shell*() const;
1440 
1453 
1456  static constexpr std::uint32_t get_shell_surface_since_version = 1;
1457 
1458 };
1459 
1463 enum class shell_error : uint32_t
1464  {
1466  role = 0
1467 };
1468 
1469 
1485 class shell_surface_t : public proxy_t
1486 {
1487 private:
1488  struct events_t : public detail::events_base_t
1489  {
1490  std::function<void(uint32_t)> ping;
1491  std::function<void(shell_surface_resize, int32_t, int32_t)> configure;
1492  std::function<void()> popup_done;
1493  };
1494 
1495  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
1496 
1497  shell_surface_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
1498 
1499 public:
1500  shell_surface_t();
1501  explicit shell_surface_t(const proxy_t &proxy);
1502  shell_surface_t(wl_shell_surface *p, wrapper_type t = wrapper_type::standard);
1503 
1504  shell_surface_t proxy_create_wrapper();
1505 
1506  static const std::string interface_name;
1507 
1508  operator wl_shell_surface*() const;
1509 
1517  void pong(uint32_t serial);
1518 
1521  static constexpr std::uint32_t pong_since_version = 1;
1522 
1534  void move(seat_t seat, uint32_t serial);
1535 
1538  static constexpr std::uint32_t move_since_version = 1;
1539 
1552  void resize(seat_t seat, uint32_t serial, shell_surface_resize edges);
1553 
1556  static constexpr std::uint32_t resize_since_version = 1;
1557 
1565  void set_toplevel();
1566 
1569  static constexpr std::uint32_t set_toplevel_since_version = 1;
1570 
1586  void set_transient(surface_t parent, int32_t x, int32_t y, shell_surface_transient flags);
1587 
1590  static constexpr std::uint32_t set_transient_since_version = 1;
1591 
1632  void set_fullscreen(shell_surface_fullscreen_method method, uint32_t framerate, output_t output);
1633 
1636  static constexpr std::uint32_t set_fullscreen_since_version = 1;
1637 
1667  void set_popup(seat_t seat, uint32_t serial, surface_t parent, int32_t x, int32_t y, shell_surface_transient flags);
1668 
1671  static constexpr std::uint32_t set_popup_since_version = 1;
1672 
1696  void set_maximized(output_t output);
1697 
1700  static constexpr std::uint32_t set_maximized_since_version = 1;
1701 
1714  void set_title(std::string title);
1715 
1718  static constexpr std::uint32_t set_title_since_version = 1;
1719 
1731  void set_class(std::string class_);
1732 
1735  static constexpr std::uint32_t set_class_since_version = 1;
1736 
1744  std::function<void(uint32_t)> &on_ping();
1745 
1770  std::function<void(shell_surface_resize, int32_t, int32_t)> &on_configure();
1771 
1779  std::function<void()> &on_popup_done();
1780 
1781 };
1782 
1791 struct shell_surface_resize : public detail::bitfield<4, 8>
1792 {
1793  shell_surface_resize(const detail::bitfield<4, 8> &b)
1794  : detail::bitfield<4, 8>(b) {}
1795  shell_surface_resize(const uint32_t value)
1796  : detail::bitfield<4, 8>(value) {}
1798  static const detail::bitfield<4, 8> none;
1800  static const detail::bitfield<4, 8> top;
1802  static const detail::bitfield<4, 8> bottom;
1804  static const detail::bitfield<4, 8> left;
1806  static const detail::bitfield<4, 8> top_left;
1808  static const detail::bitfield<4, 8> bottom_left;
1810  static const detail::bitfield<4, 8> right;
1812  static const detail::bitfield<4, 8> top_right;
1814  static const detail::bitfield<4, 8> bottom_right;
1815 };
1816 
1823 struct shell_surface_transient : public detail::bitfield<1, 9>
1824 {
1825  shell_surface_transient(const detail::bitfield<1, 9> &b)
1826  : detail::bitfield<1, 9>(b) {}
1827  shell_surface_transient(const uint32_t value)
1828  : detail::bitfield<1, 9>(value) {}
1830  static const detail::bitfield<1, 9> inactive;
1831 };
1832 
1840 enum class shell_surface_fullscreen_method : uint32_t
1841  {
1843  _default = 0,
1845  scale = 1,
1847  driver = 2,
1849  fill = 3
1850 };
1851 
1852 
1898 class surface_t : public proxy_t
1899 {
1900 private:
1901  struct events_t : public detail::events_base_t
1902  {
1903  std::function<void(output_t)> enter;
1904  std::function<void(output_t)> leave;
1905  };
1906 
1907  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
1908 
1909  surface_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
1910 
1911 public:
1912  surface_t();
1913  explicit surface_t(const proxy_t &proxy);
1914  surface_t(wl_surface *p, wrapper_type t = wrapper_type::standard);
1915 
1916  surface_t proxy_create_wrapper();
1917 
1918  static const std::string interface_name;
1919 
1920  operator wl_surface*() const;
1921 
1974  void attach(buffer_t buffer, int32_t x, int32_t y);
1975 
1978  static constexpr std::uint32_t attach_since_version = 1;
1979 
2009  void damage(int32_t x, int32_t y, int32_t width, int32_t height);
2010 
2013  static constexpr std::uint32_t damage_since_version = 1;
2014 
2052  callback_t frame();
2053 
2056  static constexpr std::uint32_t frame_since_version = 1;
2057 
2087  void set_opaque_region(region_t region);
2088 
2091  static constexpr std::uint32_t set_opaque_region_since_version = 1;
2092 
2120  void set_input_region(region_t region);
2121 
2124  static constexpr std::uint32_t set_input_region_since_version = 1;
2125 
2147  void commit();
2148 
2151  static constexpr std::uint32_t commit_since_version = 1;
2152 
2187  void set_buffer_transform(output_transform transform);
2188 
2191  static constexpr std::uint32_t set_buffer_transform_since_version = 2;
2192 
2196  bool can_set_buffer_transform() const;
2197 
2226  void set_buffer_scale(int32_t scale);
2227 
2230  static constexpr std::uint32_t set_buffer_scale_since_version = 3;
2231 
2235  bool can_set_buffer_scale() const;
2236 
2277  void damage_buffer(int32_t x, int32_t y, int32_t width, int32_t height);
2278 
2281  static constexpr std::uint32_t damage_buffer_since_version = 4;
2282 
2286  bool can_damage_buffer() const;
2287 
2298  std::function<void(output_t)> &on_enter();
2299 
2308  std::function<void(output_t)> &on_leave();
2309 
2310 };
2311 
2317 enum class surface_error : uint32_t
2318  {
2320  invalid_scale = 0,
2322  invalid_transform = 1
2323 };
2324 
2325 
2334 class seat_t : public proxy_t
2335 {
2336 private:
2337  struct events_t : public detail::events_base_t
2338  {
2339  std::function<void(seat_capability)> capabilities;
2340  std::function<void(std::string)> name;
2341  };
2342 
2343  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
2344 
2345  seat_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
2346 
2347 public:
2348  seat_t();
2349  explicit seat_t(const proxy_t &proxy);
2350  seat_t(wl_seat *p, wrapper_type t = wrapper_type::standard);
2351 
2352  seat_t proxy_create_wrapper();
2353 
2354  static const std::string interface_name;
2355 
2356  operator wl_seat*() const;
2357 
2371 
2374  static constexpr std::uint32_t get_pointer_since_version = 1;
2375 
2389 
2392  static constexpr std::uint32_t get_keyboard_since_version = 1;
2393 
2406  touch_t get_touch();
2407 
2410  static constexpr std::uint32_t get_touch_since_version = 1;
2411 
2418  void release();
2419 
2422  static constexpr std::uint32_t release_since_version = 5;
2423 
2427  bool can_release() const;
2428 
2458  std::function<void(seat_capability)> &on_capabilities();
2459 
2468  std::function<void(std::string)> &on_name();
2469 
2470 };
2471 
2478 struct seat_capability : public detail::bitfield<3, 12>
2479 {
2480  seat_capability(const detail::bitfield<3, 12> &b)
2481  : detail::bitfield<3, 12>(b) {}
2482  seat_capability(const uint32_t value)
2483  : detail::bitfield<3, 12>(value) {}
2485  static const detail::bitfield<3, 12> pointer;
2487  static const detail::bitfield<3, 12> keyboard;
2489  static const detail::bitfield<3, 12> touch;
2490 };
2491 
2492 
2505 class pointer_t : public proxy_t
2506 {
2507 private:
2508  struct events_t : public detail::events_base_t
2509  {
2510  std::function<void(uint32_t, surface_t, double, double)> enter;
2511  std::function<void(uint32_t, surface_t)> leave;
2512  std::function<void(uint32_t, double, double)> motion;
2513  std::function<void(uint32_t, uint32_t, uint32_t, pointer_button_state)> button;
2514  std::function<void(uint32_t, pointer_axis, double)> axis;
2515  std::function<void()> frame;
2516  std::function<void(pointer_axis_source)> axis_source;
2517  std::function<void(uint32_t, pointer_axis)> axis_stop;
2518  std::function<void(pointer_axis, int32_t)> axis_discrete;
2519  };
2520 
2521  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
2522 
2523  pointer_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
2524 
2525 public:
2526  pointer_t();
2527  explicit pointer_t(const proxy_t &proxy);
2528  pointer_t(wl_pointer *p, wrapper_type t = wrapper_type::standard);
2529 
2530  pointer_t proxy_create_wrapper();
2531 
2532  static const std::string interface_name;
2533 
2534  operator wl_pointer*() const;
2535 
2575  void set_cursor(uint32_t serial, surface_t surface, int32_t hotspot_x, int32_t hotspot_y);
2576 
2579  static constexpr std::uint32_t set_cursor_since_version = 1;
2580 
2590  void release();
2591 
2594  static constexpr std::uint32_t release_since_version = 3;
2595 
2599  bool can_release() const;
2600 
2615  std::function<void(uint32_t, surface_t, double, double)> &on_enter();
2616 
2628  std::function<void(uint32_t, surface_t)> &on_leave();
2629 
2640  std::function<void(uint32_t, double, double)> &on_motion();
2641 
2664  std::function<void(uint32_t, uint32_t, uint32_t, pointer_button_state)> &on_button();
2665 
2689  std::function<void(uint32_t, pointer_axis, double)> &on_axis();
2690 
2729  std::function<void()> &on_frame();
2730 
2761  std::function<void(pointer_axis_source)> &on_axis_source();
2762 
2783  std::function<void(uint32_t, pointer_axis)> &on_axis_stop();
2784 
2817  std::function<void(pointer_axis, int32_t)> &on_axis_discrete();
2818 
2819 };
2820 
2824 enum class pointer_error : uint32_t
2825  {
2827  role = 0
2828 };
2829 
2836 enum class pointer_button_state : uint32_t
2837  {
2839  released = 0,
2841  pressed = 1
2842 };
2843 
2849 enum class pointer_axis : uint32_t
2850  {
2852  vertical_scroll = 0,
2854  horizontal_scroll = 1
2855 };
2856 
2877 enum class pointer_axis_source : uint32_t
2878  {
2880  wheel = 0,
2882  finger = 1,
2884  continuous = 2,
2886  wheel_tilt = 3
2887 };
2888 
2889 
2896 class keyboard_t : public proxy_t
2897 {
2898 private:
2899  struct events_t : public detail::events_base_t
2900  {
2901  std::function<void(keyboard_keymap_format, int, uint32_t)> keymap;
2902  std::function<void(uint32_t, surface_t, array_t)> enter;
2903  std::function<void(uint32_t, surface_t)> leave;
2904  std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> key;
2905  std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> modifiers;
2906  std::function<void(int32_t, int32_t)> repeat_info;
2907  };
2908 
2909  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
2910 
2911  keyboard_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
2912 
2913 public:
2914  keyboard_t();
2915  explicit keyboard_t(const proxy_t &proxy);
2916  keyboard_t(wl_keyboard *p, wrapper_type t = wrapper_type::standard);
2917 
2918  keyboard_t proxy_create_wrapper();
2919 
2920  static const std::string interface_name;
2921 
2922  operator wl_keyboard*() const;
2923 
2927  void release();
2928 
2931  static constexpr std::uint32_t release_since_version = 3;
2932 
2936  bool can_release() const;
2937 
2950  std::function<void(keyboard_keymap_format, int, uint32_t)> &on_keymap();
2951 
2961  std::function<void(uint32_t, surface_t, array_t)> &on_enter();
2962 
2974  std::function<void(uint32_t, surface_t)> &on_leave();
2975 
2987  std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> &on_key();
2988 
3000  std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> &on_modifiers();
3001 
3020  std::function<void(int32_t, int32_t)> &on_repeat_info();
3021 
3022 };
3023 
3030 enum class keyboard_keymap_format : uint32_t
3031  {
3033  no_keymap = 0,
3035  xkb_v1 = 1
3036 };
3037 
3043 enum class keyboard_key_state : uint32_t
3044  {
3046  released = 0,
3048  pressed = 1
3049 };
3050 
3051 
3064 class touch_t : public proxy_t
3065 {
3066 private:
3067  struct events_t : public detail::events_base_t
3068  {
3069  std::function<void(uint32_t, uint32_t, surface_t, int32_t, double, double)> down;
3070  std::function<void(uint32_t, uint32_t, int32_t)> up;
3071  std::function<void(uint32_t, int32_t, double, double)> motion;
3072  std::function<void()> frame;
3073  std::function<void()> cancel;
3074  std::function<void(int32_t, double, double)> shape;
3075  std::function<void(int32_t, double)> orientation;
3076  };
3077 
3078  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
3079 
3080  touch_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3081 
3082 public:
3083  touch_t();
3084  explicit touch_t(const proxy_t &proxy);
3085  touch_t(wl_touch *p, wrapper_type t = wrapper_type::standard);
3086 
3087  touch_t proxy_create_wrapper();
3088 
3089  static const std::string interface_name;
3090 
3091  operator wl_touch*() const;
3092 
3096  void release();
3097 
3100  static constexpr std::uint32_t release_since_version = 3;
3101 
3105  bool can_release() const;
3106 
3121  std::function<void(uint32_t, uint32_t, surface_t, int32_t, double, double)> &on_down();
3122 
3133  std::function<void(uint32_t, uint32_t, int32_t)> &on_up();
3134 
3144  std::function<void(uint32_t, int32_t, double, double)> &on_motion();
3145 
3158  std::function<void()> &on_frame();
3159 
3170  std::function<void()> &on_cancel();
3171 
3204  std::function<void(int32_t, double, double)> &on_shape();
3205 
3235  std::function<void(int32_t, double)> &on_orientation();
3236 
3237 };
3238 
3239 
3250 class output_t : public proxy_t
3251 {
3252 private:
3253  struct events_t : public detail::events_base_t
3254  {
3255  std::function<void(int32_t, int32_t, int32_t, int32_t, output_subpixel, std::string, std::string, output_transform)> geometry;
3256  std::function<void(output_mode, int32_t, int32_t, int32_t)> mode;
3257  std::function<void()> done;
3258  std::function<void(int32_t)> scale;
3259  };
3260 
3261  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
3262 
3263  output_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3264 
3265 public:
3266  output_t();
3267  explicit output_t(const proxy_t &proxy);
3268  output_t(wl_output *p, wrapper_type t = wrapper_type::standard);
3269 
3270  output_t proxy_create_wrapper();
3271 
3272  static const std::string interface_name;
3273 
3274  operator wl_output*() const;
3275 
3282  void release();
3283 
3286  static constexpr std::uint32_t release_since_version = 3;
3287 
3291  bool can_release() const;
3292 
3318  std::function<void(int32_t, int32_t, int32_t, int32_t, output_subpixel, std::string, std::string, output_transform)> &on_geometry();
3319 
3354  std::function<void(output_mode, int32_t, int32_t, int32_t)> &on_mode();
3355 
3365  std::function<void()> &on_done();
3366 
3390  std::function<void(int32_t)> &on_scale();
3391 
3392 };
3393 
3400 enum class output_subpixel : uint32_t
3401  {
3403  unknown = 0,
3405  none = 1,
3407  horizontal_rgb = 2,
3409  horizontal_bgr = 3,
3411  vertical_rgb = 4,
3413  vertical_bgr = 5
3414 };
3415 
3431 struct output_transform : public detail::bitfield<3, 20>
3432 {
3433  output_transform(const detail::bitfield<3, 20> &b)
3434  : detail::bitfield<3, 20>(b) {}
3435  output_transform(const uint32_t value)
3436  : detail::bitfield<3, 20>(value) {}
3438  static const detail::bitfield<3, 20> normal;
3440  static const detail::bitfield<3, 20> _90;
3442  static const detail::bitfield<3, 20> _180;
3444  static const detail::bitfield<3, 20> _270;
3446  static const detail::bitfield<3, 20> flipped;
3448  static const detail::bitfield<3, 20> flipped_90;
3450  static const detail::bitfield<3, 20> flipped_180;
3452  static const detail::bitfield<3, 20> flipped_270;
3453 };
3454 
3461 struct output_mode : public detail::bitfield<2, 21>
3462 {
3463  output_mode(const detail::bitfield<2, 21> &b)
3464  : detail::bitfield<2, 21>(b) {}
3465  output_mode(const uint32_t value)
3466  : detail::bitfield<2, 21>(value) {}
3468  static const detail::bitfield<2, 21> current;
3470  static const detail::bitfield<2, 21> preferred;
3471 };
3472 
3473 
3482 class region_t : public proxy_t
3483 {
3484 private:
3485  struct events_t : public detail::events_base_t
3486  {
3487  };
3488 
3489  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
3490 
3491  region_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3492 
3493 public:
3494  region_t();
3495  explicit region_t(const proxy_t &proxy);
3496  region_t(wl_region *p, wrapper_type t = wrapper_type::standard);
3497 
3498  region_t proxy_create_wrapper();
3499 
3500  static const std::string interface_name;
3501 
3502  operator wl_region*() const;
3503 
3513  void add(int32_t x, int32_t y, int32_t width, int32_t height);
3514 
3517  static constexpr std::uint32_t add_since_version = 1;
3518 
3528  void subtract(int32_t x, int32_t y, int32_t width, int32_t height);
3529 
3532  static constexpr std::uint32_t subtract_since_version = 1;
3533 
3534 };
3535 
3536 
3560 class subcompositor_t : public proxy_t
3561 {
3562 private:
3563  struct events_t : public detail::events_base_t
3564  {
3565  };
3566 
3567  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
3568 
3569  subcompositor_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3570 
3571 public:
3572  subcompositor_t();
3573  explicit subcompositor_t(const proxy_t &proxy);
3574  subcompositor_t(wl_subcompositor *p, wrapper_type t = wrapper_type::standard);
3575 
3576  subcompositor_t proxy_create_wrapper();
3577 
3578  static const std::string interface_name;
3579 
3580  operator wl_subcompositor*() const;
3581 
3605 
3608  static constexpr std::uint32_t get_subsurface_since_version = 1;
3609 
3610 };
3611 
3615 enum class subcompositor_error : uint32_t
3616  {
3618  bad_surface = 0
3619 };
3620 
3621 
3675 class subsurface_t : public proxy_t
3676 {
3677 private:
3678  struct events_t : public detail::events_base_t
3679  {
3680  };
3681 
3682  static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
3683 
3684  subsurface_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3685 
3686 public:
3687  subsurface_t();
3688  explicit subsurface_t(const proxy_t &proxy);
3689  subsurface_t(wl_subsurface *p, wrapper_type t = wrapper_type::standard);
3690 
3691  subsurface_t proxy_create_wrapper();
3692 
3693  static const std::string interface_name;
3694 
3695  operator wl_subsurface*() const;
3696 
3719  void set_position(int32_t x, int32_t y);
3720 
3723  static constexpr std::uint32_t set_position_since_version = 1;
3724 
3745  void place_above(surface_t sibling);
3746 
3749  static constexpr std::uint32_t place_above_since_version = 1;
3750 
3758  void place_below(surface_t sibling);
3759 
3762  static constexpr std::uint32_t place_below_since_version = 1;
3763 
3781  void set_sync();
3782 
3785  static constexpr std::uint32_t set_sync_since_version = 1;
3786 
3810  void set_desync();
3811 
3814  static constexpr std::uint32_t set_desync_since_version = 1;
3815 
3816 };
3817 
3821 enum class subsurface_error : uint32_t
3822  {
3824  bad_surface = 0
3825 };
3826 
3827 
3828 
3829 }
wayland::seat_t::get_touch
touch_t get_touch()
return touch object
Definition: wayland-client-protocol.cpp:2768
wayland::shell_surface_transient
details of transient behaviour
Definition: wayland-client-protocol.hpp:1823
wayland::shell_surface_resize::top
static const detail::bitfield< 4, 8 > top
top edge
Definition: wayland-client-protocol.hpp:1800
wayland::data_device_manager_dnd_action::ask
static const detail::bitfield< 3, 6 > ask
ask action
Definition: wayland-client-protocol.hpp:1403
wayland::surface_t::set_buffer_transform
void set_buffer_transform(output_transform transform)
sets the buffer transformation
Definition: wayland-client-protocol.cpp:2654
wayland::subcompositor_t
sub-surface compositing
Definition: wayland-client-protocol.hpp:3560
wayland::surface_t::frame
callback_t frame()
request a frame throttling hint
Definition: wayland-client-protocol.cpp:2633
wayland::subsurface_t::set_desync
void set_desync()
set sub-surface to desynchronized mode
Definition: wayland-client-protocol.cpp:3512
wayland::pointer_t::release
void release()
release the pointer object
Definition: wayland-client-protocol.cpp:2866
wayland::subsurface_t::set_sync_since_version
static constexpr std::uint32_t set_sync_since_version
Minimum protocol version required for the set_sync function.
Definition: wayland-client-protocol.hpp:3785
wayland::shm_t::on_format
std::function< void(shm_format)> & on_format()
pixel format description
Definition: wayland-client-protocol.cpp:1846
wayland::shell_surface_t::set_popup
void set_popup(seat_t seat, uint32_t serial, surface_t parent, int32_t x, int32_t y, shell_surface_transient flags)
make the surface a popup surface
Definition: wayland-client-protocol.cpp:2506
wayland::data_device_t::start_drag_since_version
static constexpr std::uint32_t start_drag_since_version
Minimum protocol version required for the start_drag function.
Definition: wayland-client-protocol.hpp:1166
wayland::pointer_t::on_button
std::function< void(uint32_t, uint32_t, uint32_t, pointer_button_state)> & on_button()
pointer button event
Definition: wayland-client-protocol.cpp:2890
wayland::data_source_t::on_dnd_drop_performed
std::function< void()> & on_dnd_drop_performed()
the drag-and-drop operation physically finished
Definition: wayland-client-protocol.cpp:2126
wayland::proxy_t::wrapper_type::standard
wayland::output_transform::flipped_90
static const detail::bitfield< 3, 20 > flipped_90
flip and rotate 90 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3448
wayland::data_device_manager_dnd_action::move
static const detail::bitfield< 3, 6 > move
move action
Definition: wayland-client-protocol.hpp:1401
wayland::shell_surface_resize::left
static const detail::bitfield< 4, 8 > left
left edge
Definition: wayland-client-protocol.hpp:1804
wayland::surface_t::damage_buffer_since_version
static constexpr std::uint32_t damage_buffer_since_version
Minimum protocol version required for the damage_buffer function.
Definition: wayland-client-protocol.hpp:2281
wayland::output_t::release
void release()
release the output object
Definition: wayland-client-protocol.cpp:3249
wayland::pointer_t::on_enter
std::function< void(uint32_t, surface_t, double, double)> & on_enter()
enter event
Definition: wayland-client-protocol.cpp:2875
wayland::shm_t::create_pool
shm_pool_t create_pool(int fd, int32_t size)
create a shm pool
Definition: wayland-client-protocol.cpp:1840
wayland::data_device_manager_dnd_action
drag and drop actions
Definition: wayland-client-protocol.hpp:1390
wayland::data_offer_t::can_finish
bool can_finish() const
Check whether the finish function is available with the currently bound version of the protocol.
Definition: wayland-client-protocol.cpp:1998
wayland::data_device_t::start_drag
void start_drag(data_source_t source, surface_t origin, surface_t icon, uint32_t serial)
start drag-and-drop operation
Definition: wayland-client-protocol.cpp:2218
wayland::keyboard_t::on_enter
std::function< void(uint32_t, surface_t, array_t)> & on_enter()
enter event
Definition: wayland-client-protocol.cpp:3023
wayland::subsurface_t::set_desync_since_version
static constexpr std::uint32_t set_desync_since_version
Minimum protocol version required for the set_desync function.
Definition: wayland-client-protocol.hpp:3814
wayland::data_device_t::can_release
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
Definition: wayland-client-protocol.cpp:2232
wayland::shell_surface_resize::top_left
static const detail::bitfield< 4, 8 > top_left
top and left edges
Definition: wayland-client-protocol.hpp:1806
wayland::shell_t
create desktop-style surfaces
Definition: wayland-client-protocol.hpp:1419
wayland::touch_t::on_shape
std::function< void(int32_t, double, double)> & on_shape()
update shape of touch point
Definition: wayland-client-protocol.cpp:3160
wayland::seat_t::release
void release()
release the seat object
Definition: wayland-client-protocol.cpp:2774
wayland::data_device_manager_t::get_data_device
data_device_t get_data_device(seat_t seat)
create a new data device
Definition: wayland-client-protocol.cpp:2350
wayland::data_offer_t::on_offer
std::function< void(std::string)> & on_offer()
advertise offered mime type
Definition: wayland-client-protocol.cpp:2012
wayland::shell_surface_t::pong
void pong(uint32_t serial)
respond to a ping event
Definition: wayland-client-protocol.cpp:2476
wayland::shell_surface_resize::top_right
static const detail::bitfield< 4, 8 > top_right
top and right edges
Definition: wayland-client-protocol.hpp:1812
wayland::pointer_t::can_release
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
Definition: wayland-client-protocol.cpp:2870
wayland::output_t::on_mode
std::function< void(output_mode, int32_t, int32_t, int32_t)> & on_mode()
advertise available modes for the output
Definition: wayland-client-protocol.cpp:3263
wayland::subsurface_t::set_sync
void set_sync()
set sub-surface to synchronized mode
Definition: wayland-client-protocol.cpp:3507
wayland::data_device_t::on_selection
std::function< void(data_offer_t)> & on_selection()
advertise new selection
Definition: wayland-client-protocol.cpp:2262
wayland::data_device_manager_t::get_data_device_since_version
static constexpr std::uint32_t get_data_device_since_version
Minimum protocol version required for the get_data_device function.
Definition: wayland-client-protocol.hpp:1359
wayland::shell_surface_t::set_transient_since_version
static constexpr std::uint32_t set_transient_since_version
Minimum protocol version required for the set_transient function.
Definition: wayland-client-protocol.hpp:1590
wayland::pointer_t::set_cursor
void set_cursor(uint32_t serial, surface_t surface, int32_t hotspot_x, int32_t hotspot_y)
set the pointer surface
Definition: wayland-client-protocol.cpp:2861
wayland::data_device_manager_dnd_action::none
static const detail::bitfield< 3, 6 > none
no action
Definition: wayland-client-protocol.hpp:1397
wayland::touch_t::on_motion
std::function< void(uint32_t, int32_t, double, double)> & on_motion()
update of touch point coordinates
Definition: wayland-client-protocol.cpp:3145
wayland::shell_surface_transient::inactive
static const detail::bitfield< 1, 9 > inactive
do not set keyboard focus
Definition: wayland-client-protocol.hpp:1830
wayland::subsurface_t::place_below_since_version
static constexpr std::uint32_t place_below_since_version
Minimum protocol version required for the place_below function.
Definition: wayland-client-protocol.hpp:3762
wayland::output_transform::flipped_180
static const detail::bitfield< 3, 20 > flipped_180
flip and rotate 180 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3450
wayland::output_mode
mode information
Definition: wayland-client-protocol.hpp:3461
wayland::shell_surface_resize::bottom
static const detail::bitfield< 4, 8 > bottom
bottom edge
Definition: wayland-client-protocol.hpp:1802
wayland::surface_t::can_set_buffer_scale
bool can_set_buffer_scale() const
Check whether the set_buffer_scale function is available with the currently bound version of the prot...
Definition: wayland-client-protocol.cpp:2667
wayland::data_device_manager_t::create_data_source_since_version
static constexpr std::uint32_t create_data_source_since_version
Minimum protocol version required for the create_data_source function.
Definition: wayland-client-protocol.hpp:1346
wayland::seat_t::on_name
std::function< void(std::string)> & on_name()
unique identifier for this seat
Definition: wayland-client-protocol.cpp:2788
wayland::surface_t::frame_since_version
static constexpr std::uint32_t frame_since_version
Minimum protocol version required for the frame function.
Definition: wayland-client-protocol.hpp:2056
wayland::callback_t::on_done
std::function< void(uint32_t)> & on_done()
done event
Definition: wayland-client-protocol.cpp:1641
wayland::subsurface_t::set_position_since_version
static constexpr std::uint32_t set_position_since_version
Minimum protocol version required for the set_position function.
Definition: wayland-client-protocol.hpp:3723
wayland::keyboard_t::on_leave
std::function< void(uint32_t, surface_t)> & on_leave()
leave event
Definition: wayland-client-protocol.cpp:3028
wayland::region_t::add_since_version
static constexpr std::uint32_t add_since_version
Minimum protocol version required for the add function.
Definition: wayland-client-protocol.hpp:3517
wayland::shell_surface_t::on_popup_done
std::function< void()> & on_popup_done()
popup interaction is done
Definition: wayland-client-protocol.cpp:2536
wayland::buffer_t
content for a wl_surface
Definition: wayland-client-protocol.hpp:602
wayland::data_source_t::can_set_actions
bool can_set_actions() const
Check whether the set_actions function is available with the currently bound version of the protocol.
Definition: wayland-client-protocol.cpp:2106
wayland::touch_t
touchscreen input device
Definition: wayland-client-protocol.hpp:3064
wayland::keyboard_t::can_release
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
Definition: wayland-client-protocol.cpp:3013
wayland::subsurface_t::place_below
void place_below(surface_t sibling)
restack the sub-surface
Definition: wayland-client-protocol.cpp:3502
wayland::data_device_manager_t
data transfer interface
Definition: wayland-client-protocol.hpp:1314
wayland::data_source_t
offer to transfer data
Definition: wayland-client-protocol.hpp:898
wayland::shm_t
shared memory support
Definition: wayland-client-protocol.hpp:391
wayland::surface_t::set_buffer_scale
void set_buffer_scale(int32_t scale)
sets the buffer scaling factor
Definition: wayland-client-protocol.cpp:2663
wayland::data_offer_t::receive
void receive(std::string mime_type, int fd)
request that the data is transferred
Definition: wayland-client-protocol.cpp:1989
wayland::shell_surface_t::set_popup_since_version
static constexpr std::uint32_t set_popup_since_version
Minimum protocol version required for the set_popup function.
Definition: wayland-client-protocol.hpp:1671
wayland::shell_surface_resize::right
static const detail::bitfield< 4, 8 > right
right edge
Definition: wayland-client-protocol.hpp:1810
wayland::shm_pool_t::create_buffer
buffer_t create_buffer(int32_t offset, int32_t width, int32_t height, int32_t stride, shm_format format)
create a buffer from the pool
Definition: wayland-client-protocol.cpp:1775
wayland::shell_surface_t::set_transient
void set_transient(surface_t parent, int32_t x, int32_t y, shell_surface_transient flags)
make the surface a transient surface
Definition: wayland-client-protocol.cpp:2496
wayland::surface_t::commit_since_version
static constexpr std::uint32_t commit_since_version
Minimum protocol version required for the commit function.
Definition: wayland-client-protocol.hpp:2151
wayland::shell_surface_t::set_title_since_version
static constexpr std::uint32_t set_title_since_version
Minimum protocol version required for the set_title function.
Definition: wayland-client-protocol.hpp:1718
wayland::shell_surface_t::set_toplevel_since_version
static constexpr std::uint32_t set_toplevel_since_version
Minimum protocol version required for the set_toplevel function.
Definition: wayland-client-protocol.hpp:1569
wayland::output_t::release_since_version
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
Definition: wayland-client-protocol.hpp:3286
wayland::shell_surface_t::set_class_since_version
static constexpr std::uint32_t set_class_since_version
Minimum protocol version required for the set_class function.
Definition: wayland-client-protocol.hpp:1735
wayland::surface_t::commit
void commit()
commit pending surface state
Definition: wayland-client-protocol.cpp:2649
wayland::keyboard_t::on_key
std::function< void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> & on_key()
key event
Definition: wayland-client-protocol.cpp:3033
wayland::output_t::can_release
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
Definition: wayland-client-protocol.cpp:3253
wayland::registry_t::bind_since_version
static constexpr std::uint32_t bind_since_version
Minimum protocol version required for the bind function.
Definition: wayland-client-protocol.hpp:168
wayland::shell_surface_t::set_title
void set_title(std::string title)
set surface title
Definition: wayland-client-protocol.cpp:2516
wayland::data_source_t::offer
void offer(std::string mime_type)
add an offered mime type
Definition: wayland-client-protocol.cpp:2097
wayland::output_mode::preferred
static const detail::bitfield< 2, 21 > preferred
indicates this is the preferred mode
Definition: wayland-client-protocol.hpp:3470
wayland::keyboard_t::release_since_version
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
Definition: wayland-client-protocol.hpp:2931
wayland::data_device_t
data transfer device
Definition: wayland-client-protocol.hpp:1099
wayland::shell_surface_t::resize_since_version
static constexpr std::uint32_t resize_since_version
Minimum protocol version required for the resize function.
Definition: wayland-client-protocol.hpp:1556
wayland::touch_t::on_frame
std::function< void()> & on_frame()
end of touch frame event
Definition: wayland-client-protocol.cpp:3150
wayland::subsurface_t::set_position
void set_position(int32_t x, int32_t y)
reposition the sub-surface
Definition: wayland-client-protocol.cpp:3492
wayland::buffer_t::on_release
std::function< void()> & on_release()
compositor releases buffer
Definition: wayland-client-protocol.cpp:1916
wayland::shell_surface_t::set_fullscreen
void set_fullscreen(shell_surface_fullscreen_method method, uint32_t framerate, output_t output)
make the surface a fullscreen surface
Definition: wayland-client-protocol.cpp:2501
wayland::data_offer_t::on_source_actions
std::function< void(data_device_manager_dnd_action)> & on_source_actions()
notify the source-side available actions
Definition: wayland-client-protocol.cpp:2017
wayland::surface_t::set_opaque_region_since_version
static constexpr std::uint32_t set_opaque_region_since_version
Minimum protocol version required for the set_opaque_region function.
Definition: wayland-client-protocol.hpp:2091
wayland::surface_t::attach
void attach(buffer_t buffer, int32_t x, int32_t y)
set the surface contents
Definition: wayland-client-protocol.cpp:2623
wayland::data_source_t::on_dnd_finished
std::function< void()> & on_dnd_finished()
the drag-and-drop operation concluded
Definition: wayland-client-protocol.cpp:2131
wayland::proxy_t::wrapper_type
wrapper_type
Definition: wayland-client.hpp:105
wayland::surface_t
an onscreen surface
Definition: wayland-client-protocol.hpp:1898
wayland::output_transform::flipped
static const detail::bitfield< 3, 20 > flipped
180 degree flip around a vertical axis
Definition: wayland-client-protocol.hpp:3446
wayland::data_offer_t::can_set_actions
bool can_set_actions() const
Check whether the set_actions function is available with the currently bound version of the protocol.
Definition: wayland-client-protocol.cpp:2007
wayland::seat_capability::pointer
static const detail::bitfield< 3, 12 > pointer
the seat has pointer devices
Definition: wayland-client-protocol.hpp:2485
wayland::shell_t::get_shell_surface_since_version
static constexpr std::uint32_t get_shell_surface_since_version
Minimum protocol version required for the get_shell_surface function.
Definition: wayland-client-protocol.hpp:1456
wayland::seat_capability::touch
static const detail::bitfield< 3, 12 > touch
the seat has touch devices
Definition: wayland-client-protocol.hpp:2489
wayland::data_source_t::on_target
std::function< void(std::string)> & on_target()
a target accepts an offered mime type
Definition: wayland-client-protocol.cpp:2111
wayland::surface_t::can_damage_buffer
bool can_damage_buffer() const
Check whether the damage_buffer function is available with the currently bound version of the protoco...
Definition: wayland-client-protocol.cpp:2676
wayland::shell_surface_t::on_configure
std::function< void(shell_surface_resize, int32_t, int32_t)> & on_configure()
suggest resize
Definition: wayland-client-protocol.cpp:2531
wayland::output_t::on_scale
std::function< void(int32_t)> & on_scale()
output scaling properties
Definition: wayland-client-protocol.cpp:3273
wayland::seat_t::get_touch_since_version
static constexpr std::uint32_t get_touch_since_version
Minimum protocol version required for the get_touch function.
Definition: wayland-client-protocol.hpp:2410
wayland::shell_surface_t::pong_since_version
static constexpr std::uint32_t pong_since_version
Minimum protocol version required for the pong function.
Definition: wayland-client-protocol.hpp:1521
wayland::touch_t::on_cancel
std::function< void()> & on_cancel()
touch session cancelled
Definition: wayland-client-protocol.cpp:3155
wayland::data_source_t::set_actions_since_version
static constexpr std::uint32_t set_actions_since_version
Minimum protocol version required for the set_actions function.
Definition: wayland-client-protocol.hpp:962
wayland::data_source_t::on_cancelled
std::function< void()> & on_cancelled()
selection was cancelled
Definition: wayland-client-protocol.cpp:2121
wayland::shell_surface_resize
edge values for resizing
Definition: wayland-client-protocol.hpp:1791
wayland::output_transform::flipped_270
static const detail::bitfield< 3, 20 > flipped_270
flip and rotate 270 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3452
wayland::proxy_t
Represents a protocol object on the client side.
Definition: wayland-client.hpp:98
wayland::output_t::on_done
std::function< void()> & on_done()
sent all information about output
Definition: wayland-client-protocol.cpp:3268
wayland::surface_t::attach_since_version
static constexpr std::uint32_t attach_since_version
Minimum protocol version required for the attach function.
Definition: wayland-client-protocol.hpp:1978
wayland::data_device_t::release_since_version
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
Definition: wayland-client-protocol.hpp:1193
wayland::compositor_t::create_region_since_version
static constexpr std::uint32_t create_region_since_version
Minimum protocol version required for the create_region function.
Definition: wayland-client-protocol.hpp:295
wayland::data_device_t::on_leave
std::function< void()> & on_leave()
end drag-and-drop session
Definition: wayland-client-protocol.cpp:2247
wayland::surface_t::damage
void damage(int32_t x, int32_t y, int32_t width, int32_t height)
mark part of the surface damaged
Definition: wayland-client-protocol.cpp:2628
wayland::surface_t::on_enter
std::function< void(output_t)> & on_enter()
surface enters an output
Definition: wayland-client-protocol.cpp:2681
wayland::region_t::subtract
void subtract(int32_t x, int32_t y, int32_t width, int32_t height)
subtract rectangle from region
Definition: wayland-client-protocol.cpp:3368
wayland::surface_t::set_buffer_scale_since_version
static constexpr std::uint32_t set_buffer_scale_since_version
Minimum protocol version required for the set_buffer_scale function.
Definition: wayland-client-protocol.hpp:2230
wayland::data_device_t::set_selection_since_version
static constexpr std::uint32_t set_selection_since_version
Minimum protocol version required for the set_selection function.
Definition: wayland-client-protocol.hpp:1182
wayland::pointer_t::release_since_version
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
Definition: wayland-client-protocol.hpp:2594
wayland::shm_pool_t::resize
void resize(int32_t size)
change the size of the pool mapping
Definition: wayland-client-protocol.cpp:1781
wayland::surface_t::set_buffer_transform_since_version
static constexpr std::uint32_t set_buffer_transform_since_version
Minimum protocol version required for the set_buffer_transform function.
Definition: wayland-client-protocol.hpp:2191
wayland::data_device_t::set_selection
void set_selection(data_source_t source, uint32_t serial)
copy data to the selection
Definition: wayland-client-protocol.cpp:2223
wayland::keyboard_t::on_repeat_info
std::function< void(int32_t, int32_t)> & on_repeat_info()
repeat rate and delay
Definition: wayland-client-protocol.cpp:3043
wayland::data_device_manager_t::create_data_source
data_source_t create_data_source()
create a new data source
Definition: wayland-client-protocol.cpp:2344
wayland::shm_pool_t::create_buffer_since_version
static constexpr std::uint32_t create_buffer_since_version
Minimum protocol version required for the create_buffer function.
Definition: wayland-client-protocol.hpp:358
wayland::seat_capability
seat capability bitmask
Definition: wayland-client-protocol.hpp:2478
wayland::shell_surface_resize::bottom_left
static const detail::bitfield< 4, 8 > bottom_left
bottom and left edges
Definition: wayland-client-protocol.hpp:1808
wayland::surface_t::damage_buffer
void damage_buffer(int32_t x, int32_t y, int32_t width, int32_t height)
mark part of the surface damaged using buffer coordinates
Definition: wayland-client-protocol.cpp:2672
wayland::data_offer_t::set_actions
void set_actions(data_device_manager_dnd_action dnd_actions, data_device_manager_dnd_action preferred_action)
set the available/preferred drag-and-drop actions
Definition: wayland-client-protocol.cpp:2003
wayland::shell_surface_resize::none
static const detail::bitfield< 4, 8 > none
no edge
Definition: wayland-client-protocol.hpp:1798
wayland::pointer_t::set_cursor_since_version
static constexpr std::uint32_t set_cursor_since_version
Minimum protocol version required for the set_cursor function.
Definition: wayland-client-protocol.hpp:2579
wayland::seat_t::get_keyboard_since_version
static constexpr std::uint32_t get_keyboard_since_version
Minimum protocol version required for the get_keyboard function.
Definition: wayland-client-protocol.hpp:2392
wayland::pointer_t::on_axis
std::function< void(uint32_t, pointer_axis, double)> & on_axis()
axis event
Definition: wayland-client-protocol.cpp:2895
wayland::subcompositor_t::get_subsurface_since_version
static constexpr std::uint32_t get_subsurface_since_version
Minimum protocol version required for the get_subsurface function.
Definition: wayland-client-protocol.hpp:3608
wayland::shell_surface_t::move_since_version
static constexpr std::uint32_t move_since_version
Minimum protocol version required for the move function.
Definition: wayland-client-protocol.hpp:1538
wayland::subcompositor_t::get_subsurface
subsurface_t get_subsurface(surface_t surface, surface_t parent)
give a surface the role sub-surface
Definition: wayland-client-protocol.cpp:3429
wayland::shm_pool_t::resize_since_version
static constexpr std::uint32_t resize_since_version
Minimum protocol version required for the resize function.
Definition: wayland-client-protocol.hpp:373
wayland::pointer_t::on_frame
std::function< void()> & on_frame()
end of a pointer event sequence
Definition: wayland-client-protocol.cpp:2900
wayland::seat_t::can_release
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
Definition: wayland-client-protocol.cpp:2778
wayland::data_device_manager_dnd_action::copy
static const detail::bitfield< 3, 6 > copy
copy action
Definition: wayland-client-protocol.hpp:1399
wayland::surface_t::damage_since_version
static constexpr std::uint32_t damage_since_version
Minimum protocol version required for the damage function.
Definition: wayland-client-protocol.hpp:2013
wayland::shell_surface_t
desktop-style metadata interface
Definition: wayland-client-protocol.hpp:1485
wayland::pointer_t::on_axis_stop
std::function< void(uint32_t, pointer_axis)> & on_axis_stop()
axis stop event
Definition: wayland-client-protocol.cpp:2910
wayland::region_t::subtract_since_version
static constexpr std::uint32_t subtract_since_version
Minimum protocol version required for the subtract function.
Definition: wayland-client-protocol.hpp:3532
wayland::data_device_t::release
void release()
destroy data device
Definition: wayland-client-protocol.cpp:2228
wayland::shm_t::create_pool_since_version
static constexpr std::uint32_t create_pool_since_version
Minimum protocol version required for the create_pool function.
Definition: wayland-client-protocol.hpp:430
wayland::subsurface_t::place_above_since_version
static constexpr std::uint32_t place_above_since_version
Minimum protocol version required for the place_above function.
Definition: wayland-client-protocol.hpp:3749
wayland::surface_t::on_leave
std::function< void(output_t)> & on_leave()
surface leaves an output
Definition: wayland-client-protocol.cpp:2686
wayland::shell_surface_t::move
void move(seat_t seat, uint32_t serial)
start an interactive move
Definition: wayland-client-protocol.cpp:2481
wayland::data_source_t::on_send
std::function< void(std::string, int)> & on_send()
send the data
Definition: wayland-client-protocol.cpp:2116
wayland::data_offer_t::set_actions_since_version
static constexpr std::uint32_t set_actions_since_version
Minimum protocol version required for the set_actions function.
Definition: wayland-client-protocol.hpp:804
wayland::shell_surface_t::set_class
void set_class(std::string class_)
set surface class
Definition: wayland-client-protocol.cpp:2521
wayland::data_device_t::on_drop
std::function< void()> & on_drop()
end drag-and-drop session successfully
Definition: wayland-client-protocol.cpp:2257
wayland::region_t
region interface
Definition: wayland-client-protocol.hpp:3482
wayland::shm_pool_t
a shared memory pool
Definition: wayland-client-protocol.hpp:311
wayland::output_transform::_180
static const detail::bitfield< 3, 20 > _180
180 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3442
wayland::output_mode::current
static const detail::bitfield< 2, 21 > current
indicates this is the current mode
Definition: wayland-client-protocol.hpp:3468
wayland::registry_t
global registry object
Definition: wayland-client-protocol.hpp:130
wayland::shell_surface_t::set_fullscreen_since_version
static constexpr std::uint32_t set_fullscreen_since_version
Minimum protocol version required for the set_fullscreen function.
Definition: wayland-client-protocol.hpp:1636
wayland::registry_t::bind
proxy_t bind(uint32_t name, proxy_t &interface, uint32_t version)
bind an object to the display
Definition: wayland-client-protocol.cpp:1560
wayland::seat_t
group of input devices
Definition: wayland-client-protocol.hpp:2334
wayland::shell_surface_t::resize
void resize(seat_t seat, uint32_t serial, shell_surface_resize edges)
start an interactive resize
Definition: wayland-client-protocol.cpp:2486
wayland::compositor_t::create_surface
surface_t create_surface()
create new surface
Definition: wayland-client-protocol.cpp:1707
wayland::shell_t::get_shell_surface
shell_surface_t get_shell_surface(surface_t surface)
create a shell surface from a surface
Definition: wayland-client-protocol.cpp:2415
wayland::output_transform
transform from framebuffer to output
Definition: wayland-client-protocol.hpp:3431
wayland::seat_t::get_pointer_since_version
static constexpr std::uint32_t get_pointer_since_version
Minimum protocol version required for the get_pointer function.
Definition: wayland-client-protocol.hpp:2374
wayland::shell_surface_t::on_ping
std::function< void(uint32_t)> & on_ping()
ping client
Definition: wayland-client-protocol.cpp:2526
wayland::data_device_t::on_enter
std::function< void(uint32_t, surface_t, double, double, data_offer_t)> & on_enter()
initiate drag-and-drop session
Definition: wayland-client-protocol.cpp:2242
wayland::registry_t::on_global_remove
std::function< void(uint32_t)> & on_global_remove()
announce removal of global object
Definition: wayland-client-protocol.cpp:1572
wayland::pointer_t::on_leave
std::function< void(uint32_t, surface_t)> & on_leave()
leave event
Definition: wayland-client-protocol.cpp:2880
wayland::data_offer_t
offer to transfer data
Definition: wayland-client-protocol.hpp:656
wayland::data_offer_t::receive_since_version
static constexpr std::uint32_t receive_since_version
Minimum protocol version required for the receive function.
Definition: wayland-client-protocol.hpp:732
wayland::touch_t::can_release
bool can_release() const
Check whether the release function is available with the currently bound version of the protocol.
Definition: wayland-client-protocol.cpp:3130
wayland::data_offer_t::on_action
std::function< void(data_device_manager_dnd_action)> & on_action()
notify the selected action
Definition: wayland-client-protocol.cpp:2022
wayland::output_transform::_270
static const detail::bitfield< 3, 20 > _270
270 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3444
wayland::keyboard_t::on_modifiers
std::function< void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> & on_modifiers()
modifier and group state
Definition: wayland-client-protocol.cpp:3038
wayland::seat_t::get_pointer
pointer_t get_pointer()
return pointer object
Definition: wayland-client-protocol.cpp:2756
wayland::compositor_t
the compositor singleton
Definition: wayland-client-protocol.hpp:251
wayland::pointer_t::on_motion
std::function< void(uint32_t, double, double)> & on_motion()
pointer motion event
Definition: wayland-client-protocol.cpp:2885
wayland::pointer_t::on_axis_source
std::function< void(pointer_axis_source)> & on_axis_source()
axis source event
Definition: wayland-client-protocol.cpp:2905
wayland::data_offer_t::accept_since_version
static constexpr std::uint32_t accept_since_version
Minimum protocol version required for the accept function.
Definition: wayland-client-protocol.hpp:705
wayland::shell_surface_t::set_maximized
void set_maximized(output_t output)
make the surface a maximized surface
Definition: wayland-client-protocol.cpp:2511
wayland::surface_t::set_input_region_since_version
static constexpr std::uint32_t set_input_region_since_version
Minimum protocol version required for the set_input_region function.
Definition: wayland-client-protocol.hpp:2124
wayland::output_transform::_90
static const detail::bitfield< 3, 20 > _90
90 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3440
wayland::touch_t::release_since_version
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
Definition: wayland-client-protocol.hpp:3100
wayland::data_offer_t::accept
void accept(uint32_t serial, std::string mime_type)
accept one of the offered mime types
Definition: wayland-client-protocol.cpp:1984
wayland::surface_t::set_input_region
void set_input_region(region_t region)
set input region
Definition: wayland-client-protocol.cpp:2644
wayland::data_source_t::set_actions
void set_actions(data_device_manager_dnd_action dnd_actions)
set the available drag-and-drop actions
Definition: wayland-client-protocol.cpp:2102
wayland::seat_t::get_keyboard
keyboard_t get_keyboard()
return keyboard object
Definition: wayland-client-protocol.cpp:2762
wayland::compositor_t::create_surface_since_version
static constexpr std::uint32_t create_surface_since_version
Minimum protocol version required for the create_surface function.
Definition: wayland-client-protocol.hpp:283
wayland::data_offer_t::finish_since_version
static constexpr std::uint32_t finish_since_version
Minimum protocol version required for the finish function.
Definition: wayland-client-protocol.hpp:756
wayland::callback_t
callback object
Definition: wayland-client-protocol.hpp:210
wayland::shell_surface_resize::bottom_right
static const detail::bitfield< 4, 8 > bottom_right
bottom and right edges
Definition: wayland-client-protocol.hpp:1814
wayland::shell_surface_t::set_toplevel
void set_toplevel()
make the surface a toplevel surface
Definition: wayland-client-protocol.cpp:2491
wayland::registry_t::on_global
std::function< void(uint32_t, std::string, uint32_t)> & on_global()
announce global object
Definition: wayland-client-protocol.cpp:1567
wayland::keyboard_t::release
void release()
release the keyboard object
Definition: wayland-client-protocol.cpp:3009
wayland::seat_t::release_since_version
static constexpr std::uint32_t release_since_version
Minimum protocol version required for the release function.
Definition: wayland-client-protocol.hpp:2422
wayland::subsurface_t::place_above
void place_above(surface_t sibling)
restack the sub-surface
Definition: wayland-client-protocol.cpp:3497
wayland::compositor_t::create_region
region_t create_region()
create new region
Definition: wayland-client-protocol.cpp:1713
wayland::touch_t::release
void release()
release the touch object
Definition: wayland-client-protocol.cpp:3126
wayland::seat_t::on_capabilities
std::function< void(seat_capability)> & on_capabilities()
seat capabilities changed
Definition: wayland-client-protocol.cpp:2783
wayland::data_source_t::offer_since_version
static constexpr std::uint32_t offer_since_version
Minimum protocol version required for the offer function.
Definition: wayland-client-protocol.hpp:938
wayland::touch_t::on_down
std::function< void(uint32_t, uint32_t, surface_t, int32_t, double, double)> & on_down()
touch down event and beginning of a touch sequence
Definition: wayland-client-protocol.cpp:3135
wayland::seat_capability::keyboard
static const detail::bitfield< 3, 12 > keyboard
the seat has one or more keyboards
Definition: wayland-client-protocol.hpp:2487
wayland::region_t::add
void add(int32_t x, int32_t y, int32_t width, int32_t height)
add rectangle to region
Definition: wayland-client-protocol.cpp:3363
wayland::pointer_t::on_axis_discrete
std::function< void(pointer_axis, int32_t)> & on_axis_discrete()
axis click event
Definition: wayland-client-protocol.cpp:2915
wayland::keyboard_t
keyboard input device
Definition: wayland-client-protocol.hpp:2896
wayland::surface_t::can_set_buffer_transform
bool can_set_buffer_transform() const
Check whether the set_buffer_transform function is available with the currently bound version of the ...
Definition: wayland-client-protocol.cpp:2658
wayland::output_transform::normal
static const detail::bitfield< 3, 20 > normal
no transform
Definition: wayland-client-protocol.hpp:3438
wayland::data_source_t::on_action
std::function< void(data_device_manager_dnd_action)> & on_action()
notify the selected action
Definition: wayland-client-protocol.cpp:2136
wayland::shell_surface_t::set_maximized_since_version
static constexpr std::uint32_t set_maximized_since_version
Minimum protocol version required for the set_maximized function.
Definition: wayland-client-protocol.hpp:1700
wayland::touch_t::on_orientation
std::function< void(int32_t, double)> & on_orientation()
update orientation of touch point
Definition: wayland-client-protocol.cpp:3165
wayland::data_offer_t::finish
void finish()
the offer will no longer be used
Definition: wayland-client-protocol.cpp:1994
wayland-client.hpp
wayland::output_t
compositor output region
Definition: wayland-client-protocol.hpp:3250
wayland::subsurface_t
sub-surface interface to a wl_surface
Definition: wayland-client-protocol.hpp:3675
wayland::keyboard_t::on_keymap
std::function< void(keyboard_keymap_format, int, uint32_t)> & on_keymap()
keyboard mapping
Definition: wayland-client-protocol.cpp:3018
wayland::data_device_t::on_data_offer
std::function< void(data_offer_t)> & on_data_offer()
introduce a new wl_data_offer
Definition: wayland-client-protocol.cpp:2237
wayland::data_device_t::on_motion
std::function< void(uint32_t, double, double)> & on_motion()
drag-and-drop session motion
Definition: wayland-client-protocol.cpp:2252
wayland::surface_t::set_opaque_region
void set_opaque_region(region_t region)
set opaque region
Definition: wayland-client-protocol.cpp:2639
wayland::output_t::on_geometry
std::function< void(int32_t, int32_t, int32_t, int32_t, output_subpixel, std::string, std::string, output_transform)> & on_geometry()
properties of the output
Definition: wayland-client-protocol.cpp:3258
wayland::pointer_t
pointer input device
Definition: wayland-client-protocol.hpp:2505
wayland::touch_t::on_up
std::function< void(uint32_t, uint32_t, int32_t)> & on_up()
end of a touch event sequence
Definition: wayland-client-protocol.cpp:3140