]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
wayland-client: Complete the binding
authorCorentin Noël <corentin.noel@collabora.com>
Thu, 12 Oct 2023 18:39:19 +0000 (20:39 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 15 Oct 2023 16:46:20 +0000 (18:46 +0200)
Increase the coverage of the binding.

vapi/wayland-client.vapi

index 8bcea2ceeb23b03e6b52a77e158bbdb649f9bf22..55cb3fb1f01f20f0cbe50693e01ba93cfb4f20e3 100644 (file)
 
 [CCode (cprefix = "wl_", lower_case_cprefix = "wl_", cheader_filename = "wayland-client.h")]
 namespace Wl {
+       [SimpleType]
+       [IntegerType (rank = 6)]
+       [CCode (cname = "wl_fixed_t", lower_case_cprefix = "wl_fixed_", default_value = "0", cheader_filename = "wayland-util.h", has_type_id = false)]
+       public struct fixed_t {
+               [CCode (cname = "wl_fixed_from_double")]
+               public fixed_t.from_double (double d);
+               [CCode (cname = "wl_fixed_from_int")]
+               public fixed_t.from_int (int i);
+               public double to_double ();
+               public int to_int ();
+       }
+
+       [Compact]
+       [CCode (cname = "struct wl_array", free_function = "wl_array_release")]
+       public class Array {
+               public size_t size;
+               public size_t alloc;
+               public void* data;
+               public void init ();
+               public void* add (size_t size);
+               public int copy (Wl.Array source);
+       }
+
+       [Compact]
+       [CCode (cname = "struct wl_buffer", free_function = "wl_buffer_destroy")]
+       public class Buffer {
+               public int add_listener (Wl.BufferListener listener, void* data);
+               public void set_user_data (void* user_data);
+               public void* get_user_data ();
+               public uint32 get_version ();
+       }
+
        [Compact]
        [CCode (cname = "struct wl_display", free_function = "wl_display_disconnect")]
        public class Display {
@@ -36,6 +68,9 @@ namespace Wl {
                public Display.connect (string name);
                [CCode (cname = "wl_display_connect_to_fd")]
                public Display.connect_to_fd (int fd);
+               public void set_user_data (void* user_data);
+               public void* get_user_data ();
+               public uint32 get_version ();
                public int get_fd ();
                public int dispatch ();
                public int dispatch_queue (Wl.EventQueue queue);
@@ -51,8 +86,9 @@ namespace Wl {
                public int prepare_read ();
                public void cancel_read ();
                public int read_events ();
-               public Wl.Callback sync ();
+               public unowned Wl.Callback sync ();
                public Wl.Registry get_registry ();
+               public int add_listener (Wl.DisplayListener listener, void* data);
        }
 
        [Compact]
@@ -77,25 +113,38 @@ namespace Wl {
        [Compact]
        [CCode (cname = "struct wl_data_offer", free_function = "wl_data_offer_destroy")]
        public class DataOffer {
+               public int add_listener (Wl.DataOfferListener listener, void* data);
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
+               public void accept (uint32 serial, string mime_type);
+               public void receive (string mime_type, uint32 fd);
+               public void finish ();
+               public void set_actions (uint32 dnd_actions, uint32 preferred_action);
        }
 
        [Compact]
        [CCode (cname = "struct wl_data_source", free_function = "wl_data_source_destroy")]
        public class DataSource {
+               public int add_listener (Wl.DataSourceListener listener, void* data);
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
+               public void offer (string mime_type);
+               public void set_actions (uint32 dnd_actions);
        }
 
        [Compact]
        [CCode (cname = "struct wl_data_device", free_function = "wl_data_device_destroy")]
        public class DataDevice {
+               public int add_listener (Wl.DataDeviceListener listener, void* data);
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
+               public void start_drag (Wl.DataSource source, Wl.Surface origin, Wl.Surface icon, uint32 serial);
+               public void set_selection (Wl.DataSource source, uint32 serial);
+               [DestroysInstance]
+               public void release ();
        }
 
        [Compact]
@@ -104,6 +153,8 @@ namespace Wl {
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
+               public Wl.DataSource create_data_source ();
+               public Wl.DataDevice get_data_device (Wl.Seat seat);
        }
 
        [Compact]
@@ -112,41 +163,70 @@ namespace Wl {
        }
 
        [Compact]
-       [CCode (cname = "struct wl_proxy", free_function = "wl_proxy_destroy")]
-       public class Proxy {
+       [CCode (cname = "struct wl_interface")]
+       public class Interface {
+               public unowned string name;
+               public int version;
+               [CCode (array_length_cname = "method_count")]
+               public unowned Wl.Message[] methods;
+               [CCode (array_length_cname = "event_count")]
+               public unowned Wl.Message[] events;
+       }
+
+       [Compact]
+       [CCode (cname = "struct wl_keyboard", free_function = "wl_keyboard_destroy")]
+       public class Keyboard : Wl.Proxy {
+               public int add_listener (Wl.KeyboardListener listener, void* data);
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
-               public uint32 get_id ();
-               public void set_tag ([CCode (array_length = false)] string[] tag);
+               [DestroysInstance]
+               public void release ();
+       }
+
+       [Compact]
+       [CCode (cname = "struct wl_message")]
+       public class Message {
+               public unowned string name;
+               public unowned string signature;
                [CCode (array_length = false)]
-               public unowned string[] get_tag ();
-               public unowned string get_class ();
+               public unowned Wl.Interface?[] types;
        }
 
        [Compact]
-       [CCode (cname = "struct wl_surface", free_function = "wl_surface_destroy")]
-       public class Surface : Wl.Proxy {
+       [CCode (cname = "struct wl_output", free_function = "wl_output_destroy")]
+       public class Output : Wl.Proxy {
+               public int add_listener (Wl.OutputListener listener, void* data);
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
-               public void attach (Wl.Buffer buffer, int32 x, int32 y);
-               public void damage (int32 x, int32 y, int32 width, int32 height);
-               public unowned Wl.Callback frame ();
-               public void set_opaque_region (Wl.Region? region);
-               public void set_input_region (Wl.Region? region);
-               public void commit ();
-               public void set_buffer_transform (int32 transform);
-               public void set_buffer_scale (int32 transform);
-               public void damage_buffer (int32 x, int32 y, int32 width, int32 height);
+               [DestroysInstance]
+               public void release ();
        }
 
        [Compact]
-       [CCode (cname = "struct wl_buffer", free_function = "wl_buffer_destroy")]
-       public class Buffer : Wl.Proxy {
+       [CCode (cname = "struct wl_pointer", free_function = "wl_pointer_destroy")]
+       public class Pointer : Wl.Proxy {
+               public int add_listener (Wl.PointerListener listener, void* data);
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
+               public void set_cursor (uint32 serial, Wl.Surface surface, int32 hotspot_x, int32 hotspot_y);
+               [DestroysInstance]
+               public void release ();
+       }
+
+       [Compact]
+       [CCode (cname = "struct wl_proxy", free_function = "wl_proxy_destroy")]
+       public class Proxy {
+               public void set_user_data (void* user_data);
+               public void* get_user_data ();
+               public uint32 get_version ();
+               public uint32 get_id ();
+               public void set_tag ([CCode (array_length = false)] string[] tag);
+               [CCode (array_length = false)]
+               public unowned string[] get_tag ();
+               public unowned string get_class ();
        }
 
        [Compact]
@@ -160,28 +240,20 @@ namespace Wl {
        }
 
        [Compact]
-       [CCode (cname = "struct wl_interface")]
-       public class Interface {
-               public string name;
-               public int version;
-               [CCode (array_length = "method_count")]
-               public Wl.Message[] methods;
-               [CCode (array_length = "event_count")]
-               public Wl.Message[] events;
-       }
-
-       [Compact]
-       [CCode (cname = "struct wl_message")]
-       public class Message {
-               public string name;
-               public string signature;
-               [CCode (array_length = false)]
-               public Wl.Interface?[] types;
+       [CCode (cname = "struct wl_registry", free_function = "wl_registry_destroy")]
+       public class Registry : Wl.Proxy {
+               public int add_listener (Wl.RegistryListener listener, void* data);
+               public void set_user_data (void* user_data);
+               public void* get_user_data ();
+               public uint32 get_version ();
+               [CCode (simple_generics = true)]
+               public T? bind<T> (uint32 name, ref Wl.Interface interface, uint32 version);
        }
 
        [Compact]
        [CCode (cname = "struct wl_seat", free_function = "wl_seat_destroy")]
        public class Seat : Wl.Proxy {
+               public int add_listener (Wl.SeatListener listener, void* data);
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
@@ -204,6 +276,7 @@ namespace Wl {
        [Compact]
        [CCode (cname = "struct wl_shell_surface", free_function = "wl_shell_surface_destroy")]
        public class ShellSurface : Wl.Proxy {
+               public int add_listener (Wl.ShellSurfaceListener listener, void* data);
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
@@ -220,52 +293,79 @@ namespace Wl {
        }
 
        [Compact]
-       [CCode (cname = "struct wl_pointer", free_function = "wl_pointer_destroy")]
-       public class Pointer : Wl.Proxy {
+       [CCode (cname = "struct wl_shm", free_function = "wl_shm_destroy")]
+       public class Shm : Wl.Proxy {
+               public int add_listener (Wl.ShmListener listener, void* data);
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
-               [DestroysInstance]
-               public void release ();
        }
 
        [Compact]
-       [CCode (cname = "struct wl_registry", free_function = "wl_registry_destroy")]
-       public class Registry {
+       [CCode (cname = "struct wl_shm_pool", free_function = "wl_shm_pool_destroy")]
+       public class ShmPool : Wl.Proxy {
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
+               public Wl.Buffer create_buffer (int32 offset, int32 width, int32 height, int32 stride, uint32 format);
+               public void resize (int32 size);
        }
 
        [Compact]
-       [CCode (cname = "struct wl_keyboard", free_function = "wl_keyboard_destroy")]
-       public class Keyboard : Wl.Proxy {
+       [CCode (cname = "struct wl_subcompositor", free_function = "wl_subcompositor_destroy")]
+       public class Subcompositor : Wl.Proxy {
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
-               [DestroysInstance]
-               public void release ();
+               public Wl.Subsurface get_subsurface (Wl.Surface surface, Wl.Surface parent);
        }
 
        [Compact]
-       [CCode (cname = "struct wl_touch", free_function = "wl_touch_destroy")]
-       public class Touch : Wl.Proxy {
+       [CCode (cname = "struct wl_subsurface", free_function = "wl_subsurface_destroy")]
+       public class Subsurface : Wl.Proxy {
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
-               [DestroysInstance]
-               public void release ();
+               public void set_position (int32 x, int32 y);
+               public void place_above (Wl.Surface sibling);
+               public void place_below (Wl.Surface sibling);
+               public void set_sync ();
+               public void set_desync ();
        }
 
        [Compact]
-       [CCode (cname = "struct wl_output", free_function = "wl_output_destroy")]
-       public class Output : Wl.Proxy {
+       [CCode (cname = "struct wl_surface", free_function = "wl_surface_destroy")]
+       public class Surface : Wl.Proxy {
+               public int add_listener (Wl.SurfaceListener listener, void* data);
+               public void set_user_data (void* user_data);
+               public void* get_user_data ();
+               public uint32 get_version ();
+               public void attach (Wl.Buffer buffer, int32 x, int32 y);
+               public void damage (int32 x, int32 y, int32 width, int32 height);
+               public unowned Wl.Callback frame ();
+               public void set_opaque_region (Wl.Region? region);
+               public void set_input_region (Wl.Region? region);
+               public void commit ();
+               public void set_buffer_transform (int32 transform);
+               public void set_buffer_scale (int32 transform);
+               public void damage_buffer (int32 x, int32 y, int32 width, int32 height);
+               public void offset (int32 x, int32 y);
+       }
+
+       [Compact]
+       [CCode (cname = "struct wl_touch", free_function = "wl_touch_destroy")]
+       public class Touch : Wl.Proxy {
+               public int add_listener (Wl.TouchListener listener, void* data);
                public void set_user_data (void* user_data);
                public void* get_user_data ();
                public uint32 get_version ();
                [DestroysInstance]
                public void release ();
-               public int add_listener (Wl.OutputListener listener, void* data);
+       }
+
+       [CCode (cname = "struct wl_buffer_listener", has_type_id = false)]
+       public struct BufferListener {
+               public Wl.BufferListenerRelease release;
        }
 
        [CCode (cname = "struct wl_callback_listener", has_type_id = false)]
@@ -273,57 +373,186 @@ namespace Wl {
                public Wl.CallbackListenerDone done;
        }
 
-       [CCode (cprefix = "WL_SHELL_SURFACE_RESIZE_", cname = "enum wl_shell_surface_resize", has_type_id = false)]
-       public enum ShellSurfaceResize {
-               NONE,
-               TOP,
-               BOTTOM,
-               LEFT,
-               TOP_LEFT,
-               BOTTOM_LEFT,
-               RIGHT,
-               TOP_RIGHT,
-               BOTTOM_RIGHT
+       [CCode (cname = "struct wl_data_device_listener", has_type_id = false)]
+       public struct DataDeviceListener {
+               public Wl.DataDeviceListenerDataOffer data_offer;
+               public Wl.DataDeviceListenerEnter enter;
+               public Wl.DataDeviceListenerLeave leave;
+               public Wl.DataDeviceListenerMotion motion;
+               public Wl.DataDeviceListenerDrop drop;
+               public Wl.DataDeviceListenerSelection selection;
        }
 
-       [CCode (cprefix = "WL_SHELL_SURFACE_TRANSIENT_", cname = "enum wl_shell_surface_transient", has_type_id = false)]
-       public enum ShellSurfaceTranscient {
-               INACTIVE
+       [CCode (cname = "struct wl_data_offer_listener", has_type_id = false)]
+       public struct DataOfferListener {
+               public Wl.DataOfferListenerOffer offer;
+               public Wl.DataOfferListenerSourceActions source_actions;
+               public Wl.DataOfferListenerAction action;
        }
 
-       [CCode (cprefix = "WL_SHELL_SURFACE_FULLSCREEN_METHOD_", cname = "enum wl_shell_surface_fullscreen_method", has_type_id = false)]
-       public enum ShellSurfaceFullscreenMethod {
-               DEFAULT,
-               SCALE,
-               DRIVER,
-               FILL
+       [CCode (cname = "struct wl_data_source_listener", has_type_id = false)]
+       public struct DataSourceListener {
+               public Wl.DataSourceListenerTarget target;
+               public Wl.DataSourceListenerSend send;
+               public Wl.DataSourceListenerCancelled cancelled;
+               public Wl.DataSourceListenerDndDropPerformed dnd_drop_performed;
+               public Wl.DataSourceListenerDndFinished dnd_finished;
+               public Wl.DataSourceListenerAction action;
        }
 
-       [CCode (cprefix = "WL_SEAT_CAPABILITY_", cname = "enum wl_seat_capability", has_type_id = false)]
-       public enum SeatCapability {
-               POINTER,
-               KEYBOARD,
-               TOUCH
+       [CCode (cname = "struct wl_display_listener", has_type_id = false)]
+       public struct DisplayListener {
+               public Wl.DisplayListenerError error;
+               public Wl.DisplayListenerDeleteID delete_id;
        }
 
-       [CCode (cprefix = "WL_POINTER_BUTTON_STATE_", cname = "enum wl_pointer_button_state", has_type_id = false)]
-       public enum PointerButtonState {
-               RELEASED,
-               PRESSED
+       [CCode (cname = "struct wl_keyboard_listener", has_type_id = false)]
+       public struct KeyboardListener {
+               public Wl.KeyboardListenerKeymap keymap;
+               public Wl.KeyboardListenerEnter enter;
+               public Wl.KeyboardListenerLeave leave;
+               public Wl.KeyboardListenerKey key;
+               public Wl.KeyboardListenerModifiers modifiers;
+               public Wl.KeyboardListenerRepeatInfo repeat_info;
        }
 
-       [CCode (cprefix = "WL_POINTER_AXIS_", cname = "enum wl_pointer_axis", has_type_id = false)]
-       public enum PointerAxis {
-               VERTICAL_SCROLL,
-               HORIZONTAL_SCROLL
+       [CCode (cname = "struct wl_output_listener", has_type_id = false)]
+       public struct OutputListener {
+               public Wl.OutputListenerGeometry geometry;
+               public Wl.OutputListenerMode mode;
+               public Wl.OutputListenerDone done;
+               public Wl.OutputListenerScale scale;
+               public Wl.OutputListenerName name;
+               public Wl.OutputListenerDescription description;
        }
 
-       [CCode (cprefix = "WL_POINTER_AXIS_SOURCE_", cname = "enum wl_pointer_axis_source", has_type_id = false)]
-       public enum PointerAxisSource {
-               WHEEL,
-               FINGER,
-               CONTINUOUS,
-               WHEEL_TILT
+       [CCode (cname = "struct wl_pointer_listener", has_type_id = false)]
+       public struct PointerListener {
+               public Wl.PointerListenerEnter enter;
+               public Wl.PointerListenerLeave leave;
+               public Wl.PointerListenerMotion motion;
+               public Wl.PointerListenerButton button;
+               public Wl.PointerListenerAxis axis;
+               public Wl.PointerListenerFrame frame;
+               public Wl.PointerListenerAxisSource axis_source;
+               public Wl.PointerListenerAxisStop axis_stop;
+               public Wl.PointerListenerAxisDiscrete axis_discrete;
+       }
+
+       [CCode (cname = "struct wl_registry_listener", has_type_id = false)]
+       public struct RegistryListener {
+               public Wl.RegistryListenerGlobal global;
+               public Wl.RegistryListenerGlobalRemove global_remove;
+       }
+
+       [CCode (cname = "struct wl_seat_listener", has_type_id = false)]
+       public struct SeatListener {
+               public Wl.SeatListenerCapabilities capabilities;
+               public Wl.SeatListenerName name;
+       }
+
+       [CCode (cname = "struct wl_surface_listener", has_type_id = false)]
+       public struct SurfaceListener {
+               public Wl.SurfaceListenerEnter enter;
+               public Wl.SurfaceListenerLeave leave;
+       }
+
+       [CCode (cname = "struct wl_shell_surface_listener", has_type_id = false)]
+       public struct ShellSurfaceListener {
+               public Wl.ShellSurfaceListenerPing ping;
+               public Wl.ShellSurfaceListenerConfigure configure;
+               public Wl.ShellSurfaceListenerPopupDone popup_done;
+       }
+
+       [CCode (cname = "struct wl_shm_listener", has_type_id = false)]
+       public struct ShmListener {
+               public Wl.ShmListenerFormat format;
+       }
+
+       [CCode (cname = "struct wl_touch_listener", has_type_id = false)]
+       public struct TouchListener {
+               public Wl.TouchListenerDown down;
+               public Wl.TouchListenerUp up;
+               public Wl.TouchListenerMotion motion;
+               public Wl.TouchListenerFrame frame;
+               public Wl.TouchListenerCancel cancel;
+               public Wl.TouchListenerShape shape;
+               public Wl.TouchListenerOrientation orientation;
+       }
+
+       [CCode (cprefix = "WL_DATA_OFFER_ERROR_", cname = "enum wl_data_offer_error", has_type_id = false)]
+       public enum DataOfferError {
+               INVALID_FINISH,
+               INVALID_ACTION_MASK,
+               INVALID_ACTION,
+               INVALID_OFFER
+       }
+
+       [CCode (cprefix = "WL_DATA_SOURCE_ERROR_", cname = "enum wl_data_source_error", has_type_id = false)]
+       public enum DataSourceError {
+               INVALID_ACTION_MASK,
+               INVALID_SOURCE
+       }
+
+       [CCode (cprefix = "WL_DATA_DEVICE_ERROR_", cname = "enum wl_data_device_error", has_type_id = false)]
+       public enum DataDeviceError {
+               ROLE
+       }
+
+       [CCode (cprefix = "WL_DISPLAY_ERROR_", cname = "enum wl_display_error", has_type_id = false)]
+       public enum DisplayError {
+               INVALID_OBJECT,
+               INVALID_METHOD,
+               NO_MEMORY,
+               IMPLEMENTATION
+       }
+
+       [CCode (cprefix = "WL_POINTER_ERROR_", cname = "enum wl_pointer_error", has_type_id = false)]
+       public enum PointerError {
+               ROLE
+       }
+
+       [CCode (cprefix = "WL_SEAT_ERROR_", cname = "enum wl_seat_error", has_type_id = false)]
+       public enum SeatError {
+               MISSING_CAPABILITY
+       }
+
+       [CCode (cprefix = "WL_SUBCOMPOSITOR_ERROR_", cname = "enum wl_subcompositor_error", has_type_id = false)]
+       public enum SubcompositorError {
+               BAD_SURFACE
+       }
+
+       [CCode (cprefix = "WL_SUBSURFACE_ERROR_", cname = "enum wl_subsurface_error", has_type_id = false)]
+       public enum SubsurfaceError {
+               BAD_SURFACE
+       }
+
+       [CCode (cprefix = "WL_SURFACE_ERROR_", cname = "enum wl_surface_error", has_type_id = false)]
+       public enum SurfaceError {
+               INVALID_SCALE,
+               INVALID_TRANSFORM,
+               INVALID_SIZE,
+               INVALID_OFFSET
+       }
+
+       [CCode (cprefix = "WL_SHM_ERROR_", cname = "enum wl_shm_error", has_type_id = false)]
+       public enum ShmError {
+               INVALID_FORMAT,
+               INVALID_STRIDE,
+               INVALID_FD
+       }
+
+       [CCode (cprefix = "WL_SHELL_ERROR_", cname = "enum wl_shell_error", has_type_id = false)]
+       public enum ShellError {
+               ROLE
+       }
+
+       [CCode (cprefix = "WL_DATA_DEVICE_MANAGER_DND_ACTION_", cname = "enum wl_data_device_manager_dnd_action", has_type_id = false)]
+       public enum DataDeviceManagerDndAction {
+               NONE,
+               COPY,
+               MOVE,
+               ASK
        }
 
        [CCode (cprefix = "WL_KEYBOARD_KEYMAP_FORMAT_", cname = "enum wl_keyboard_keymap_format", has_type_id = false)]
@@ -338,14 +567,6 @@ namespace Wl {
                PRESSED
        }
 
-       [CCode (cname = "struct wl_output_listener", has_type_id = false)]
-       public struct OutputListener {
-               public Wl.OutputListenerGeometry geometry;
-               public Wl.OutputListenerMode mode;
-               public Wl.OutputListenerDone done;
-               public Wl.OutputListenerScale scale;
-       }
-
        [CCode (cprefix = "WL_OUTPUT_SUBPIXEL_", cname = "enum wl_output_subpixel", has_type_id = false)]
        public enum OutputSubpixel {
                UNKNOWN,
@@ -377,9 +598,228 @@ namespace Wl {
                PREFERRED
        }
 
+       [CCode (cprefix = "WL_POINTER_BUTTON_STATE_", cname = "enum wl_pointer_button_state", has_type_id = false)]
+       public enum PointerButtonState {
+               RELEASED,
+               PRESSED
+       }
+
+       [CCode (cprefix = "WL_POINTER_AXIS_", cname = "enum wl_pointer_axis", has_type_id = false)]
+       public enum PointerAxis {
+               VERTICAL_SCROLL,
+               HORIZONTAL_SCROLL
+       }
+
+       [CCode (cprefix = "WL_POINTER_AXIS_SOURCE_", cname = "enum wl_pointer_axis_source", has_type_id = false)]
+       public enum PointerAxisSource {
+               WHEEL,
+               FINGER,
+               CONTINUOUS,
+               WHEEL_TILT
+       }
+
+       [CCode (cprefix = "WL_SEAT_CAPABILITY_", cname = "enum wl_seat_capability", has_type_id = false)]
+       public enum SeatCapability {
+               POINTER,
+               KEYBOARD,
+               TOUCH
+       }
+
+       [CCode (cprefix = "WL_SHELL_SURFACE_RESIZE_", cname = "enum wl_shell_surface_resize", has_type_id = false)]
+       public enum ShellSurfaceResize {
+               NONE,
+               TOP,
+               BOTTOM,
+               LEFT,
+               TOP_LEFT,
+               BOTTOM_LEFT,
+               RIGHT,
+               TOP_RIGHT,
+               BOTTOM_RIGHT
+       }
+
+       [CCode (cprefix = "WL_SHELL_SURFACE_TRANSIENT_", cname = "enum wl_shell_surface_transient", has_type_id = false)]
+       public enum ShellSurfaceTranscient {
+               INACTIVE
+       }
+
+       [CCode (cprefix = "WL_SHELL_SURFACE_FULLSCREEN_METHOD_", cname = "enum wl_shell_surface_fullscreen_method", has_type_id = false)]
+       public enum ShellSurfaceFullscreenMethod {
+               DEFAULT,
+               SCALE,
+               DRIVER,
+               FILL
+       }
+
+       [CCode (cprefix = "WL_SHM_FORMAT_", cname = "enum wl_shm_format", has_type_id = false)]
+       public enum ShmFormat {
+               ARGB8888,
+               XRGB8888,
+               C8,
+               RGB332,
+               BGR233,
+               XRGB4444,
+               XBGR4444,
+               RGBX4444,
+               BGRX4444,
+               ARGB4444,
+               ABGR4444,
+               RGBA4444,
+               BGRA4444,
+               XRGB1555,
+               XBGR1555,
+               RGBX5551,
+               BGRX5551,
+               ARGB1555,
+               ABGR1555,
+               RGBA5551,
+               BGRA5551,
+               RGB565,
+               BGR565,
+               RGB888,
+               BGR888,
+               XBGR8888,
+               RGBX8888,
+               BGRX8888,
+               ABGR8888,
+               RGBA8888,
+               BGRA8888,
+               XRGB2101010,
+               XBGR2101010,
+               RGBX1010102,
+               BGRX1010102,
+               ARGB2101010,
+               ABGR2101010,
+               RGBA1010102,
+               BGRA1010102,
+               YUYV,
+               YVYU,
+               UYVY,
+               VYUY,
+               AYUV,
+               NV12,
+               NV21,
+               NV16,
+               NV61,
+               YUV410,
+               YVU410,
+               YUV411,
+               YVU411,
+               YUV420,
+               YVU420,
+               YUV422,
+               YVU422,
+               YUV444,
+               YVU444,
+               R8,
+               R16,
+               RG88,
+               GR88,
+               RG1616,
+               GR1616,
+               XRGB16161616F,
+               XBGR16161616F,
+               ARGB16161616F,
+               ABGR16161616F,
+               XYUV8888,
+               VUY888,
+               VUY101010,
+               Y210,
+               Y212,
+               Y216,
+               Y410,
+               Y412,
+               Y416,
+               XVYU2101010,
+               XVYU12_16161616,
+               XVYU16161616,
+               Y0L0,
+               X0L0,
+               Y0L2,
+               X0L2,
+               YUV420_8BIT,
+               YUV420_10BIT,
+               XRGB8888_A8,
+               XBGR8888_A8,
+               RGBX8888_A8,
+               BGRX8888_A8,
+               RGB888_A8,
+               BGR888_A8,
+               RGB565_A8,
+               BGR565_A8,
+               NV24,
+               NV42,
+               P210,
+               P010,
+               P012,
+               P016,
+               AXBXGXRX106106106106,
+               NV15,
+               Q410,
+               Q401,
+               XRGB16161616,
+               XBGR16161616,
+               ARGB16161616,
+               ABGR16161616
+       }
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void BufferListenerRelease (void *data, Wl.Buffer wl_buffer);
+
        [CCode (has_target = false, has_typedef = false)]
        public delegate void CallbackListenerDone (void *data, Wl.Callback wl_callback, uint32 callback_data);
 
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataDeviceListenerDataOffer (void *data, Wl.DataDevice wl_data_device, Wl.DataOffer id);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataDeviceListenerEnter (void *data, Wl.DataDevice wl_data_device, uint32 serial, Wl.Surface surface, Wl.fixed_t x, Wl.fixed_t y, Wl.DataOffer id);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataDeviceListenerLeave (void *data, Wl.DataDevice wl_data_device);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataDeviceListenerMotion (void *data, Wl.DataDevice wl_data_device, uint32 time, Wl.fixed_t x, Wl.fixed_t y);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataDeviceListenerDrop (void *data, Wl.DataDevice wl_data_device);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataDeviceListenerSelection (void *data, Wl.DataDevice wl_data_device, Wl.DataOffer id);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataOfferListenerOffer (void *data, Wl.DataOffer wl_data_offer, string mime_type);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataOfferListenerSourceActions (void *data, Wl.DataOffer wl_data_offer, uint32 source_actions);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataOfferListenerAction (void *data, Wl.DataOffer wl_data_offer, uint32 dnd_action);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataSourceListenerTarget (void *data, Wl.DataSource wl_data_source, string mime_type);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataSourceListenerSend (void *data, Wl.DataSource wl_data_source, string mime_type, int32 fd);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataSourceListenerCancelled (void *data, Wl.DataSource wl_data_source);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataSourceListenerDndDropPerformed (void *data, Wl.DataSource wl_data_source);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataSourceListenerDndFinished (void *data, Wl.DataSource wl_data_source);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DataSourceListenerAction (void *data, Wl.DataSource wl_data_source, uint32 dnd_action);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DisplayListenerError (void *data, Wl.Display wl_display, void *object_id, uint32 code, string message);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void DisplayListenerDeleteID (void *data, Wl.Display wl_display, uint32 id);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void KeyboardListenerKeymap (void *data, Wl.Keyboard wl_keyboard, uint32 format, int32 fd, uint32 size);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void KeyboardListenerEnter (void *data, Wl.Keyboard wl_keyboard, uint32 serial, Wl.Surface surface, Wl.Array keys);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void KeyboardListenerLeave (void *data, Wl.Keyboard wl_keyboard, uint32 serial, Wl.Surface surface);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void KeyboardListenerKey (void *data, Wl.Keyboard wl_keyboard, uint32 serial, uint32 time, uint32 key, uint32 state);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void KeyboardListenerModifiers (void *data, Wl.Keyboard wl_keyboard, uint32 serial, uint32 mods_depressed, uint32 mods_latched, uint32 mods_locked, uint32 group);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void KeyboardListenerRepeatInfo (void *data, Wl.Keyboard wl_keyboard, int32 rate, int32 delay);
+
        [CCode (has_target = false, has_typedef = false)]
        public delegate void OutputListenerGeometry (void *data, Wl.Output wl_output, int32 x, int32 y, int32 physical_width, int32 physical_height, int32 subpixel, string make, string model, int32 transform);
        [CCode (has_target = false, has_typedef = false)]
@@ -388,6 +828,69 @@ namespace Wl {
        public delegate void OutputListenerDone (void *data, Wl.Output wl_output);
        [CCode (has_target = false, has_typedef = false)]
        public delegate void OutputListenerScale (void *data, Wl.Output wl_output, int32 factor);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void OutputListenerName (void *data, Wl.Output wl_output, string name);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void OutputListenerDescription (void *data, Wl.Output wl_output, string description);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void PointerListenerEnter (void *data, Wl.Pointer wl_pointer, uint32 serial, Wl.Surface surface, Wl.fixed_t surface_x, Wl.fixed_t surface_y);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void PointerListenerLeave (void *data, Wl.Pointer wl_pointer, uint32 serial, Wl.Surface surface);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void PointerListenerMotion (void *data, Wl.Pointer wl_pointer, uint32 time, Wl.fixed_t surface_x, Wl.fixed_t surface_y);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void PointerListenerButton (void *data, Wl.Pointer wl_pointer, uint32 serial, uint32 time, uint32 button, uint32 state);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void PointerListenerAxis (void *data, Wl.Pointer wl_pointer, uint32 time, uint32 axis, Wl.fixed_t @value);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void PointerListenerFrame (void *data, Wl.Pointer wl_pointer);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void PointerListenerAxisSource (void *data, Wl.Pointer wl_pointer, uint32 axis_source);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void PointerListenerAxisStop (void *data, Wl.Pointer wl_pointer, uint32 time, uint32 axis);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void PointerListenerAxisDiscrete (void *data, Wl.Pointer wl_pointer, uint32 axis, int32 discrete);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void RegistryListenerGlobal (void *data, Wl.Registry wl_registry, uint32 name, string @interface, uint32 version);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void RegistryListenerGlobalRemove (void *data, Wl.Registry wl_registry, uint32 name);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void SeatListenerCapabilities (void *data, Wl.Seat wl_seat, uint32 capabilities);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void SeatListenerName (void *data, Wl.Seat wl_seat, string name);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void ShellSurfaceListenerPing (void *data, Wl.ShellSurface wl_shell_surface, uint32 serial);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void ShellSurfaceListenerConfigure (void *data, Wl.ShellSurface wl_shell_surface, uint32 edges, int32 width, int32 height);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void ShellSurfaceListenerPopupDone (void *data, Wl.ShellSurface wl_shell_surface);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void ShmListenerFormat (void *data, Wl.Shm wl_shm, uint32 format);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void SurfaceListenerEnter (void *data, Wl.Surface wl_surface, Wl.Output output);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void SurfaceListenerLeave (void *data, Wl.Surface wl_surface, Wl.Output output);
+
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void TouchListenerDown (void *data, Wl.Touch wl_touch, uint32 serial, uint32 time, Wl.Surface surface, int32 id, Wl.fixed_t x, Wl.fixed_t y);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void TouchListenerUp (void *data, Wl.Touch wl_touch, uint32 serial, uint32 time, int32 id);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void TouchListenerMotion (void *data, Wl.Touch wl_touch, uint32 time, int32 id, Wl.fixed_t x, Wl.fixed_t y);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void TouchListenerFrame (void *data, Wl.Touch wl_touch);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void TouchListenerCancel (void *data, Wl.Touch wl_touch);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void TouchListenerShape (void *data, Wl.Touch wl_touch, int32 id, Wl.fixed_t major, Wl.fixed_t minor);
+       [CCode (has_target = false, has_typedef = false)]
+       public delegate void TouchListenerOrientation (void *data, Wl.Touch wl_touch, int32 id, Wl.fixed_t orientation);
 
        [CCode (cname = "WAYLAND_VERSION_MAJOR")]
        public const int VERSION_MAJOR;