diff options
Diffstat (limited to 'openbox/actions')
| -rw-r--r-- | openbox/actions/addremovedesktop.c | 40 | ||||
| -rw-r--r-- | openbox/actions/cyclewindows.c | 58 | ||||
| -rw-r--r-- | openbox/actions/debug.c | 21 | ||||
| -rw-r--r-- | openbox/actions/desktop.c | 28 | ||||
| -rw-r--r-- | openbox/actions/directionalwindows.c | 52 | ||||
| -rw-r--r-- | openbox/actions/execute.c | 34 | ||||
| -rw-r--r-- | openbox/actions/focus.c | 22 | ||||
| -rw-r--r-- | openbox/actions/growtoedge.c | 37 | ||||
| -rw-r--r-- | openbox/actions/if.c | 59 | ||||
| -rw-r--r-- | openbox/actions/layer.c | 20 | ||||
| -rw-r--r-- | openbox/actions/maximize.c | 8 | ||||
| -rw-r--r-- | openbox/actions/moverelative.c | 26 | ||||
| -rw-r--r-- | openbox/actions/moveresizeto.c | 48 | ||||
| -rw-r--r-- | openbox/actions/movetoedge.c | 22 | ||||
| -rw-r--r-- | openbox/actions/resize.c | 22 | ||||
| -rw-r--r-- | openbox/actions/resizerelative.c | 37 | ||||
| -rw-r--r-- | openbox/actions/restart.c | 23 | ||||
| -rw-r--r-- | openbox/actions/showmenu.c | 8 |
18 files changed, 217 insertions, 348 deletions
diff --git a/openbox/actions/addremovedesktop.c b/openbox/actions/addremovedesktop.c index 8125b9bb..b6e621ab 100644 --- a/openbox/actions/addremovedesktop.c +++ b/openbox/actions/addremovedesktop.c @@ -7,36 +7,28 @@ typedef struct { gboolean add; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static gpointer setup_add_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static gpointer setup_remove_func(ObParseInst *i, - xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_func(xmlNodePtr node); +static gpointer setup_add_func(xmlNodePtr node); +static gpointer setup_remove_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_addremovedesktop_startup(void) { - actions_register("AddDesktop", - setup_add_func, - free_func, - run_func, + actions_register("AddDesktop", setup_add_func, g_free, run_func, NULL, NULL); - actions_register("RemoveDesktop", - setup_remove_func, - free_func, - run_func, + actions_register("RemoveDesktop", setup_remove_func, g_free, 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("where", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "where"))) { + gchar *s = obt_parse_node_string(n); if (!g_ascii_strcasecmp(s, "last")) o->current = FALSE; else if (!g_ascii_strcasecmp(s, "current")) @@ -47,28 +39,20 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) return o; } -static gpointer setup_add_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_add_func(xmlNodePtr node) { - Options *o = setup_func(i, doc, node); + Options *o = setup_func(node); o->add = TRUE; return o; } -static gpointer setup_remove_func(ObParseInst *i, - xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_remove_func(xmlNodePtr node) { - Options *o = setup_func(i, doc, node); + Options *o = setup_func(node); o->add = FALSE; return o; } -static void free_func(gpointer options) -{ - Options *o = options; - - g_free(o); -} - /* Always return FALSE because its not interactive */ static gboolean run_func(ObActionsData *data, gpointer options) { diff --git a/openbox/actions/cyclewindows.c b/openbox/actions/cyclewindows.c index 059db93f..70f146af 100644 --- a/openbox/actions/cyclewindows.c +++ b/openbox/actions/cyclewindows.c @@ -20,11 +20,9 @@ typedef struct { static gboolean cycling = FALSE; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static gpointer setup_forward_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); -static gpointer setup_backward_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); +static gpointer setup_func(xmlNodePtr node); +static gpointer setup_forward_func(xmlNodePtr node); +static gpointer setup_backward_func(xmlNodePtr node); static void free_func(gpointer options); static gboolean run_func(ObActionsData *data, gpointer options); static gboolean i_input_func(guint initial_state, @@ -43,7 +41,7 @@ void action_cyclewindows_startup(void) run_func, i_input_func, i_cancel_func); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_func(xmlNodePtr node) { xmlNodePtr n; Options *o; @@ -52,29 +50,29 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) o->dialog = TRUE; o->bar = TRUE; - if ((n = parse_find_node("linear", node))) - o->linear = parse_bool(doc, n); - if ((n = parse_find_node("dialog", node))) - o->dialog = parse_bool(doc, n); - if ((n = parse_find_node("bar", node))) - o->bar = parse_bool(doc, n); - if ((n = parse_find_node("raise", node))) - o->raise = parse_bool(doc, n); - if ((n = parse_find_node("panels", node))) - o->dock_windows = parse_bool(doc, n); - if ((n = parse_find_node("desktop", node))) - o->desktop_windows = parse_bool(doc, n); - if ((n = parse_find_node("allDesktops", node))) - o->all_desktops = parse_bool(doc, n); - - if ((n = parse_find_node("finalactions", node))) { + if ((n = obt_parse_find_node(node, "linear"))) + o->linear = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "dialog"))) + o->dialog = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "bar"))) + o->bar = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "raise"))) + o->raise = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "panels"))) + o->dock_windows = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "desktop"))) + o->desktop_windows = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "allDesktops"))) + o->all_desktops = obt_parse_node_bool(n); + + if ((n = obt_parse_find_node(node, "finalactions"))) { xmlNodePtr m; - m = parse_find_node("action", n->xmlChildrenNode); + m = obt_parse_find_node(n->xmlChildrenNode, "action"); while (m) { - ObActionsAct *action = actions_parse(i, doc, m); + ObActionsAct *action = actions_parse(m); if (action) o->actions = g_slist_prepend(o->actions, action); - m = parse_find_node("action", m->next); + m = obt_parse_find_node(m->next, "action"); } } else { @@ -89,18 +87,16 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) return o; } -static gpointer setup_forward_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_forward_func(xmlNodePtr node) { - Options *o = setup_func(i, doc, node); + Options *o = setup_func(node); o->forward = TRUE; return o; } -static gpointer setup_backward_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_backward_func(xmlNodePtr node) { - Options *o = setup_func(i, doc, node); + Options *o = setup_func(node); o->forward = FALSE; return o; } diff --git a/openbox/actions/debug.c b/openbox/actions/debug.c index f71b685d..99e838a6 100644 --- a/openbox/actions/debug.c +++ b/openbox/actions/debug.c @@ -5,39 +5,32 @@ typedef struct { gchar *str; } 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); void action_debug_startup(void) { - actions_register("Debug", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("Debug", setup_func, free_func, 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("string", node))) - o->str = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "string"))) + o->str = obt_parse_node_string(n); return o; } static void free_func(gpointer options) { Options *o = options; - - if (o) { - g_free(o->str); - g_free(o); - } + g_free(o->str); + g_free(o); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/desktop.c b/openbox/actions/desktop.c index 69275252..b50534d1 100644 --- a/openbox/actions/desktop.c +++ b/openbox/actions/desktop.c @@ -26,10 +26,8 @@ typedef struct { gboolean follow; } Options; -static gpointer setup_go_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); -static gpointer setup_send_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); +static gpointer setup_go_func(xmlNodePtr node); +static gpointer setup_send_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_desktop_startup(void) @@ -40,8 +38,7 @@ void action_desktop_startup(void) NULL, NULL); } -static gpointer setup_go_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_go_func(xmlNodePtr node) { xmlNodePtr n; Options *o; @@ -53,8 +50,8 @@ static gpointer setup_go_func(ObParseInst *i, xmlDocPtr doc, /* wrap by default - it's handy! */ o->rel.wrap = TRUE; - if ((n = parse_find_node("to", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "to"))) { + gchar *s = obt_parse_node_string(n); if (!g_ascii_strcasecmp(s, "last")) o->type = LAST; else if (!g_ascii_strcasecmp(s, "next")) { @@ -89,29 +86,28 @@ static gpointer setup_go_func(ObParseInst *i, xmlDocPtr doc, } else { o->type = ABSOLUTE; - o->abs.desktop = parse_int(doc, n) - 1; + o->abs.desktop = obt_parse_node_int(n) - 1; } g_free(s); } - if ((n = parse_find_node("wrap", node))) - o->rel.wrap = parse_bool(doc, n); + if ((n = obt_parse_find_node(node, "wrap"))) + o->rel.wrap = obt_parse_node_bool(n); return o; } -static gpointer setup_send_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_send_func(xmlNodePtr node) { xmlNodePtr n; Options *o; - o = setup_go_func(i, doc, node); + o = setup_go_func(node); o->send = TRUE; o->follow = TRUE; - if ((n = parse_find_node("follow", node))) - o->follow = parse_bool(doc, n); + if ((n = obt_parse_find_node(node, "follow"))) + o->follow = obt_parse_node_bool(n); return o; } diff --git a/openbox/actions/directionalwindows.c b/openbox/actions/directionalwindows.c index c575d84e..05b841d3 100644 --- a/openbox/actions/directionalwindows.c +++ b/openbox/actions/directionalwindows.c @@ -20,11 +20,9 @@ typedef struct { static gboolean cycling = FALSE; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static gpointer setup_cycle_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); -static gpointer setup_target_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); +static gpointer setup_func(xmlNodePtr node); +static gpointer setup_cycle_func(xmlNodePtr node); +static gpointer setup_target_func(xmlNodePtr node); static void free_func(gpointer options); static gboolean run_func(ObActionsData *data, gpointer options); static gboolean i_input_func(guint initial_state, @@ -43,7 +41,7 @@ void action_directionalwindows_startup(void) run_func, NULL, NULL); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_func(xmlNodePtr node) { xmlNodePtr n; Options *o; @@ -52,18 +50,18 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) o->dialog = TRUE; o->bar = TRUE; - if ((n = parse_find_node("dialog", node))) - o->dialog = parse_bool(doc, n); - if ((n = parse_find_node("bar", node))) - o->bar = parse_bool(doc, n); - if ((n = parse_find_node("raise", node))) - o->raise = parse_bool(doc, n); - if ((n = parse_find_node("panels", node))) - o->dock_windows = parse_bool(doc, n); - if ((n = parse_find_node("desktop", node))) - o->desktop_windows = parse_bool(doc, n); - if ((n = parse_find_node("direction", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "dialog"))) + o->dialog = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "bar"))) + o->bar = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "raise"))) + o->raise = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "panels"))) + o->dock_windows = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "desktop"))) + o->desktop_windows = obt_parse_node_bool(n); + if ((n = obt_parse_find_node(node, "direction"))) { + gchar *s = obt_parse_node_string(n); if (!g_ascii_strcasecmp(s, "north") || !g_ascii_strcasecmp(s, "up")) o->direction = OB_DIRECTION_NORTH; @@ -87,14 +85,14 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) g_free(s); } - if ((n = parse_find_node("finalactions", node))) { + if ((n = obt_parse_find_node(node, "finalactions"))) { xmlNodePtr m; - m = parse_find_node("action", n->xmlChildrenNode); + m = obt_parse_find_node(n->xmlChildrenNode, "action"); while (m) { - ObActionsAct *action = actions_parse(i, doc, m); + ObActionsAct *action = actions_parse(m); if (action) o->actions = g_slist_prepend(o->actions, action); - m = parse_find_node("action", m->next); + m = obt_parse_find_node(m->next, "action"); } } else { @@ -109,18 +107,16 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) return o; } -static gpointer setup_cycle_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_cycle_func(xmlNodePtr node) { - Options *o = setup_func(i, doc, node); + Options *o = setup_func(node); o->interactive = TRUE; return o; } -static gpointer setup_target_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_target_func(xmlNodePtr node) { - Options *o = setup_func(i, doc, node); + Options *o = setup_func(node); o->interactive = FALSE; return o; } diff --git a/openbox/actions/execute.c b/openbox/actions/execute.c index 02de0154..51bcaac2 100644 --- a/openbox/actions/execute.c +++ b/openbox/actions/execute.c @@ -12,7 +12,7 @@ typedef struct { gchar *sn_wmclass; } 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); /* @@ -25,38 +25,34 @@ static void i_cancel_func(gpointer options); void action_execute_startup(void) { - actions_register("Execute", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("Execute", setup_func, free_func, 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("command", node)) || - (n = parse_find_node("execute", node))) + if ((n = obt_parse_find_node(node, "command")) || + (n = obt_parse_find_node(node, "execute"))) { - gchar *s = parse_string(doc, n); + gchar *s = obt_parse_node_string(n); o->cmd = parse_expand_tilde(s); g_free(s); } - 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->xmlChildrenNode, "enabled"))) + o->sn = obt_parse_node_bool(m); + if ((m = obt_parse_find_node(n->xmlChildrenNode, "name"))) + o->sn_name = obt_parse_node_string(m); + if ((m = obt_parse_find_node(n->xmlChildrenNode, "icon"))) + o->sn_icon = obt_parse_node_string(m); + if ((m = obt_parse_find_node(n->xmlChildrenNode, "wmclass"))) + o->sn_wmclass = obt_parse_node_string(m); } return o; } diff --git a/openbox/actions/focus.c b/openbox/actions/focus.c index 67c1479f..67640a4d 100644 --- a/openbox/actions/focus.c +++ b/openbox/actions/focus.c @@ -7,38 +7,26 @@ typedef struct { gboolean here; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_focus_startup(void) { - actions_register("Focus", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("Focus", setup_func, g_free, 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("here", node))) - o->here = parse_bool(doc, n); + if ((n = obt_parse_find_node(node, "here"))) + o->here = obt_parse_node_bool(n); return o; } -static void free_func(gpointer options) -{ - Options *o = options; - - g_free(o); -} - /* Always return FALSE because its not interactive */ static gboolean run_func(ObActionsData *data, gpointer options) { diff --git a/openbox/actions/growtoedge.c b/openbox/actions/growtoedge.c index 630ead10..a37e3a26 100644 --- a/openbox/actions/growtoedge.c +++ b/openbox/actions/growtoedge.c @@ -10,27 +10,19 @@ typedef struct { gboolean shrink; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static gpointer setup_shrink_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_func(xmlNodePtr node); +static gpointer setup_shrink_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_growtoedge_startup(void) { - actions_register("GrowToEdge", - setup_func, - free_func, - run_func, - NULL, NULL); - - actions_register("ShrinkToEdge", - setup_shrink_func, - free_func, - run_func, - NULL, NULL); + actions_register("GrowToEdge", setup_func, + g_free, run_func, NULL, NULL); + actions_register("ShrinkToEdge", setup_shrink_func, + g_free, run_func, NULL, NULL); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_func(xmlNodePtr node) { xmlNodePtr n; Options *o; @@ -39,8 +31,8 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) o->dir = OB_DIRECTION_NORTH; o->shrink = FALSE; - if ((n = parse_find_node("direction", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "direction"))) { + gchar *s = obt_parse_node_string(n); if (!g_ascii_strcasecmp(s, "north") || !g_ascii_strcasecmp(s, "up")) o->dir = OB_DIRECTION_NORTH; @@ -59,23 +51,16 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) return o; } -static gpointer setup_shrink_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_shrink_func(xmlNodePtr node) { Options *o; - o = setup_func(i, doc, node); + o = setup_func(node); o->shrink = TRUE; return o; } -static void free_func(gpointer options) -{ - Options *o = options; - - g_free(o); -} - static gboolean do_grow(ObActionsData *data, gint x, gint y, gint w, gint h) { gint realw, realh, lw, lh; diff --git a/openbox/actions/if.c b/openbox/actions/if.c index a35c61fc..8d2f281f 100644 --- a/openbox/actions/if.c +++ b/openbox/actions/if.c @@ -23,81 +23,77 @@ typedef struct { GSList *elseacts; } 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); void action_if_startup(void) { - actions_register("If", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("If", setup_func, free_func, 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("shaded", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "shaded"))) { + if (obt_parse_node_bool(n)) o->shaded_on = TRUE; else o->shaded_off = TRUE; } - if ((n = parse_find_node("maximized", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "maximized"))) { + if (obt_parse_node_bool(n)) o->maxfull_on = TRUE; else o->maxfull_off = TRUE; } - if ((n = parse_find_node("maximizedhorizontal", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "maximizedhorizontal"))) { + if (obt_parse_node_bool(n)) o->maxhorz_on = TRUE; else o->maxhorz_off = TRUE; } - if ((n = parse_find_node("maximizedvertical", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "maximizedvertical"))) { + if (obt_parse_node_bool(n)) o->maxvert_on = TRUE; else o->maxvert_off = TRUE; } - if ((n = parse_find_node("iconified", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "iconified"))) { + if (obt_parse_node_bool(n)) o->iconic_on = TRUE; else o->iconic_off = TRUE; } - if ((n = parse_find_node("focused", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "focused"))) { + if (obt_parse_node_bool(n)) o->focused = TRUE; else o->unfocused = TRUE; } - if ((n = parse_find_node("then", node))) { + if ((n = obt_parse_find_node(node, "then"))) { xmlNodePtr m; - m = parse_find_node("action", n->xmlChildrenNode); + m = obt_parse_find_node(n->xmlChildrenNode, "action"); while (m) { - ObActionsAct *action = actions_parse(i, doc, m); + ObActionsAct *action = actions_parse(m); if (action) o->thenacts = g_slist_prepend(o->thenacts, action); - m = parse_find_node("action", m->next); + m = obt_parse_find_node(m->next, "action"); } } - if ((n = parse_find_node("else", node))) { + if ((n = obt_parse_find_node(node, "else"))) { xmlNodePtr m; - m = parse_find_node("action", n->xmlChildrenNode); + m = obt_parse_find_node(n->xmlChildrenNode, "action"); while (m) { - ObActionsAct *action = actions_parse(i, doc, m); + ObActionsAct *action = actions_parse(m); if (action) o->elseacts = g_slist_prepend(o->elseacts, action); - m = parse_find_node("action", m->next); + m = obt_parse_find_node(m->next, "action"); } } @@ -108,6 +104,15 @@ static void free_func(gpointer options) { Options *o = options; + while (o->thenacts) { + actions_act_unref(o->thenacts->data); + o->thenacts = g_slist_delete_link(o->thenacts, o->thenacts); + } + while (o->elseacts) { + actions_act_unref(o->elseacts->data); + o->elseacts = g_slist_delete_link(o->elseacts, o->elseacts); + } + g_free(o); } diff --git a/openbox/actions/layer.c b/openbox/actions/layer.c index 92fa4806..bbfda572 100644 --- a/openbox/actions/layer.c +++ b/openbox/actions/layer.c @@ -6,11 +6,9 @@ typedef struct { gboolean toggle; } Options; -static gpointer setup_func_top(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static gpointer setup_func_bottom(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); -static gpointer setup_func_send(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); +static gpointer setup_func_top(xmlNodePtr node); +static gpointer setup_func_bottom(xmlNodePtr node); +static gpointer setup_func_send(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_layer_startup(void) @@ -23,7 +21,7 @@ void action_layer_startup(void) run_func, NULL, NULL); } -static gpointer setup_func_top(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_func_top(xmlNodePtr node) { Options *o = g_new0(Options, 1); o->layer = 1; @@ -31,8 +29,7 @@ static gpointer setup_func_top(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) return o; } -static gpointer setup_func_bottom(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_func_bottom(xmlNodePtr node) { Options *o = g_new0(Options, 1); o->layer = -1; @@ -40,16 +37,15 @@ static gpointer setup_func_bottom(ObParseInst *i, xmlDocPtr doc, return o; } -static gpointer setup_func_send(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_func_send(xmlNodePtr node) { xmlNodePtr n; Options *o; o = g_new0(Options, 1); - if ((n = parse_find_node("layer", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "layer"))) { + gchar *s = obt_parse_node_string(n); if (!g_ascii_strcasecmp(s, "above") || !g_ascii_strcasecmp(s, "top")) o->layer = 1; diff --git a/openbox/actions/maximize.c b/openbox/actions/maximize.c index bb6f470a..45e8b38e 100644 --- a/openbox/actions/maximize.c +++ b/openbox/actions/maximize.c @@ -12,7 +12,7 @@ typedef struct { MaxDirection dir; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); +static gpointer setup_func(xmlNodePtr node); static gboolean run_func_on(ObActionsData *data, gpointer options); static gboolean run_func_off(ObActionsData *data, gpointer options); static gboolean run_func_toggle(ObActionsData *data, gpointer options); @@ -27,7 +27,7 @@ void action_maximize_startup(void) NULL, NULL); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_func(xmlNodePtr node) { xmlNodePtr n; Options *o; @@ -35,8 +35,8 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) o = g_new0(Options, 1); o->dir = BOTH; - if ((n = parse_find_node("direction", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "direction"))) { + gchar *s = obt_parse_node_string(n); if (!g_ascii_strcasecmp(s, "vertical") || !g_ascii_strcasecmp(s, "vert")) o->dir = VERT; diff --git a/openbox/actions/moverelative.c b/openbox/actions/moverelative.c index 1d1189cd..ccdff545 100644 --- a/openbox/actions/moverelative.c +++ b/openbox/actions/moverelative.c @@ -9,41 +9,29 @@ typedef struct { gint y; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_moverelative_startup(void) { - actions_register("MoveRelative", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("MoveRelative", setup_func, g_free, 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("x", node))) - o->x = parse_int(doc, n); - if ((n = parse_find_node("y", node))) - o->y = parse_int(doc, n); + if ((n = obt_parse_find_node(node, "x"))) + o->x = obt_parse_node_int(n); + if ((n = obt_parse_find_node(node, "y"))) + o->y = obt_parse_node_int(n); return o; } -static void free_func(gpointer options) -{ - Options *o = options; - - g_free(o); -} - /* Always return FALSE because its not interactive */ static gboolean run_func(ObActionsData *data, gpointer options) { diff --git a/openbox/actions/moveresizeto.c b/openbox/actions/moveresizeto.c index 860bf73a..d355dafd 100644 --- a/openbox/actions/moveresizeto.c +++ b/openbox/actions/moveresizeto.c @@ -21,23 +21,18 @@ typedef struct { gint monitor; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_moveresizeto_startup(void) { - actions_register("MoveResizeTo", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("MoveResizeTo", setup_func, g_free, run_func, NULL, NULL); } -static void parse_coord(xmlDocPtr doc, xmlNodePtr n, gint *pos, +static void parse_coord(xmlNodePtr n, gint *pos, gboolean *opposite, gboolean *center) { - gchar *s = parse_string(doc, n); + gchar *s = obt_parse_node_string(n); if (g_ascii_strcasecmp(s, "current") != 0) { if (!g_ascii_strcasecmp(s, "center")) *center = TRUE; @@ -53,7 +48,7 @@ static void parse_coord(xmlDocPtr doc, xmlNodePtr n, gint *pos, g_free(s); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_func(xmlNodePtr node) { xmlNodePtr n; Options *o; @@ -65,32 +60,32 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) o->h = G_MININT; o->monitor = CURRENT_MONITOR; - if ((n = parse_find_node("x", node))) - parse_coord(doc, n, &o->x, &o->xopposite, &o->xcenter); + if ((n = obt_parse_find_node(node, "x"))) + parse_coord(n, &o->x, &o->xopposite, &o->xcenter); - if ((n = parse_find_node("y", node))) - parse_coord(doc, n, &o->y, &o->yopposite, &o->ycenter); + if ((n = obt_parse_find_node(node, "y"))) + parse_coord(n, &o->y, &o->yopposite, &o->ycenter); - if ((n = parse_find_node("width", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "width"))) { + gchar *s = obt_parse_node_string(n); if (g_ascii_strcasecmp(s, "current") != 0) - o->w = parse_int(doc, n); + o->w = obt_parse_node_int(n); g_free(s); } - if ((n = parse_find_node("height", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "height"))) { + gchar *s = obt_parse_node_string(n); if (g_ascii_strcasecmp(s, "current") != 0) - o->h = parse_int(doc, n); + o->h = obt_parse_node_int(n); g_free(s); } - if ((n = parse_find_node("monitor", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "monitor"))) { + gchar *s = obt_parse_node_string(n); if (g_ascii_strcasecmp(s, "current") != 0) { if (!g_ascii_strcasecmp(s, "all")) o->monitor = ALL_MONITORS; else - o->monitor = parse_int(doc, n) - 1; + o->monitor = obt_parse_node_int(n) - 1; } g_free(s); } @@ -98,13 +93,6 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) return o; } -static void free_func(gpointer options) -{ - Options *o = options; - - g_free(o); -} - /* Always return FALSE because its not interactive */ static gboolean run_func(ObActionsData *data, gpointer options) { diff --git a/openbox/actions/movetoedge.c b/openbox/actions/movetoedge.c index 5941bde9..f360ddd0 100644 --- a/openbox/actions/movetoedge.c +++ b/openbox/actions/movetoedge.c @@ -9,20 +9,15 @@ typedef struct { ObDirection dir; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_movetoedge_startup(void) { - actions_register("MoveToEdge", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("MoveToEdge", setup_func, g_free, run_func, NULL, NULL); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_func(xmlNodePtr node) { xmlNodePtr n; Options *o; @@ -30,8 +25,8 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) o = g_new0(Options, 1); o->dir = OB_DIRECTION_NORTH; - if ((n = parse_find_node("direction", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "direction"))) { + gchar *s = obt_parse_node_string(n); if (!g_ascii_strcasecmp(s, "north") || !g_ascii_strcasecmp(s, "up")) o->dir = OB_DIRECTION_NORTH; @@ -50,13 +45,6 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) return o; } -static void free_func(gpointer options) -{ - Options *o = options; - - g_free(o); -} - /* Always return FALSE because its not interactive */ static gboolean run_func(ObActionsData *data, gpointer options) { diff --git a/openbox/actions/resize.c b/openbox/actions/resize.c index e073ed2f..47f45f5b 100644 --- a/openbox/actions/resize.c +++ b/openbox/actions/resize.c @@ -9,8 +9,7 @@ typedef struct { guint32 corner; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); static guint32 pick_corner(gint x, gint y, gint cx, gint cy, gint cw, gint ch, @@ -18,22 +17,18 @@ static guint32 pick_corner(gint x, gint y, gint cx, gint cy, gint cw, gint ch, void action_resize_startup(void) { - actions_register("Resize", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("Resize", setup_func, g_free, 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("edge", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "edge"))) { + gchar *s = obt_parse_node_string(n); o->corner_specified = TRUE; if (!g_ascii_strcasecmp(s, "top")) @@ -60,13 +55,6 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) return o; } -static void free_func(gpointer options) -{ - Options *o = options; - - g_free(o); -} - /* Always return FALSE because its not interactive */ static gboolean run_func(ObActionsData *data, gpointer options) { diff --git a/openbox/actions/resizerelative.c b/openbox/actions/resizerelative.c index f705c292..5742e1fc 100644 --- a/openbox/actions/resizerelative.c +++ b/openbox/actions/resizerelative.c @@ -11,47 +11,36 @@ typedef struct { gint bottom; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_resizerelative_startup(void) { - actions_register("ResizeRelative", - setup_func, - free_func, - run_func, + actions_register("ResizeRelative", setup_func, g_free, 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("left", node))) - o->left = parse_int(doc, n); - if ((n = parse_find_node("right", node))) - o->right = parse_int(doc, n); - if ((n = parse_find_node("top", node)) || - (n = parse_find_node("up", node))) - o->top = parse_int(doc, n); - if ((n = parse_find_node("bottom", node)) || - (n = parse_find_node("down", node))) - o->bottom = parse_int(doc, n); + if ((n = obt_parse_find_node(node, "left"))) + o->left = obt_parse_node_int(n); + if ((n = obt_parse_find_node(node, "right"))) + o->right = obt_parse_node_int(n); + if ((n = obt_parse_find_node(node, "top")) || + (n = obt_parse_find_node(node, "up"))) + o->top = obt_parse_node_int(n); + if ((n = obt_parse_find_node(node, "bottom")) || + (n = obt_parse_find_node(node, "down"))) + o->bottom = obt_parse_node_int(n); return o; } -static void free_func(gpointer options) -{ - Options *o = options; - - g_free(o); -} - /* Always return FALSE because its not interactive */ static gboolean run_func(ObActionsData *data, gpointer options) { diff --git a/openbox/actions/restart.c b/openbox/actions/restart.c index 4b52f9d3..0afe8bf0 100644 --- a/openbox/actions/restart.c +++ b/openbox/actions/restart.c @@ -5,30 +5,26 @@ typedef struct { gchar *cmd; } 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); void action_restart_startup(void) { - actions_register("Restart", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("Restart", setup_func, free_func, 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("command", node)) || - (n = parse_find_node("execute", node))) + if ((n = obt_parse_find_node(node, "command")) || + (n = obt_parse_find_node(node, "execute"))) { - gchar *s = parse_string(doc, n); + gchar *s = obt_parse_node_string(n); o->cmd = parse_expand_tilde(s); g_free(s); } @@ -38,11 +34,8 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) static void free_func(gpointer options) { Options *o = options; - - if (o) { - g_free(o->cmd); - g_free(o); - } + g_free(o->cmd); + g_free(o); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/showmenu.c b/openbox/actions/showmenu.c index c1d53e41..9590bd15 100644 --- a/openbox/actions/showmenu.c +++ b/openbox/actions/showmenu.c @@ -6,7 +6,7 @@ typedef struct { gchar *name; } 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); @@ -16,15 +16,15 @@ void action_showmenu_startup(void) 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("menu", node))) - o->name = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "menu"))) + o->name = obt_parse_node_string(n); return o; } |
