18 struct wl_data_source;
19 struct wl_data_device;
20 struct wl_data_device_manager;
22 struct wl_shell_surface;
30 struct wl_subcompositor;
40 enum class shm_error : uint32_t;
41 enum class shm_format : uint32_t;
44 enum class data_offer_error : uint32_t;
46 enum class data_source_error : uint32_t;
48 enum class data_device_error : uint32_t;
49 class data_device_manager_t;
50 struct data_device_manager_dnd_action;
52 enum class shell_error : uint32_t;
53 class shell_surface_t;
54 struct shell_surface_resize;
55 struct shell_surface_transient;
56 enum class shell_surface_fullscreen_method : uint32_t;
58 enum class surface_error : uint32_t;
60 struct seat_capability;
62 enum class pointer_error : uint32_t;
63 enum class pointer_button_state : uint32_t;
64 enum class pointer_axis : uint32_t;
65 enum class pointer_axis_source : uint32_t;
67 enum class keyboard_keymap_format : uint32_t;
68 enum class keyboard_key_state : uint32_t;
71 enum class output_subpixel : uint32_t;
72 struct output_transform;
75 class subcompositor_t;
76 enum class subcompositor_error : uint32_t;
78 enum class subsurface_error : uint32_t;
82 extern const wl_interface display_interface;
83 extern const wl_interface registry_interface;
84 extern const wl_interface callback_interface;
85 extern const wl_interface compositor_interface;
86 extern const wl_interface shm_pool_interface;
87 extern const wl_interface shm_interface;
88 extern const wl_interface buffer_interface;
89 extern const wl_interface data_offer_interface;
90 extern const wl_interface data_source_interface;
91 extern const wl_interface data_device_interface;
92 extern const wl_interface data_device_manager_interface;
93 extern const wl_interface shell_interface;
94 extern const wl_interface shell_surface_interface;
95 extern const wl_interface surface_interface;
96 extern const wl_interface seat_interface;
97 extern const wl_interface pointer_interface;
98 extern const wl_interface keyboard_interface;
99 extern const wl_interface touch_interface;
100 extern const wl_interface output_interface;
101 extern const wl_interface region_interface;
102 extern const wl_interface subcompositor_interface;
103 extern const wl_interface subsurface_interface;
133 struct events_t :
public detail::events_base_t
135 std::function<void(uint32_t, std::string, uint32_t)> global;
136 std::function<void(uint32_t)> global_remove;
139 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
150 static const std::string interface_name;
152 operator wl_registry*()
const;
164 proxy_t bind(uint32_t name,
proxy_t &interface, uint32_t version);
168 static constexpr std::uint32_t bind_since_version = 1;
182 std::function<void(uint32_t, std::string, uint32_t)> &on_global();
199 std::function<void(uint32_t)> &on_global_remove();
213 struct events_t :
public detail::events_base_t
215 std::function<void(uint32_t)> done;
218 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
229 static const std::string interface_name;
231 operator wl_callback*()
const;
239 std::function<void(uint32_t)> &on_done();
254 struct events_t :
public detail::events_base_t
258 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
269 static const std::string interface_name;
271 operator wl_compositor*()
const;
283 static constexpr std::uint32_t create_surface_since_version = 1;
295 static constexpr std::uint32_t create_region_since_version = 1;
314 struct events_t :
public detail::events_base_t
318 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
329 static const std::string interface_name;
331 operator wl_shm_pool*()
const;
354 buffer_t create_buffer(int32_t offset, int32_t width, int32_t height, int32_t stride, shm_format format);
358 static constexpr std::uint32_t create_buffer_since_version = 1;
369 void resize(int32_t size);
373 static constexpr std::uint32_t resize_since_version = 1;
394 struct events_t :
public detail::events_base_t
396 std::function<void(shm_format)> format;
399 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
401 shm_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag);
408 shm_t proxy_create_wrapper();
410 static const std::string interface_name;
412 operator wl_shm*()
const;
430 static constexpr std::uint32_t create_pool_since_version = 1;
440 std::function<void(shm_format)> &on_format();
449 enum class shm_error : uint32_t
472 enum class shm_format : uint32_t
485 xrgb4444 = 0x32315258,
487 xbgr4444 = 0x32314258,
489 rgbx4444 = 0x32315852,
491 bgrx4444 = 0x32315842,
493 argb4444 = 0x32315241,
495 abgr4444 = 0x32314241,
497 rgba4444 = 0x32314152,
499 bgra4444 = 0x32314142,
501 xrgb1555 = 0x35315258,
503 xbgr1555 = 0x35314258,
505 rgbx5551 = 0x35315852,
507 bgrx5551 = 0x35315842,
509 argb1555 = 0x35315241,
511 abgr1555 = 0x35314241,
513 rgba5551 = 0x35314152,
515 bgra5551 = 0x35314142,
525 xbgr8888 = 0x34324258,
527 rgbx8888 = 0x34325852,
529 bgrx8888 = 0x34325842,
531 abgr8888 = 0x34324241,
533 rgba8888 = 0x34324152,
535 bgra8888 = 0x34324142,
537 xrgb2101010 = 0x30335258,
539 xbgr2101010 = 0x30334258,
541 rgbx1010102 = 0x30335852,
543 bgrx1010102 = 0x30335842,
545 argb2101010 = 0x30335241,
547 abgr2101010 = 0x30334241,
549 rgba1010102 = 0x30334152,
551 bgra1010102 = 0x30334142,
605 struct events_t :
public detail::events_base_t
607 std::function<void()> release;
610 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
621 static const std::string interface_name;
623 operator wl_buffer*()
const;
641 std::function<void()> &on_release();
659 struct events_t :
public detail::events_base_t
661 std::function<void(std::string)> offer;
662 std::function<void(data_device_manager_dnd_action)> source_actions;
663 std::function<void(data_device_manager_dnd_action)> action;
666 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
677 static const std::string interface_name;
679 operator wl_data_offer*()
const;
701 void accept(uint32_t serial, std::string mime_type);
705 static constexpr std::uint32_t accept_since_version = 1;
728 void receive(std::string mime_type,
int fd);
732 static constexpr std::uint32_t receive_since_version = 1;
753 static constexpr std::uint32_t finish_since_version = 3;
758 bool can_finish()
const;
801 static constexpr std::uint32_t set_actions_since_version = 3;
806 bool can_set_actions()
const;
815 std::function<void(std::string)> &on_offer();
825 std::function<void(data_device_manager_dnd_action)> &on_source_actions();
867 std::function<void(data_device_manager_dnd_action)> &on_action();
874 enum class data_offer_error : uint32_t
879 invalid_action_mask = 1,
898 struct events_t :
public detail::events_base_t
900 std::function<void(std::string)> target;
901 std::function<void(std::string, int)> send;
902 std::function<void()> cancelled;
903 std::function<void()> dnd_drop_performed;
904 std::function<void()> dnd_finished;
905 std::function<void(data_device_manager_dnd_action)> action;
908 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
919 static const std::string interface_name;
921 operator wl_data_source*()
const;
931 void offer(std::string mime_type);
935 static constexpr std::uint32_t offer_since_version = 1;
959 static constexpr std::uint32_t set_actions_since_version = 3;
964 bool can_set_actions()
const;
975 std::function<void(std::string)> &on_target();
986 std::function<void(std::string, int)> &on_send();
1012 std::function<void()> &on_cancelled();
1027 std::function<void()> &on_dnd_drop_performed();
1039 std::function<void()> &on_dnd_finished();
1071 std::function<void(data_device_manager_dnd_action)> &on_action();
1078 enum class data_source_error : uint32_t
1081 invalid_action_mask = 0,
1099 struct events_t :
public detail::events_base_t
1101 std::function<void(data_offer_t)> data_offer;
1102 std::function<void(uint32_t, surface_t, double, double, data_offer_t)> enter;
1103 std::function<void()> leave;
1104 std::function<void(uint32_t, double, double)> motion;
1105 std::function<void()> drop;
1106 std::function<void(data_offer_t)> selection;
1109 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
1120 static const std::string interface_name;
1122 operator wl_data_device*()
const;
1163 static constexpr std::uint32_t start_drag_since_version = 1;
1179 static constexpr std::uint32_t set_selection_since_version = 1;
1190 static constexpr std::uint32_t release_since_version = 2;
1195 bool can_release()
const;
1209 std::function<void(data_offer_t)> &on_data_offer();
1224 std::function<void(uint32_t, surface_t, double, double, data_offer_t)> &on_enter();
1233 std::function<void()> &on_leave();
1246 std::function<void(uint32_t, double, double)> &on_motion();
1265 std::function<void()> &on_drop();
1283 std::function<void(data_offer_t)> &on_selection();
1290 enum class data_device_error : uint32_t
1314 struct events_t :
public detail::events_base_t
1318 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
1329 static const std::string interface_name;
1331 operator wl_data_device_manager*()
const;
1343 static constexpr std::uint32_t create_data_source_since_version = 1;
1356 static constexpr std::uint32_t get_data_device_since_version = 1;
1390 : detail::bitfield<3, 6>(b) {}
1392 : detail::bitfield<3, 6>(value) {}
1394 static const detail::bitfield<3, 6>
none;
1396 static const detail::bitfield<3, 6>
copy;
1398 static const detail::bitfield<3, 6>
move;
1400 static const detail::bitfield<3, 6>
ask;
1419 struct events_t :
public detail::events_base_t
1423 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
1425 shell_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag);
1432 shell_t proxy_create_wrapper();
1434 static const std::string interface_name;
1436 operator wl_shell*()
const;
1453 static constexpr std::uint32_t get_shell_surface_since_version = 1;
1460 enum class shell_error : uint32_t
1485 struct events_t :
public detail::events_base_t
1487 std::function<void(uint32_t)> ping;
1488 std::function<void(shell_surface_resize, int32_t, int32_t)> configure;
1489 std::function<void()> popup_done;
1492 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
1503 static const std::string interface_name;
1505 operator wl_shell_surface*()
const;
1514 void pong(uint32_t serial);
1518 static constexpr std::uint32_t pong_since_version = 1;
1531 void move(
seat_t seat, uint32_t serial);
1535 static constexpr std::uint32_t move_since_version = 1;
1553 static constexpr std::uint32_t resize_since_version = 1;
1562 void set_toplevel();
1566 static constexpr std::uint32_t set_toplevel_since_version = 1;
1587 static constexpr std::uint32_t set_transient_since_version = 1;
1629 void set_fullscreen(shell_surface_fullscreen_method method, uint32_t framerate,
output_t output);
1633 static constexpr std::uint32_t set_fullscreen_since_version = 1;
1668 static constexpr std::uint32_t set_popup_since_version = 1;
1693 void set_maximized(
output_t output);
1697 static constexpr std::uint32_t set_maximized_since_version = 1;
1711 void set_title(std::string title);
1715 static constexpr std::uint32_t set_title_since_version = 1;
1728 void set_class(std::string class_);
1732 static constexpr std::uint32_t set_class_since_version = 1;
1741 std::function<void(uint32_t)> &on_ping();
1767 std::function<void(shell_surface_resize, int32_t, int32_t)> &on_configure();
1776 std::function<void()> &on_popup_done();
1791 : detail::bitfield<4, 8>(b) {}
1793 : detail::bitfield<4, 8>(value) {}
1795 static const detail::bitfield<4, 8>
none;
1797 static const detail::bitfield<4, 8>
top;
1801 static const detail::bitfield<4, 8>
left;
1807 static const detail::bitfield<4, 8>
right;
1823 : detail::bitfield<1, 9>(b) {}
1825 : detail::bitfield<1, 9>(value) {}
1837 enum class shell_surface_fullscreen_method : uint32_t
1896 struct events_t :
public detail::events_base_t
1898 std::function<void(output_t)> enter;
1899 std::function<void(output_t)> leave;
1902 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
1913 static const std::string interface_name;
1915 operator wl_surface*()
const;
1963 void attach(
buffer_t buffer, int32_t x, int32_t y);
1967 static constexpr std::uint32_t attach_since_version = 1;
1998 void damage(int32_t x, int32_t y, int32_t width, int32_t height);
2002 static constexpr std::uint32_t damage_since_version = 1;
2045 static constexpr std::uint32_t frame_since_version = 1;
2076 void set_opaque_region(
region_t region);
2080 static constexpr std::uint32_t set_opaque_region_since_version = 1;
2109 void set_input_region(
region_t region);
2113 static constexpr std::uint32_t set_input_region_since_version = 1;
2140 static constexpr std::uint32_t commit_since_version = 1;
2180 static constexpr std::uint32_t set_buffer_transform_since_version = 2;
2185 bool can_set_buffer_transform()
const;
2215 void set_buffer_scale(int32_t scale);
2219 static constexpr std::uint32_t set_buffer_scale_since_version = 3;
2224 bool can_set_buffer_scale()
const;
2266 void damage_buffer(int32_t x, int32_t y, int32_t width, int32_t height);
2270 static constexpr std::uint32_t damage_buffer_since_version = 4;
2275 bool can_damage_buffer()
const;
2287 std::function<void(output_t)> &on_enter();
2297 std::function<void(output_t)> &on_leave();
2306 enum class surface_error : uint32_t
2311 invalid_transform = 1
2326 struct events_t :
public detail::events_base_t
2328 std::function<void(seat_capability)> capabilities;
2329 std::function<void(std::string)> name;
2332 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
2334 seat_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag);
2341 seat_t proxy_create_wrapper();
2343 static const std::string interface_name;
2345 operator wl_seat*()
const;
2363 static constexpr std::uint32_t get_pointer_since_version = 1;
2381 static constexpr std::uint32_t get_keyboard_since_version = 1;
2399 static constexpr std::uint32_t get_touch_since_version = 1;
2411 static constexpr std::uint32_t release_since_version = 5;
2416 bool can_release()
const;
2447 std::function<void(seat_capability)> &on_capabilities();
2457 std::function<void(std::string)> &on_name();
2470 : detail::bitfield<3, 12>(b) {}
2472 : detail::bitfield<3, 12>(value) {}
2478 static const detail::bitfield<3, 12>
touch;
2497 struct events_t :
public detail::events_base_t
2499 std::function<void(uint32_t, surface_t, double, double)> enter;
2500 std::function<void(uint32_t, surface_t)> leave;
2501 std::function<void(uint32_t, double, double)> motion;
2502 std::function<void(uint32_t, uint32_t, uint32_t, pointer_button_state)> button;
2503 std::function<void(uint32_t, pointer_axis, double)> axis;
2504 std::function<void()> frame;
2505 std::function<void(pointer_axis_source)> axis_source;
2506 std::function<void(uint32_t, pointer_axis)> axis_stop;
2507 std::function<void(pointer_axis, int32_t)> axis_discrete;
2510 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
2521 static const std::string interface_name;
2523 operator wl_pointer*()
const;
2564 void set_cursor(uint32_t serial,
surface_t surface, int32_t hotspot_x, int32_t hotspot_y);
2568 static constexpr std::uint32_t set_cursor_since_version = 1;
2583 static constexpr std::uint32_t release_since_version = 3;
2588 bool can_release()
const;
2604 std::function<void(uint32_t, surface_t, double, double)> &on_enter();
2617 std::function<void(uint32_t, surface_t)> &on_leave();
2629 std::function<void(uint32_t, double, double)> &on_motion();
2653 std::function<void(uint32_t, uint32_t, uint32_t, pointer_button_state)> &on_button();
2678 std::function<void(uint32_t, pointer_axis, double)> &on_axis();
2718 std::function<void()> &on_frame();
2750 std::function<void(pointer_axis_source)> &on_axis_source();
2772 std::function<void(uint32_t, pointer_axis)> &on_axis_stop();
2806 std::function<void(pointer_axis, int32_t)> &on_axis_discrete();
2813 enum class pointer_error : uint32_t
2825 enum class pointer_button_state : uint32_t
2838 enum class pointer_axis : uint32_t
2841 vertical_scroll = 0,
2843 horizontal_scroll = 1
2866 enum class pointer_axis_source : uint32_t
2888 struct events_t :
public detail::events_base_t
2890 std::function<void(keyboard_keymap_format, int, uint32_t)> keymap;
2891 std::function<void(uint32_t, surface_t, array_t)> enter;
2892 std::function<void(uint32_t, surface_t)> leave;
2893 std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> key;
2894 std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> modifiers;
2895 std::function<void(int32_t, int32_t)> repeat_info;
2898 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
2909 static const std::string interface_name;
2911 operator wl_keyboard*()
const;
2920 static constexpr std::uint32_t release_since_version = 3;
2925 bool can_release()
const;
2936 std::function<void(keyboard_keymap_format, int, uint32_t)> &on_keymap();
2947 std::function<void(uint32_t, surface_t, array_t)> &on_enter();
2960 std::function<void(uint32_t, surface_t)> &on_leave();
2973 std::function<void(uint32_t, uint32_t, uint32_t, keyboard_key_state)> &on_key();
2986 std::function<void(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)> &on_modifiers();
3006 std::function<void(int32_t, int32_t)> &on_repeat_info();
3016 enum class keyboard_keymap_format : uint32_t
3029 enum class keyboard_key_state : uint32_t
3053 struct events_t :
public detail::events_base_t
3055 std::function<void(uint32_t, uint32_t, surface_t, int32_t, double, double)> down;
3056 std::function<void(uint32_t, uint32_t, int32_t)> up;
3057 std::function<void(uint32_t, int32_t, double, double)> motion;
3058 std::function<void()> frame;
3059 std::function<void()> cancel;
3060 std::function<void(int32_t, double, double)> shape;
3061 std::function<void(int32_t, double)> orientation;
3064 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
3066 touch_t(
proxy_t const &wrapped_proxy, construct_proxy_wrapper_tag);
3073 touch_t proxy_create_wrapper();
3075 static const std::string interface_name;
3077 operator wl_touch*()
const;
3086 static constexpr std::uint32_t release_since_version = 3;
3091 bool can_release()
const;
3107 std::function<void(uint32_t, uint32_t, surface_t, int32_t, double, double)> &on_down();
3119 std::function<void(uint32_t, uint32_t, int32_t)> &on_up();
3130 std::function<void(uint32_t, int32_t, double, double)> &on_motion();
3144 std::function<void()> &on_frame();
3156 std::function<void()> &on_cancel();
3190 std::function<void(int32_t, double, double)> &on_shape();
3221 std::function<void(int32_t, double)> &on_orientation();
3239 struct events_t :
public detail::events_base_t
3241 std::function<void(int32_t, int32_t, int32_t, int32_t, output_subpixel, std::string, std::string, output_transform)> geometry;
3242 std::function<void(output_mode, int32_t, int32_t, int32_t)> mode;
3243 std::function<void()> done;
3244 std::function<void(int32_t)> scale;
3247 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
3258 static const std::string interface_name;
3260 operator wl_output*()
const;
3272 static constexpr std::uint32_t release_since_version = 3;
3277 bool can_release()
const;
3294 std::function<void(int32_t, int32_t, int32_t, int32_t, output_subpixel, std::string, std::string, output_transform)> &on_geometry();
3317 std::function<void(output_mode, int32_t, int32_t, int32_t)> &on_mode();
3328 std::function<void()> &on_done();
3353 std::function<void(int32_t)> &on_scale();
3363 enum class output_subpixel : uint32_t
3397 : detail::bitfield<3, 20>(b) {}
3399 : detail::bitfield<3, 20>(value) {}
3403 static const detail::bitfield<3, 20>
_90;
3405 static const detail::bitfield<3, 20>
_180;
3407 static const detail::bitfield<3, 20>
_270;
3427 : detail::bitfield<2, 21>(b) {}
3429 : detail::bitfield<2, 21>(value) {}
3448 struct events_t :
public detail::events_base_t
3452 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
3463 static const std::string interface_name;
3465 operator wl_region*()
const;
3476 void add(int32_t x, int32_t y, int32_t width, int32_t height);
3480 static constexpr std::uint32_t add_since_version = 1;
3491 void subtract(int32_t x, int32_t y, int32_t width, int32_t height);
3495 static constexpr std::uint32_t subtract_since_version = 1;
3526 struct events_t :
public detail::events_base_t
3530 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
3541 static const std::string interface_name;
3543 operator wl_subcompositor*()
const;
3571 static constexpr std::uint32_t get_subsurface_since_version = 1;
3578 enum class subcompositor_error : uint32_t
3641 struct events_t :
public detail::events_base_t
3645 static int dispatcher(uint32_t opcode, std::vector<detail::any> args, std::shared_ptr<detail::events_base_t> e);
3656 static const std::string interface_name;
3658 operator wl_subsurface*()
const;
3682 void set_position(int32_t x, int32_t y);
3686 static constexpr std::uint32_t set_position_since_version = 1;
3712 static constexpr std::uint32_t place_above_since_version = 1;
3725 static constexpr std::uint32_t place_below_since_version = 1;
3748 static constexpr std::uint32_t set_sync_since_version = 1;
3777 static constexpr std::uint32_t set_desync_since_version = 1;
3784 enum class subsurface_error : uint32_t
static const detail::bitfield< 4, 8 > bottom
bottom edge
static const detail::bitfield< 2, 21 > current
indicates this is the current mode
static const detail::bitfield< 3, 6 > ask
ask action
static const detail::bitfield< 4, 8 > top
top edge
desktop-style metadata interface
static const detail::bitfield< 1, 9 > inactive
do not set keyboard focus
details of transient behaviour
static const detail::bitfield< 3, 6 > none
no action
static const detail::bitfield< 3, 12 > pointer
the seat has pointer devices
static const detail::bitfield< 3, 6 > copy
copy action
static const detail::bitfield< 4, 8 > right
right edge
static const detail::bitfield< 4, 8 > top_left
top and left edges
static const detail::bitfield< 4, 8 > bottom_right
bottom and right edges
static const detail::bitfield< 3, 12 > keyboard
the seat has one or more keyboards
sub-surface interface to a wl_surface
Represents a protocol object on the client side.
static const detail::bitfield< 3, 12 > touch
the seat has touch devices
static const detail::bitfield< 4, 8 > top_right
top and right edges
create desktop-style surfaces
static const detail::bitfield< 4, 8 > left
left edge
static const detail::bitfield< 4, 8 > bottom_left
bottom and left edges
static const detail::bitfield< 4, 8 > none
no edge
static const detail::bitfield< 2, 21 > preferred
indicates this is the preferred mode
static const detail::bitfield< 3, 6 > move
move action