#include "openbox/actions.h"
#include "openbox/event.h"
#include "openbox/startupnotify.h"
+ #include "openbox/prompt.h"
#include "openbox/screen.h"
+#include "obt/paths.h"
#include "gettext.h"
#ifdef HAVE_STDLIB_H
gchar *sn_name;
gchar *sn_icon;
gchar *sn_wmclass;
+ gchar *prompt;
} Options;
-static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
+static gpointer setup_func(xmlNodePtr node);
static void free_func(gpointer options);
static gboolean run_func(ObActionsData *data, gpointer options);
/*
g_free(s);
}
- if ((n = parse_find_node("prompt", node)))
- o->prompt = parse_string(doc, n);
++ if ((n = obt_parse_find_node(node, "prompt")))
++ o->prompt = obt_parse_node_string(n);
+
- if ((n = parse_find_node("startupnotify", node))) {
+ if ((n = obt_parse_find_node(node, "startupnotify"))) {
xmlNodePtr m;
- if ((m = parse_find_node("enabled", n->xmlChildrenNode)))
- o->sn = parse_bool(doc, m);
- if ((m = parse_find_node("name", n->xmlChildrenNode)))
- o->sn_name = parse_string(doc, m);
- if ((m = parse_find_node("icon", n->xmlChildrenNode)))
- o->sn_icon = parse_string(doc, m);
- if ((m = parse_find_node("wmclass", n->xmlChildrenNode)))
- o->sn_wmclass = parse_string(doc, m);
+ if ((m = obt_parse_find_node(n->children, "enabled")))
+ o->sn = obt_parse_node_bool(m);
+ if ((m = obt_parse_find_node(n->children, "name")))
+ o->sn_name = obt_parse_node_string(m);
+ if ((m = obt_parse_find_node(n->children, "icon")))
+ o->sn_icon = obt_parse_node_string(m);
+ if ((m = obt_parse_find_node(n->children, "wmclass")))
+ o->sn_wmclass = obt_parse_node_string(m);
}
return o;
}
#include "openbox/actions.h"
#include "openbox/openbox.h"
+ #include "openbox/prompt.h"
+ #include "gettext.h"
-static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
+ typedef struct {
+ gboolean prompt;
+ } Options;
+
++static gpointer setup_func(xmlNodePtr node);
static gboolean run_func(ObActionsData *data, gpointer options);
void action_exit_startup(void)
{
- actions_register("Exit",
- NULL, NULL,
- run_func,
- NULL, NULL);
+ actions_register("Exit", setup_func, NULL, run_func, NULL, NULL);
+ }
+
-static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
++static gpointer setup_func(xmlNodePtr node)
+ {
+ xmlNodePtr n;
+ Options *o;
+
+ o = g_new0(Options, 1);
+
- if ((n = parse_find_node("prompt", node)))
- o->prompt = parse_bool(doc, n);
++ if ((n = obt_parse_find_node(node, "prompt")))
++ o->prompt = obt_parse_node_bool(n);
+
+ return o;
+ }
+
+ static void prompt_cb(ObPrompt *p, gint result, gpointer data)
+ {
+ if (result)
+ ob_exit(0);
+ prompt_unref(p);
}
/* Always return FALSE because its not interactive */