clever code by mika-kun
This commit is contained in:
parent
92bf35e330
commit
b02f558c1e
1 changed files with 21 additions and 28 deletions
|
@ -29,6 +29,23 @@ void action_moveresizeto_startup()
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void parse_coord(xmlDocPtr doc, xmlNodePtr n, gint *pos,
|
||||||
|
gboolean *opposite, gboolean *center)
|
||||||
|
{
|
||||||
|
gchar *s = parse_string(doc, n);
|
||||||
|
if (!g_ascii_strcasecmp(s, "center"))
|
||||||
|
*center = TRUE;
|
||||||
|
else {
|
||||||
|
if (s[0] == '-')
|
||||||
|
*opposite = TRUE;
|
||||||
|
if (s[0] == '-' || s[0] == '+')
|
||||||
|
*pos = atoi(s+1);
|
||||||
|
else
|
||||||
|
*pos = atoi(s);
|
||||||
|
}
|
||||||
|
g_free(s);
|
||||||
|
}
|
||||||
|
|
||||||
static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
|
static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
|
||||||
{
|
{
|
||||||
xmlNodePtr n;
|
xmlNodePtr n;
|
||||||
|
@ -41,35 +58,11 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
|
||||||
o->h = G_MININT;
|
o->h = G_MININT;
|
||||||
o->monitor = -1;
|
o->monitor = -1;
|
||||||
|
|
||||||
if ((n = parse_find_node("x", node))) {
|
if ((n = parse_find_node("x", node)))
|
||||||
gchar *s = parse_string(doc, n);
|
parse_coord(doc, n, &o->x, &o->xopposite, &o->xcenter);
|
||||||
if (!g_ascii_strcasecmp(s, "center"))
|
|
||||||
o->xcenter = TRUE;
|
|
||||||
else {
|
|
||||||
if (s[0] == '-')
|
|
||||||
o->xopposite = TRUE;
|
|
||||||
if (s[0] == '-' || s[0] == '+')
|
|
||||||
o->x = atoi(s+1);
|
|
||||||
else
|
|
||||||
o->x = atoi(s);
|
|
||||||
}
|
|
||||||
g_free(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((n = parse_find_node("y", node))) {
|
if ((n = parse_find_node("y", node)))
|
||||||
gchar *s = parse_string(doc, n);
|
parse_coord(doc, n, &o->y, &o->yopposite, &o->ycenter);
|
||||||
if (!g_ascii_strcasecmp(s, "center"))
|
|
||||||
o->ycenter = TRUE;
|
|
||||||
else {
|
|
||||||
if (s[0] == '-')
|
|
||||||
o->yopposite = TRUE;
|
|
||||||
if (s[0] == '-' || s[0] == '+')
|
|
||||||
o->y = atoi(s+1);
|
|
||||||
else
|
|
||||||
o->y = atoi(s);
|
|
||||||
}
|
|
||||||
g_free(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((n = parse_find_node("width", node)))
|
if ((n = parse_find_node("width", node)))
|
||||||
o->w = parse_int(doc, n) - 1;
|
o->w = parse_int(doc, n) - 1;
|
||||||
|
|
Loading…
Reference in a new issue