aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/defaults.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-02-21 17:32:53 -0600
committerTed Gould <ted@gould.cx>2011-02-21 17:32:53 -0600
commit543691a8c404735cc6f5bfbe24dc8bbe57908ff0 (patch)
tree215d34a2e51167988f6d104e6a0d771c4b2e4c9f /libdbusmenu-glib/defaults.c
parentc89e30d70bcd342837af4633f393a26c7fb3bdc9 (diff)
downloadlibdbusmenu-543691a8c404735cc6f5bfbe24dc8bbe57908ff0.tar.gz
libdbusmenu-543691a8c404735cc6f5bfbe24dc8bbe57908ff0.tar.bz2
libdbusmenu-543691a8c404735cc6f5bfbe24dc8bbe57908ff0.zip
Flesh out the getters as well
Diffstat (limited to 'libdbusmenu-glib/defaults.c')
-rw-r--r--libdbusmenu-glib/defaults.c40
1 files changed, 38 insertions, 2 deletions
diff --git a/libdbusmenu-glib/defaults.c b/libdbusmenu-glib/defaults.c
index 9fde682..e8cdea0 100644
--- a/libdbusmenu-glib/defaults.c
+++ b/libdbusmenu-glib/defaults.c
@@ -228,8 +228,26 @@ dbusmenu_defaults_default_set (DbusmenuDefaults * defaults, const gchar * type,
GVariant *
dbusmenu_defaults_default_get (DbusmenuDefaults * defaults, const gchar * type, const gchar * property)
{
+ g_return_val_if_fail(DBUSMENU_IS_DEFAULTS(defaults), NULL);
+ g_return_val_if_fail(property != NULL, NULL);
- return NULL;
+ if (type == NULL) {
+ type = DBUSMENU_CLIENT_TYPES_DEFAULT;
+ }
+
+ GHashTable * prop_table = (GHashTable *)g_hash_table_lookup(defaults->priv->types, type);
+
+ if (prop_table == NULL) {
+ return NULL;
+ }
+
+ DefaultEntry * entry = (DefaultEntry *)g_hash_table_lookup(prop_table, property);
+
+ if (entry == NULL) {
+ return NULL;
+ }
+
+ return entry->value;
}
/**
@@ -246,7 +264,25 @@ dbusmenu_defaults_default_get (DbusmenuDefaults * defaults, const gchar * type,
GVariantType *
dbusmenu_defaults_default_get_type (DbusmenuDefaults * defaults, const gchar * type, const gchar * property)
{
+ g_return_val_if_fail(DBUSMENU_IS_DEFAULTS(defaults), NULL);
+ g_return_val_if_fail(property != NULL, NULL);
+
+ if (type == NULL) {
+ type = DBUSMENU_CLIENT_TYPES_DEFAULT;
+ }
+
+ GHashTable * prop_table = (GHashTable *)g_hash_table_lookup(defaults->priv->types, type);
+
+ if (prop_table == NULL) {
+ return NULL;
+ }
+
+ DefaultEntry * entry = (DefaultEntry *)g_hash_table_lookup(prop_table, property);
+
+ if (entry == NULL) {
+ return NULL;
+ }
- return NULL;
+ return entry->type;
}