- 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 = obt_parse_find_node(node, "maximizedvertical"))) {
- if (obt_parse_node_bool(n))
- o->maxvert_on = TRUE;
- else
- o->maxvert_off = TRUE;
+}
+
+static gpointer setup_func(xmlNodePtr node)
+{
+ xmlNodePtr n;
+ Options *o;
+
+ o = g_slice_new0(Options);
+
+ set_bool(node, "shaded", &o->shaded_on, &o->shaded_off);
+ set_bool(node, "maximized", &o->maxfull_on, &o->maxfull_off);
+ set_bool(node, "maximizedhorizontal", &o->maxhorz_on, &o->maxhorz_off);
+ set_bool(node, "maximizedvertical", &o->maxvert_on, &o->maxvert_off);
+ set_bool(node, "iconified", &o->iconic_on, &o->iconic_off);
+ set_bool(node, "focused", &o->focused, &o->unfocused);
+ set_bool(node, "urgent", &o->urgent_on, &o->urgent_off);
+ set_bool(node, "undecorated", &o->decor_off, &o->decor_on);
+ set_bool(node, "omnipresent", &o->omnipresent_on, &o->omnipresent_off);
+
+ if ((n = obt_xml_find_node(node, "desktop"))) {
+ gchar *s;
+ if ((s = obt_xml_node_string(n))) {
+ if (!g_ascii_strcasecmp(s, "current"))
+ o->desktop_current = TRUE;
+ if (!g_ascii_strcasecmp(s, "other"))
+ o->desktop_other = TRUE;
+ else
+ o->desktop_number = atoi(s);
+ g_free(s);
+ }