Blame libxklavier/xkl_engine.h

Packit Service 93d855
/*
Packit Service 93d855
 * Copyright (C) 2002-2006 Sergey V. Udaltsov <svu@gnome.org>
Packit Service 93d855
 *
Packit Service 93d855
 * This library is free software; you can redistribute it and/or
Packit Service 93d855
 * modify it under the terms of the GNU Lesser General Public
Packit Service 93d855
 * License as published by the Free Software Foundation; either
Packit Service 93d855
 * version 2 of the License, or (at your option) any later version.
Packit Service 93d855
 *
Packit Service 93d855
 * This library is distributed in the hope that it will be useful,
Packit Service 93d855
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 93d855
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 93d855
 * Lesser General Public License for more details.
Packit Service 93d855
 *
Packit Service 93d855
 * You should have received a copy of the GNU Lesser General Public
Packit Service 93d855
 * License along with this library; if not, write to the
Packit Service 93d855
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit Service 93d855
 * Boston, MA 02111-1307, USA.
Packit Service 93d855
 */
Packit Service 93d855
Packit Service 93d855
#ifndef __XKL_ENGINE_H__
Packit Service 93d855
#define __XKL_ENGINE_H__
Packit Service 93d855
Packit Service 93d855
#include <X11/Xlib.h>
Packit Service 93d855
Packit Service 93d855
#include <glib-object.h>
Packit Service 93d855
Packit Service 93d855
#ifdef __cplusplus
Packit Service 93d855
extern "C" {
Packit Service 93d855
#endif
Packit Service 93d855
Packit Service 93d855
	typedef struct _XklEngine XklEngine;
Packit Service 93d855
	typedef struct _XklEnginePrivate XklEnginePrivate;
Packit Service 93d855
	typedef struct _XklEngineClass XklEngineClass;
Packit Service 93d855
	typedef struct _XklState XklState;
Packit Service 93d855
Packit Service 93d855
#define XKL_TYPE_ENGINE             (xkl_engine_get_type ())
Packit Service 93d855
#define XKL_ENGINE(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), XKL_TYPE_ENGINE, XklEngine))
Packit Service 93d855
#define XKL_ENGINE_CLASS(obj)       (G_TYPE_CHECK_CLASS_CAST ((obj), XKL_TYPE_ENGINE,  XklEngineClass))
Packit Service 93d855
#define XKL_IS_ENGINE(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XKL_TYPE_ENGINE))
Packit Service 93d855
#define XKL_IS_ENGINE_CLASS(obj)    (G_TYPE_CHECK_CLASS_TYPE ((obj), XKL_TYPE_ENGINE))
Packit Service 93d855
#define XKL_ENGINE_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), XKL_TYPE_ENGINE, XklEngineClass))
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * XklEngineStateChange:
Packit Service 93d855
 *   @GROUP_CHANGED: Group was changed
Packit Service 93d855
 *   @INDICATORS_CHANGED: Indicators were changed
Packit Service 93d855
 *
Packit Service 93d855
 * The type of the keyboard state change
Packit Service 93d855
 */
Packit Service 93d855
	typedef enum {
Packit Service 93d855
		GROUP_CHANGED,
Packit Service 93d855
		INDICATORS_CHANGED
Packit Service 93d855
	} XklEngineStateChange;
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * XklEngineFeatures:
Packit Service 93d855
 *   @XKLF_CAN_TOGGLE_INDICATORS: Backend allows to toggls indicators on/off
Packit Service 93d855
 *   @XKLF_CAN_OUTPUT_CONFIG_AS_ASCII: Backend allows writing ASCII representation of the configuration
Packit Service 93d855
 *   @XKLF_CAN_OUTPUT_CONFIG_AS_BINARY: Backend allows writing binary representation of the configuration
Packit Service 93d855
 *   @XKLF_MULTIPLE_LAYOUTS_SUPPORTED: Backend supports multiple layouts
Packit Service 93d855
 *   @XKLF_REQUIRES_MANUAL_LAYOUT_MANAGEMENT: Backend requires manual configuration, some daemon should do 
Packit Service 93d855
 *                                   xkl_start_listen(engine,XKLL_MANAGE_LAYOUTS);
Packit Service 93d855
 *   @XKLF_DEVICE_DISCOVERY: Backend supports device discovery, can notify
Packit Service 93d855
 *
Packit Service 93d855
 * A set of flags used to indicate the capabilities of the active backend
Packit Service 93d855
 *
Packit Service 93d855
 */
Packit Service 93d855
	typedef enum { /*< flags >*/
Packit Service 93d855
		XKLF_CAN_TOGGLE_INDICATORS = 1 << 0,
Packit Service 93d855
		XKLF_CAN_OUTPUT_CONFIG_AS_ASCII = 1 << 1,
Packit Service 93d855
		XKLF_CAN_OUTPUT_CONFIG_AS_BINARY = 1 << 2,
Packit Service 93d855
		XKLF_MULTIPLE_LAYOUTS_SUPPORTED = 1 << 3,
Packit Service 93d855
		XKLF_REQUIRES_MANUAL_LAYOUT_MANAGEMENT = 1 << 4,
Packit Service 93d855
		XKLF_DEVICE_DISCOVERY = 1 << 5
Packit Service 93d855
	} XklEngineFeatures;
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * _XklState:
Packit Service 93d855
 * @group: selected group 
Packit Service 93d855
 * @indicators: set of active indicators
Packit Service 93d855
 *
Packit Service 93d855
 * XKB state. Can be global or per-window
Packit Service 93d855
 */
Packit Service 93d855
	struct _XklState {
Packit Service 93d855
		gint32 group;
Packit Service 93d855
		guint32 indicators;
Packit Service 93d855
	};
Packit Service 93d855
Packit Service 93d855
#define XKL_TYPE_STATE (xkl_state_get_type())
Packit Service 93d855
Packit Service 93d855
        GType xkl_state_get_type (void) G_GNUC_CONST;
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * _XklEngine:
Packit Service 93d855
 * @parent: The superclass object
Packit Service 93d855
 *
Packit Service 93d855
 * The main Xklavier engine class
Packit Service 93d855
 */
Packit Service 93d855
	struct _XklEngine {
Packit Service 93d855
		GObject parent;
Packit Service 93d855
                /*< private >*/
Packit Service 93d855
		XklEnginePrivate *priv;
Packit Service 93d855
	};
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * _XklEngineClass:
Packit Service 93d855
 * @parent_class: The superclass
Packit Service 93d855
 *
Packit Service 93d855
 * The XklEngine class, derived from GObject
Packit Service 93d855
 */
Packit Service 93d855
	struct _XklEngineClass {
Packit Service 93d855
		GObjectClass parent_class;
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * XklEngine::config-notify:
Packit Service 93d855
 * @engine: the object on which the signal is emitted
Packit Service 93d855
 *
Packit Service 93d855
 * Used for notifying application of the XKB configuration change.
Packit Service 93d855
 */
Packit Service 93d855
		void (*config_notify) (XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * XklEngine::new_window_notify:
Packit Service 93d855
 * @engine: the object on which the signal is emitted
Packit Service 93d855
 * @win: new window
Packit Service 93d855
 * @parent: new window's parent
Packit Service 93d855
 *
Packit Service 93d855
 * Used for notifying application of new window creation (actually, 
Packit Service 93d855
 * registration).
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: the initial group id for the window (-1 to use the default value)
Packit Service 93d855
 */
Packit Service 93d855
		 gint(*new_window_notify) (XklEngine * engine, Window win,
Packit Service 93d855
					   Window parent);
Packit Service 93d855
/**
Packit Service 93d855
 * XklEngine::state_notify:
Packit Service 93d855
 * @engine: the object on which the signal is emitted
Packit Service 93d855
 * @change_type: mask of changes
Packit Service 93d855
 * @group: new group
Packit Service 93d855
 * @restore: whether this state is restored from
Packit Service 93d855
 * saved state of set as new.
Packit Service 93d855
 *
Packit Service 93d855
 * Used for notifying application of the window state change.
Packit Service 93d855
 */
Packit Service 93d855
		void (*state_notify) (XklEngine * engine,
Packit Service 93d855
				      XklEngineStateChange change_type,
Packit Service 93d855
				      gint group, gboolean restore);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * XklEngine::new_device_notify:
Packit Service 93d855
 * @engine: the object on which the signal is emitted
Packit Service 93d855
 *
Packit Service 93d855
 * Used for notifying application of the new keyboard attached
Packit Service 93d855
 */
Packit Service 93d855
		void (*new_device_notify) (XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
	};
Packit Service 93d855
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_type:
Packit Service 93d855
 *
Packit Service 93d855
 * Get type info for XklEngine
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: GType for XklEngine
Packit Service 93d855
 */
Packit Service 93d855
	extern GType xkl_engine_get_type(void);
Packit Service 93d855
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_instance:
Packit Service 93d855
 * @display: the X display used by the application
Packit Service 93d855
 *
Packit Service 93d855
 * Get the instance of the XklEngine. Within a process, there is always once instance.
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: (transfer none): the singleton instance
Packit Service 93d855
 */
Packit Service 93d855
	extern XklEngine *xkl_engine_get_instance(Display * display);
Packit Service 93d855
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_backend_name:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * 
Packit Service 93d855
 * What kind of backend is used
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: some string id of the backend
Packit Service 93d855
 */
Packit Service 93d855
	extern const gchar *xkl_engine_get_backend_name(XklEngine *
Packit Service 93d855
							engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_features:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Provides information regarding available backend features
Packit Service 93d855
 * (combination of XKLF_* constants)
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: ORed XKLF_* constants
Packit Service 93d855
 */
Packit Service 93d855
	extern guint xkl_engine_get_features(XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_max_num_groups:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Provides the information on maximum number of simultaneously supported 
Packit Service 93d855
 * groups (layouts)
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: maximum number of the groups in configuration, 
Packit Service 93d855
 *         0 if no restrictions.
Packit Service 93d855
 */
Packit Service 93d855
	extern guint xkl_engine_get_max_num_groups(XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * XklEngineListenModes:
Packit Service 93d855
 *   @XKLL_MANAGE_WINDOW_STATES: The listener process should handle the per-window states 
Packit Service 93d855
 *                       and all the related activity
Packit Service 93d855
 *   @XKLL_TRACK_KEYBOARD_STATE: Just track the state and pass it to the application above.
Packit Service 93d855
 *   @XKLL_MANAGE_LAYOUTS: The listener process should help backend to maintain the configuration
Packit Service 93d855
 *                  (manually switch layouts etc).
Packit Service 93d855
 *
Packit Service 93d855
 * The listener action modes:
Packit Service 93d855
 */
Packit Service 93d855
	typedef enum {
Packit Service 93d855
		XKLL_MANAGE_WINDOW_STATES = 0x01,
Packit Service 93d855
		XKLL_TRACK_KEYBOARD_STATE = 0x02,
Packit Service 93d855
		XKLL_MANAGE_LAYOUTS = 0x04,
Packit Service 93d855
	} XklEngineListenModes;
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_start_listen:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @flags: any combination of XKLL_* constants
Packit Service 93d855
 *
Packit Service 93d855
 * Starts listening for XKB-related events
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: 0
Packit Service 93d855
 */
Packit Service 93d855
	extern gint xkl_engine_start_listen(XklEngine * engine,
Packit Service 93d855
					    guint flags);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_stop_listen:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @flags: any combination of XKLL_* constants
Packit Service 93d855
 *
Packit Service 93d855
 * Stops listening for XKB-related events
Packit Service 93d855
 * Returns: 0
Packit Service 93d855
 */
Packit Service 93d855
	extern gint xkl_engine_stop_listen(XklEngine * engine,
Packit Service 93d855
					   guint flags);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_pause_listen:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Temporary pauses listening for XKB-related events
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: 0
Packit Service 93d855
 */
Packit Service 93d855
	extern gint xkl_engine_pause_listen(XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_resume_listen:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Resumes listening for XKB-related events
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: 0
Packit Service 93d855
 */
Packit Service 93d855
	extern gint xkl_engine_resume_listen(XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_grab_key:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @keycode: keycode
Packit Service 93d855
 * @modifiers: bitmask of modifiers
Packit Service 93d855
 *
Packit Service 93d855
 * Grabs some key
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: TRUE on success
Packit Service 93d855
 */
Packit Service 93d855
	extern gboolean xkl_engine_grab_key(XklEngine * engine,
Packit Service 93d855
					    gint keycode, guint modifiers);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_ungrab_key:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @keycode: keycode
Packit Service 93d855
 * @modifiers: bitmask of modifiers
Packit Service 93d855
 *
Packit Service 93d855
 * Ungrabs some key
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: TRUE on success
Packit Service 93d855
 */
Packit Service 93d855
	extern gboolean xkl_engine_ungrab_key(XklEngine * engine,
Packit Service 93d855
					      gint keycode,
Packit Service 93d855
					      guint modifiers);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_filter_events:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @evt: (skip): delivered X event
Packit Service 93d855
 *
Packit Service 93d855
 * Processes X events. Should be included into the main event cycle of an
Packit Service 93d855
 * application. One of the most important functions. 
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: 0 if the event it processed - 1 otherwise
Packit Service 93d855
 */
Packit Service 93d855
	extern gint xkl_engine_filter_events(XklEngine * engine,
Packit Service 93d855
					     XEvent * evt);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_allow_one_switch_to_secondary_group:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Allows to switch (once) to the secondary group
Packit Service 93d855
 *
Packit Service 93d855
 */
Packit Service 93d855
	extern void
Packit Service 93d855
	 xkl_engine_allow_one_switch_to_secondary_group(XklEngine *
Packit Service 93d855
							engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_current_window:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: currently focused window
Packit Service 93d855
 */
Packit Service 93d855
	extern Window xkl_engine_get_current_window(XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_current_state:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: (transfer none): current state of the keyboard.
Packit Service 93d855
 * Returned value is a statically allocated buffer, should not be freed.
Packit Service 93d855
 */
Packit Service 93d855
	extern XklState *xkl_engine_get_current_state(XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_window_title:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @win: X window
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: the window title of some window or NULL. 
Packit Service 93d855
 * If not NULL, it should be freed with XFree
Packit Service 93d855
 */
Packit Service 93d855
	extern gchar *xkl_engine_get_window_title(XklEngine * engine,
Packit Service 93d855
						  Window win);
Packit Service 93d855
Packit Service 93d855
/** 
Packit Service 93d855
 * xkl_engine_get_state:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @win: window to query
Packit Service 93d855
 * @state_out: structure to store the state
Packit Service 93d855
 * 
Packit Service 93d855
 * Finds the state for a given window (for its "App window").
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: TRUE on success, otherwise FALSE 
Packit Service 93d855
 * (the error message can be obtained using xkl_GetLastError).
Packit Service 93d855
 */
Packit Service 93d855
	extern gboolean xkl_engine_get_state(XklEngine * engine,
Packit Service 93d855
					     Window win,
Packit Service 93d855
					     XklState * state_out);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_delete_state:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @win: target window
Packit Service 93d855
 *
Packit Service 93d855
 * Drops the state of a given window (of its "App window").
Packit Service 93d855
 */
Packit Service 93d855
	extern void xkl_engine_delete_state(XklEngine * engine,
Packit Service 93d855
					    Window win);
Packit Service 93d855
Packit Service 93d855
/** 
Packit Service 93d855
 * xkl_engine_save_state:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @win: target window
Packit Service 93d855
 * @state: new state of the window
Packit Service 93d855
 *
Packit Service 93d855
 * Stores ths state for a given window
Packit Service 93d855
 */
Packit Service 93d855
	extern void xkl_engine_save_state(XklEngine * engine, Window win,
Packit Service 93d855
					  XklState * state);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_set_window_transparent:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @win: window do set the flag for.
Packit Service 93d855
 * @transparent: if true, the windows is transparent.
Packit Service 93d855
 *
Packit Service 93d855
 * Sets the "transparent" flag. It means focus switching onto 
Packit Service 93d855
 * this window will never change the state.
Packit Service 93d855
 */
Packit Service 93d855
	extern void xkl_engine_set_window_transparent(XklEngine *
Packit Service 93d855
						      engine,
Packit Service 93d855
						      Window win,
Packit Service 93d855
						      gboolean
Packit Service 93d855
						      transparent);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_is_window_transparent:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @win: window to get the transparent flag from.
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: TRUE if the window is "transparent"
Packit Service 93d855
 */
Packit Service 93d855
	extern gboolean xkl_engine_is_window_transparent(XklEngine
Packit Service 93d855
							 * engine,
Packit Service 93d855
							 Window win);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_is_window_from_same_toplevel_window:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @win1: first window
Packit Service 93d855
 * @win2: second window
Packit Service 93d855
 *
Packit Service 93d855
 * Checks whether 2 windows have the same topmost window
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: TRUE is windows are in the same application
Packit Service 93d855
 */
Packit Service 93d855
	extern gboolean
Packit Service 93d855
	    xkl_engine_is_window_from_same_toplevel_window(XklEngine *
Packit Service 93d855
							   engine,
Packit Service 93d855
							   Window win1,
Packit Service 93d855
							   Window win2);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_num_groups:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: the total number of groups in the current configuration 
Packit Service 93d855
 * (keyboard)
Packit Service 93d855
 */
Packit Service 93d855
	extern guint xkl_engine_get_num_groups(XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_groups_names:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: (transfer none): the array of group names for the current XKB
Packit Service 93d855
 * configuration (keyboard).
Packit Service 93d855
 * This array is static, should not be freed
Packit Service 93d855
 */
Packit Service 93d855
	extern const gchar **xkl_engine_get_groups_names(XklEngine *
Packit Service 93d855
							 engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_indicators_names:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: (transfer none): the array of indicator names for the current XKB
Packit Service 93d855
 * configuration (keyboard).
Packit Service 93d855
 * This array is static, should not be freed
Packit Service 93d855
 */
Packit Service 93d855
	extern const gchar **xkl_engine_get_indicators_names(XklEngine *
Packit Service 93d855
							     engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_next_group:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Calculates next group id. Does not change the state of anything.
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: next group id
Packit Service 93d855
 */
Packit Service 93d855
	extern gint xkl_engine_get_next_group(XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_prev_group:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Calculates prev group id. Does not change the state of anything.
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: prev group id
Packit Service 93d855
 */
Packit Service 93d855
	extern gint xkl_engine_get_prev_group(XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_current_window_group:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: saved group id of the current window. 
Packit Service 93d855
 */
Packit Service 93d855
	extern gint xkl_engine_get_current_window_group(XklEngine *
Packit Service 93d855
							engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_lock_group:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @group: group number for locking
Packit Service 93d855
 *
Packit Service 93d855
 * Locks the group. Can be used after xkl_GetXXXGroup functions
Packit Service 93d855
 */
Packit Service 93d855
	extern void xkl_engine_lock_group(XklEngine * engine, gint group);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_set_group_per_toplevel_window:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @is_global: new parameter value
Packit Service 93d855
 *
Packit Service 93d855
 * Sets the configuration parameter: group per application
Packit Service 93d855
 */
Packit Service 93d855
	extern void xkl_engine_set_group_per_toplevel_window(XklEngine *
Packit Service 93d855
							     engine,
Packit Service 93d855
							     gboolean
Packit Service 93d855
							     is_global);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_is_group_per_toplevel_window:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * 
Packit Service 93d855
 * Returns: the value of the parameter: group per application
Packit Service 93d855
 */
Packit Service 93d855
	extern gboolean xkl_engine_is_group_per_toplevel_window(XklEngine *
Packit Service 93d855
								engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_set_indicators_handling:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @whether_handle: new parameter value
Packit Service 93d855
 *
Packit Service 93d855
 * Sets the configuration parameter: perform indicators handling
Packit Service 93d855
 */
Packit Service 93d855
	extern void xkl_engine_set_indicators_handling(XklEngine * engine,
Packit Service 93d855
						       gboolean
Packit Service 93d855
						       whether_handle);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_indicators_handling:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: the value of the parameter: perform indicator handling
Packit Service 93d855
 */
Packit Service 93d855
	extern gboolean xkl_engine_get_indicators_handling(XklEngine *
Packit Service 93d855
							   engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_set_secondary_groups_mask:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @mask: new group mask
Packit Service 93d855
 *
Packit Service 93d855
 * Sets the secondary groups (one bit per group). 
Packit Service 93d855
 * Secondary groups require explicit "allowance" for switching
Packit Service 93d855
 */
Packit Service 93d855
	extern void xkl_engine_set_secondary_groups_mask(XklEngine *
Packit Service 93d855
							 engine,
Packit Service 93d855
							 guint mask);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_secondary_groups_mask:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: the secondary group mask
Packit Service 93d855
 */
Packit Service 93d855
	extern guint xkl_engine_get_secondary_groups_mask(XklEngine *
Packit Service 93d855
							  engine);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_set_default_group:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 * @group: default group
Packit Service 93d855
 *
Packit Service 93d855
 * Configures the default group set on window creation.
Packit Service 93d855
 * If -1, no default group is used
Packit Service 93d855
 */
Packit Service 93d855
	extern void xkl_engine_set_default_group(XklEngine * engine,
Packit Service 93d855
						 gint group);
Packit Service 93d855
Packit Service 93d855
/**
Packit Service 93d855
 * xkl_engine_get_default_group:
Packit Service 93d855
 * @engine: the engine
Packit Service 93d855
 *
Packit Service 93d855
 * Returns the default group set on window creation
Packit Service 93d855
 * If -1, no default group is used
Packit Service 93d855
 *
Packit Service 93d855
 * Returns: the default group
Packit Service 93d855
 */
Packit Service 93d855
	extern gint xkl_engine_get_default_group(XklEngine * engine);
Packit Service 93d855
Packit Service 93d855
#ifdef __cplusplus
Packit Service 93d855
}
Packit Service 93d855
#endif				/* __cplusplus */
Packit Service 93d855
#endif