summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Udaltsov <svu@gnome.org>2006-03-11 03:54:28 +0000
committerSergey Udaltsov <svu@gnome.org>2006-03-11 03:54:28 +0000
commiteae69826536b31fda5d5e532cd92a77648706b76 (patch)
tree9fb12172f2f0c40d84c176b74de4b019b253dd35
parent4c71318f01bdb08b4d159e4adf60863a8af0c634 (diff)
downloadlibxklavier-GLIBing.tar.gz
signals added to the docsGLIBing
-rw-r--r--libxklavier/xkl_engine.h88
-rw-r--r--libxklavier/xklavier.c23
-rw-r--r--libxklavier/xklavier_evt.c5
-rw-r--r--libxklavier/xklavier_private.h5
-rw-r--r--tests/test_monitor.c2
5 files changed, 60 insertions, 63 deletions
diff --git a/libxklavier/xkl_engine.h b/libxklavier/xkl_engine.h
index 208db55..4143059 100644
--- a/libxklavier/xkl_engine.h
+++ b/libxklavier/xkl_engine.h
@@ -20,51 +20,44 @@ extern "C" {
#define XKL_IS_ENGINE_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((obj), XKL_TYPE_ENGINE))
#define XKL_ENGINE_GET_CLASS (G_TYPE_INSTANCE_GET_CLASS ((obj), XKL_TYPE_ENGINE, XklEngineClass))
- typedef enum {
/**
- * Group was changed
+ * The type of the keyboard state change
+ * GroupChanged: Group was changed
+ * IndicatorsChanged: Indicators were changed
*/
+ typedef enum {
GROUP_CHANGED,
-/**
- * Indicators were changed
- */
INDICATORS_CHANGED
- } XklStateChange;
-
-/*
- * Backend allows to toggls indicators on/off
- */
-#define XKLF_CAN_TOGGLE_INDICATORS 0x01
-
-/*
- * Backend allows to write ascii representation of the configuration
- */
-#define XKLF_CAN_OUTPUT_CONFIG_AS_ASCII 0x02
-
-/*
- * Backend allows to write binary representation of the configuration
- */
-#define XKLF_CAN_OUTPUT_CONFIG_AS_BINARY 0x04
-
-/*
- * Backend supports multiple layouts
- */
-#define XKLF_MULTIPLE_LAYOUTS_SUPPORTED 0x08
+ } XklEngineStateChange;
-/*
- * Backend requires manual configuration,
- * some daemon should do
- * xkl_StartListen( XKLL_MANAGE_LAYOUTS );
+/**
+ * A set of flags used to indicate the capabilities of the active backend
+ * CanToggleIndicators: Backend allows to toggls indicators on/off
+ * CanOutputConfigAsASCII: Backend allows writing ASCII representation of the configuration
+ * CanOutputConfigAsBinary: Backend allows writing binary representation of the configuration
+ * MultipleLayoutsSupported: Backend supports multiple layouts
+ * RequiresManualLayoutManagement: Backend requires manual configuration, some daemon should do
+ * xkl_start_listen(engine,XKLL_MANAGE_LAYOUTS);
*/
-#define XKLF_REQUIRES_MANUAL_LAYOUT_MANAGEMENT 0x10
+ typedef enum {
+ XKLF_CAN_TOGGLE_INDICATORS = 0x01,
+ XKLF_CAN_OUTPUT_CONFIG_AS_ASCII = 0x02,
+ XKLF_CAN_OUTPUT_CONFIG_AS_BINARY = 0x04,
+ XKLF_MULTIPLE_LAYOUTS_SUPPORTED = 0x08,
+ XKLF_REQUIRES_MANUAL_LAYOUT_MANAGEMENT = 0x10,
+ } XklEngineFeatures;
/**
* XKB state. Can be global or per-window
*/
typedef struct {
-/** selected group */
+/**
+ * selected group
+ */
gint32 group;
-/** set of active indicators */
+/**
+ * set of active indicators
+ */
guint32 indicators;
} XklState;
@@ -123,7 +116,7 @@ extern "C" {
* Used for notifying application of the window state change.
*/
void (*state_notify) (XklEngine * engine,
- XklStateChange change_type,
+ XklEngineStateChange change_type,
gint group, gboolean restore);
};
@@ -184,22 +177,19 @@ extern "C" {
*/
extern guint xkl_engine_get_max_num_groups(XklEngine * engine);
-/*
- * The listener process should handle the per-window states
- * and all the related activity
- */
-#define XKLL_MANAGE_WINDOW_STATES 0x01
-
-/*
- * Just track the state and pass it to the application above.
- */
-#define XKLL_TRACK_KEYBOARD_STATE 0x02
-
-/*
- * The listener process should help backend to maintain the configuration
- * (manually switch layouts etc).
+/**
+ * The listener action modes:
+ * ManageWindowStates: The listener process should handle the per-window states
+ * and all the related activity
+ * TrackKeyboardState: Just track the state and pass it to the application above.
+ * ManageLayouts: The listener process should help backend to maintain the configuration
+ * (manually switch layouts etc).
*/
-#define XKLL_MANAGE_LAYOUTS 0x04
+ typedef enum {
+ XKLL_MANAGE_WINDOW_STATES = 0x01,
+ XKLL_TRACK_KEYBOARD_STATE = 0x02,
+ XKLL_MANAGE_LAYOUTS = 0x04
+ } XklEngineListenModes;
/**
* xkl_engine_start_listen:
diff --git a/libxklavier/xklavier.c b/libxklavier/xklavier.c
index f5d89b4..ea19bbb 100644
--- a/libxklavier/xklavier.c
+++ b/libxklavier/xklavier.c
@@ -431,7 +431,7 @@ xkl_engine_select_input_merging(XklEngine * engine, Window win,
void
xkl_engine_try_call_state_func(XklEngine * engine,
- XklStateChange change_type,
+ XklEngineStateChange change_type,
XklState * old_state)
{
gint group = xkl_engine_priv(engine, curr_state).group;
@@ -740,16 +740,21 @@ static void
xkl_engine_class_init(XklEngineClass * klass)
{
static GFlagsValue feature_flags[] = {
- {0x01, "XKLF_CAN_TOGGLE_INDICATORS", NULL},
- {0x02, "XKLF_CAN_OUTPUT_CONFIG_AS_ASCII", NULL},
- {0x04, "XKLF_CAN_OUTPUT_CONFIG_AS_BINARY", NULL},
- {0x08, "XKLF_MULTIPLE_LAYOUTS_SUPPORTED", NULL},
- {0x10, "XKLF_REQUIRES_MANUAL_LAYOUT_MANAGEMENT", NULL},
+ {XKLF_CAN_TOGGLE_INDICATORS, "XKLF_CAN_TOGGLE_INDICATORS",
+ NULL},
+ {XKLF_CAN_OUTPUT_CONFIG_AS_ASCII,
+ "XKLF_CAN_OUTPUT_CONFIG_AS_ASCII", NULL},
+ {XKLF_CAN_OUTPUT_CONFIG_AS_BINARY,
+ "XKLF_CAN_OUTPUT_CONFIG_AS_BINARY", NULL},
+ {XKLF_MULTIPLE_LAYOUTS_SUPPORTED,
+ "XKLF_MULTIPLE_LAYOUTS_SUPPORTED", NULL},
+ {XKLF_REQUIRES_MANUAL_LAYOUT_MANAGEMENT,
+ "XKLF_REQUIRES_MANUAL_LAYOUT_MANAGEMENT", NULL},
{0, NULL, NULL}
};
static GEnumValue state_change_values[] = {
- {0, "GROUP_CHANGED", NULL},
- {1, "INDICATORS_CHANGED", NULL},
+ {GROUP_CHANGED, "GROUP_CHANGED", NULL},
+ {INDICATORS_CHANGED, "INDICATORS_CHANGED", NULL},
{0, NULL, NULL}
};
@@ -791,7 +796,7 @@ xkl_engine_class_init(XklEngineClass * klass)
0,
G_PARAM_READABLE);
GParamSpec *max_num_groups_param_spec =
- g_param_spec_uint("max-num-ngroups",
+ g_param_spec_uint("max-num-groups",
"maxNumGroups",
"Max number of groups",
0, 0x100, 0,
diff --git a/libxklavier/xklavier_evt.c b/libxklavier/xklavier_evt.c
index f218cad..69713ce 100644
--- a/libxklavier/xklavier_evt.c
+++ b/libxklavier/xklavier_evt.c
@@ -478,8 +478,9 @@ xkl_process_error(Display * dpy, XErrorEvent * evt)
*/
void
xkl_engine_process_state_modification(XklEngine * engine,
- XklStateChange change_type, gint grp,
- guint inds, gboolean set_inds)
+ XklEngineStateChange change_type,
+ gint grp, guint inds,
+ gboolean set_inds)
{
Window focused, focused_toplevel;
XklState old_state;
diff --git a/libxklavier/xklavier_private.h b/libxklavier/xklavier_private.h
index 6688d99..30aef9e 100644
--- a/libxklavier/xklavier_private.h
+++ b/libxklavier/xklavier_private.h
@@ -236,7 +236,7 @@ extern void xkl_engine_process_create_window_evt(XklEngine * engine,
extern void xkl_process_error(Display * dpy, XErrorEvent * evt);
extern void xkl_engine_process_state_modification(XklEngine * engine,
- XklStateChange
+ XklEngineStateChange
change_type, gint group,
unsigned inds,
gboolean set_indicators);
@@ -304,7 +304,8 @@ extern Status xkl_engine_query_tree(XklEngine * engine,
guint * nchildren_out);
extern void xkl_engine_try_call_state_func(XklEngine * engine,
- XklStateChange change_type,
+ XklEngineStateChange
+ change_type,
XklState * old_state);
extern void xkl_i18n_init(void);
diff --git a/tests/test_monitor.c b/tests/test_monitor.c
index c243e09..6928222 100644
--- a/tests/test_monitor.c
+++ b/tests/test_monitor.c
@@ -23,7 +23,7 @@ print_usage()
}
void
-state_changed(XklEngine * engine, XklStateChange type, gint new_group,
+state_changed(XklEngine * engine, XklEngineStateChange type, gint new_group,
gboolean restore)
{
xkl_debug(0, "State changed: %d,%d,%d\n", type, new_group,