|
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
|