From: Sergio Costas Date: Thu, 12 Dec 2013 19:15:14 +0000 (+0100) Subject: xcb: Major changes and fixes. X-Git-Tag: 0.23.1~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aef4702ccc93c8f10c80afd600e3410be304fc02;p=thirdparty%2Fvala.git xcb: Major changes and fixes. Fixes bug 720225. --- diff --git a/vapi/xcb.vapi b/vapi/xcb.vapi index 2d64f6f70..0f9839604 100644 --- a/vapi/xcb.vapi +++ b/vapi/xcb.vapi @@ -1,6 +1,7 @@ /* xcb.vapi * * Copyright (C) 2009 Jürg Billeter + * Copyright (C) 2013 Sergio Costas * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -16,11 +17,12 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - * Author: + * Authors: * Jürg Billeter + * Sergio Costas */ -[CCode (lower_case_cprefix = "xcb_", cheader_filename = "xcb/xcb.h")] +[CCode (lower_case_cprefix = "xcb_", cheader_filename = "xcb/xcb.h,xcb/xproto.h")] namespace Xcb { [Compact] [CCode (cname = "xcb_connection_t", cprefix = "xcb_", ref_function = "", unref_function = "xcb_disconnect")] @@ -32,14 +34,277 @@ namespace Xcb { public uint32 generate_id (); public Setup get_setup (); public GenericEvent wait_for_event (); + public GenericEvent poll_for_event(); public int get_file_descriptor (); public VoidCookie create_window (uint8 depth, Window wid, Window parent, int16 x, int16 y, uint16 width, uint16 height, uint16 border_width, uint16 _class, VisualID visual, uint32 value_mask, [CCode (array_length = false)] uint32[]? value_list); + public VoidCookie create_window_checked (uint8 depth, Window wid, Window parent, int16 x, int16 y, uint16 width, uint16 height, uint16 border_width, uint16 _class, VisualID visual, uint32 value_mask, [CCode (array_length = false)] uint32[]? value_list); public VoidCookie map_window (Window wid); + public VoidCookie map_window_checked (Window wid); + public VoidCookie unmap_window (Window wid); + public VoidCookie unmap_window_checked (Window wid); + public GetWindowAttributesCookie get_window_attributes (Window wid); + public GetWindowAttributesCookie get_window_attributes_unchecked (Window wid); + public GetWindowAttributesReply get_window_attributes_reply(GetWindowAttributesCookie cookie, out GenericError? e); public VoidCookie change_window_attributes (Window wid, uint32 value_mask, [CCode (array_length = false)] uint32[]? value_list); + public VoidCookie change_window_attributes_checked (Window wid, uint32 value_mask, [CCode (array_length = false)] uint32[]? value_list); public QueryTreeCookie query_tree (Window wid); + public QueryTreeCookie query_tree_unchecked (Window wid); public QueryTreeReply query_tree_reply (QueryTreeCookie cookie, out GenericError? e); + + [CCode (cname = "xcb_intern_atom")] + private InternAtomCookie vala_intern_atom(bool only_if_exists,uint16 len, string name); + [CCode (cname = "vala_xcb_intern_atom")] + public InternAtomCookie intern_atom(bool only_if_exists,string name) { + return this.vala_intern_atom(only_if_exists,(uint16)name.length,name); + } + [CCode (cname = "xcb_intern_atom_unchecked")] + private InternAtomCookie vala_intern_atom_unchecked(bool only_if_exists,uint16 len, string name); + [CCode (cname = "vala_xcb_intern_atom_unchecked")] + public InternAtomCookie intern_atom_unchecked(bool only_if_exists,string name) { + return this.vala_intern_atom(only_if_exists,(uint16)name.length,name); + } + public InternAtomReply intern_atom_reply(InternAtomCookie cookie, out GenericError? e); + + [CCode (cname = "xcb_change_property")] + private VoidCookie vala_change_property(PropMode mode, Window window, AtomT property, AtomT type, uint8 format, uint32 len, void *data); + [CCode (cname = "vala_xcb_change_property")] + public VoidCookie change_property_uint8(PropMode mode, Window window, AtomT property, AtomT type, uint32 len, uint8 *data) { + return this.vala_change_property(mode,window,property,type, 8, len, (void *)data); + } + public VoidCookie change_property_uint16(PropMode mode, Window window, AtomT property, AtomT type, uint32 len, uint16 *data) { + return this.vala_change_property(mode,window,property,type, 16, len, (void *)data); + } + public VoidCookie change_property_uint32(PropMode mode, Window window, AtomT property, AtomT type, uint32 len, uint32 *data) { + return this.vala_change_property(mode,window,property,type, 32, len, (void *)data); + } + public VoidCookie change_property_atom(PropMode mode, Window window, AtomT property, AtomT type, uint32 len, AtomT *data) { + return this.vala_change_property(mode,window,property,type, 32, len, (void *)data); + } + public VoidCookie change_property_string(PropMode mode, Window window, AtomT property, AtomT type, string data) { + return this.vala_change_property(mode,window,property,type, 8, data.length, (void *)data.data); + } + + [CCode (cname = "xcb_change_property_checked")] + private VoidCookie vala_change_property_checked(PropMode mode, Window window, AtomT property, AtomT type, uint8 format, uint32 len, void *data); + [CCode (cname = "vala_xcb_change_property_checked")] + public VoidCookie change_property_checked_uint8(PropMode mode, Window window, AtomT property, AtomT type, uint32 len, uint8 *data) { + return this.vala_change_property(mode,window,property,type, 8, len, (void *)data); + } + public VoidCookie change_property_checked_uint16(PropMode mode, Window window, AtomT property, AtomT type, uint32 len, uint16 *data) { + return this.vala_change_property(mode,window,property,type, 16, len, (void *)data); + } + public VoidCookie change_property_checked_uint32(PropMode mode, Window window, AtomT property, AtomT type, uint32 len, uint32 *data) { + return this.vala_change_property(mode,window,property,type, 32, len, (void *)data); + } + public VoidCookie change_property_checked_atom(PropMode mode, Window window, AtomT property, AtomT type, uint32 len, AtomT *data) { + return this.vala_change_property(mode,window,property,type, 32, len, (void *)data); + } + public VoidCookie change_property_checked_string(PropMode mode, Window window, AtomT property, AtomT type, string data) { + return this.vala_change_property(mode,window,property,type, 8, data.length, (void *)data.data); + } + + public GetPropertyCookie get_property(bool _delete, Window window, AtomT property, AtomT type, uint32 long_offset, uint32 long_length); + public GetPropertyCookie get_property_unchecked(bool _delete, Window window, AtomT property, AtomT type, uint32 long_offset, uint32 long_length); + public GetPropertyReply ? get_property_reply(GetPropertyCookie cookie, out GenericError? e); + + public VoidCookie configure_window(Window window, uint16 value_mask, uint32 *value_list); + + public VoidCookie reparent_window(Window window, Window parent, uint16 x, uint16 y); + public VoidCookie reparent_window_checked(Window window, Window parent, uint16 x, uint16 y); + } + + [SimpleType] + [IntegerType (rank = 9)] + [CCode (cname = "xcb_intern_atom_cookie_t", has_type_id = false)] + public struct InternAtomCookie { + } + + [SimpleType] + [IntegerType (rank = 9)] + [CCode (cname = "xcb_get_window_attributes_cookie_t", has_type_id = false)] + public struct GetWindowAttributesCookie { + } + + [Compact] + [CCode (cname = "xcb_get_window_attributes_reply_t", ref_function = "", unref_function = "")] + public class GetWindowAttributesReply { + public uint8 response_type; + public uint8 backing_store; + public uint16 sequence; + public uint32 length; + public VisualID visual; + public uint16 _class; + public uint8 bit_gravity; + public uint8 win_gravity; + public uint32 backing_planes; + public uint32 backing_pixel; + public uint8 save_under; + public uint8 map_is_installed; + public uint8 map_state; + public uint8 override_redirect; + public Colormap colormap; + public uint32 all_event_masks; + public uint32 your_event_mask; + public uint16 do_not_propagate_mask; + public uint8 pad0[2]; + } + + [SimpleType] + [IntegerType (rank = 9)] + [CCode (cname = "xcb_get_property_cookie_t", has_type_id = false)] + public struct GetPropertyCookie { } + [Compact] + [CCode (cname = "xcb_get_property_reply_t", ref_function = "", unref_function = "free")] + public class GetPropertyReply { + [CCode (cname = "xcb_get_property_value_length")] + public int32 value_length(); + [CCode (cname = "xcb_get_property_value")] + public void *value(); + } + + [Compact] + [CCode (cname = "xcb_intern_atom_reply_t", ref_function = "", unref_function = "free")] + public class InternAtomReply { + private uint8 response_type; + private uint8 pad0; + private uint16 sequence; + public uint32 length; + public AtomT atom; + } + + [SimpleType] + [IntegerType (rank = 9)] + [CCode (cname = "xcb_atom_t", has_type_id = false)] + public struct AtomT { + } + + [CCode (cname = "xcb_prop_mode_t", has_type_id = false)] + public enum PropMode { + REPLACE, + PREPEND, + APPEND + } + + [CCode (cname = "xcb_atom_enum_t", has_type_id = false)] + public enum Atom { + NONE, + ANY, + PRIMARY, + SECONDARY, + ARC, + ATOM, + BITMAP, + CARDINAL, + COLORMAP, + CURSOR, + CUT_BUFFER0, + CUT_BUFFER1, + CUT_BUFFER2, + CUT_BUFFER3, + CUT_BUFFER4, + CUT_BUFFER5, + CUT_BUFFER6, + CUT_BUFFER7, + DRAWABLE, + FONT, + INTEGER, + PIXMAP, + POINT, + RECTANGLE, + RESOURCE_MANAGER, + RGB_COLOR_MAP, + RGB_BEST_MAP, + RGB_BLUE_MAP, + RGB_DEFAULT_MAP, + RGB_GRAY_MAP, + RGB_GREEN_MAP, + RGB_RED_MAP, + STRING, + VISUALID, + WINDOW, + WM_COMMAND, + WM_HINTS, + WM_CLIENT_MACHINE, + WM_ICON_NAME, + WM_ICON_SIZE, + WM_NAME, + WM_NORMAL_HINTS, + WM_SIZE_HINTS, + WM_ZOOM_HINTS, + MIN_SPACE, + NORM_SPACE, + MAX_SPACE, + END_SPACE, + SUPERSCRIPT_X, + SUPERSCRIPT_Y, + SUBSCRIPT_X, + SUBSCRIPT_Y, + UNDERLINE_POSITION, + UNDERLINE_THICKNESS, + STRIKEOUT_ASCENT, + STRIKEOUT_DESCENT, + ITALIC_ANGLE, + X_HEIGHT, + QUAD_WIDTH, + WEIGHT, + POINT_SIZE, + RESOLUTION, + COPYRIGHT, + NOTICE, + FONT_NAME, + FAMILY_NAME, + FULL_NAME, + CAP_HEIGHT, + WM_CLASS, + WM_TRANSIENT_FOR + } + + public const uint8 KEY_PRESS; + public const uint8 KEY_RELEASE; + public const uint8 BUTTON_PRESS; + public const uint8 BUTTON_RELEASE; + public const uint8 MOTION_NOTIFY; + public const uint8 ENTER_NOTIFY; + public const uint8 LEAVE_NOTIFY; + public const uint8 FOCUS_IN; + public const uint8 FOCUS_OUT; + public const uint8 KEYMAP_NOTIFY; + public const uint8 EXPOSE; + public const uint8 GRAPHICS_EXPOSURE; + public const uint8 NO_EXPOSURE; + public const uint8 VISIBILITY_NOTIFY; + public const uint8 CREATE_NOTIFY; + public const uint8 DESTROY_NOTIFY; + public const uint8 UNMAP_NOTIFY; + public const uint8 MAP_NOTIFY; + public const uint8 MAP_REQUEST; + public const uint8 REPARENT_NOTIFY; + public const uint8 CONFIGURE_NOTIFY; + public const uint8 CONFIGURE_REQUEST; + public const uint8 GRAVITY_NOTIFY; + public const uint8 RESIZE_REQUEST; + public const uint8 CIRCULATE_NOTIFY; + public const uint8 CIRCULATE_REQUEST; + public const uint8 PROPERTY_NOTIFY; + public const uint8 SELECTION_CLEAR; + public const uint8 SELECTION_REQUEST; + public const uint8 SELECTION_NOTIFY; + public const uint8 COLORMAP_NOTIFY; + public const uint8 CLIENT_MESSAGE; + public const uint8 MAPPING_NOTIFY; + + public enum ConfigWindow { + X, + Y, + WIDTH, + HEIGHT, + BORDER_WIDTH, + SIBLING, + STACK_MODE + } + [Compact] [CCode (cname = "xcb_setup_t", ref_function = "", unref_function = "")] public class Setup { @@ -61,6 +326,57 @@ namespace Xcb { public class GenericEvent { public uint8 response_type; } + + [SimpleType] + [CCode (cname = "xcb_timestamp_t", has_type_id = false)] + public struct Timestamp : uint32 { + } + + [SimpleType] + [CCode (cname = "xcb_keycode_t", has_type_id = false)] + public struct Keycode : uint8 { + } + + [SimpleType] + [CCode (cname = "xcb_colormap_t", has_type_id = false)] + public struct Colormap : uint32 { + } + + [Compact] + [CCode (cname = "xcb_key_press_event_t", ref_function = "", unref_function = "")] + public class KeyPressEvent : GenericEvent { + Keycode detail; + uint16 sequence; + Timestamp time; + Window root; + Window event; + Window child; + uint16 root_x; + uint16 root_y; + uint16 event_x; + uint16 event_y; + uint16 state; + uint8 same_screen; + uint8 pad0; + } + + [Compact] + [CCode (cname = "xcb_key_release_event_t", ref_function = "", unref_function = "")] + public class KeyReleaseEvent : GenericEvent { + Keycode detail; + uint16 sequence; + Timestamp time; + Window root; + Window event; + Window child; + uint16 root_x; + uint16 root_y; + uint16 event_x; + uint16 event_y; + uint16 state; + uint8 same_screen; + uint8 pad0; + } [Compact] [CCode (cname = "xcb_generic_error_t", ref_function = "", unref_function = "")] @@ -73,13 +389,7 @@ namespace Xcb { public uint8 major_code; } - public const uint8 BUTTON_PRESS; - public const uint8 BUTTON_RELEASE; - public const uint8 EXPOSE; - public const uint8 MOTION_NOTIFY; - public const uint8 ENTER_NOTIFY; - public const uint8 LEAVE_NOTIFY; - + [Compact] [CCode (cname = "xcb_button_press_event_t", ref_function = "", unref_function = "")] public class ButtonPressEvent : GenericEvent { public Button detail; @@ -92,6 +402,7 @@ namespace Xcb { public uint16 event_y; } + [Compact] [CCode (cname = "xcb_button_release_event_t", ref_function = "", unref_function = "")] public class ButtonReleaseEvent : GenericEvent { public Button detail; @@ -104,8 +415,12 @@ namespace Xcb { public uint16 event_y; } + [Compact] [CCode (cname = "xcb_motion_notify_event_t", ref_function = "", unref_function = "")] public class MotionNotifyEvent : GenericEvent { + uint8 detail; + uint16 sequence; + Timestamp time; public Window root; public Window event; public Window child; @@ -113,15 +428,101 @@ namespace Xcb { public uint16 root_y; public uint16 event_x; public uint16 event_y; + public uint16 state; + public uint8 same_screen; + public uint8 pad0; } + [Compact] [CCode (cname = "xcb_expose_event_t", ref_function = "", unref_function = "")] public class ExposeEvent : GenericEvent { + public uint8 pad0; + public uint16 sequence; public Window window; public uint16 x; public uint16 y; public uint16 width; public uint16 height; + public uint16 count; + public uint8 pad1[2]; + } + + [Compact] + [CCode (cname = "xcb_create_notify_event_t", ref_function = "", unref_function = "")] + public class CreateNotifyEvent { + public uint8 response_type; + public uint8 pad0; + public uint16 sequence; + public Window parent; + public Window window; + public int16 x; + public int16 y; + public uint16 width; + public uint16 height; + public uint16 border_width; + public uint8 override_redirect; + public uint8 pad1; + } + + [Compact] + [CCode (cname = "xcb_destroy_notify_event_t", ref_function = "", unref_function = "")] + public class DestroyNotifyEvent { + public uint8 response_type; + public uint8 pad0; + public uint16 sequence; + public Window event; + public Window window; + } + + [Compact] + [CCode (cname = "xcb_unmap_notify_event_t", ref_function = "", unref_function = "")] + public class UnmapNotifyEvent { + public uint8 response_type; + public uint8 pad0; + public uint16 sequence; + public Window event; + public Window window; + public uint8 from_configure; + public uint8 pad1[3]; + } + + [Compact] + [CCode (cname = "xcb_map_notify_event_t", ref_function = "", unref_function = "")] + public class MapNotifyEvent { + public uint8 response_type; + public uint8 pad0; + public uint16 sequence; + public Window event; + public Window window; + public uint8 override_redirect; + public uint8 pad1[3]; + } + + [Compact] + [CCode (cname = "xcb_map_request_event_t", ref_function = "", unref_function = "")] + public class MapRequestEvent { + public uint8 response_type; + public uint8 pad0; + public uint16 sequence; + public Window parent; + public Window window; + } + + [Compact] + [CCode (cname = "xcb_configure_request_event_t", ref_function = "", unref_function = "")] + public class ConfigureRequestEvent { + public uint8 response_type; + public uint8 stack_mode; + public uint16 sequence; + public Window parent; + public Window window; + public Window sibling; + public int16 x; + public int16 y; + public uint16 width; + public uint16 height; + public uint16 border_width; + public uint16 value_mask; } [CCode (cname = "xcb_cw_t", has_type_id = false)] @@ -154,11 +555,11 @@ namespace Xcb { LEAVE_WINDOW, POINTER_MOTION, POINTER_MOTION_HINT, - BUTTON_1MOTION, - BUTTON_2MOTION, - BUTTON_3MOTION, - BUTTON_4MOTION, - BUTTON_5MOTION, + BUTTON_1_MOTION, + BUTTON_2_MOTION, + BUTTON_3_MOTION, + BUTTON_4_MOTION, + BUTTON_5_MOTION, BUTTON_MOTION, KEYMAP_STATE, EXPOSURE, @@ -254,30 +655,22 @@ namespace Xcb { public uint16 height; } + [CCode (cname = "xcb_visualid_t", has_type_id = false)] public struct VisualID : uint32 { } + [CCode (cname = "xcb_button_t", has_type_id = false)] public struct Button : uint8 { } [SimpleType] - [IntegerType (rank = 9)] - [CCode (cname = "xcb_drawable_t", type_id = "G_TYPE_INT", - marshaller_type_name = "INT", - get_value_function = "g_value_get_int", - set_value_function = "g_value_set_int", default_value = "0", - type_signature = "i", has_type_id = false)] + [CCode (cname = "xcb_drawable_t", has_type_id = false)] public struct Drawable : uint32 { } [SimpleType] - [IntegerType (rank = 9)] - [CCode (cname = "xcb_window_t", type_id = "G_TYPE_INT", - marshaller_type_name = "INT", - get_value_function = "g_value_get_int", - set_value_function = "g_value_set_int", default_value = "0", - type_signature = "i", has_type_id = false)] - public struct Window : Drawable { + [CCode (cname = "xcb_window_t", has_type_id = false)] + public struct Window : uint32 { } [Compact]