Add an "absolute-centre" alignment to use the centre of the total space

instead of only the available space. From Magnus Gross in GitHub issue 2578.
This commit is contained in:
nicm
2021-03-11 06:41:04 +00:00
parent d98f9f7fe5
commit 3eb91efba1
5 changed files with 199 additions and 31 deletions

View File

@ -139,6 +139,8 @@ style_parse(struct style *sy, const struct grid_cell *base, const char *in)
sy->align = STYLE_ALIGN_CENTRE;
else if (strcasecmp(tmp + 6, "right") == 0)
sy->align = STYLE_ALIGN_RIGHT;
else if (strcasecmp(tmp + 6, "absolute-centre") == 0)
sy->align = STYLE_ALIGN_ABSOLUTE_CENTRE;
else
goto error;
} else if (end > 5 && strncasecmp(tmp, "fill=", 5) == 0) {
@ -227,6 +229,8 @@ style_tostring(struct style *sy)
tmp = "centre";
else if (sy->align == STYLE_ALIGN_RIGHT)
tmp = "right";
else if (sy->align == STYLE_ALIGN_ABSOLUTE_CENTRE)
tmp = "absolute-centre";
off += xsnprintf(s + off, sizeof s - off, "%salign=%s", comma,
tmp);
comma = ",";