[vala] libxklavier: Add new bindings
- From: Luca Bruno <lucabru src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] libxklavier: Add new bindings
- Date: Sun, 25 Nov 2012 20:35:21 +0000 (UTC)
commit c9cfd77acd2d6c4dec5fda8c710c38e3af3eff14
Author: Daiki Ueno <ueno unixuser org>
Date: Thu Nov 15 10:22:15 2012 +0900
libxklavier: Add new bindings
Fixes bug 688358.
vapi/Makefile.am | 6 +
vapi/libxklavier.deps | 1 +
vapi/libxklavier.vapi | 185 +++++++++++++++++++++++++++++++++++++
vapi/metadata/Xkl-1.0-custom.vala | 11 ++
vapi/metadata/Xkl-1.0.metadata | 6 +
5 files changed, 209 insertions(+), 0 deletions(-)
---
diff --git a/vapi/Makefile.am b/vapi/Makefile.am
index 6a716a6..98bb317 100644
--- a/vapi/Makefile.am
+++ b/vapi/Makefile.am
@@ -215,6 +215,8 @@ dist_vapi_DATA = \
libwnck-1.0.vapi \
libwnck-3.0.deps \
libwnck-3.0.vapi \
+ libxklavier.vapi \
+ libxklavier.deps \
libxml-2.0.vapi \
linux.deps \
linux.vapi \
@@ -393,6 +395,7 @@ GIR_BINDINGS = \
udisks2 \
vte-2.90 \
$(GSTREAMER_1_0_BINDINGS) \
+ libxklavier \
$(NULL)
BINDINGS = $(GIR_BINDINGS) $(GIDL_BINDINGS)
@@ -673,6 +676,9 @@ libwnck-1.0:
libwnck-3.0:
$(GENVAPI) --library $(srcdir)/libwnck-3.0 --metadatadir $(METADATADIR) --pkg gio-2.0 --pkg gtk+-3.0 $(GIRDIR)/Wnck-3.0.gir
+libxklavier:
+ $(GENVAPI) --library $(srcdir)/libxklavier --metadatadir $(METADATADIR) --pkg x11 $(GIRDIR)/Xkl-1.0.gir $(METADATADIR)/Xkl-1.0-custom.vala
+
loudmouth-1.0:
$(GENVAPI) --library $(srcdir)/loudmouth-1.0 $(PACKAGESDIR)/loudmouth-1.0/loudmouth-1.0-custom.vala $(PACKAGESDIR)/loudmouth-1.0/loudmouth-1.0.gi
diff --git a/vapi/libxklavier.deps b/vapi/libxklavier.deps
new file mode 100644
index 0000000..e181da0
--- /dev/null
+++ b/vapi/libxklavier.deps
@@ -0,0 +1 @@
+x11
diff --git a/vapi/libxklavier.vapi b/vapi/libxklavier.vapi
new file mode 100644
index 0000000..ae08e60
--- /dev/null
+++ b/vapi/libxklavier.vapi
@@ -0,0 +1,185 @@
+/* libxklavier.vapi generated by vapigen, do not modify. */
+
+[CCode (cprefix = "Xkl", gir_namespace = "Xkl", gir_version = "1.0", lower_case_cprefix = "xkl_")]
+namespace Xkl {
+ [CCode (cheader_filename = "libxklavier/xklavier.h", type_id = "xkl_config_item_get_type ()")]
+ public class ConfigItem : GLib.Object {
+ [CCode (array_length = false, array_null_terminated = true)]
+ public weak char[] description;
+ [CCode (array_length = false, array_null_terminated = true)]
+ public weak char[] name;
+ [CCode (array_length = false, array_null_terminated = true)]
+ public weak char[] short_description;
+ [CCode (has_construct_function = false)]
+ public ConfigItem ();
+ public void set_description (string? description);
+ public void set_name (string? name);
+ public void set_short_description (string? short_description);
+ }
+ [CCode (cheader_filename = "libxklavier/xklavier.h", type_id = "xkl_config_rec_get_type ()")]
+ public class ConfigRec : GLib.Object {
+ [CCode (array_length = false, array_null_terminated = true)]
+ public weak string[] layouts;
+ public weak string model;
+ [CCode (array_length = false, array_null_terminated = true)]
+ public weak string[] options;
+ [CCode (array_length = false, array_null_terminated = true)]
+ public weak string[] variants;
+ [CCode (has_construct_function = false)]
+ public ConfigRec ();
+ public bool activate (Xkl.Engine engine);
+ public bool equals (Xkl.ConfigRec data2);
+ public bool get_from_backup (Xkl.Engine engine);
+ public bool get_from_root_window_property (X.Atom rules_atom_name, string rules_file_out, Xkl.Engine engine);
+ public bool get_from_server (Xkl.Engine engine);
+ public void reset ();
+ public void set_layouts ([CCode (array_length = false, array_null_terminated = true)] string[] new_layouts);
+ public void set_options ([CCode (array_length = false, array_null_terminated = true)] string[] new_options);
+ public bool set_to_root_window_property (X.Atom rules_atom_name, string rules_file, Xkl.Engine engine);
+ public void set_variants ([CCode (array_length = false, array_null_terminated = true)] string[] new_variants);
+ public static bool write_to_file (Xkl.Engine engine, string file_name, Xkl.ConfigRec data, bool binary);
+ }
+ [CCode (cheader_filename = "libxklavier/xklavier.h", type_id = "xkl_config_registry_get_type ()")]
+ public class ConfigRegistry : GLib.Object {
+ [CCode (has_construct_function = false)]
+ protected ConfigRegistry ();
+ public bool find_layout (Xkl.ConfigItem item);
+ public bool find_model (Xkl.ConfigItem item);
+ public bool find_option (string option_group_name, Xkl.ConfigItem item);
+ public bool find_option_group (Xkl.ConfigItem item);
+ public bool find_variant (string layout_name, Xkl.ConfigItem item);
+ public void foreach_country (Xkl.ConfigItemProcessFunc func);
+ public void foreach_country_variant (string country_code, Xkl.TwoConfigItemsProcessFunc func);
+ public void foreach_language (Xkl.ConfigItemProcessFunc func);
+ public void foreach_language_variant (string language_code, Xkl.TwoConfigItemsProcessFunc func);
+ public void foreach_layout (Xkl.ConfigItemProcessFunc func);
+ public void foreach_layout_variant (string layout_name, Xkl.ConfigItemProcessFunc func);
+ public void foreach_model (Xkl.ConfigItemProcessFunc func);
+ public void foreach_option (string option_group_name, Xkl.ConfigItemProcessFunc func);
+ public void foreach_option_group (Xkl.ConfigItemProcessFunc func);
+ public static unowned Xkl.ConfigRegistry get_instance (Xkl.Engine engine);
+ public bool load (bool if_extras_needed);
+ public void search_by_pattern (string pattern, Xkl.TwoConfigItemsProcessFunc func);
+ [NoAccessorMethod]
+ public Xkl.Engine engine { owned get; construct; }
+ }
+ [CCode (cheader_filename = "libxklavier/xklavier.h")]
+ public class Engine : GLib.Object {
+ [CCode (has_construct_function = false)]
+ protected Engine ();
+ public static void INT__LONG_LONG (GLib.Closure closure, GLib.Value return_value, uint n_param_values, GLib.Value param_values, void* invocation_hint, void* marshal_data);
+ public static void VOID__FLAGS_INT_BOOLEAN (GLib.Closure closure, GLib.Value return_value, uint n_param_values, GLib.Value param_values, void* invocation_hint, void* marshal_data);
+ public void allow_one_switch_to_secondary_group ();
+ public bool backup_names_prop ();
+ [NoWrapper]
+ public virtual void config_notify ();
+ public void delete_state (X.Window win);
+ public int filter_events ([CCode (type = "XEvent*")] X.Event* evt);
+ public unowned string get_backend_name ();
+ public unowned Xkl.State get_current_state ();
+ public X.Window get_current_window ();
+ public int get_current_window_group ();
+ public int get_default_group ();
+ public uint get_features ();
+ [CCode (array_length = false, array_null_terminated = true)]
+ public unowned string[] get_groups_names ();
+ public bool get_indicators_handling ();
+ [CCode (array_length = false, array_null_terminated = true)]
+ public unowned string[] get_indicators_names ();
+ public static unowned Xkl.Engine get_instance (X.Display display);
+ public uint get_max_num_groups ();
+ public int get_next_group ();
+ public uint get_num_groups ();
+ public int get_prev_group ();
+ public uint get_secondary_groups_mask ();
+ public bool get_state (X.Window win, Xkl.State state_out);
+ public string get_window_title (X.Window win);
+ public bool grab_key (int keycode, uint modifiers);
+ public bool is_group_per_toplevel_window ();
+ public bool is_window_from_same_toplevel_window (X.Window win1, X.Window win2);
+ public bool is_window_transparent (X.Window win);
+ public void lock_group (int group);
+ [NoWrapper]
+ public virtual void new_device_notify ();
+ [NoWrapper]
+ public virtual int new_window_notify (X.Window win, X.Window parent);
+ public int pause_listen ();
+ public int resume_listen ();
+ public void save_state (X.Window win, Xkl.State state);
+ public void set_default_group (int group);
+ public void set_group_per_toplevel_window (bool is_global);
+ public void set_indicators_handling (bool whether_handle);
+ public void set_secondary_groups_mask (uint mask);
+ public void set_window_transparent (X.Window win, bool transparent);
+ public int start_listen (uint flags);
+ [NoWrapper]
+ public virtual void state_notify (Xkl.EngineStateChange change_type, int group, bool restore);
+ public int stop_listen (uint flags);
+ public bool ungrab_key (int keycode, uint modifiers);
+ [NoAccessorMethod]
+ public string backendName { owned get; }
+ public uint default_group { get; }
+ [NoAccessorMethod]
+ public void* display { get; construct; }
+ public bool indicators_handling { get; }
+ public uint max_num_groups { get; }
+ public uint num_groups { get; }
+ public uint secondary_groups_mask { get; }
+ [CCode (cname = "X_config_changed")]
+ public signal void X_config_changed ();
+ [CCode (cname = "X_new_device")]
+ public signal void X_new_device ();
+ [CCode (cname = "X_state_changed")]
+ public signal void X_state_changed (int type, int group, bool restore);
+ public signal int new_toplevel_window (long object, long p0);
+ }
+ [CCode (cheader_filename = "libxklavier/xklavier.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "xkl_state_get_type ()")]
+ [Compact]
+ public class State {
+ public int32 group;
+ public uint32 indicators;
+ }
+ [CCode (cheader_filename = "libxklavier/xklavier.h", cprefix = "XKLF_", has_type_id = false)]
+ [Flags]
+ public enum EngineFeatures {
+ CAN_TOGGLE_INDICATORS,
+ CAN_OUTPUT_CONFIG_AS_ASCII,
+ CAN_OUTPUT_CONFIG_AS_BINARY,
+ MULTIPLE_LAYOUTS_SUPPORTED,
+ REQUIRES_MANUAL_LAYOUT_MANAGEMENT,
+ DEVICE_DISCOVERY
+ }
+ [CCode (cheader_filename = "libxklavier/xklavier.h", cprefix = "XKLL_", has_type_id = false)]
+ public enum EngineListenModes {
+ MANAGE_WINDOW_STATES,
+ TRACK_KEYBOARD_STATE,
+ MANAGE_LAYOUTS
+ }
+ [CCode (cheader_filename = "libxklavier/xklavier.h", cprefix = "", has_type_id = false)]
+ public enum EngineStateChange {
+ [CCode (cname = "GROUP_CHANGED")]
+ ROUP_CHANGED,
+ [CCode (cname = "INDICATORS_CHANGED")]
+ NDICATORS_CHANGED
+ }
+ [CCode (cheader_filename = "libxklavier/xklavier.h", has_target = false)]
+ public delegate void ConfigItemProcessFunc (Xkl.ConfigRegistry config, Xkl.ConfigItem item, void* data);
+ [CCode (cheader_filename = "libxklavier/xklavier.h", has_target = false)]
+ public delegate void TwoConfigItemsProcessFunc (Xkl.ConfigRegistry config, Xkl.ConfigItem item, Xkl.ConfigItem subitem, void* data);
+ [CCode (cheader_filename = "libxklavier/xklavier.h", cname = "XKL_MAX_CI_DESC_LENGTH")]
+ public const int MAX_CI_DESC_LENGTH;
+ [CCode (cheader_filename = "libxklavier/xklavier.h", cname = "XKL_MAX_CI_NAME_LENGTH")]
+ public const int MAX_CI_NAME_LENGTH;
+ [CCode (cheader_filename = "libxklavier/xklavier.h", cname = "XKL_MAX_CI_SHORT_DESC_LENGTH")]
+ public const int MAX_CI_SHORT_DESC_LENGTH;
+ [CCode (cheader_filename = "libxklavier/xklavier.h")]
+ public static unowned string get_country_name (string code);
+ [CCode (cheader_filename = "libxklavier/xklavier.h")]
+ public static unowned string get_language_name (string code);
+ [CCode (cheader_filename = "libxklavier/xklavier.h")]
+ public static unowned string get_last_error ();
+ [CCode (cheader_filename = "libxklavier/xklavier.h")]
+ public static bool restore_names_prop (Xkl.Engine engine);
+ [CCode (cheader_filename = "libxklavier/xklavier.h")]
+ public static void set_debug_level (int level);
+}
diff --git a/vapi/metadata/Xkl-1.0-custom.vala b/vapi/metadata/Xkl-1.0-custom.vala
new file mode 100644
index 0000000..e7a65f2
--- /dev/null
+++ b/vapi/metadata/Xkl-1.0-custom.vala
@@ -0,0 +1,11 @@
+namespace Xkl {
+ public class Engine : GLib.Object {
+ // Prevent signal names from being converted to lower case.
+ [CCode (cname = "X_config_changed")]
+ public signal void X_config_changed ();
+ [CCode (cname = "X_new_device")]
+ public signal void X_new_device ();
+ [CCode (cname = "X_state_changed")]
+ public signal void X_state_changed (int type, int group, bool restore);
+ }
+}
diff --git a/vapi/metadata/Xkl-1.0.metadata b/vapi/metadata/Xkl-1.0.metadata
new file mode 100644
index 0000000..f1647d4
--- /dev/null
+++ b/vapi/metadata/Xkl-1.0.metadata
@@ -0,0 +1,6 @@
+Xkl cheader_filename="libxklavier/xklavier.h"
+Engine
+ .filter_events.evt type="X.Event*"
+ .X_state_changed skip
+ .X_config_changed skip
+ .X_new_device skip
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]