mirror of
https://github.com/labwc/labwc.git
synced 2025-10-29 05:40:24 -04:00
rcxml: rewrite <margin> parser
This commit is contained in:
parent
be31df097c
commit
8ae2d72cef
1 changed files with 25 additions and 27 deletions
|
|
@ -241,32 +241,29 @@ err:
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
fill_usable_area_override(char *nodename, char *content, struct parser_state *state)
|
fill_usable_area_override(xmlNode *node)
|
||||||
{
|
{
|
||||||
if (!strcasecmp(nodename, "margin")) {
|
struct usable_area_override *usable_area_override =
|
||||||
state->current_usable_area_override = znew(*state->current_usable_area_override);
|
znew(*usable_area_override);
|
||||||
wl_list_append(&rc.usable_area_overrides,
|
wl_list_append(&rc.usable_area_overrides, &usable_area_override->link);
|
||||||
&state->current_usable_area_override->link);
|
|
||||||
return;
|
xmlNode *child;
|
||||||
}
|
char *key, *content;
|
||||||
string_truncate_at_pattern(nodename, ".margin");
|
LAB_XML_FOR_EACH(node, child, key, content) {
|
||||||
if (!content) {
|
if (!strcmp(key, "output")) {
|
||||||
/* nop */
|
xstrdup_replace(usable_area_override->output, content);
|
||||||
} else if (!state->current_usable_area_override) {
|
} else if (!strcmp(key, "left")) {
|
||||||
wlr_log(WLR_ERROR, "no usable-area-override object");
|
usable_area_override->margin.left = atoi(content);
|
||||||
} else if (!strcmp(nodename, "output")) {
|
} else if (!strcmp(key, "right")) {
|
||||||
xstrdup_replace(state->current_usable_area_override->output, content);
|
usable_area_override->margin.right = atoi(content);
|
||||||
} else if (!strcmp(nodename, "left")) {
|
} else if (!strcmp(key, "top")) {
|
||||||
state->current_usable_area_override->margin.left = atoi(content);
|
usable_area_override->margin.top = atoi(content);
|
||||||
} else if (!strcmp(nodename, "right")) {
|
} else if (!strcmp(key, "bottom")) {
|
||||||
state->current_usable_area_override->margin.right = atoi(content);
|
usable_area_override->margin.bottom = atoi(content);
|
||||||
} else if (!strcmp(nodename, "top")) {
|
} else {
|
||||||
state->current_usable_area_override->margin.top = atoi(content);
|
wlr_log(WLR_ERROR, "Unexpected data usable-area-override "
|
||||||
} else if (!strcmp(nodename, "bottom")) {
|
"parser: %s=\"%s\"", key, content);
|
||||||
state->current_usable_area_override->margin.bottom = atoi(content);
|
}
|
||||||
} else {
|
|
||||||
wlr_log(WLR_ERROR, "Unexpected data usable-area-override parser: %s=\"%s\"",
|
|
||||||
nodename, content);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1051,8 +1048,9 @@ entry(xmlNode *node, char *nodename, char *content, struct parser_state *state)
|
||||||
printf("%s: %s\n", nodename, content);
|
printf("%s: %s\n", nodename, content);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state->in_usable_area_override) {
|
if (!strcasecmp(nodename, "margin")) {
|
||||||
fill_usable_area_override(nodename, content, state);
|
fill_usable_area_override(node);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
if (!strcasecmp(nodename, "keybind.keyboard")) {
|
if (!strcasecmp(nodename, "keybind.keyboard")) {
|
||||||
fill_keybind(node);
|
fill_keybind(node);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue