[vala] Add xcb-icccm bindings.
- From: Luca Bruno <lucabru src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] Add xcb-icccm bindings.
- Date: Sat, 21 Dec 2013 09:36:50 +0000 (UTC)
commit fdd6531f13303dc6adb53331f0e698357157aade
Author: Sergio Costas <raster rastersoft com>
Date: Sat Dec 21 10:34:29 2013 +0100
Add xcb-icccm bindings.
Fixes bug 720225.
vapi/Makefile.am | 1 +
vapi/xcb-icccm.vapi | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++
vapi/xcb.vapi | 49 +++++++++++++++++++++++++++++++++++++++++++-
3 files changed, 105 insertions(+), 1 deletions(-)
---
diff --git a/vapi/Makefile.am b/vapi/Makefile.am
index 0ceece7..69612f8 100644
--- a/vapi/Makefile.am
+++ b/vapi/Makefile.am
@@ -286,6 +286,7 @@ dist_vapi_DATA = \
webkit-1.0.vapi \
x11.vapi \
xcb.vapi \
+ xcb-icccm.vapi \
xtst.vapi \
xtst.deps \
zlib.vapi \
diff --git a/vapi/xcb-icccm.vapi b/vapi/xcb-icccm.vapi
new file mode 100644
index 0000000..cdae2b0
--- /dev/null
+++ b/vapi/xcb-icccm.vapi
@@ -0,0 +1,56 @@
+/* xcb-icccm.vapi
+ *
+ * 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
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * 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:
+ * Sergio Costas <raster rastersoft com>
+ */
+
+using Xcb;
+
+namespace Xcb {
+
+ [CCode (lower_case_cprefix = "xcb_icccm_", cheader_filename = "xcb/xcb_icccm.h")]
+ namespace Icccm {
+
+ /**
+ * A factory method that creates an Icccm object. It allows to call the Xcb Icccm methods
+ * @param conn The current Xcb connection
+ * @return the new Icccm object
+ */
+ public static Icccm new(Xcb.Connection conn) {
+ unowned Xcb.Icccm.Icccm retval = (Xcb.Icccm.Icccm)conn;
+ return retval;
+ }
+
+ // The Icccm class is, in fact, a Xcb.Connection class in disguise
+ [Compact, CCode (cname = "xcb_connection_t", cprefix = "xcb_icccm_")]
+ public class Icccm : Xcb.Connection {
+ public GetPropertyCookie get_wm_class(Window window);
+ public GetPropertyCookie get_wm_class_unchecked(Window window);
+ }
+
+ [SimpleType]
+ [CCode (cname = "xcb_icccm_get_wm_class_reply_t", has_type_id = false)]
+ public struct GetWmClassFromReply {
+ unowned string instance_name;
+ unowned string class_name;
+ }
+
+ public void get_wm_class_from_reply(out GetWmClassFromReply reply, GetPropertyReply input);
+ }
+}
diff --git a/vapi/xcb.vapi b/vapi/xcb.vapi
index 0f98396..229e4d1 100644
--- a/vapi/xcb.vapi
+++ b/vapi/xcb.vapi
@@ -111,6 +111,31 @@ namespace Xcb {
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);
+
+ public GetGeometryCookie get_geometry(Drawable drawable);
+ public GetGeometryCookie get_geometry_unchecked(Drawable drawable);
+ public GetGeometryReply ? get_geometry_reply(GetGeometryCookie cookie, out GenericError ? e);
+ }
+
+ [SimpleType]
+ [IntegerType (rank = 9)]
+ [CCode (cname = "xcb_get_geometry_cookie_t", has_type_id = false)]
+ public struct GetGeometryCookie {
+ }
+
+ [CCode (cname = "xcb_get_geometry_reply_t", ref_function = "", unref_function = "free")]
+ public class GetGeometryReply {
+ public uint8 response_type;
+ public uint8 depth;
+ public uint16 sequence;
+ public uint32 length;
+ public Window root;
+ public int16 x;
+ public int16 y;
+ public uint16 width;
+ public uint16 height;
+ public uint16 border_width;
+ public uint8 pad0[2];
}
[SimpleType]
@@ -158,10 +183,12 @@ namespace Xcb {
[Compact]
[CCode (cname = "xcb_get_property_reply_t", ref_function = "", unref_function = "free")]
public class GetPropertyReply {
+ public uint8 format;
+ public Atom type;
[CCode (cname = "xcb_get_property_value_length")]
public int32 value_length();
[CCode (cname = "xcb_get_property_value")]
- public void *value();
+ public unowned void *value();
}
[Compact]
@@ -525,6 +552,24 @@ namespace Xcb {
public uint16 value_mask;
}
+ [Compact]
+ [CCode (cname = "xcb_configure_notify_event_t", ref_function = "", unref_function = "")]
+ public class ConfigureNotifyEvent {
+ public uint8 response_type;
+ public uint8 pad0;
+ public uint16 sequence;
+ public Window event;
+ public Window window;
+ public Window above_sibling;
+ public int16 x;
+ public int16 y;
+ public uint16 width;
+ public uint16 height;
+ public uint16 border_width;
+ public uint8 override_redirect;
+ public uint8 pad1;
+ }
+
[CCode (cname = "xcb_cw_t", has_type_id = false)]
public enum CW {
BACK_PIXMAP,
@@ -655,10 +700,12 @@ namespace Xcb {
public uint16 height;
}
+ [SimpleType]
[CCode (cname = "xcb_visualid_t", has_type_id = false)]
public struct VisualID : uint32 {
}
+ [SimpleType]
[CCode (cname = "xcb_button_t", has_type_id = false)]
public struct Button : uint8 {
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]