Wayland++  0.2.8
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 enum class seat_error : uint32_t;
62 class pointer_t;
63 enum class pointer_error : uint32_t;
64 enum class pointer_button_state : uint32_t;
65 enum class pointer_axis : uint32_t;
66 enum class pointer_axis_source : uint32_t;
67 class keyboard_t;
68 enum class keyboard_keymap_format : uint32_t;
69 enum class keyboard_key_state : uint32_t;
70 class touch_t;
71 class output_t;
72 enum class output_subpixel : uint32_t;
73 struct output_transform;
74 struct output_mode;
75 class region_t;
76 class subcompositor_t;
77 enum class subcompositor_error : uint32_t;
78 class subsurface_t;
79 enum class subsurface_error : uint32_t;
80 
81 namespace detail
82 {
83  extern const wl_interface display_interface;
84  extern const wl_interface registry_interface;
85  extern const wl_interface callback_interface;
86  extern const wl_interface compositor_interface;
87  extern const wl_interface shm_pool_interface;
88  extern const wl_interface shm_interface;
89  extern const wl_interface buffer_interface;
90  extern const wl_interface data_offer_interface;
91  extern const wl_interface data_source_interface;
92  extern const wl_interface data_device_interface;
93  extern const wl_interface data_device_manager_interface;
94  extern const wl_interface shell_interface;
95  extern const wl_interface shell_surface_interface;
96  extern const wl_interface surface_interface;
97  extern const wl_interface seat_interface;
98  extern const wl_interface pointer_interface;
99  extern const wl_interface keyboard_interface;
100  extern const wl_interface touch_interface;
101  extern const wl_interface output_interface;
102  extern const wl_interface region_interface;
103  extern const wl_interface subcompositor_interface;
104  extern const wl_interface subsurface_interface;
105 }
106 
131 class registry_t : public proxy_t
132 {
133 private:
134  struct events_t : public detail::events_base_t
135  {
136  std::function<void(uint32_t, std::string, uint32_t)> global;
137  std::function<void(uint32_t)> global_remove;
138  };
139 
140  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
141 
142  registry_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
143 
144 public:
145  registry_t();
146  explicit registry_t(const proxy_t &proxy);
147  registry_t(wl_registry *p, wrapper_type t = wrapper_type::standard);
148 
149  registry_t proxy_create_wrapper();
150 
151  static const std::string interface_name;
152 
153  operator wl_registry*() const;
154 
165  proxy_t bind(uint32_t name, proxy_t &interface, uint32_t version);
166 
169  static constexpr std::uint32_t bind_since_version = 1;
170 
183  std::function<void(uint32_t, std::string, uint32_t)> &on_global();
184 
200  std::function<void(uint32_t)> &on_global_remove();
201 
202 };
203 
204 
211 class callback_t : public proxy_t
212 {
213 private:
214  struct events_t : public detail::events_base_t
215  {
216  std::function<void(uint32_t)> done;
217  };
218 
219  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
220 
221  callback_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
222 
223 public:
224  callback_t();
225  explicit callback_t(const proxy_t &proxy);
226  callback_t(wl_callback *p, wrapper_type t = wrapper_type::standard);
227 
228  callback_t proxy_create_wrapper();
229 
230  static const std::string interface_name;
231 
232  operator wl_callback*() const;
233 
240  std::function<void(uint32_t)> &on_done();
241 
242 };
243 
244 
252 class compositor_t : public proxy_t
253 {
254 private:
255  struct events_t : public detail::events_base_t
256  {
257  };
258 
259  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
260 
261  compositor_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
262 
263 public:
264  compositor_t();
265  explicit compositor_t(const proxy_t &proxy);
266  compositor_t(wl_compositor *p, wrapper_type t = wrapper_type::standard);
267 
268  compositor_t proxy_create_wrapper();
269 
270  static const std::string interface_name;
271 
272  operator wl_compositor*() const;
273 
281 
284  static constexpr std::uint32_t create_surface_since_version = 1;
285 
293 
296  static constexpr std::uint32_t create_region_since_version = 1;
297 
298 };
299 
300 
312 class shm_pool_t : public proxy_t
313 {
314 private:
315  struct events_t : public detail::events_base_t
316  {
317  };
318 
319  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
320 
321  shm_pool_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
322 
323 public:
324  shm_pool_t();
325  explicit shm_pool_t(const proxy_t &proxy);
326  shm_pool_t(wl_shm_pool *p, wrapper_type t = wrapper_type::standard);
327 
328  shm_pool_t proxy_create_wrapper();
329 
330  static const std::string interface_name;
331 
332  operator wl_shm_pool*() const;
333 
355  buffer_t create_buffer(int32_t offset, int32_t width, int32_t height, int32_t stride, shm_format const& format);
356 
359  static constexpr std::uint32_t create_buffer_since_version = 1;
360 
370  void resize(int32_t size);
371 
374  static constexpr std::uint32_t resize_since_version = 1;
375 
376 };
377 
378 
392 class shm_t : public proxy_t
393 {
394 private:
395  struct events_t : public detail::events_base_t
396  {
397  std::function<void(shm_format)> format;
398  };
399 
400  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
401 
402  shm_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
403 
404 public:
405  shm_t();
406  explicit shm_t(const proxy_t &proxy);
407  shm_t(wl_shm *p, wrapper_type t = wrapper_type::standard);
408 
409  shm_t proxy_create_wrapper();
410 
411  static const std::string interface_name;
412 
413  operator wl_shm*() const;
414 
427  shm_pool_t create_pool(int fd, int32_t size);
428 
431  static constexpr std::uint32_t create_pool_since_version = 1;
432 
441  std::function<void(shm_format)> &on_format();
442 
443 };
444 
450 enum class shm_error : uint32_t
451  {
453  invalid_format = 0,
455  invalid_stride = 1,
457  invalid_fd = 2
458 };
459 
473 enum class shm_format : uint32_t
474  {
476  argb8888 = 0,
478  xrgb8888 = 1,
480  c8 = 0x20203843,
482  rgb332 = 0x38424752,
484  bgr233 = 0x38524742,
486  xrgb4444 = 0x32315258,
488  xbgr4444 = 0x32314258,
490  rgbx4444 = 0x32315852,
492  bgrx4444 = 0x32315842,
494  argb4444 = 0x32315241,
496  abgr4444 = 0x32314241,
498  rgba4444 = 0x32314152,
500  bgra4444 = 0x32314142,
502  xrgb1555 = 0x35315258,
504  xbgr1555 = 0x35314258,
506  rgbx5551 = 0x35315852,
508  bgrx5551 = 0x35315842,
510  argb1555 = 0x35315241,
512  abgr1555 = 0x35314241,
514  rgba5551 = 0x35314152,
516  bgra5551 = 0x35314142,
518  rgb565 = 0x36314752,
520  bgr565 = 0x36314742,
522  rgb888 = 0x34324752,
524  bgr888 = 0x34324742,
526  xbgr8888 = 0x34324258,
528  rgbx8888 = 0x34325852,
530  bgrx8888 = 0x34325842,
532  abgr8888 = 0x34324241,
534  rgba8888 = 0x34324152,
536  bgra8888 = 0x34324142,
538  xrgb2101010 = 0x30335258,
540  xbgr2101010 = 0x30334258,
542  rgbx1010102 = 0x30335852,
544  bgrx1010102 = 0x30335842,
546  argb2101010 = 0x30335241,
548  abgr2101010 = 0x30334241,
550  rgba1010102 = 0x30334152,
552  bgra1010102 = 0x30334142,
554  yuyv = 0x56595559,
556  yvyu = 0x55595659,
558  uyvy = 0x59565955,
560  vyuy = 0x59555956,
562  ayuv = 0x56555941,
564  nv12 = 0x3231564e,
566  nv21 = 0x3132564e,
568  nv16 = 0x3631564e,
570  nv61 = 0x3136564e,
572  yuv410 = 0x39565559,
574  yvu410 = 0x39555659,
576  yuv411 = 0x31315559,
578  yvu411 = 0x31315659,
580  yuv420 = 0x32315559,
582  yvu420 = 0x32315659,
584  yuv422 = 0x36315559,
586  yvu422 = 0x36315659,
588  yuv444 = 0x34325559,
590  yvu444 = 0x34325659,
592  r8 = 0x20203852,
594  r16 = 0x20363152,
596  rg88 = 0x38384752,
598  gr88 = 0x38385247,
600  rg1616 = 0x32334752,
602  gr1616 = 0x32335247,
604  xrgb16161616f = 0x48345258,
606  xbgr16161616f = 0x48344258,
608  argb16161616f = 0x48345241,
610  abgr16161616f = 0x48344241,
612  xyuv8888 = 0x56555958,
614  vuy888 = 0x34325556,
616  vuy101010 = 0x30335556,
618  y210 = 0x30313259,
620  y212 = 0x32313259,
622  y216 = 0x36313259,
624  y410 = 0x30313459,
626  y412 = 0x32313459,
628  y416 = 0x36313459,
630  xvyu2101010 = 0x30335658,
632  xvyu12_16161616 = 0x36335658,
634  xvyu16161616 = 0x38345658,
636  y0l0 = 0x304c3059,
638  x0l0 = 0x304c3058,
640  y0l2 = 0x324c3059,
642  x0l2 = 0x324c3058,
643  yuv420_8bit = 0x38305559,
644  yuv420_10bit = 0x30315559,
645  xrgb8888_a8 = 0x38415258,
646  xbgr8888_a8 = 0x38414258,
647  rgbx8888_a8 = 0x38415852,
648  bgrx8888_a8 = 0x38415842,
649  rgb888_a8 = 0x38413852,
650  bgr888_a8 = 0x38413842,
651  rgb565_a8 = 0x38413552,
652  bgr565_a8 = 0x38413542,
654  nv24 = 0x3432564e,
656  nv42 = 0x3234564e,
658  p210 = 0x30313250,
660  p010 = 0x30313050,
662  p012 = 0x32313050,
664  p016 = 0x36313050
665 };
666 
667 
677 class buffer_t : public proxy_t
678 {
679 private:
680  struct events_t : public detail::events_base_t
681  {
682  std::function<void()> release;
683  };
684 
685  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
686 
687  buffer_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
688 
689 public:
690  buffer_t();
691  explicit buffer_t(const proxy_t &proxy);
692  buffer_t(wl_buffer *p, wrapper_type t = wrapper_type::standard);
693 
694  buffer_t proxy_create_wrapper();
695 
696  static const std::string interface_name;
697 
698  operator wl_buffer*() const;
699 
716  std::function<void()> &on_release();
717 
718 };
719 
720 
731 class data_offer_t : public proxy_t
732 {
733 private:
734  struct events_t : public detail::events_base_t
735  {
736  std::function<void(std::string)> offer;
737  std::function<void(data_device_manager_dnd_action)> source_actions;
738  std::function<void(data_device_manager_dnd_action)> action;
739  };
740 
741  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
742 
743  data_offer_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
744 
745 public:
746  data_offer_t();
747  explicit data_offer_t(const proxy_t &proxy);
748  data_offer_t(wl_data_offer *p, wrapper_type t = wrapper_type::standard);
749 
750  data_offer_t proxy_create_wrapper();
751 
752  static const std::string interface_name;
753 
754  operator wl_data_offer*() const;
755 
776  void accept(uint32_t serial, std::string const& mime_type);
777 
780  static constexpr std::uint32_t accept_since_version = 1;
781 
803  void receive(std::string const& mime_type, int fd);
804 
807  static constexpr std::uint32_t receive_since_version = 1;
808 
827  void finish();
828 
831  static constexpr std::uint32_t finish_since_version = 3;
832 
836  bool can_finish() const;
837 
875  void set_actions(data_device_manager_dnd_action const& dnd_actions, data_device_manager_dnd_action const& preferred_action);
876 
879  static constexpr std::uint32_t set_actions_since_version = 3;
880 
884  bool can_set_actions() const;
885 
893  std::function<void(std::string)> &on_offer();
894 
903  std::function<void(data_device_manager_dnd_action)> &on_source_actions();
904 
945  std::function<void(data_device_manager_dnd_action)> &on_action();
946 
947 };
948 
952 enum class data_offer_error : uint32_t
953  {
955  invalid_finish = 0,
957  invalid_action_mask = 1,
959  invalid_action = 2,
961  invalid_offer = 3
962 };
963 
964 
973 class data_source_t : public proxy_t
974 {
975 private:
976  struct events_t : public detail::events_base_t
977  {
978  std::function<void(std::string)> target;
979  std::function<void(std::string, int)> send;
980  std::function<void()> cancelled;
981  std::function<void()> dnd_drop_performed;
982  std::function<void()> dnd_finished;
983  std::function<void(data_device_manager_dnd_action)> action;
984  };
985 
986  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
987 
988  data_source_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
989 
990 public:
991  data_source_t();
992  explicit data_source_t(const proxy_t &proxy);
993  data_source_t(wl_data_source *p, wrapper_type t = wrapper_type::standard);
994 
995  data_source_t proxy_create_wrapper();
996 
997  static const std::string interface_name;
998 
999  operator wl_data_source*() const;
1000 
1009  void offer(std::string const& mime_type);
1010 
1013  static constexpr std::uint32_t offer_since_version = 1;
1014 
1033  void set_actions(data_device_manager_dnd_action const& dnd_actions);
1034 
1037  static constexpr std::uint32_t set_actions_since_version = 3;
1038 
1042  bool can_set_actions() const;
1043 
1053  std::function<void(std::string)> &on_target();
1054 
1064  std::function<void(std::string, int)> &on_send();
1065 
1090  std::function<void()> &on_cancelled();
1091 
1105  std::function<void()> &on_dnd_drop_performed();
1106 
1117  std::function<void()> &on_dnd_finished();
1118 
1149  std::function<void(data_device_manager_dnd_action)> &on_action();
1150 
1151 };
1152 
1156 enum class data_source_error : uint32_t
1157  {
1159  invalid_action_mask = 0,
1161  invalid_source = 1
1162 };
1163 
1164 
1174 class data_device_t : public proxy_t
1175 {
1176 private:
1177  struct events_t : public detail::events_base_t
1178  {
1179  std::function<void(data_offer_t)> data_offer;
1180  std::function<void(uint32_t, surface_t, double, double, data_offer_t)> enter;
1181  std::function<void()> leave;
1182  std::function<void(uint32_t, double, double)> motion;
1183  std::function<void()> drop;
1184  std::function<void(data_offer_t)> selection;
1185  };
1186 
1187  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
1188 
1189  data_device_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
1190 
1191 public:
1192  data_device_t();
1193  explicit data_device_t(const proxy_t &proxy);
1194  data_device_t(wl_data_device *p, wrapper_type t = wrapper_type::standard);
1195 
1196  data_device_t proxy_create_wrapper();
1197 
1198  static const std::string interface_name;
1199 
1200  operator wl_data_device*() const;
1201 
1237  void start_drag(data_source_t const& source, surface_t const& origin, surface_t const& icon, uint32_t serial);
1238 
1241  static constexpr std::uint32_t start_drag_since_version = 1;
1242 
1253  void set_selection(data_source_t const& source, uint32_t serial);
1254 
1257  static constexpr std::uint32_t set_selection_since_version = 1;
1258 
1264  void release();
1265 
1268  static constexpr std::uint32_t release_since_version = 2;
1269 
1273  bool can_release() const;
1274 
1287  std::function<void(data_offer_t)> &on_data_offer();
1288 
1302  std::function<void(uint32_t, surface_t, double, double, data_offer_t)> &on_enter();
1303 
1311  std::function<void()> &on_leave();
1312 
1324  std::function<void(uint32_t, double, double)> &on_motion();
1325 
1343  std::function<void()> &on_drop();
1344 
1361  std::function<void(data_offer_t)> &on_selection();
1362 
1363 };
1364 
1368 enum class data_device_error : uint32_t
1369  {
1371  role = 0
1372 };
1373 
1374 
1390 {
1391 private:
1392  struct events_t : public detail::events_base_t
1393  {
1394  };
1395 
1396  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
1397 
1398  data_device_manager_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
1399 
1400 public:
1402  explicit data_device_manager_t(const proxy_t &proxy);
1403  data_device_manager_t(wl_data_device_manager *p, wrapper_type t = wrapper_type::standard);
1404 
1405  data_device_manager_t proxy_create_wrapper();
1406 
1407  static const std::string interface_name;
1408 
1409  operator wl_data_device_manager*() const;
1410 
1418 
1421  static constexpr std::uint32_t create_data_source_since_version = 1;
1422 
1430  data_device_t get_data_device(seat_t const& seat);
1431 
1434  static constexpr std::uint32_t get_data_device_since_version = 1;
1435 
1436 };
1437 
1465 struct data_device_manager_dnd_action : public detail::bitfield<3, 6>
1466 {
1467  data_device_manager_dnd_action(const detail::bitfield<3, 6> &b)
1468  : detail::bitfield<3, 6>(b) {}
1469  data_device_manager_dnd_action(const uint32_t value)
1470  : detail::bitfield<3, 6>(value) {}
1472  static const detail::bitfield<3, 6> none;
1474  static const detail::bitfield<3, 6> copy;
1476  static const detail::bitfield<3, 6> move;
1478  static const detail::bitfield<3, 6> ask;
1479 };
1480 
1481 
1494 class shell_t : public proxy_t
1495 {
1496 private:
1497  struct events_t : public detail::events_base_t
1498  {
1499  };
1500 
1501  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
1502 
1503  shell_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
1504 
1505 public:
1506  shell_t();
1507  explicit shell_t(const proxy_t &proxy);
1508  shell_t(wl_shell *p, wrapper_type t = wrapper_type::standard);
1509 
1510  shell_t proxy_create_wrapper();
1511 
1512  static const std::string interface_name;
1513 
1514  operator wl_shell*() const;
1515 
1528 
1531  static constexpr std::uint32_t get_shell_surface_since_version = 1;
1532 
1533 };
1534 
1538 enum class shell_error : uint32_t
1539  {
1541  role = 0
1542 };
1543 
1544 
1560 class shell_surface_t : public proxy_t
1561 {
1562 private:
1563  struct events_t : public detail::events_base_t
1564  {
1565  std::function<void(uint32_t)> ping;
1566  std::function<void(shell_surface_resize, int32_t, int32_t)> configure;
1567  std::function<void()> popup_done;
1568  };
1569 
1570  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
1571 
1572  shell_surface_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
1573 
1574 public:
1575  shell_surface_t();
1576  explicit shell_surface_t(const proxy_t &proxy);
1577  shell_surface_t(wl_shell_surface *p, wrapper_type t = wrapper_type::standard);
1578 
1579  shell_surface_t proxy_create_wrapper();
1580 
1581  static const std::string interface_name;
1582 
1583  operator wl_shell_surface*() const;
1584 
1592  void pong(uint32_t serial);
1593 
1596  static constexpr std::uint32_t pong_since_version = 1;
1597 
1609  void move(seat_t const& seat, uint32_t serial);
1610 
1613  static constexpr std::uint32_t move_since_version = 1;
1614 
1627  void resize(seat_t const& seat, uint32_t serial, shell_surface_resize const& edges);
1628 
1631  static constexpr std::uint32_t resize_since_version = 1;
1632 
1640  void set_toplevel();
1641 
1644  static constexpr std::uint32_t set_toplevel_since_version = 1;
1645 
1661  void set_transient(surface_t const& parent, int32_t x, int32_t y, shell_surface_transient const& flags);
1662 
1665  static constexpr std::uint32_t set_transient_since_version = 1;
1666 
1707  void set_fullscreen(shell_surface_fullscreen_method const& method, uint32_t framerate, output_t const& output);
1708 
1711  static constexpr std::uint32_t set_fullscreen_since_version = 1;
1712 
1742  void set_popup(seat_t const& seat, uint32_t serial, surface_t const& parent, int32_t x, int32_t y, shell_surface_transient const& flags);
1743 
1746  static constexpr std::uint32_t set_popup_since_version = 1;
1747 
1771  void set_maximized(output_t const& output);
1772 
1775  static constexpr std::uint32_t set_maximized_since_version = 1;
1776 
1789  void set_title(std::string const& title);
1790 
1793  static constexpr std::uint32_t set_title_since_version = 1;
1794 
1806  void set_class(std::string const& class_);
1807 
1810  static constexpr std::uint32_t set_class_since_version = 1;
1811 
1819  std::function<void(uint32_t)> &on_ping();
1820 
1845  std::function<void(shell_surface_resize, int32_t, int32_t)> &on_configure();
1846 
1854  std::function<void()> &on_popup_done();
1855 
1856 };
1857 
1866 struct shell_surface_resize : public detail::bitfield<4, 8>
1867 {
1868  shell_surface_resize(const detail::bitfield<4, 8> &b)
1869  : detail::bitfield<4, 8>(b) {}
1870  shell_surface_resize(const uint32_t value)
1871  : detail::bitfield<4, 8>(value) {}
1873  static const detail::bitfield<4, 8> none;
1875  static const detail::bitfield<4, 8> top;
1877  static const detail::bitfield<4, 8> bottom;
1879  static const detail::bitfield<4, 8> left;
1881  static const detail::bitfield<4, 8> top_left;
1883  static const detail::bitfield<4, 8> bottom_left;
1885  static const detail::bitfield<4, 8> right;
1887  static const detail::bitfield<4, 8> top_right;
1889  static const detail::bitfield<4, 8> bottom_right;
1890 };
1891 
1898 struct shell_surface_transient : public detail::bitfield<1, 9>
1899 {
1900  shell_surface_transient(const detail::bitfield<1, 9> &b)
1901  : detail::bitfield<1, 9>(b) {}
1902  shell_surface_transient(const uint32_t value)
1903  : detail::bitfield<1, 9>(value) {}
1905  static const detail::bitfield<1, 9> inactive;
1906 };
1907 
1915 enum class shell_surface_fullscreen_method : uint32_t
1916  {
1918  _default = 0,
1920  scale = 1,
1922  driver = 2,
1924  fill = 3
1925 };
1926 
1927 
1973 class surface_t : public proxy_t
1974 {
1975 private:
1976  struct events_t : public detail::events_base_t
1977  {
1978  std::function<void(output_t)> enter;
1979  std::function<void(output_t)> leave;
1980  };
1981 
1982  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
1983 
1984  surface_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
1985 
1986 public:
1987  surface_t();
1988  explicit surface_t(const proxy_t &proxy);
1989  surface_t(wl_surface *p, wrapper_type t = wrapper_type::standard);
1990 
1991  surface_t proxy_create_wrapper();
1992 
1993  static const std::string interface_name;
1994 
1995  operator wl_surface*() const;
1996 
2050  void attach(buffer_t const& buffer, int32_t x, int32_t y);
2051 
2054  static constexpr std::uint32_t attach_since_version = 1;
2055 
2085  void damage(int32_t x, int32_t y, int32_t width, int32_t height);
2086 
2089  static constexpr std::uint32_t damage_since_version = 1;
2090 
2128  callback_t frame();
2129 
2132  static constexpr std::uint32_t frame_since_version = 1;
2133 
2163  void set_opaque_region(region_t const& region);
2164 
2167  static constexpr std::uint32_t set_opaque_region_since_version = 1;
2168 
2196  void set_input_region(region_t const& region);
2197 
2200  static constexpr std::uint32_t set_input_region_since_version = 1;
2201 
2223  void commit();
2224 
2227  static constexpr std::uint32_t commit_since_version = 1;
2228 
2263  void set_buffer_transform(output_transform const& transform);
2264 
2267  static constexpr std::uint32_t set_buffer_transform_since_version = 2;
2268 
2272  bool can_set_buffer_transform() const;
2273 
2302  void set_buffer_scale(int32_t scale);
2303 
2306  static constexpr std::uint32_t set_buffer_scale_since_version = 3;
2307 
2311  bool can_set_buffer_scale() const;
2312 
2353  void damage_buffer(int32_t x, int32_t y, int32_t width, int32_t height);
2354 
2357  static constexpr std::uint32_t damage_buffer_since_version = 4;
2358 
2362  bool can_damage_buffer() const;
2363 
2374  std::function<void(output_t)> &on_enter();
2375 
2384  std::function<void(output_t)> &on_leave();
2385 
2386 };
2387 
2393 enum class surface_error : uint32_t
2394  {
2396  invalid_scale = 0,
2398  invalid_transform = 1,
2400  invalid_size = 2
2401 };
2402 
2403 
2412 class seat_t : public proxy_t
2413 {
2414 private:
2415  struct events_t : public detail::events_base_t
2416  {
2417  std::function<void(seat_capability)> capabilities;
2418  std::function<void(std::string)> name;
2419  };
2420 
2421  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
2422 
2423  seat_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
2424 
2425 public:
2426  seat_t();
2427  explicit seat_t(const proxy_t &proxy);
2428  seat_t(wl_seat *p, wrapper_type t = wrapper_type::standard);
2429 
2430  seat_t proxy_create_wrapper();
2431 
2432  static const std::string interface_name;
2433 
2434  operator wl_seat*() const;
2435 
2450 
2453  static constexpr std::uint32_t get_pointer_since_version = 1;
2454 
2469 
2472  static constexpr std::uint32_t get_keyboard_since_version = 1;
2473 
2487  touch_t get_touch();
2488 
2491  static constexpr std::uint32_t get_touch_since_version = 1;
2492 
2499  void release();
2500 
2503  static constexpr std::uint32_t release_since_version = 5;
2504 
2508  bool can_release() const;
2509 
2539  std::function<void(seat_capability)> &on_capabilities();
2540 
2549  std::function<void(std::string)> &on_name();
2550 
2551 };
2552 
2559 struct seat_capability : public detail::bitfield<3, 12>
2560 {
2561  seat_capability(const detail::bitfield<3, 12> &b)
2562  : detail::bitfield<3, 12>(b) {}
2563  seat_capability(const uint32_t value)
2564  : detail::bitfield<3, 12>(value) {}
2566  static const detail::bitfield<3, 12> pointer;
2568  static const detail::bitfield<3, 12> keyboard;
2570  static const detail::bitfield<3, 12> touch;
2571 };
2572 
2578 enum class seat_error : uint32_t
2579  {
2581  missing_capability = 0
2582 };
2583 
2584 
2597 class pointer_t : public proxy_t
2598 {
2599 private:
2600  struct events_t : public detail::events_base_t
2601  {
2602  std::function<void(uint32_t, surface_t, double, double)> enter;
2603  std::function<void(uint32_t, surface_t)> leave;
2604  std::function<void(uint32_t, double, double)> motion;
2605  std::function<void(uint32_t, uint32_t, uint32_t, pointer_button_state)> button;
2606  std::function<void(uint32_t, pointer_axis, double)> axis;
2607  std::function<void()> frame;
2608  std::function<void(pointer_axis_source)> axis_source;
2609  std::function<void(uint32_t, pointer_axis)> axis_stop;
2610  std::function<void(pointer_axis, int32_t)> axis_discrete;
2611  };
2612 
2613  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
2614 
2615  pointer_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
2616 
2617 public:
2618  pointer_t();
2619  explicit pointer_t(const proxy_t &proxy);
2620  pointer_t(wl_pointer *p, wrapper_type t = wrapper_type::standard);
2621 
2622  pointer_t proxy_create_wrapper();
2623 
2624  static const std::string interface_name;
2625 
2626  operator wl_pointer*() const;
2627 
2667  void set_cursor(uint32_t serial, surface_t const& surface, int32_t hotspot_x, int32_t hotspot_y);
2668 
2671  static constexpr std::uint32_t set_cursor_since_version = 1;
2672 
2682  void release();
2683 
2686  static constexpr std::uint32_t release_since_version = 3;
2687 
2691  bool can_release() const;
2692 
2707  std::function<void(uint32_t, surface_t, double, double)> &on_enter();
2708 
2720  std::function<void(uint32_t, surface_t)> &on_leave();
2721 
2732  std::function<void(uint32_t, double, double)> &on_motion();
2733 
2756  std::function<void(uint32_t, uint32_t, uint32_t, pointer_button_state)> &on_button();
2757 
2781  std::function<void(uint32_t, pointer_axis, double)> &on_axis();
2782 
2821  std::function<void()> &on_frame();
2822 
2853  std::function<void(pointer_axis_source)> &on_axis_source();
2854 
2875  std::function<void(uint32_t, pointer_axis)> &on_axis_stop();
2876 
2909  std::function<void(pointer_axis, int32_t)> &on_axis_discrete();
2910 
2911 };
2912 
2916 enum class pointer_error : uint32_t
2917  {
2919  role = 0
2920 };
2921 
2928 enum class pointer_button_state : uint32_t
2929  {
2931  released = 0,
2933  pressed = 1
2934 };
2935 
2941 enum class pointer_axis : uint32_t
2942  {
2944  vertical_scroll = 0,
2946  horizontal_scroll = 1
2947 };
2948 
2969 enum class pointer_axis_source : uint32_t
2970  {
2972  wheel = 0,
2974  finger = 1,
2976  continuous = 2,
2978  wheel_tilt = 3
2979 };
2980 
2981 
2988 class keyboard_t : public proxy_t
2989 {
2990 private:
2991  struct events_t : public detail::events_base_t
2992  {
2993  std::function<void(keyboard_keymap_format, int, uint32_t)> keymap;
2994  std::function<void(uint32_t, surface_t, array_t)> enter;
2995  std::function<void(uint32_t, surface_t)> leave;
2996  std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> key;
2997  std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> modifiers;
2998  std::function<void(int32_t, int32_t)> repeat_info;
2999  };
3000 
3001  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
3002 
3003  keyboard_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3004 
3005 public:
3006  keyboard_t();
3007  explicit keyboard_t(const proxy_t &proxy);
3008  keyboard_t(wl_keyboard *p, wrapper_type t = wrapper_type::standard);
3009 
3010  keyboard_t proxy_create_wrapper();
3011 
3012  static const std::string interface_name;
3013 
3014  operator wl_keyboard*() const;
3015 
3019  void release();
3020 
3023  static constexpr std::uint32_t release_since_version = 3;
3024 
3028  bool can_release() const;
3029 
3042  std::function<void(keyboard_keymap_format, int, uint32_t)> &on_keymap();
3043 
3056  std::function<void(uint32_t, surface_t, array_t)> &on_enter();
3057 
3072  std::function<void(uint32_t, surface_t)> &on_leave();
3073 
3091  std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> &on_key();
3092 
3104  std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> &on_modifiers();
3105 
3124  std::function<void(int32_t, int32_t)> &on_repeat_info();
3125 
3126 };
3127 
3134 enum class keyboard_keymap_format : uint32_t
3135  {
3137  no_keymap = 0,
3139  xkb_v1 = 1
3140 };
3141 
3147 enum class keyboard_key_state : uint32_t
3148  {
3150  released = 0,
3152  pressed = 1
3153 };
3154 
3155 
3168 class touch_t : public proxy_t
3169 {
3170 private:
3171  struct events_t : public detail::events_base_t
3172  {
3173  std::function<void(uint32_t, uint32_t, surface_t, int32_t, double, double)> down;
3174  std::function<void(uint32_t, uint32_t, int32_t)> up;
3175  std::function<void(uint32_t, int32_t, double, double)> motion;
3176  std::function<void()> frame;
3177  std::function<void()> cancel;
3178  std::function<void(int32_t, double, double)> shape;
3179  std::function<void(int32_t, double)> orientation;
3180  };
3181 
3182  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
3183 
3184  touch_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3185 
3186 public:
3187  touch_t();
3188  explicit touch_t(const proxy_t &proxy);
3189  touch_t(wl_touch *p, wrapper_type t = wrapper_type::standard);
3190 
3191  touch_t proxy_create_wrapper();
3192 
3193  static const std::string interface_name;
3194 
3195  operator wl_touch*() const;
3196 
3200  void release();
3201 
3204  static constexpr std::uint32_t release_since_version = 3;
3205 
3209  bool can_release() const;
3210 
3225  std::function<void(uint32_t, uint32_t, surface_t, int32_t, double, double)> &on_down();
3226 
3237  std::function<void(uint32_t, uint32_t, int32_t)> &on_up();
3238 
3248  std::function<void(uint32_t, int32_t, double, double)> &on_motion();
3249 
3262  std::function<void()> &on_frame();
3263 
3274  std::function<void()> &on_cancel();
3275 
3308  std::function<void(int32_t, double, double)> &on_shape();
3309 
3339  std::function<void(int32_t, double)> &on_orientation();
3340 
3341 };
3342 
3343 
3354 class output_t : public proxy_t
3355 {
3356 private:
3357  struct events_t : public detail::events_base_t
3358  {
3359  std::function<void(int32_t, int32_t, int32_t, int32_t, output_subpixel, std::string, std::string, output_transform)> geometry;
3360  std::function<void(output_mode, int32_t, int32_t, int32_t)> mode;
3361  std::function<void()> done;
3362  std::function<void(int32_t)> scale;
3363  };
3364 
3365  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
3366 
3367  output_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3368 
3369 public:
3370  output_t();
3371  explicit output_t(const proxy_t &proxy);
3372  output_t(wl_output *p, wrapper_type t = wrapper_type::standard);
3373 
3374  output_t proxy_create_wrapper();
3375 
3376  static const std::string interface_name;
3377 
3378  operator wl_output*() const;
3379 
3386  void release();
3387 
3390  static constexpr std::uint32_t release_since_version = 3;
3391 
3395  bool can_release() const;
3396 
3422  std::function<void(int32_t, int32_t, int32_t, int32_t, output_subpixel, std::string, std::string, output_transform)> &on_geometry();
3423 
3458  std::function<void(output_mode, int32_t, int32_t, int32_t)> &on_mode();
3459 
3469  std::function<void()> &on_done();
3470 
3494  std::function<void(int32_t)> &on_scale();
3495 
3496 };
3497 
3504 enum class output_subpixel : uint32_t
3505  {
3507  unknown = 0,
3509  none = 1,
3511  horizontal_rgb = 2,
3513  horizontal_bgr = 3,
3515  vertical_rgb = 4,
3517  vertical_bgr = 5
3518 };
3519 
3535 struct output_transform : public detail::bitfield<3, 21>
3536 {
3537  output_transform(const detail::bitfield<3, 21> &b)
3538  : detail::bitfield<3, 21>(b) {}
3539  output_transform(const uint32_t value)
3540  : detail::bitfield<3, 21>(value) {}
3542  static const detail::bitfield<3, 21> normal;
3544  static const detail::bitfield<3, 21> _90;
3546  static const detail::bitfield<3, 21> _180;
3548  static const detail::bitfield<3, 21> _270;
3550  static const detail::bitfield<3, 21> flipped;
3552  static const detail::bitfield<3, 21> flipped_90;
3554  static const detail::bitfield<3, 21> flipped_180;
3556  static const detail::bitfield<3, 21> flipped_270;
3557 };
3558 
3565 struct output_mode : public detail::bitfield<2, 22>
3566 {
3567  output_mode(const detail::bitfield<2, 22> &b)
3568  : detail::bitfield<2, 22>(b) {}
3569  output_mode(const uint32_t value)
3570  : detail::bitfield<2, 22>(value) {}
3572  static const detail::bitfield<2, 22> current;
3574  static const detail::bitfield<2, 22> preferred;
3575 };
3576 
3577 
3586 class region_t : public proxy_t
3587 {
3588 private:
3589  struct events_t : public detail::events_base_t
3590  {
3591  };
3592 
3593  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
3594 
3595  region_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3596 
3597 public:
3598  region_t();
3599  explicit region_t(const proxy_t &proxy);
3600  region_t(wl_region *p, wrapper_type t = wrapper_type::standard);
3601 
3602  region_t proxy_create_wrapper();
3603 
3604  static const std::string interface_name;
3605 
3606  operator wl_region*() const;
3607 
3617  void add(int32_t x, int32_t y, int32_t width, int32_t height);
3618 
3621  static constexpr std::uint32_t add_since_version = 1;
3622 
3632  void subtract(int32_t x, int32_t y, int32_t width, int32_t height);
3633 
3636  static constexpr std::uint32_t subtract_since_version = 1;
3637 
3638 };
3639 
3640 
3664 class subcompositor_t : public proxy_t
3665 {
3666 private:
3667  struct events_t : public detail::events_base_t
3668  {
3669  };
3670 
3671  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
3672 
3673  subcompositor_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3674 
3675 public:
3676  subcompositor_t();
3677  explicit subcompositor_t(const proxy_t &proxy);
3678  subcompositor_t(wl_subcompositor *p, wrapper_type t = wrapper_type::standard);
3679 
3680  subcompositor_t proxy_create_wrapper();
3681 
3682  static const std::string interface_name;
3683 
3684  operator wl_subcompositor*() const;
3685 
3708  subsurface_t get_subsurface(surface_t const& surface, surface_t const& parent);
3709 
3712  static constexpr std::uint32_t get_subsurface_since_version = 1;
3713 
3714 };
3715 
3719 enum class subcompositor_error : uint32_t
3720  {
3722  bad_surface = 0
3723 };
3724 
3725 
3779 class subsurface_t : public proxy_t
3780 {
3781 private:
3782  struct events_t : public detail::events_base_t
3783  {
3784  };
3785 
3786  static int dispatcher(uint32_t opcode, const std::vector<detail::any>& args, const std::shared_ptr<detail::events_base_t>& e);
3787 
3788  subsurface_t(proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag /*unused*/);
3789 
3790 public:
3791  subsurface_t();
3792  explicit subsurface_t(const proxy_t &proxy);
3793  subsurface_t(wl_subsurface *p, wrapper_type t = wrapper_type::standard);
3794 
3795  subsurface_t proxy_create_wrapper();
3796 
3797  static const std::string interface_name;
3798 
3799  operator wl_subsurface*() const;
3800 
3823  void set_position(int32_t x, int32_t y);
3824 
3827  static constexpr std::uint32_t set_position_since_version = 1;
3828 
3849  void place_above(surface_t const& sibling);
3850 
3853  static constexpr std::uint32_t place_above_since_version = 1;
3854 
3862  void place_below(surface_t const& sibling);
3863 
3866  static constexpr std::uint32_t place_below_since_version = 1;
3867 
3885  void set_sync();
3886 
3889  static constexpr std::uint32_t set_sync_since_version = 1;
3890 
3914  void set_desync();
3915 
3918  static constexpr std::uint32_t set_desync_since_version = 1;
3919 
3920 };
3921 
3925 enum class subsurface_error : uint32_t
3926  {
3928  bad_surface = 0
3929 };
3930 
3931 
3932 
3933 }
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:1899
wayland::shell_surface_resize::top
static const detail::bitfield< 4, 8 > top
top edge
Definition: wayland-client-protocol.hpp:1875
wayland::output_mode::preferred
static const detail::bitfield< 2, 22 > preferred
indicates this is the preferred mode
Definition: wayland-client-protocol.hpp:3574
wayland::surface_t::attach
void attach(buffer_t const &buffer, int32_t x, int32_t y)
set the surface contents
Definition: wayland-client-protocol.cpp:2623
wayland::data_device_manager_dnd_action::ask
static const detail::bitfield< 3, 6 > ask
ask action
Definition: wayland-client-protocol.hpp:1478
wayland::subcompositor_t
sub-surface compositing
Definition: wayland-client-protocol.hpp:3665
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:3513
wayland::pointer_t::release
void release()
release the pointer object
Definition: wayland-client-protocol.cpp:2867
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:3889
wayland::shm_t::on_format
std::function< void(shm_format)> & on_format()
pixel format description
Definition: wayland-client-protocol.cpp:1846
wayland::output_transform::flipped_270
static const detail::bitfield< 3, 21 > flipped_270
flip and rotate 270 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3556
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:1241
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:2891
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
@ standard
wayland::data_device_manager_dnd_action::move
static const detail::bitfield< 3, 6 > move
move action
Definition: wayland-client-protocol.hpp:1476
wayland::shell_surface_resize::left
static const detail::bitfield< 4, 8 > left
left edge
Definition: wayland-client-protocol.hpp:1879
wayland::data_device_manager_t::get_data_device
data_device_t get_data_device(seat_t const &seat)
create a new data device
Definition: wayland-client-protocol.cpp:2350
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:2357
wayland::output_t::release
void release()
release the output object
Definition: wayland-client-protocol.cpp:3250
wayland::shell_surface_t::set_class
void set_class(std::string const &class_)
set surface class
Definition: wayland-client-protocol.cpp:2521
wayland::pointer_t::on_enter
std::function< void(uint32_t, surface_t, double, double)> & on_enter()
enter event
Definition: wayland-client-protocol.cpp:2876
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::subsurface_t::place_below
void place_below(surface_t const &sibling)
restack the sub-surface
Definition: wayland-client-protocol.cpp:3503
wayland::output_transform::normal
static const detail::bitfield< 3, 21 > normal
no transform
Definition: wayland-client-protocol.hpp:3542
wayland::shell_surface_t::resize
void resize(seat_t const &seat, uint32_t serial, shell_surface_resize const &edges)
start an interactive resize
Definition: wayland-client-protocol.cpp:2486
wayland::data_device_manager_dnd_action
drag and drop actions
Definition: wayland-client-protocol.hpp:1466
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::keyboard_t::on_enter
std::function< void(uint32_t, surface_t, array_t)> & on_enter()
enter event
Definition: wayland-client-protocol.cpp:3024
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:3918
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:1881
wayland::shell_t
create desktop-style surfaces
Definition: wayland-client-protocol.hpp:1495
wayland::touch_t::on_shape
std::function< void(int32_t, double, double)> & on_shape()
update shape of touch point
Definition: wayland-client-protocol.cpp:3161
wayland::seat_t::release
void release()
release the seat object
Definition: wayland-client-protocol.cpp:2774
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:1887
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:2871
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:3264
wayland::subsurface_t::set_sync
void set_sync()
set sub-surface to synchronized mode
Definition: wayland-client-protocol.cpp:3508
wayland::surface_t::set_input_region
void set_input_region(region_t const &region)
set input region
Definition: wayland-client-protocol.cpp:2644
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:1434
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:1665
wayland::data_device_t::set_selection
void set_selection(data_source_t const &source, uint32_t serial)
copy data to the selection
Definition: wayland-client-protocol.cpp:2223
wayland::data_device_manager_dnd_action::none
static const detail::bitfield< 3, 6 > none
no action
Definition: wayland-client-protocol.hpp:1472
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:3146
wayland::shell_surface_transient::inactive
static const detail::bitfield< 1, 9 > inactive
do not set keyboard focus
Definition: wayland-client-protocol.hpp:1905
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:3866
wayland::output_transform::flipped_90
static const detail::bitfield< 3, 21 > flipped_90
flip and rotate 90 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3552
wayland::output_transform::_180
static const detail::bitfield< 3, 21 > _180
180 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3546
wayland::output_mode
mode information
Definition: wayland-client-protocol.hpp:3566
wayland::shell_surface_resize::bottom
static const detail::bitfield< 4, 8 > bottom
bottom edge
Definition: wayland-client-protocol.hpp:1877
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:1421
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:2132
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:3827
wayland::keyboard_t::on_leave
std::function< void(uint32_t, surface_t)> & on_leave()
leave event
Definition: wayland-client-protocol.cpp:3029
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:3621
wayland::shell_surface_t::on_popup_done
std::function< void()> & on_popup_done()
popup interaction is done
Definition: wayland-client-protocol.cpp:2536
wayland::output_transform::flipped_180
static const detail::bitfield< 3, 21 > flipped_180
flip and rotate 180 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3554
wayland::buffer_t
content for a wl_surface
Definition: wayland-client-protocol.hpp:678
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:3169
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:3014
wayland::data_device_manager_t
data transfer interface
Definition: wayland-client-protocol.hpp:1390
wayland::data_source_t
offer to transfer data
Definition: wayland-client-protocol.hpp:974
wayland::subcompositor_t::get_subsurface
subsurface_t get_subsurface(surface_t const &surface, surface_t const &parent)
give a surface the role sub-surface
Definition: wayland-client-protocol.cpp:3430
wayland::shm_t
shared memory support
Definition: wayland-client-protocol.hpp:393
wayland::surface_t::set_buffer_transform
void set_buffer_transform(output_transform const &transform)
sets the buffer transformation
Definition: wayland-client-protocol.cpp:2654
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::surface_t::set_opaque_region
void set_opaque_region(region_t const &region)
set opaque region
Definition: wayland-client-protocol.cpp:2639
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:1746
wayland::shell_surface_resize::right
static const detail::bitfield< 4, 8 > right
right edge
Definition: wayland-client-protocol.hpp:1885
wayland::data_device_t::start_drag
void start_drag(data_source_t const &source, surface_t const &origin, surface_t const &icon, uint32_t serial)
start drag-and-drop operation
Definition: wayland-client-protocol.cpp:2218
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:2227
wayland::shell_t::get_shell_surface
shell_surface_t get_shell_surface(surface_t const &surface)
create a shell surface from a surface
Definition: wayland-client-protocol.cpp:2415
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:1793
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:1644
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:3390
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:1810
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:3034
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:3254
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:169
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:3023
wayland::data_device_t
data transfer device
Definition: wayland-client-protocol.hpp:1175
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:1631
wayland::touch_t::on_frame
std::function< void()> & on_frame()
end of touch frame event
Definition: wayland-client-protocol.cpp:3151
wayland::output_mode::current
static const detail::bitfield< 2, 22 > current
indicates this is the current mode
Definition: wayland-client-protocol.hpp:3572
wayland::subsurface_t::set_position
void set_position(int32_t x, int32_t y)
reposition the sub-surface
Definition: wayland-client-protocol.cpp:3493
wayland::buffer_t::on_release
std::function< void()> & on_release()
compositor releases buffer
Definition: wayland-client-protocol.cpp:1916
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::subsurface_t::place_above
void place_above(surface_t const &sibling)
restack the sub-surface
Definition: wayland-client-protocol.cpp:3498
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:2167
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:116
wayland::surface_t
an onscreen surface
Definition: wayland-client-protocol.hpp:1974
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:2566
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:1531
wayland::data_offer_t::set_actions
void set_actions(data_device_manager_dnd_action const &dnd_actions, data_device_manager_dnd_action const &preferred_action)
set the available/preferred drag-and-drop actions
Definition: wayland-client-protocol.cpp:2003
wayland::seat_capability::touch
static const detail::bitfield< 3, 12 > touch
the seat has touch devices
Definition: wayland-client-protocol.hpp:2570
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:3274
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:2491
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:1596
wayland::touch_t::on_cancel
std::function< void()> & on_cancel()
touch session cancelled
Definition: wayland-client-protocol.cpp:3156
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:1037
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:1867
wayland::pointer_t::set_cursor
void set_cursor(uint32_t serial, surface_t const &surface, int32_t hotspot_x, int32_t hotspot_y)
set the pointer surface
Definition: wayland-client-protocol.cpp:2862
wayland::proxy_t
Represents a protocol object on the client side.
Definition: wayland-client.hpp:109
wayland::output_t::on_done
std::function< void()> & on_done()
sent all information about output
Definition: wayland-client-protocol.cpp:3269
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:2054
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:1268
wayland::output_transform::_90
static const detail::bitfield< 3, 21 > _90
90 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3544
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:296
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:3369
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:2306
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:1257
wayland::shell_surface_t::set_transient
void set_transient(surface_t const &parent, int32_t x, int32_t y, shell_surface_transient const &flags)
make the surface a transient surface
Definition: wayland-client-protocol.cpp:2496
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:2686
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:2267
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:3044
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:359
wayland::seat_capability
seat capability bitmask
Definition: wayland-client-protocol.hpp:2560
wayland::shell_surface_resize::bottom_left
static const detail::bitfield< 4, 8 > bottom_left
bottom and left edges
Definition: wayland-client-protocol.hpp:1883
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::shell_surface_t::set_popup
void set_popup(seat_t const &seat, uint32_t serial, surface_t const &parent, int32_t x, int32_t y, shell_surface_transient const &flags)
make the surface a popup surface
Definition: wayland-client-protocol.cpp:2506
wayland::shell_surface_resize::none
static const detail::bitfield< 4, 8 > none
no edge
Definition: wayland-client-protocol.hpp:1873
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:2671
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:2472
wayland::pointer_t::on_axis
std::function< void(uint32_t, pointer_axis, double)> & on_axis()
axis event
Definition: wayland-client-protocol.cpp:2896
wayland::data_offer_t::receive
void receive(std::string const &mime_type, int fd)
request that the data is transferred
Definition: wayland-client-protocol.cpp:1989
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:3712
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:1613
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:374
wayland::pointer_t::on_frame
std::function< void()> & on_frame()
end of a pointer event sequence
Definition: wayland-client-protocol.cpp:2901
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:1474
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:2089
wayland::shell_surface_t
desktop-style metadata interface
Definition: wayland-client-protocol.hpp:1561
wayland::pointer_t::on_axis_stop
std::function< void(uint32_t, pointer_axis)> & on_axis_stop()
axis stop event
Definition: wayland-client-protocol.cpp:2911
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:3636
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:431
wayland::data_source_t::set_actions
void set_actions(data_device_manager_dnd_action const &dnd_actions)
set the available drag-and-drop actions
Definition: wayland-client-protocol.cpp:2102
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:3853
wayland::surface_t::on_leave
std::function< void(output_t)> & on_leave()
surface leaves an output
Definition: wayland-client-protocol.cpp:2686
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:879
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:3587
wayland::shm_pool_t
a shared memory pool
Definition: wayland-client-protocol.hpp:313
wayland::shell_surface_t::set_title
void set_title(std::string const &title)
set surface title
Definition: wayland-client-protocol.cpp:2516
wayland::registry_t
global registry object
Definition: wayland-client-protocol.hpp:132
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:1711
wayland::shm_pool_t::create_buffer
buffer_t create_buffer(int32_t offset, int32_t width, int32_t height, int32_t stride, shm_format const &format)
create a buffer from the pool
Definition: wayland-client-protocol.cpp:1775
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:2413
wayland::compositor_t::create_surface
surface_t create_surface()
create new surface
Definition: wayland-client-protocol.cpp:1707
wayland::output_transform
transform from framebuffer to output
Definition: wayland-client-protocol.hpp:3536
wayland::shell_surface_t::move
void move(seat_t const &seat, uint32_t serial)
start an interactive move
Definition: wayland-client-protocol.cpp:2481
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:2453
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:2881
wayland::data_offer_t
offer to transfer data
Definition: wayland-client-protocol.hpp:732
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:807
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:3131
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::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:3039
wayland::shell_surface_t::set_fullscreen
void set_fullscreen(shell_surface_fullscreen_method const &method, uint32_t framerate, output_t const &output)
make the surface a fullscreen surface
Definition: wayland-client-protocol.cpp:2501
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:253
wayland::pointer_t::on_motion
std::function< void(uint32_t, double, double)> & on_motion()
pointer motion event
Definition: wayland-client-protocol.cpp:2886
wayland::pointer_t::on_axis_source
std::function< void(pointer_axis_source)> & on_axis_source()
axis source event
Definition: wayland-client-protocol.cpp:2906
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:780
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:2200
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:3204
wayland::output_transform::flipped
static const detail::bitfield< 3, 21 > flipped
180 degree flip around a vertical axis
Definition: wayland-client-protocol.hpp:3550
wayland::shell_surface_t::set_maximized
void set_maximized(output_t const &output)
make the surface a maximized surface
Definition: wayland-client-protocol.cpp:2511
wayland::data_source_t::offer
void offer(std::string const &mime_type)
add an offered mime type
Definition: wayland-client-protocol.cpp:2097
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:284
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:831
wayland::callback_t
callback object
Definition: wayland-client-protocol.hpp:212
wayland::shell_surface_resize::bottom_right
static const detail::bitfield< 4, 8 > bottom_right
bottom and right edges
Definition: wayland-client-protocol.hpp:1889
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:3010
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:2503
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:3127
wayland::output_transform::_270
static const detail::bitfield< 3, 21 > _270
270 degrees counter-clockwise
Definition: wayland-client-protocol.hpp:3548
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:1013
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:3136
wayland::seat_capability::keyboard
static const detail::bitfield< 3, 12 > keyboard
the seat has one or more keyboards
Definition: wayland-client-protocol.hpp:2568
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:3364
wayland::pointer_t::on_axis_discrete
std::function< void(pointer_axis, int32_t)> & on_axis_discrete()
axis click event
Definition: wayland-client-protocol.cpp:2916
wayland::keyboard_t
keyboard input device
Definition: wayland-client-protocol.hpp:2989
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::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:1775
wayland::touch_t::on_orientation
std::function< void(int32_t, double)> & on_orientation()
update orientation of touch point
Definition: wayland-client-protocol.cpp:3166
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:3355
wayland::subsurface_t
sub-surface interface to a wl_surface
Definition: wayland-client-protocol.hpp:3780
wayland::keyboard_t::on_keymap
std::function< void(keyboard_keymap_format, int, uint32_t)> & on_keymap()
keyboard mapping
Definition: wayland-client-protocol.cpp:3019
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::data_offer_t::accept
void accept(uint32_t serial, std::string const &mime_type)
accept one of the offered mime types
Definition: wayland-client-protocol.cpp:1984
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:3259
wayland::pointer_t
pointer input device
Definition: wayland-client-protocol.hpp:2598
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:3141