1#include <wayland-client-protocol-extra.hpp>
3using namespace wayland;
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_message xdg_toplevel_interface_requests[14] = {
494 xdg_toplevel_interface_destroy_request,
499 xdg_toplevel_interface_set_parent_request,
504 xdg_toplevel_interface_set_title_request,
509 xdg_toplevel_interface_set_app_id_request,
514 xdg_toplevel_interface_show_window_menu_request,
519 xdg_toplevel_interface_move_request,
524 xdg_toplevel_interface_resize_request,
529 xdg_toplevel_interface_set_max_size_request,
534 xdg_toplevel_interface_set_min_size_request,
539 xdg_toplevel_interface_set_maximized_request,
544 xdg_toplevel_interface_unset_maximized_request,
549 xdg_toplevel_interface_set_fullscreen_request,
554 xdg_toplevel_interface_unset_fullscreen_request,
559 xdg_toplevel_interface_set_minimized_request,
563const wl_message xdg_toplevel_interface_events[2] = {
567 xdg_toplevel_interface_configure_event,
572 xdg_toplevel_interface_close_event,
576const wl_interface wayland::detail::xdg_toplevel_interface =
581 xdg_toplevel_interface_requests,
583 xdg_toplevel_interface_events,
586const wl_interface* xdg_popup_interface_destroy_request[0] = {
589const wl_interface* xdg_popup_interface_grab_request[2] = {
594const wl_interface* xdg_popup_interface_reposition_request[2] = {
595 &xdg_positioner_interface,
599const wl_interface* xdg_popup_interface_configure_event[4] = {
606const wl_interface* xdg_popup_interface_popup_done_event[0] = {
609const wl_interface* xdg_popup_interface_repositioned_event[1] = {
613const wl_message xdg_popup_interface_requests[3] = {
617 xdg_popup_interface_destroy_request,
622 xdg_popup_interface_grab_request,
627 xdg_popup_interface_reposition_request,
631const wl_message xdg_popup_interface_events[3] = {
635 xdg_popup_interface_configure_event,
640 xdg_popup_interface_popup_done_event,
645 xdg_popup_interface_repositioned_event,
649const wl_interface wayland::detail::xdg_popup_interface =
654 xdg_popup_interface_requests,
656 xdg_popup_interface_events,
659presentation_t::presentation_t(
const proxy_t &p)
662 if(proxy_has_object() && get_wrapper_type() == wrapper_type::standard)
664 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
665 set_destroy_opcode(0U);
667 set_interface(&presentation_interface);
672presentation_t::presentation_t()
674 set_interface(&presentation_interface);
679presentation_t::presentation_t(wp_presentation *p, wrapper_type t)
680 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
681 if(proxy_has_object() && get_wrapper_type() == wrapper_type::standard)
683 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
684 set_destroy_opcode(0U);
686 set_interface(&presentation_interface);
691presentation_t::presentation_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
692 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
693 set_interface(&presentation_interface);
700 return {*
this, construct_proxy_wrapper_tag()};
703const std::string presentation_t::interface_name =
"wp_presentation";
705presentation_t::operator wp_presentation*()
const
707 return reinterpret_cast<wp_presentation*
> (c_ptr());
712 proxy_t p = marshal_constructor(1U, &presentation_feedback_interface, surface.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(surface.
c_ptr()) :
nullptr,
nullptr);
718 return std::static_pointer_cast<events_t>(get_events())->clock_id;
721int presentation_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
723 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
727 if(events->clock_id) events->clock_id(args[0].get<uint32_t>());
734presentation_feedback_t::presentation_feedback_t(
const proxy_t &p)
739 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
741 set_interface(&presentation_feedback_interface);
746presentation_feedback_t::presentation_feedback_t()
748 set_interface(&presentation_feedback_interface);
753presentation_feedback_t::presentation_feedback_t(wp_presentation_feedback *p, wrapper_type t)
754 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
757 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
759 set_interface(&presentation_feedback_interface);
764presentation_feedback_t::presentation_feedback_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
765 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
766 set_interface(&presentation_feedback_interface);
773 return {*
this, construct_proxy_wrapper_tag()};
776const std::string presentation_feedback_t::interface_name =
"wp_presentation_feedback";
778presentation_feedback_t::operator wp_presentation_feedback*()
const
780 return reinterpret_cast<wp_presentation_feedback*
> (c_ptr());
785 return std::static_pointer_cast<events_t>(get_events())->sync_output;
790 return std::static_pointer_cast<events_t>(get_events())->presented;
795 return std::static_pointer_cast<events_t>(get_events())->discarded;
798int presentation_feedback_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
800 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
804 if(events->sync_output) events->sync_output(
output_t(args[0].get<proxy_t>()));
807 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>()));
810 if(events->discarded) events->discarded();
821viewporter_t::viewporter_t(
const proxy_t &p)
826 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
827 set_destroy_opcode(0U);
829 set_interface(&viewporter_interface);
834viewporter_t::viewporter_t()
836 set_interface(&viewporter_interface);
841viewporter_t::viewporter_t(wp_viewporter *p, wrapper_type t)
842 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
845 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
846 set_destroy_opcode(0U);
848 set_interface(&viewporter_interface);
853viewporter_t::viewporter_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
854 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
855 set_interface(&viewporter_interface);
862 return {*
this, construct_proxy_wrapper_tag()};
865const std::string viewporter_t::interface_name =
"wp_viewporter";
867viewporter_t::operator wp_viewporter*()
const
869 return reinterpret_cast<wp_viewporter*
> (c_ptr());
874 proxy_t p = marshal_constructor(1U, &viewport_interface,
nullptr, surface.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(surface.
c_ptr()) :
nullptr);
878int viewporter_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
884viewport_t::viewport_t(
const proxy_t &p)
889 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
890 set_destroy_opcode(0U);
892 set_interface(&viewport_interface);
897viewport_t::viewport_t()
899 set_interface(&viewport_interface);
904viewport_t::viewport_t(wp_viewport *p, wrapper_type t)
905 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
908 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
909 set_destroy_opcode(0U);
911 set_interface(&viewport_interface);
916viewport_t::viewport_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
917 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
918 set_interface(&viewport_interface);
925 return {*
this, construct_proxy_wrapper_tag()};
928const std::string viewport_t::interface_name =
"wp_viewport";
930viewport_t::operator wp_viewport*()
const
932 return reinterpret_cast<wp_viewport*
> (c_ptr());
937 marshal(1U, x, y, width, height);
942 marshal(2U, width, height);
945int viewport_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
951xdg_wm_base_t::xdg_wm_base_t(
const proxy_t &p)
956 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
957 set_destroy_opcode(0U);
959 set_interface(&xdg_wm_base_interface);
964xdg_wm_base_t::xdg_wm_base_t()
966 set_interface(&xdg_wm_base_interface);
971xdg_wm_base_t::xdg_wm_base_t(xdg_wm_base *p, wrapper_type t)
972 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
975 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
976 set_destroy_opcode(0U);
978 set_interface(&xdg_wm_base_interface);
983xdg_wm_base_t::xdg_wm_base_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
984 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
985 set_interface(&xdg_wm_base_interface);
992 return {*
this, construct_proxy_wrapper_tag()};
995const std::string xdg_wm_base_t::interface_name =
"xdg_wm_base";
997xdg_wm_base_t::operator xdg_wm_base*()
const
999 return reinterpret_cast<xdg_wm_base*
> (c_ptr());
1004 proxy_t p = marshal_constructor(1U, &xdg_positioner_interface,
nullptr);
1010 proxy_t p = marshal_constructor(2U, &xdg_surface_interface,
nullptr, surface.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(surface.
c_ptr()) :
nullptr);
1016 marshal(3U, serial);
1021 return std::static_pointer_cast<events_t>(get_events())->ping;
1024int xdg_wm_base_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1026 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1030 if(events->ping) events->ping(args[0].get<uint32_t>());
1037xdg_positioner_t::xdg_positioner_t(
const proxy_t &p)
1042 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1043 set_destroy_opcode(0U);
1045 set_interface(&xdg_positioner_interface);
1050xdg_positioner_t::xdg_positioner_t()
1052 set_interface(&xdg_positioner_interface);
1057xdg_positioner_t::xdg_positioner_t(xdg_positioner *p, wrapper_type t)
1058 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1061 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1062 set_destroy_opcode(0U);
1064 set_interface(&xdg_positioner_interface);
1069xdg_positioner_t::xdg_positioner_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1070 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1071 set_interface(&xdg_positioner_interface);
1078 return {*
this, construct_proxy_wrapper_tag()};
1081const std::string xdg_positioner_t::interface_name =
"xdg_positioner";
1083xdg_positioner_t::operator xdg_positioner*()
const
1085 return reinterpret_cast<xdg_positioner*
> (c_ptr());
1090 marshal(1U, width, height);
1095 marshal(2U, x, y, width, height);
1100 marshal(3U,
static_cast<uint32_t
>(anchor));
1105 marshal(4U,
static_cast<uint32_t
>(gravity));
1110 marshal(5U,
static_cast<uint32_t
>(constraint_adjustment));
1129 marshal(8U, parent_width, parent_height);
1138 marshal(9U, serial);
1145int xdg_positioner_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1152const bitfield<6, 8> xdg_positioner_constraint_adjustment::none{0};
1153const bitfield<6, 8> xdg_positioner_constraint_adjustment::slide_x{1};
1154const bitfield<6, 8> xdg_positioner_constraint_adjustment::slide_y{2};
1155const bitfield<6, 8> xdg_positioner_constraint_adjustment::flip_x{4};
1156const bitfield<6, 8> xdg_positioner_constraint_adjustment::flip_y{8};
1157const bitfield<6, 8> xdg_positioner_constraint_adjustment::resize_x{16};
1158const bitfield<6, 8> xdg_positioner_constraint_adjustment::resize_y{32};
1161xdg_surface_t::xdg_surface_t(
const proxy_t &p)
1166 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1167 set_destroy_opcode(0U);
1169 set_interface(&xdg_surface_interface);
1174xdg_surface_t::xdg_surface_t()
1176 set_interface(&xdg_surface_interface);
1181xdg_surface_t::xdg_surface_t(xdg_surface *p, wrapper_type t)
1182 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1185 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1186 set_destroy_opcode(0U);
1188 set_interface(&xdg_surface_interface);
1193xdg_surface_t::xdg_surface_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1194 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1195 set_interface(&xdg_surface_interface);
1202 return {*
this, construct_proxy_wrapper_tag()};
1205const std::string xdg_surface_t::interface_name =
"xdg_surface";
1207xdg_surface_t::operator xdg_surface*()
const
1209 return reinterpret_cast<xdg_surface*
> (c_ptr());
1214 proxy_t p = marshal_constructor(1U, &xdg_toplevel_interface,
nullptr);
1220 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);
1226 marshal(3U, x, y, width, height);
1231 marshal(4U, serial);
1236 return std::static_pointer_cast<events_t>(get_events())->configure;
1239int xdg_surface_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1241 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1245 if(events->configure) events->configure(args[0].get<uint32_t>());
1252xdg_toplevel_t::xdg_toplevel_t(
const proxy_t &p)
1257 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1258 set_destroy_opcode(0U);
1260 set_interface(&xdg_toplevel_interface);
1265xdg_toplevel_t::xdg_toplevel_t()
1267 set_interface(&xdg_toplevel_interface);
1272xdg_toplevel_t::xdg_toplevel_t(xdg_toplevel *p, wrapper_type t)
1273 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
1276 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1277 set_destroy_opcode(0U);
1279 set_interface(&xdg_toplevel_interface);
1284xdg_toplevel_t::xdg_toplevel_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1285 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1286 set_interface(&xdg_toplevel_interface);
1293 return {*
this, construct_proxy_wrapper_tag()};
1296const std::string xdg_toplevel_t::interface_name =
"xdg_toplevel";
1298xdg_toplevel_t::operator xdg_toplevel*()
const
1300 return reinterpret_cast<xdg_toplevel*
> (c_ptr());
1315 marshal(3U, app_id);
1320 marshal(4U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial, x, y);
1325 marshal(5U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial);
1330 marshal(6U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial,
static_cast<uint32_t
>(edges));
1335 marshal(7U, width, height);
1340 marshal(8U, width, height);
1370 return std::static_pointer_cast<events_t>(get_events())->configure;
1375 return std::static_pointer_cast<events_t>(get_events())->close;
1378int xdg_toplevel_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1380 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1384 if(events->configure) events->configure(args[0].get<int32_t>(), args[1].get<int32_t>(), args[2].get<array_t>());
1387 if(events->close) events->close();
1392const bitfield<4, 10> xdg_toplevel_resize_edge::none{0};
1393const bitfield<4, 10> xdg_toplevel_resize_edge::top{1};
1394const bitfield<4, 10> xdg_toplevel_resize_edge::bottom{2};
1395const bitfield<4, 10> xdg_toplevel_resize_edge::left{4};
1396const bitfield<4, 10> xdg_toplevel_resize_edge::top_left{5};
1397const bitfield<4, 10> xdg_toplevel_resize_edge::bottom_left{6};
1398const bitfield<4, 10> xdg_toplevel_resize_edge::right{8};
1399const bitfield<4, 10> xdg_toplevel_resize_edge::top_right{9};
1400const bitfield<4, 10> xdg_toplevel_resize_edge::bottom_right{10};
1404xdg_popup_t::xdg_popup_t(
const proxy_t &p)
1409 set_events(std::shared_ptr<detail::events_base_t>(
new events_t), dispatcher);
1410 set_destroy_opcode(0U);
1412 set_interface(&xdg_popup_interface);
1417xdg_popup_t::xdg_popup_t()
1419 set_interface(&xdg_popup_interface);
1424xdg_popup_t::xdg_popup_t(xdg_popup *p, wrapper_type t)
1425 :
proxy_t(reinterpret_cast<wl_proxy*> (p), t){
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);
1436xdg_popup_t::xdg_popup_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag )
1437 :
proxy_t(wrapped_proxy, construct_proxy_wrapper_tag()){
1438 set_interface(&xdg_popup_interface);
1445 return {*
this, construct_proxy_wrapper_tag()};
1448const std::string xdg_popup_t::interface_name =
"xdg_popup";
1450xdg_popup_t::operator xdg_popup*()
const
1452 return reinterpret_cast<xdg_popup*
> (c_ptr());
1457 marshal(1U, seat.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(seat.
c_ptr()) :
nullptr, serial);
1462 marshal(2U, positioner.
proxy_has_object() ?
reinterpret_cast<wl_object*
>(positioner.
c_ptr()) :
nullptr, token);
1471 return std::static_pointer_cast<events_t>(get_events())->configure;
1476 return std::static_pointer_cast<events_t>(get_events())->popup_done;
1481 return std::static_pointer_cast<events_t>(get_events())->repositioned;
1484int xdg_popup_t::dispatcher(uint32_t opcode,
const std::vector<any>& args,
const std::shared_ptr<detail::events_base_t>& e)
1486 std::shared_ptr<events_t> events = std::static_pointer_cast<events_t>(e);
1490 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>());
1493 if(events->popup_done) events->popup_done();
1496 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
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
static const detail::bitfield< 4, 1 > hw_clock
hardware provided the presentation timestamp
static const detail::bitfield< 4, 1 > hw_completion
hardware signalled the start of the presentation
static const detail::bitfield< 4, 1 > vsync
presentation was vsync'd
static const detail::bitfield< 4, 1 > zero_copy
presentation was done zero-copy