1#include <wayland-client-protocol-extra.hpp>
3using namespace wayland;
4using namespace wayland::detail;
6const wl_interface* presentation_interface_destroy_request[0] = {
9const wl_interface* presentation_interface_feedback_request[2] = {
11 &presentation_feedback_interface,
14const wl_interface* presentation_interface_clock_id_event[1] = {
18const wl_message presentation_interface_requests[2] = {
22 presentation_interface_destroy_request,
27 presentation_interface_feedback_request,
31const wl_message presentation_interface_events[1] = {
35 presentation_interface_clock_id_event,
39const wl_interface wayland::detail::presentation_interface =
44 presentation_interface_requests,
46 presentation_interface_events,
49const wl_interface* presentation_feedback_interface_sync_output_event[1] = {
53const wl_interface* presentation_feedback_interface_presented_event[7] = {
63const wl_interface* presentation_feedback_interface_discarded_event[0] = {
66const wl_message presentation_feedback_interface_requests[0] = {
69const 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,
87const wl_interface wayland::detail::presentation_feedback_interface =
89 "wp_presentation_feedback",
92 presentation_feedback_interface_requests,
94 presentation_feedback_interface_events,
97const wl_interface* viewporter_interface_destroy_request[0] = {
100const wl_interface* viewporter_interface_get_viewport_request[2] = {
105const wl_message viewporter_interface_requests[2] = {
109 viewporter_interface_destroy_request,
114 viewporter_interface_get_viewport_request,
118const wl_message viewporter_interface_events[0] = {
121const wl_interface wayland::detail::viewporter_interface =
126 viewporter_interface_requests,
128 viewporter_interface_events,
131const wl_interface* viewport_interface_destroy_request[0] = {
134const wl_interface* viewport_interface_set_source_request[4] = {
141const wl_interface* viewport_interface_set_destination_request[2] = {
146const wl_message viewport_interface_requests[3] = {
150 viewport_interface_destroy_request,
155 viewport_interface_set_source_request,
160 viewport_interface_set_destination_request,
164const wl_message viewport_interface_events[0] = {
167const wl_interface wayland::detail::viewport_interface =
172 viewport_interface_requests,
174 viewport_interface_events,
177const wl_interface* xdg_wm_base_interface_destroy_request[0] = {
180const wl_interface* xdg_wm_base_interface_create_positioner_request[1] = {
181 &xdg_positioner_interface,
184const wl_interface* xdg_wm_base_interface_get_xdg_surface_request[2] = {
185 &xdg_surface_interface,
189const wl_interface* xdg_wm_base_interface_pong_request[1] = {
193const wl_interface* xdg_wm_base_interface_ping_event[1] = {
197const 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,
220const wl_message xdg_wm_base_interface_events[1] = {
224 xdg_wm_base_interface_ping_event,
228const wl_interface wayland::detail::xdg_wm_base_interface =
233 xdg_wm_base_interface_requests,
235 xdg_wm_base_interface_events,
238const wl_interface* xdg_positioner_interface_destroy_request[0] = {
241const wl_interface* xdg_positioner_interface_set_size_request[2] = {
246const wl_interface* xdg_positioner_interface_set_anchor_rect_request[4] = {
253const wl_interface* xdg_positioner_interface_set_anchor_request[1] = {
257const wl_interface* xdg_positioner_interface_set_gravity_request[1] = {
261const wl_interface* xdg_positioner_interface_set_constraint_adjustment_request[1] = {
265const wl_interface* xdg_positioner_interface_set_offset_request[2] = {
270const wl_interface* xdg_positioner_interface_set_reactive_request[0] = {
273const wl_interface* xdg_positioner_interface_set_parent_size_request[2] = {
278const wl_interface* xdg_positioner_interface_set_parent_configure_request[1] = {
282const 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,
335const wl_message xdg_positioner_interface_events[0] = {
338const wl_interface wayland::detail::xdg_positioner_interface =
343 xdg_positioner_interface_requests,
345 xdg_positioner_interface_events,
348const wl_interface* xdg_surface_interface_destroy_request[0] = {
351const wl_interface* xdg_surface_interface_get_toplevel_request[1] = {
352 &xdg_toplevel_interface,
355const wl_interface* xdg_surface_interface_get_popup_request[3] = {
356 &xdg_popup_interface,
357 &xdg_surface_interface,
358 &xdg_positioner_interface,
361const wl_interface* xdg_surface_interface_set_window_geometry_request[4] = {
368const wl_interface* xdg_surface_interface_ack_configure_request[1] = {
372const wl_interface* xdg_surface_interface_configure_event[1] = {
376const 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,
404const wl_message xdg_surface_interface_events[1] = {
408 xdg_surface_interface_configure_event,
412const wl_interface wayland::detail::xdg_surface_interface =
417 xdg_surface_interface_requests,
419 xdg_surface_interface_events,
422const wl_interface* xdg_toplevel_interface_destroy_request[0] = {
425const wl_interface* xdg_toplevel_interface_set_parent_request[1] = {
426 &xdg_toplevel_interface,
429const wl_interface* xdg_toplevel_interface_set_title_request[1] = {
433const wl_interface* xdg_toplevel_interface_set_app_id_request[1] = {
437const wl_interface* xdg_toplevel_interface_show_window_menu_request[4] = {
444const wl_interface* xdg_toplevel_interface_move_request[2] = {
449const wl_interface* xdg_toplevel_interface_resize_request[3] = {
455const wl_interface* xdg_toplevel_interface_set_max_size_request[2] = {
460const wl_interface* xdg_toplevel_interface_set_min_size_request[2] = {
465const wl_interface* xdg_toplevel_interface_set_maximized_request[0] = {
468const wl_interface* xdg_toplevel_interface_unset_maximized_request[0] = {
471const wl_interface* xdg_toplevel_interface_set_fullscreen_request[1] = {
475const wl_interface* xdg_toplevel_interface_unset_fullscreen_request[0] = {
478const wl_interface* xdg_toplevel_interface_set_minimized_request[0] = {
481const wl_interface* xdg_toplevel_interface_configure_event[3] = {
487const wl_interface* xdg_toplevel_interface_close_event[0] = {
490const wl_interface* xdg_toplevel_interface_configure_bounds_event[2] = {
495const 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,
568const 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,
586const wl_interface wayland::detail::xdg_toplevel_interface =
591 xdg_toplevel_interface_requests,
593 xdg_toplevel_interface_events,
596const wl_interface* xdg_popup_interface_destroy_request[0] = {
599const wl_interface* xdg_popup_interface_grab_request[2] = {
604const wl_interface* xdg_popup_interface_reposition_request[2] = {
605 &xdg_positioner_interface,
609const wl_interface* xdg_popup_interface_configure_event[4] = {
616const wl_interface* xdg_popup_interface_popup_done_event[0] = {
619const wl_interface* xdg_popup_interface_repositioned_event[1] = {
623const 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,
641const 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,
659const wl_interface wayland::detail::xdg_popup_interface =
664 xdg_popup_interface_requests,
666 xdg_popup_interface_events,
669presentation_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);
682presentation_t::presentation_t()
684 set_interface(&presentation_interface);
689presentation_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);
701presentation_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()};
713const std::string presentation_t::interface_name =
"wp_presentation";
715presentation_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);
729 return std::static_pointer_cast<events_t>(get_events())->clock_id;
732int presentation_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
734 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
738 if(events->clock_id) events->clock_id(args[0].get<uint32_t>());
745presentation_feedback_t::presentation_feedback_t(
const proxy_t &p)
750 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
752 set_interface(&presentation_feedback_interface);
757presentation_feedback_t::presentation_feedback_t()
759 set_interface(&presentation_feedback_interface);
764presentation_feedback_t::presentation_feedback_t(wp_presentation_feedback *p, wrapper_type t)
765 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
768 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
770 set_interface(&presentation_feedback_interface);
775presentation_feedback_t::presentation_feedback_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
776 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
777 set_interface(&presentation_feedback_interface);
784 return {*
this, construct_proxy_wrapper_tag()};
787const std::string presentation_feedback_t::interface_name =
"wp_presentation_feedback";
789presentation_feedback_t::operator wp_presentation_feedback*()
const
791 return reinterpret_cast<wp_presentation_feedback*
> (c_ptr());
796 return std::static_pointer_cast<events_t>(get_events())->sync_output;
801 return std::static_pointer_cast<events_t>(get_events())->presented;
806 return std::static_pointer_cast<events_t>(get_events())->discarded;
809int presentation_feedback_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
811 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
815 if(events->sync_output) events->sync_output(
output_t(args[0].get<proxy_t>()));
818 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>()));
821 if(events->discarded) events->discarded();
826const bitfield<4, 1> presentation_feedback_kind::vsync{0x1};
827const bitfield<4, 1> presentation_feedback_kind::hw_clock{0x2};
828const bitfield<4, 1> presentation_feedback_kind::hw_completion{0x4};
829const bitfield<4, 1> presentation_feedback_kind::zero_copy{0x8};
832viewporter_t::viewporter_t(
const proxy_t &p)
837 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
838 set_destroy_opcode(0U);
840 set_interface(&viewporter_interface);
845viewporter_t::viewporter_t()
847 set_interface(&viewporter_interface);
852viewporter_t::viewporter_t(wp_viewporter *p, wrapper_type t)
853 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
856 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
857 set_destroy_opcode(0U);
859 set_interface(&viewporter_interface);
864viewporter_t::viewporter_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
865 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
866 set_interface(&viewporter_interface);
873 return {*
this, construct_proxy_wrapper_tag()};
876const std::string viewporter_t::interface_name =
"wp_viewporter";
878viewporter_t::operator wp_viewporter*()
const
880 return reinterpret_cast<wp_viewporter*
> (c_ptr());
885 proxy_t p = marshal_constructor(1U, &viewport_interface,
nullptr, surface.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(surface.
c_ptr()) :
nullptr);
890int viewporter_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
896viewport_t::viewport_t(
const proxy_t &p)
901 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
902 set_destroy_opcode(0U);
904 set_interface(&viewport_interface);
909viewport_t::viewport_t()
911 set_interface(&viewport_interface);
916viewport_t::viewport_t(wp_viewport *p, wrapper_type t)
917 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
920 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
921 set_destroy_opcode(0U);
923 set_interface(&viewport_interface);
928viewport_t::viewport_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
929 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
930 set_interface(&viewport_interface);
937 return {*
this, construct_proxy_wrapper_tag()};
940const std::string viewport_t::interface_name =
"wp_viewport";
942viewport_t::operator wp_viewport*()
const
944 return reinterpret_cast<wp_viewport*
> (c_ptr());
949 marshal(1U, x, y, width, height);
955 marshal(2U, width, height);
959int viewport_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
965xdg_wm_base_t::xdg_wm_base_t(
const proxy_t &p)
970 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
971 set_destroy_opcode(0U);
973 set_interface(&xdg_wm_base_interface);
978xdg_wm_base_t::xdg_wm_base_t()
980 set_interface(&xdg_wm_base_interface);
985xdg_wm_base_t::xdg_wm_base_t(xdg_wm_base *p, wrapper_type t)
986 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
989 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
990 set_destroy_opcode(0U);
992 set_interface(&xdg_wm_base_interface);
997xdg_wm_base_t::xdg_wm_base_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
998 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
999 set_interface(&xdg_wm_base_interface);
1006 return {*
this, construct_proxy_wrapper_tag()};
1009const std::string xdg_wm_base_t::interface_name =
"xdg_wm_base";
1011xdg_wm_base_t::operator xdg_wm_base*()
const
1013 return reinterpret_cast<xdg_wm_base*
> (c_ptr());
1018 proxy_t p = marshal_constructor(1U, &xdg_positioner_interface,
nullptr);
1025 proxy_t p = marshal_constructor(2U, &xdg_surface_interface,
nullptr, surface.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(surface.
c_ptr()) :
nullptr);
1032 marshal(3U, serial);
1038 return std::static_pointer_cast<events_t>(get_events())->ping;
1041int xdg_wm_base_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1043 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1047 if(events->ping) events->ping(args[0].get<uint32_t>());
1054xdg_positioner_t::xdg_positioner_t(
const proxy_t &p)
1059 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1060 set_destroy_opcode(0U);
1062 set_interface(&xdg_positioner_interface);
1067xdg_positioner_t::xdg_positioner_t()
1069 set_interface(&xdg_positioner_interface);
1074xdg_positioner_t::xdg_positioner_t(xdg_positioner *p, wrapper_type t)
1075 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1078 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1079 set_destroy_opcode(0U);
1081 set_interface(&xdg_positioner_interface);
1086xdg_positioner_t::xdg_positioner_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1087 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1088 set_interface(&xdg_positioner_interface);
1095 return {*
this, construct_proxy_wrapper_tag()};
1098const std::string xdg_positioner_t::interface_name =
"xdg_positioner";
1100xdg_positioner_t::operator xdg_positioner*()
const
1102 return reinterpret_cast<xdg_positioner*
> (c_ptr());
1107 marshal(1U, width, height);
1113 marshal(2U, x, y, width, height);
1119 marshal(3U,
static_cast<uint32_t
>(anchor));
1125 marshal(4U,
static_cast<uint32_t
>(gravity));
1131 marshal(5U,
static_cast<uint32_t
>(constraint_adjustment));
1154 marshal(8U, parent_width, parent_height);
1165 marshal(9U, serial);
1174int xdg_positioner_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1181const bitfield<6, 8> xdg_positioner_constraint_adjustment::none{0};
1182const bitfield<6, 8> xdg_positioner_constraint_adjustment::slide_x{1};
1183const bitfield<6, 8> xdg_positioner_constraint_adjustment::slide_y{2};
1184const bitfield<6, 8> xdg_positioner_constraint_adjustment::flip_x{4};
1185const bitfield<6, 8> xdg_positioner_constraint_adjustment::flip_y{8};
1186const bitfield<6, 8> xdg_positioner_constraint_adjustment::resize_x{16};
1187const bitfield<6, 8> xdg_positioner_constraint_adjustment::resize_y{32};
1190xdg_surface_t::xdg_surface_t(
const proxy_t &p)
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);
1203xdg_surface_t::xdg_surface_t()
1205 set_interface(&xdg_surface_interface);
1210xdg_surface_t::xdg_surface_t(xdg_surface *p, wrapper_type t)
1211 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1214 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1215 set_destroy_opcode(0U);
1217 set_interface(&xdg_surface_interface);
1222xdg_surface_t::xdg_surface_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1223 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1224 set_interface(&xdg_surface_interface);
1231 return {*
this, construct_proxy_wrapper_tag()};
1234const std::string xdg_surface_t::interface_name =
"xdg_surface";
1236xdg_surface_t::operator xdg_surface*()
const
1238 return reinterpret_cast<xdg_surface*
> (c_ptr());
1243 proxy_t p = marshal_constructor(1U, &xdg_toplevel_interface,
nullptr);
1250 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);
1257 marshal(3U, x, y, width, height);
1263 marshal(4U, serial);
1269 return std::static_pointer_cast<events_t>(get_events())->configure;
1272int xdg_surface_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1274 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1278 if(events->configure) events->configure(args[0].get<uint32_t>());
1285xdg_toplevel_t::xdg_toplevel_t(
const proxy_t &p)
1290 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1291 set_destroy_opcode(0U);
1293 set_interface(&xdg_toplevel_interface);
1298xdg_toplevel_t::xdg_toplevel_t()
1300 set_interface(&xdg_toplevel_interface);
1305xdg_toplevel_t::xdg_toplevel_t(xdg_toplevel *p, wrapper_type t)
1306 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1309 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1310 set_destroy_opcode(0U);
1312 set_interface(&xdg_toplevel_interface);
1317xdg_toplevel_t::xdg_toplevel_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1318 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1319 set_interface(&xdg_toplevel_interface);
1326 return {*
this, construct_proxy_wrapper_tag()};
1329const std::string xdg_toplevel_t::interface_name =
"xdg_toplevel";
1331xdg_toplevel_t::operator xdg_toplevel*()
const
1333 return reinterpret_cast<xdg_toplevel*
> (c_ptr());
1350 marshal(3U, app_id);
1356 marshal(4U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial, x, y);
1362 marshal(5U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial);
1368 marshal(6U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial,
static_cast<uint32_t
>(edges));
1374 marshal(7U, width, height);
1380 marshal(8U, width, height);
1416 return std::static_pointer_cast<events_t>(get_events())->configure;
1421 return std::static_pointer_cast<events_t>(get_events())->close;
1426 return std::static_pointer_cast<events_t>(get_events())->configure_bounds;
1429int xdg_toplevel_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1431 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1435 if(events->configure) events->configure(args[0].get<int32_t>(), args[1].get<int32_t>(), args[2].get<array_t>());
1438 if(events->close) events->close();
1441 if(events->configure_bounds) events->configure_bounds(args[0].get<int32_t>(), args[1].get<int32_t>());
1447const bitfield<4, 11> xdg_toplevel_resize_edge::none{0};
1448const bitfield<4, 11> xdg_toplevel_resize_edge::top{1};
1449const bitfield<4, 11> xdg_toplevel_resize_edge::bottom{2};
1450const bitfield<4, 11> xdg_toplevel_resize_edge::left{4};
1451const bitfield<4, 11> xdg_toplevel_resize_edge::top_left{5};
1452const bitfield<4, 11> xdg_toplevel_resize_edge::bottom_left{6};
1453const bitfield<4, 11> xdg_toplevel_resize_edge::right{8};
1454const bitfield<4, 11> xdg_toplevel_resize_edge::top_right{9};
1455const bitfield<4, 11> xdg_toplevel_resize_edge::bottom_right{10};
1459xdg_popup_t::xdg_popup_t(
const proxy_t &p)
1464 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1465 set_destroy_opcode(0U);
1467 set_interface(&xdg_popup_interface);
1472xdg_popup_t::xdg_popup_t()
1474 set_interface(&xdg_popup_interface);
1479xdg_popup_t::xdg_popup_t(xdg_popup *p, wrapper_type t)
1480 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1483 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1484 set_destroy_opcode(0U);
1486 set_interface(&xdg_popup_interface);
1491xdg_popup_t::xdg_popup_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1492 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1493 set_interface(&xdg_popup_interface);
1500 return {*
this, construct_proxy_wrapper_tag()};
1503const std::string xdg_popup_t::interface_name =
"xdg_popup";
1505xdg_popup_t::operator xdg_popup*()
const
1507 return reinterpret_cast<xdg_popup*
> (c_ptr());
1512 marshal(1U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial);
1518 marshal(2U, positioner.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(positioner.
c_ptr()) :
nullptr, token);
1529 return std::static_pointer_cast<events_t>(get_events())->configure;
1534 return std::static_pointer_cast<events_t>(get_events())->popup_done;
1539 return std::static_pointer_cast<events_t>(get_events())->repositioned;
1542int xdg_popup_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1544 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1548 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>());
1551 if(events->popup_done) events->popup_done();
1554 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