diff options
author | Sergey Udaltsov <svu@gnome.org> | 2006-03-04 02:17:08 +0000 |
---|---|---|
committer | Sergey Udaltsov <svu@gnome.org> | 2006-03-04 02:17:08 +0000 |
commit | 457507cb0106fcb40e468f6282476c86c151874a (patch) | |
tree | a9ff8e24628ef435c22019654852795155b9df94 | |
parent | f0cb89678dc96cc04a3ace267d1a6828840646db (diff) | |
download | libxklavier-457507cb0106fcb40e468f6282476c86c151874a.tar.gz |
features are flags
-rw-r--r-- | libxklavier/xklavier.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/libxklavier/xklavier.c b/libxklavier/xklavier.c index 1c4d42d..7348d64 100644 --- a/libxklavier/xklavier.c +++ b/libxklavier/xklavier.c @@ -699,7 +699,8 @@ xkl_engine_get_property(GObject * object, xkl_engine_priv(engine, backend_id)); break; case PROP_FEATURES: - g_value_set_uint(value, xkl_engine_priv(engine, features)); + g_value_set_flags(value, + xkl_engine_priv(engine, features)); break; case PROP_MAX_NUM_GROUPS: g_value_set_uint(value, @@ -750,6 +751,14 @@ xkl_engine_finalize(GObject * obj) static void xkl_engine_class_init(XklEngineClass * klass) { + 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}, + {0, NULL, NULL} + }; GObjectClass *object_class; object_class = (GObjectClass *) klass; @@ -773,11 +782,16 @@ xkl_engine_class_init(XklEngineClass * klass) "Backend name", NULL, G_PARAM_READABLE); - GParamSpec *features_param_spec = g_param_spec_uint("features", - "Features", - "Backend features", - 0, 0x20, 0, - G_PARAM_READABLE); + + GType features_type = g_flags_register_static("XklEngineFeatures", + feature_flags); + + GParamSpec *features_param_spec = g_param_spec_flags("features", + "Features", + "Backend features", + features_type, + 0, + G_PARAM_READABLE); GParamSpec *max_num_groups_param_spec = g_param_spec_uint("max-num-ngroups", "maxNumGroups", |