From 828d06f271392abbef75bb37e2635b2085bdef90 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 21 Jun 2007 23:28:14 +0000 Subject: dont build the old action stuff. config uses the new action stuff. add actions_parse_string --- openbox/actions.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'openbox/actions.c') diff --git a/openbox/actions.c b/openbox/actions.c index 6cd1d1cc..8d523dc8 100644 --- a/openbox/actions.c +++ b/openbox/actions.c @@ -100,36 +100,48 @@ static void actions_definition_unref(ObActionsDefinition *def) } } -ObActionsAct* actions_parse(ObParseInst *i, - xmlDocPtr doc, - xmlNodePtr node) +ObActionsAct* actions_parse_string(const gchar *name) { GSList *it; - gchar *name; ObActionsDefinition *def; ObActionsAct *act = NULL; - if (!parse_attr_string("name", node, &name)) return NULL; - /* find the requested action */ for (it = registered; it; it = g_slist_next(it)) { def = it->data; if (!g_ascii_strcasecmp(name, def->name)) break; + def = NULL; } /* if we found the action */ - if (it != NULL) { + if (def) { act = g_new(ObActionsAct, 1); act->ref = 1; act->def = def; actions_definition_ref(act->def); - act->options = def->setup(i, doc, node->children); + act->options = NULL; } else g_message(_("Invalid action '%s' requested. No such action exists."), name); - g_free(name); + return act; +} + +ObActionsAct* actions_parse(ObParseInst *i, + xmlDocPtr doc, + xmlNodePtr node) +{ + gchar *name; + ObActionsAct *act = NULL; + + if (parse_attr_string("name", node, &name)) { + if ((act = actions_parse_string(name))) + /* there is more stuff to parse here */ + act->options = act->def->setup(i, doc, node->children); + + g_free(name); + } return act; } -- cgit v1.2.3