#include "kernel/frame.h"
#include "kernel/screen.h"
#include "kernel/openbox.h"
-#include "kernel/parse.h"
+#include "parser/parse.h"
#include "history.h"
#include <glib.h>
static gboolean history;
-static void parse_assign(char *name, ParseToken *value)
+static void parse_xml(xmlDocPtr doc, xmlNodePtr node, void *d)
{
- if (!g_ascii_strcasecmp(name, "remember")) {
- if (value->type != TOKEN_BOOL)
- yyerror("invalid value");
- else
- history = value->data.bool;
- } else
- yyerror("invalid option");
- parse_free_token(value);
+ xmlNodePtr n;
+
+ if ((n = parse_find_node("remember", node)))
+ history = parse_bool(doc, n);
}
void plugin_setup_config()
{
history = TRUE;
- parse_reg_section("placement", NULL, parse_assign);
+ parse_register("placement", parse_xml, NULL);
}
-static void place_random(Client *c)
+static void place_random(ObClient *c)
{
int l, r, t, b;
int x, y;
Rect *area;
- if (ob_state == State_Starting) return;
+ if (ob_state() == OB_STATE_STARTING) return;
- area = screen_area(c->desktop);
+ area = screen_area_monitor(c->desktop,
+ g_random_int_range(0, screen_num_monitors));
l = area->x;
t = area->y;
else y = 0;
frame_frame_gravity(c->frame, &x, &y); /* get where the client should be */
- client_configure(c, Corner_TopLeft, x, y, c->area.width, c->area.height,
+ client_configure(c, OB_CORNER_TOPLEFT, x, y, c->area.width, c->area.height,
TRUE, TRUE);
}