1 #include <wayland-client-protocol-extra.hpp>
3 using namespace wayland;
4 using namespace detail;
6 const wl_interface* presentation_interface_destroy_request[0] = {
9 const wl_interface* presentation_interface_feedback_request[2] = {
11 &presentation_feedback_interface,
14 const wl_interface* presentation_interface_clock_id_event[1] = {
18 const wl_message presentation_interface_requests[2] = {
22 presentation_interface_destroy_request,
27 presentation_interface_feedback_request,
31 const wl_message presentation_interface_events[1] = {
35 presentation_interface_clock_id_event,
39 const wl_interface wayland::detail::presentation_interface =
44 presentation_interface_requests,
46 presentation_interface_events,
49 const wl_interface* presentation_feedback_interface_sync_output_event[1] = {
53 const wl_interface* presentation_feedback_interface_presented_event[7] = {
63 const wl_interface* presentation_feedback_interface_discarded_event[0] = {
66 const wl_message presentation_feedback_interface_requests[0] = {
69 const wl_message presentation_feedback_interface_events[3] = {
73 presentation_feedback_interface_sync_output_event,
78 presentation_feedback_interface_presented_event,
83 presentation_feedback_interface_discarded_event,
87 const wl_interface wayland::detail::presentation_feedback_interface =
89 "wp_presentation_feedback",
92 presentation_feedback_interface_requests,
94 presentation_feedback_interface_events,
97 const wl_interface* viewporter_interface_destroy_request[0] = {
100 const wl_interface* viewporter_interface_get_viewport_request[2] = {
105 const wl_message viewporter_interface_requests[2] = {
109 viewporter_interface_destroy_request,
114 viewporter_interface_get_viewport_request,
118 const wl_message viewporter_interface_events[0] = {
121 const wl_interface wayland::detail::viewporter_interface =
126 viewporter_interface_requests,
128 viewporter_interface_events,
131 const wl_interface* viewport_interface_destroy_request[0] = {
134 const wl_interface* viewport_interface_set_source_request[4] = {
141 const wl_interface* viewport_interface_set_destination_request[2] = {
146 const wl_message viewport_interface_requests[3] = {
150 viewport_interface_destroy_request,
155 viewport_interface_set_source_request,
160 viewport_interface_set_destination_request,
164 const wl_message viewport_interface_events[0] = {
167 const wl_interface wayland::detail::viewport_interface =
172 viewport_interface_requests,
174 viewport_interface_events,
177 const wl_interface* xdg_wm_base_interface_destroy_request[0] = {
180 const wl_interface* xdg_wm_base_interface_create_positioner_request[1] = {
181 &xdg_positioner_interface,
184 const wl_interface* xdg_wm_base_interface_get_xdg_surface_request[2] = {
185 &xdg_surface_interface,
189 const wl_interface* xdg_wm_base_interface_pong_request[1] = {
193 const wl_interface* xdg_wm_base_interface_ping_event[1] = {
197 const wl_message xdg_wm_base_interface_requests[4] = {
201 xdg_wm_base_interface_destroy_request,
206 xdg_wm_base_interface_create_positioner_request,
211 xdg_wm_base_interface_get_xdg_surface_request,
216 xdg_wm_base_interface_pong_request,
220 const wl_message xdg_wm_base_interface_events[1] = {
224 xdg_wm_base_interface_ping_event,
228 const wl_interface wayland::detail::xdg_wm_base_interface =
233 xdg_wm_base_interface_requests,
235 xdg_wm_base_interface_events,
238 const wl_interface* xdg_positioner_interface_destroy_request[0] = {
241 const wl_interface* xdg_positioner_interface_set_size_request[2] = {
246 const wl_interface* xdg_positioner_interface_set_anchor_rect_request[4] = {
253 const wl_interface* xdg_positioner_interface_set_anchor_request[1] = {
257 const wl_interface* xdg_positioner_interface_set_gravity_request[1] = {
261 const wl_interface* xdg_positioner_interface_set_constraint_adjustment_request[1] = {
265 const wl_interface* xdg_positioner_interface_set_offset_request[2] = {
270 const wl_interface* xdg_positioner_interface_set_reactive_request[0] = {
273 const wl_interface* xdg_positioner_interface_set_parent_size_request[2] = {
278 const wl_interface* xdg_positioner_interface_set_parent_configure_request[1] = {
282 const wl_message xdg_positioner_interface_requests[10] = {
286 xdg_positioner_interface_destroy_request,
291 xdg_positioner_interface_set_size_request,
296 xdg_positioner_interface_set_anchor_rect_request,
301 xdg_positioner_interface_set_anchor_request,
306 xdg_positioner_interface_set_gravity_request,
309 "set_constraint_adjustment",
311 xdg_positioner_interface_set_constraint_adjustment_request,
316 xdg_positioner_interface_set_offset_request,
321 xdg_positioner_interface_set_reactive_request,
326 xdg_positioner_interface_set_parent_size_request,
329 "set_parent_configure",
331 xdg_positioner_interface_set_parent_configure_request,
335 const wl_message xdg_positioner_interface_events[0] = {
338 const wl_interface wayland::detail::xdg_positioner_interface =
343 xdg_positioner_interface_requests,
345 xdg_positioner_interface_events,
348 const wl_interface* xdg_surface_interface_destroy_request[0] = {
351 const wl_interface* xdg_surface_interface_get_toplevel_request[1] = {
352 &xdg_toplevel_interface,
355 const wl_interface* xdg_surface_interface_get_popup_request[3] = {
356 &xdg_popup_interface,
357 &xdg_surface_interface,
358 &xdg_positioner_interface,
361 const wl_interface* xdg_surface_interface_set_window_geometry_request[4] = {
368 const wl_interface* xdg_surface_interface_ack_configure_request[1] = {
372 const wl_interface* xdg_surface_interface_configure_event[1] = {
376 const wl_message xdg_surface_interface_requests[5] = {
380 xdg_surface_interface_destroy_request,
385 xdg_surface_interface_get_toplevel_request,
390 xdg_surface_interface_get_popup_request,
393 "set_window_geometry",
395 xdg_surface_interface_set_window_geometry_request,
400 xdg_surface_interface_ack_configure_request,
404 const wl_message xdg_surface_interface_events[1] = {
408 xdg_surface_interface_configure_event,
412 const wl_interface wayland::detail::xdg_surface_interface =
417 xdg_surface_interface_requests,
419 xdg_surface_interface_events,
422 const wl_interface* xdg_toplevel_interface_destroy_request[0] = {
425 const wl_interface* xdg_toplevel_interface_set_parent_request[1] = {
426 &xdg_toplevel_interface,
429 const wl_interface* xdg_toplevel_interface_set_title_request[1] = {
433 const wl_interface* xdg_toplevel_interface_set_app_id_request[1] = {
437 const wl_interface* xdg_toplevel_interface_show_window_menu_request[4] = {
444 const wl_interface* xdg_toplevel_interface_move_request[2] = {
449 const wl_interface* xdg_toplevel_interface_resize_request[3] = {
455 const wl_interface* xdg_toplevel_interface_set_max_size_request[2] = {
460 const wl_interface* xdg_toplevel_interface_set_min_size_request[2] = {
465 const wl_interface* xdg_toplevel_interface_set_maximized_request[0] = {
468 const wl_interface* xdg_toplevel_interface_unset_maximized_request[0] = {
471 const wl_interface* xdg_toplevel_interface_set_fullscreen_request[1] = {
475 const wl_interface* xdg_toplevel_interface_unset_fullscreen_request[0] = {
478 const wl_interface* xdg_toplevel_interface_set_minimized_request[0] = {
481 const wl_interface* xdg_toplevel_interface_configure_event[3] = {
487 const wl_interface* xdg_toplevel_interface_close_event[0] = {
490 const wl_interface* xdg_toplevel_interface_configure_bounds_event[2] = {
495 const wl_message xdg_toplevel_interface_requests[14] = {
499 xdg_toplevel_interface_destroy_request,
504 xdg_toplevel_interface_set_parent_request,
509 xdg_toplevel_interface_set_title_request,
514 xdg_toplevel_interface_set_app_id_request,
519 xdg_toplevel_interface_show_window_menu_request,
524 xdg_toplevel_interface_move_request,
529 xdg_toplevel_interface_resize_request,
534 xdg_toplevel_interface_set_max_size_request,
539 xdg_toplevel_interface_set_min_size_request,
544 xdg_toplevel_interface_set_maximized_request,
549 xdg_toplevel_interface_unset_maximized_request,
554 xdg_toplevel_interface_set_fullscreen_request,
559 xdg_toplevel_interface_unset_fullscreen_request,
564 xdg_toplevel_interface_set_minimized_request,
568 const wl_message xdg_toplevel_interface_events[3] = {
572 xdg_toplevel_interface_configure_event,
577 xdg_toplevel_interface_close_event,
582 xdg_toplevel_interface_configure_bounds_event,
586 const wl_interface wayland::detail::xdg_toplevel_interface =
591 xdg_toplevel_interface_requests,
593 xdg_toplevel_interface_events,
596 const wl_interface* xdg_popup_interface_destroy_request[0] = {
599 const wl_interface* xdg_popup_interface_grab_request[2] = {
604 const wl_interface* xdg_popup_interface_reposition_request[2] = {
605 &xdg_positioner_interface,
609 const wl_interface* xdg_popup_interface_configure_event[4] = {
616 const wl_interface* xdg_popup_interface_popup_done_event[0] = {
619 const wl_interface* xdg_popup_interface_repositioned_event[1] = {
623 const wl_message xdg_popup_interface_requests[3] = {
627 xdg_popup_interface_destroy_request,
632 xdg_popup_interface_grab_request,
637 xdg_popup_interface_reposition_request,
641 const wl_message xdg_popup_interface_events[3] = {
645 xdg_popup_interface_configure_event,
650 xdg_popup_interface_popup_done_event,
655 xdg_popup_interface_repositioned_event,
659 const wl_interface wayland::detail::xdg_popup_interface =
664 xdg_popup_interface_requests,
666 xdg_popup_interface_events,
669 presentation_t::presentation_t(
const proxy_t &p)
672 if(proxy_has_object() && get_wrapper_type() == wrapper_type::standard)
674 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
675 set_destroy_opcode(0U);
677 set_interface(&presentation_interface);
682 presentation_t::presentation_t()
684 set_interface(&presentation_interface);
689 presentation_t::presentation_t(wp_presentation *p, wrapper_type t)
690 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
691 if(proxy_has_object() && get_wrapper_type() == wrapper_type::standard)
693 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
694 set_destroy_opcode(0U);
696 set_interface(&presentation_interface);
701 presentation_t::presentation_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
702 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
703 set_interface(&presentation_interface);
710 return {*
this, construct_proxy_wrapper_tag()};
713 const std::string presentation_t::interface_name =
"wp_presentation";
715 presentation_t::operator wp_presentation*()
const
717 return reinterpret_cast<wp_presentation*
> (c_ptr());
722 proxy_t p = marshal_constructor(1U, &presentation_feedback_interface, surface.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(surface.
c_ptr()) :
nullptr,
nullptr);
728 return std::static_pointer_cast<events_t>(get_events())->clock_id;
731 int presentation_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
733 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
737 if(events->clock_id) events->clock_id(args[0].get<uint32_t>());
744 presentation_feedback_t::presentation_feedback_t(
const proxy_t &p)
749 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
751 set_interface(&presentation_feedback_interface);
756 presentation_feedback_t::presentation_feedback_t()
758 set_interface(&presentation_feedback_interface);
763 presentation_feedback_t::presentation_feedback_t(wp_presentation_feedback *p, wrapper_type t)
764 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
767 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
769 set_interface(&presentation_feedback_interface);
774 presentation_feedback_t::presentation_feedback_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
775 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
776 set_interface(&presentation_feedback_interface);
783 return {*
this, construct_proxy_wrapper_tag()};
786 const std::string presentation_feedback_t::interface_name =
"wp_presentation_feedback";
788 presentation_feedback_t::operator wp_presentation_feedback*()
const
790 return reinterpret_cast<wp_presentation_feedback*
> (c_ptr());
795 return std::static_pointer_cast<events_t>(get_events())->sync_output;
800 return std::static_pointer_cast<events_t>(get_events())->presented;
805 return std::static_pointer_cast<events_t>(get_events())->discarded;
808 int presentation_feedback_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
810 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
814 if(events->sync_output) events->sync_output(
output_t(args[0].get<proxy_t>()));
817 if(events->presented) events->presented(args[0].get<uint32_t>(), args[1].get<uint32_t>(), args[2].get<uint32_t>(), args[3].get<uint32_t>(), args[4].get<uint32_t>(), args[5].get<uint32_t>(),
presentation_feedback_kind(args[6].get<uint32_t>()));
820 if(events->discarded) events->discarded();
825 const bitfield<4, 1> presentation_feedback_kind::vsync{0x1};
826 const bitfield<4, 1> presentation_feedback_kind::hw_clock{0x2};
827 const bitfield<4, 1> presentation_feedback_kind::hw_completion{0x4};
828 const bitfield<4, 1> presentation_feedback_kind::zero_copy{0x8};
831 viewporter_t::viewporter_t(
const proxy_t &p)
836 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
837 set_destroy_opcode(0U);
839 set_interface(&viewporter_interface);
844 viewporter_t::viewporter_t()
846 set_interface(&viewporter_interface);
851 viewporter_t::viewporter_t(wp_viewporter *p, wrapper_type t)
852 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
855 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
856 set_destroy_opcode(0U);
858 set_interface(&viewporter_interface);
863 viewporter_t::viewporter_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
864 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
865 set_interface(&viewporter_interface);
872 return {*
this, construct_proxy_wrapper_tag()};
875 const std::string viewporter_t::interface_name =
"wp_viewporter";
877 viewporter_t::operator wp_viewporter*()
const
879 return reinterpret_cast<wp_viewporter*
> (c_ptr());
884 proxy_t p = marshal_constructor(1U, &viewport_interface,
nullptr, surface.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(surface.
c_ptr()) :
nullptr);
888 int viewporter_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
894 viewport_t::viewport_t(
const proxy_t &p)
899 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
900 set_destroy_opcode(0U);
902 set_interface(&viewport_interface);
907 viewport_t::viewport_t()
909 set_interface(&viewport_interface);
914 viewport_t::viewport_t(wp_viewport *p, wrapper_type t)
915 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
918 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
919 set_destroy_opcode(0U);
921 set_interface(&viewport_interface);
926 viewport_t::viewport_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
927 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
928 set_interface(&viewport_interface);
935 return {*
this, construct_proxy_wrapper_tag()};
938 const std::string viewport_t::interface_name =
"wp_viewport";
940 viewport_t::operator wp_viewport*()
const
942 return reinterpret_cast<wp_viewport*
> (c_ptr());
947 marshal(1U, x, y, width, height);
952 marshal(2U, width, height);
955 int viewport_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
961 xdg_wm_base_t::xdg_wm_base_t(
const proxy_t &p)
966 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
967 set_destroy_opcode(0U);
969 set_interface(&xdg_wm_base_interface);
974 xdg_wm_base_t::xdg_wm_base_t()
976 set_interface(&xdg_wm_base_interface);
981 xdg_wm_base_t::xdg_wm_base_t(xdg_wm_base *p, wrapper_type t)
982 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
985 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
986 set_destroy_opcode(0U);
988 set_interface(&xdg_wm_base_interface);
993 xdg_wm_base_t::xdg_wm_base_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
994 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
995 set_interface(&xdg_wm_base_interface);
1002 return {*
this, construct_proxy_wrapper_tag()};
1005 const std::string xdg_wm_base_t::interface_name =
"xdg_wm_base";
1007 xdg_wm_base_t::operator xdg_wm_base*()
const
1009 return reinterpret_cast<xdg_wm_base*
> (c_ptr());
1014 proxy_t p = marshal_constructor(1U, &xdg_positioner_interface,
nullptr);
1020 proxy_t p = marshal_constructor(2U, &xdg_surface_interface,
nullptr, surface.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(surface.
c_ptr()) :
nullptr);
1026 marshal(3U, serial);
1031 return std::static_pointer_cast<events_t>(get_events())->ping;
1034 int xdg_wm_base_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1036 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1040 if(events->ping) events->ping(args[0].get<uint32_t>());
1047 xdg_positioner_t::xdg_positioner_t(
const proxy_t &p)
1052 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1053 set_destroy_opcode(0U);
1055 set_interface(&xdg_positioner_interface);
1060 xdg_positioner_t::xdg_positioner_t()
1062 set_interface(&xdg_positioner_interface);
1067 xdg_positioner_t::xdg_positioner_t(xdg_positioner *p, wrapper_type t)
1068 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1071 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1072 set_destroy_opcode(0U);
1074 set_interface(&xdg_positioner_interface);
1079 xdg_positioner_t::xdg_positioner_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1080 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1081 set_interface(&xdg_positioner_interface);
1088 return {*
this, construct_proxy_wrapper_tag()};
1091 const std::string xdg_positioner_t::interface_name =
"xdg_positioner";
1093 xdg_positioner_t::operator xdg_positioner*()
const
1095 return reinterpret_cast<xdg_positioner*
> (c_ptr());
1100 marshal(1U, width, height);
1105 marshal(2U, x, y, width, height);
1110 marshal(3U,
static_cast<uint32_t
>(anchor));
1115 marshal(4U,
static_cast<uint32_t
>(gravity));
1120 marshal(5U,
static_cast<uint32_t
>(constraint_adjustment));
1139 marshal(8U, parent_width, parent_height);
1148 marshal(9U, serial);
1155 int xdg_positioner_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1162 const bitfield<2147483648, 8> xdg_positioner_constraint_adjustment::none{0};
1163 const bitfield<2147483648, 8> xdg_positioner_constraint_adjustment::slide_x{1};
1164 const bitfield<2147483648, 8> xdg_positioner_constraint_adjustment::slide_y{2};
1165 const bitfield<2147483648, 8> xdg_positioner_constraint_adjustment::flip_x{4};
1166 const bitfield<2147483648, 8> xdg_positioner_constraint_adjustment::flip_y{8};
1167 const bitfield<2147483648, 8> xdg_positioner_constraint_adjustment::resize_x{16};
1168 const bitfield<2147483648, 8> xdg_positioner_constraint_adjustment::resize_y{32};
1171 xdg_surface_t::xdg_surface_t(
const proxy_t &p)
1176 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1177 set_destroy_opcode(0U);
1179 set_interface(&xdg_surface_interface);
1184 xdg_surface_t::xdg_surface_t()
1186 set_interface(&xdg_surface_interface);
1191 xdg_surface_t::xdg_surface_t(xdg_surface *p, wrapper_type t)
1192 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1195 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1196 set_destroy_opcode(0U);
1198 set_interface(&xdg_surface_interface);
1203 xdg_surface_t::xdg_surface_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1204 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1205 set_interface(&xdg_surface_interface);
1212 return {*
this, construct_proxy_wrapper_tag()};
1215 const std::string xdg_surface_t::interface_name =
"xdg_surface";
1217 xdg_surface_t::operator xdg_surface*()
const
1219 return reinterpret_cast<xdg_surface*
> (c_ptr());
1224 proxy_t p = marshal_constructor(1U, &xdg_toplevel_interface,
nullptr);
1230 proxy_t p = marshal_constructor(2U, &xdg_popup_interface,
nullptr, parent.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(parent.
c_ptr()) :
nullptr, positioner.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(positioner.
c_ptr()) :
nullptr);
1236 marshal(3U, x, y, width, height);
1241 marshal(4U, serial);
1246 return std::static_pointer_cast<events_t>(get_events())->configure;
1249 int xdg_surface_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1251 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1255 if(events->configure) events->configure(args[0].get<uint32_t>());
1262 xdg_toplevel_t::xdg_toplevel_t(
const proxy_t &p)
1267 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1268 set_destroy_opcode(0U);
1270 set_interface(&xdg_toplevel_interface);
1275 xdg_toplevel_t::xdg_toplevel_t()
1277 set_interface(&xdg_toplevel_interface);
1282 xdg_toplevel_t::xdg_toplevel_t(xdg_toplevel *p, wrapper_type t)
1283 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1286 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1287 set_destroy_opcode(0U);
1289 set_interface(&xdg_toplevel_interface);
1294 xdg_toplevel_t::xdg_toplevel_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1295 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1296 set_interface(&xdg_toplevel_interface);
1303 return {*
this, construct_proxy_wrapper_tag()};
1306 const std::string xdg_toplevel_t::interface_name =
"xdg_toplevel";
1308 xdg_toplevel_t::operator xdg_toplevel*()
const
1310 return reinterpret_cast<xdg_toplevel*
> (c_ptr());
1325 marshal(3U, app_id);
1330 marshal(4U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial, x, y);
1335 marshal(5U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial);
1340 marshal(6U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial,
static_cast<uint32_t
>(edges));
1345 marshal(7U, width, height);
1350 marshal(8U, width, height);
1380 return std::static_pointer_cast<events_t>(get_events())->configure;
1385 return std::static_pointer_cast<events_t>(get_events())->close;
1390 return std::static_pointer_cast<events_t>(get_events())->configure_bounds;
1393 int xdg_toplevel_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1395 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1399 if(events->configure) events->configure(args[0].get<int32_t>(), args[1].get<int32_t>(), args[2].get<array_t>());
1402 if(events->close) events->close();
1405 if(events->configure_bounds) events->configure_bounds(args[0].get<int32_t>(), args[1].get<int32_t>());
1411 const bitfield<2147483648, 11> xdg_toplevel_resize_edge::none{0};
1412 const bitfield<2147483648, 11> xdg_toplevel_resize_edge::top{1};
1413 const bitfield<2147483648, 11> xdg_toplevel_resize_edge::bottom{2};
1414 const bitfield<2147483648, 11> xdg_toplevel_resize_edge::left{4};
1415 const bitfield<2147483648, 11> xdg_toplevel_resize_edge::top_left{5};
1416 const bitfield<2147483648, 11> xdg_toplevel_resize_edge::bottom_left{6};
1417 const bitfield<2147483648, 11> xdg_toplevel_resize_edge::right{8};
1418 const bitfield<2147483648, 11> xdg_toplevel_resize_edge::top_right{9};
1419 const bitfield<2147483648, 11> xdg_toplevel_resize_edge::bottom_right{10};
1423 xdg_popup_t::xdg_popup_t(
const proxy_t &p)
1428 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1429 set_destroy_opcode(0U);
1431 set_interface(&xdg_popup_interface);
1436 xdg_popup_t::xdg_popup_t()
1438 set_interface(&xdg_popup_interface);
1443 xdg_popup_t::xdg_popup_t(xdg_popup *p, wrapper_type t)
1444 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1447 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1448 set_destroy_opcode(0U);
1450 set_interface(&xdg_popup_interface);
1455 xdg_popup_t::xdg_popup_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1456 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1457 set_interface(&xdg_popup_interface);
1464 return {*
this, construct_proxy_wrapper_tag()};
1467 const std::string xdg_popup_t::interface_name =
"xdg_popup";
1469 xdg_popup_t::operator xdg_popup*()
const
1471 return reinterpret_cast<xdg_popup*
> (c_ptr());
1476 marshal(1U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial);
1481 marshal(2U, positioner.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(positioner.
c_ptr()) :
nullptr, token);
1490 return std::static_pointer_cast<events_t>(get_events())->configure;
1495 return std::static_pointer_cast<events_t>(get_events())->popup_done;
1500 return std::static_pointer_cast<events_t>(get_events())->repositioned;
1503 int xdg_popup_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1505 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1509 if(events->configure) events->configure(args[0].get<int32_t>(), args[1].get<int32_t>(), args[2].get<int32_t>(), args[3].get<int32_t>());
1512 if(events->popup_done) events->popup_done();
1515 if(events->repositioned) events->repositioned(args[0].get<uint32_t>());
presentation time feedback event
std::function< void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, presentation_feedback_kind)> & on_presented()
the content update was displayed
std::function< void()> & on_discarded()
the content update was not displayed
std::function< void(output_t)> & on_sync_output()
presentation synchronized to this output
timed presentation related wl_surface requests
std::function< void(uint32_t)> & on_clock_id()
clock ID for timestamps
presentation_feedback_t feedback(surface_t const &surface)
request presentation feedback information
Represents a protocol object on the client side.
bool proxy_has_object() const
Check whether this wrapper actually wraps an object.
uint32_t get_version() const
Get the protocol object version of a proxy object.
wrapper_type get_wrapper_type() const
Get the type of a proxy object.
wl_proxy * c_ptr() const
Get a pointer to the underlying C struct.
crop and scale interface to a wl_surface
void set_source(double x, double y, double width, double height)
set the source rectangle for cropping
void set_destination(int32_t width, int32_t height)
set the surface size for scaling
surface cropping and scaling
viewport_t get_viewport(surface_t const &surface)
extend surface interface for crop and scale
short-lived, popup surfaces for menus
std::function< void(int32_t, int32_t, int32_t, int32_t)> & on_configure()
configure the popup surface
std::function< void()> & on_popup_done()
popup interaction is done
void grab(seat_t const &seat, uint32_t serial)
make the popup take an explicit grab
void reposition(xdg_positioner_t const &positioner, uint32_t token)
recalculate the popup's location
std::function< void(uint32_t)> & on_repositioned()
signal the completion of a repositioned request
bool can_reposition() const
Check whether the reposition function is available with the currently bound version of the protocol.
static constexpr std::uint32_t reposition_since_version
Minimum protocol version required for the reposition function.
static constexpr std::uint32_t set_parent_configure_since_version
Minimum protocol version required for the set_parent_configure function.
void set_parent_configure(uint32_t serial)
set parent configure this is a response to
void set_reactive()
continuously reconstrain the surface
void set_offset(int32_t x, int32_t y)
set surface position offset
static constexpr std::uint32_t set_parent_size_since_version
Minimum protocol version required for the set_parent_size function.
static constexpr std::uint32_t set_reactive_since_version
Minimum protocol version required for the set_reactive function.
void set_constraint_adjustment(xdg_positioner_constraint_adjustment const &constraint_adjustment)
set the adjustment to be done when constrained
bool can_set_reactive() const
Check whether the set_reactive function is available with the currently bound version of the protocol...
void set_size(int32_t width, int32_t height)
set the size of the to-be positioned rectangle
void set_gravity(xdg_positioner_gravity const &gravity)
set child surface gravity
bool can_set_parent_configure() const
Check whether the set_parent_configure function is available with the currently bound version of the ...
void set_anchor(xdg_positioner_anchor const &anchor)
set anchor rectangle anchor
void set_anchor_rect(int32_t x, int32_t y, int32_t width, int32_t height)
set the anchor rectangle within the parent surface
bool can_set_parent_size() const
Check whether the set_parent_size function is available with the currently bound version of the proto...
void set_parent_size(int32_t parent_width, int32_t parent_height)
desktop user interface surface base interface
std::function< void(uint32_t)> & on_configure()
suggest a surface change
xdg_toplevel_t get_toplevel()
assign the xdg_toplevel surface role
void ack_configure(uint32_t serial)
ack a configure event
xdg_popup_t get_popup(xdg_surface_t const &parent, xdg_positioner_t const &positioner)
assign the xdg_popup surface role
void set_window_geometry(int32_t x, int32_t y, int32_t width, int32_t height)
set the new window geometry
void set_title(std::string const &title)
set surface title
std::function< void()> & on_close()
surface wants to be closed
void show_window_menu(seat_t const &seat, uint32_t serial, int32_t x, int32_t y)
show the window menu
void set_min_size(int32_t width, int32_t height)
set the minimum size
std::function< void(int32_t, int32_t, array_t)> & on_configure()
suggest a surface change
void set_maximized()
maximize the window
std::function< void(int32_t, int32_t)> & on_configure_bounds()
recommended window geometry bounds
void set_max_size(int32_t width, int32_t height)
set the maximum size
void set_minimized()
set the window as minimized
void set_fullscreen(output_t const &output)
set the window as fullscreen on an output
void move(seat_t const &seat, uint32_t serial)
start an interactive move
void set_app_id(std::string const &app_id)
set application ID
void unset_fullscreen()
unset the window as fullscreen
void set_parent(xdg_toplevel_t const &parent)
set the parent of this surface
void resize(seat_t const &seat, uint32_t serial, xdg_toplevel_resize_edge const &edges)
start an interactive resize
void unset_maximized()
unmaximize the window
create desktop-style surfaces
std::function< void(uint32_t)> & on_ping()
check if the client is alive
void pong(uint32_t serial)
respond to a ping event
xdg_positioner_t create_positioner()
create a positioner object
xdg_surface_t get_xdg_surface(surface_t const &surface)
create a shell surface from a surface
bitmask of flags in presented event