1/* libxklavier.vapi generated by vapigen, do not modify. */
2
3[CCode (cprefix = "Xkl", lower_case_cprefix = "xkl_")]
4namespace Xkl {
5	[CCode (cheader_filename = "libxklavier/xklavier.h")]
6	public class ConfigItem : GLib.Object {
7		[CCode (array_length = false)]
8		public weak char[] description;
9		[CCode (array_length = false)]
10		public weak char[] name;
11		[CCode (array_length = false)]
12		public weak char[] short_description;
13		[CCode (has_construct_function = false)]
14		public ConfigItem ();
15	}
16	[CCode (cheader_filename = "libxklavier/xklavier.h")]
17	public class ConfigRec : GLib.Object {
18        [CCode (array_length = false, array_null_terminated = true)]
19		public string[] layouts;
20		public weak string model;
21        [CCode (array_length = false, array_null_terminated = true)]
22		public string[] options;
23        [CCode (array_length = false, array_null_terminated = true)]
24		public string[] variants;
25		[CCode (has_construct_function = false)]
26		public ConfigRec ();
27		public bool activate (Xkl.Engine engine);
28		public bool equals (Xkl.ConfigRec data2);
29		public bool get_from_backup (Xkl.Engine engine);
30		public bool get_from_root_window_property (X.Atom rules_atom_name, string rules_file_out, Xkl.Engine engine);
31		public bool get_from_server (Xkl.Engine engine);
32		public void reset ();
33		public bool set_to_root_window_property (X.Atom rules_atom_name, string rules_file, Xkl.Engine engine);
34		public static bool write_to_file (Xkl.Engine engine, string file_name, Xkl.ConfigRec data, bool binary);
35	}
36	[CCode (cheader_filename = "libxklavier/xklavier.h")]
37	public class ConfigRegistry : GLib.Object {
38		[CCode (has_construct_function = false)]
39		protected ConfigRegistry ();
40		public bool find_layout (Xkl.ConfigItem item);
41		public bool find_model (Xkl.ConfigItem item);
42		public bool find_option (string option_group_name, Xkl.ConfigItem item);
43		public bool find_option_group (Xkl.ConfigItem item);
44		public bool find_variant (string layout_name, Xkl.ConfigItem item);
45		public void foreach_country (Xkl.ConfigItemProcessFunc func, void* data);
46		public void foreach_country_variant (string country_code, Xkl.TwoConfigItemsProcessFunc func, void* data);
47		public void foreach_language (Xkl.ConfigItemProcessFunc func, void* data);
48		public void foreach_language_variant (string language_code, Xkl.TwoConfigItemsProcessFunc func, void* data);
49		public void foreach_layout (Xkl.ConfigItemProcessFunc func, void* data);
50		public void foreach_layout_variant (string layout_name, Xkl.ConfigItemProcessFunc func, void* data);
51		public void foreach_model (Xkl.ConfigItemProcessFunc func, void* data);
52		public void foreach_option (string option_group_name, Xkl.ConfigItemProcessFunc func, void* data);
53		public void foreach_option_group (Xkl.ConfigItemProcessFunc func, void* data);
54		public static unowned Xkl.ConfigRegistry get_instance (Xkl.Engine engine);
55		public bool load (bool if_extras_needed);
56		public void search_by_pattern (string pattern, Xkl.TwoConfigItemsProcessFunc func, void* data);
57		[NoAccessorMethod]
58		public Xkl.Engine engine { owned get; construct; }
59	}
60	[CCode (cheader_filename = "libxklavier/xklavier.h")]
61	public class Engine : GLib.Object {
62		[CCode (has_construct_function = false)]
63		protected Engine ();
64		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);
65		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);
66		public void allow_one_switch_to_secondary_group ();
67		public bool backup_names_prop ();
68		[NoWrapper]
69		public virtual void config_notify ();
70		public void delete_state (X.Window win);
71		public int filter_events (X.Event* evt);
72		public unowned string get_backend_name ();
73		public unowned Xkl.State get_current_state ();
74		public X.Window get_current_window ();
75		public int get_current_window_group ();
76		public int get_default_group ();
77		public uint get_features ();
78		public unowned string get_groups_names ();
79		public bool get_indicators_handling ();
80		public unowned string get_indicators_names ();
81		public static unowned Xkl.Engine get_instance (X.Display display);
82		public uint get_max_num_groups ();
83		public int get_next_group ();
84		public uint get_num_groups ();
85		public int get_prev_group ();
86		public uint get_secondary_groups_mask ();
87		public bool get_state (X.Window win, Xkl.State state_out);
88		public unowned string get_window_title (X.Window win);
89		public bool grab_key (int keycode, uint modifiers);
90		public bool is_group_per_toplevel_window ();
91		public bool is_window_from_same_toplevel_window (X.Window win1, X.Window win2);
92		public bool is_window_transparent (X.Window win);
93		public void lock_group (int group);
94		public int pause_listen ();
95		public int resume_listen ();
96		public void save_state (X.Window win, Xkl.State state);
97		public void set_default_group (int group);
98		public void set_group_per_toplevel_window (bool is_global);
99		public void set_indicators_handling (bool whether_handle);
100		public void set_secondary_groups_mask (uint mask);
101		public void set_window_transparent (X.Window win, bool transparent);
102		public int start_listen (uint flags);
103		[NoWrapper]
104		public virtual void state_notify (Xkl.EngineStateChange change_type, int group, bool restore);
105		public int stop_listen (uint flags);
106		public bool ungrab_key (int keycode, uint modifiers);
107		[NoAccessorMethod]
108		public string backendName { owned get; }
109		public uint default_group { get; }
110		[NoAccessorMethod]
111		public void* display { get; construct; }
112		public Xkl.EngineFeatures features { get; }
113		public bool indicators_handling { get; }
114		public uint max_num_groups { get; }
115		public uint num_groups { get; }
116		public uint secondary_groups_mask { get; }
117		[CCode (cname = "X_config_changed")]
118		public virtual signal void X_config_changed ();
119		[CCode (cname = "X_new_device")]
120		public virtual signal void X_new_device ();
121		[CCode (cname = "X_state_changed")]
122		public virtual signal void X_state_changed (int p0, int p1, bool p2);
123		public virtual signal int new_toplevel_window (long p0, long p1);
124	}
125	[Compact]
126	[CCode (cheader_filename = "libxklavier/xklavier.h")]
127	public class State {
128		public int32 group;
129		public uint32 indicators;
130	}
131	[CCode (cprefix = "XKLF_", cheader_filename = "libxklavier/xklavier.h")]
132	[Flags]
133	public enum EngineFeatures {
134		CAN_TOGGLE_INDICATORS,
135		CAN_OUTPUT_CONFIG_AS_ASCII,
136		CAN_OUTPUT_CONFIG_AS_BINARY,
137		MULTIPLE_LAYOUTS_SUPPORTED,
138		REQUIRES_MANUAL_LAYOUT_MANAGEMENT,
139		DEVICE_DISCOVERY
140	}
141	[CCode (cprefix = "XKLL_", cheader_filename = "libxklavier/xklavier.h")]
142	public enum EngineListenModes {
143		MANAGE_WINDOW_STATES,
144		TRACK_KEYBOARD_STATE,
145		MANAGE_LAYOUTS
146	}
147	[CCode (cprefix = "", cheader_filename = "libxklavier/xklavier.h")]
148	public enum EngineStateChange {
149		GROUP_CHANGED,
150		INDICATORS_CHANGED
151	}
152	[CCode (cheader_filename = "libxklavier/xklavier.h")]
153	public delegate void ConfigItemProcessFunc (Xkl.ConfigRegistry config, Xkl.ConfigItem item);
154	[CCode (cheader_filename = "libxklavier/xklavier.h", has_target = false)]
155	public delegate void LogAppender (char[] file, char[] function, int level, char[] format, void* args);
156	[CCode (cheader_filename = "libxklavier/xklavier.h")]
157	public delegate void TwoConfigItemsProcessFunc (Xkl.ConfigRegistry config, Xkl.ConfigItem item, Xkl.ConfigItem subitem);
158	[CCode (cheader_filename = "libxklavier/xklavier.h")]
159	public const int MAX_CI_DESC_LENGTH;
160	[CCode (cheader_filename = "libxklavier/xklavier.h")]
161	public const int MAX_CI_NAME_LENGTH;
162	[CCode (cheader_filename = "libxklavier/xklavier.h")]
163	public const int MAX_CI_SHORT_DESC_LENGTH;
164	[CCode (cheader_filename = "libxklavier/xklavier.h")]
165	public const string XCI_PROP_ALLOW_MULTIPLE_SELECTION;
166	[CCode (cheader_filename = "libxklavier/xklavier.h")]
167	public const string XCI_PROP_COUNTRY_LIST;
168	[CCode (cheader_filename = "libxklavier/xklavier.h")]
169	public const string XCI_PROP_EXTRA_ITEM;
170	[CCode (cheader_filename = "libxklavier/xklavier.h")]
171	public const string XCI_PROP_LANGUAGE_LIST;
172	[CCode (cheader_filename = "libxklavier/xklavier.h")]
173	public const string XCI_PROP_VENDOR;
174	[CCode (cheader_filename = "libxklavier/xklavier.h")]
175	public static void default_log_appender (char[] file, char[] function, int level, char[] format, void* args);
176	[CCode (cheader_filename = "libxklavier/xklavier.h")]
177	public static unowned string get_country_name (string code);
178	[CCode (cheader_filename = "libxklavier/xklavier.h")]
179	public static unowned string get_language_name (string code);
180	[CCode (cheader_filename = "libxklavier/xklavier.h")]
181	public static unowned string get_last_error ();
182	[CCode (cheader_filename = "libxklavier/xklavier.h")]
183	public static bool restore_names_prop (Xkl.Engine engine);
184	[CCode (cheader_filename = "libxklavier/xklavier.h")]
185	public static void set_debug_level (int level);
186	[CCode (cheader_filename = "libxklavier/xklavier.h")]
187	public static void set_log_appender (Xkl.LogAppender fun);
188}
189