From eae69826536b31fda5d5e532cd92a77648706b76 Mon Sep 17 00:00:00 2001 From: Sergey Udaltsov Date: Sat, 11 Mar 2006 03:54:28 +0000 Subject: signals added to the docs --- libxklavier/xkl_engine.h | 88 +++++++++++++++++++----------------------- libxklavier/xklavier.c | 23 ++++++----- libxklavier/xklavier_evt.c | 5 ++- libxklavier/xklavier_private.h | 5 ++- tests/test_monitor.c | 2 +- 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, -- cgit v1.2.1