bar: add margin properties to the border

This commit is contained in:
Daniel Eklöf 2019-02-17 15:45:02 +01:00
parent 12ef2569a4
commit 50d6afab6a
5 changed files with 33 additions and 0 deletions

View file

@ -378,6 +378,10 @@ bar_new(const struct bar_config *config)
priv->right_margin = config->right_margin; priv->right_margin = config->right_margin;
priv->border.width = config->border.width; priv->border.width = config->border.width;
priv->border.color = config->border.color; priv->border.color = config->border.color;
priv->border.left_margin = config->border.left_margin;
priv->border.right_margin = config->border.right_margin;
priv->border.top_margin = config->border.top_margin;
priv->border.bottom_margin = config->border.bottom_margin;
priv->left.mods = malloc(config->left.count * sizeof(priv->left.mods[0])); priv->left.mods = malloc(config->left.count * sizeof(priv->left.mods[0]));
priv->left.exps = calloc(config->left.count, sizeof(priv->left.exps[0])); priv->left.exps = calloc(config->left.count, sizeof(priv->left.exps[0]));
priv->center.mods = malloc(config->center.count * sizeof(priv->center.mods[0])); priv->center.mods = malloc(config->center.count * sizeof(priv->center.mods[0]));

View file

@ -28,6 +28,8 @@ struct bar_config {
struct { struct {
int width; int width;
struct rgba color; struct rgba color;
int left_margin, right_margin;
int top_margin, bottom_margin;
} border; } border;
struct { struct {

View file

@ -19,6 +19,8 @@ struct private {
struct { struct {
int width; int width;
struct rgba color; struct rgba color;
int left_margin, right_margin;
int top_margin, bottom_margin;
} border; } border;
struct { struct {

View file

@ -331,6 +331,11 @@ verify_bar_border(keychain_t *chain, const struct yml_node *node)
static const struct attr_info attrs[] = { static const struct attr_info attrs[] = {
{"width", true, &conf_verify_int}, {"width", true, &conf_verify_int},
{"color", true, &conf_verify_color}, {"color", true, &conf_verify_color},
{"margin", false, &conf_verify_int},
{"left-margin", false, &conf_verify_int},
{"right-margin", false, &conf_verify_int},
{"top-margin", false, &conf_verify_int},
{"bottom-margin", false, &conf_verify_int},
{NULL, false, NULL}, {NULL, false, NULL},
}; };

View file

@ -226,12 +226,32 @@ conf_to_bar(const struct yml_node *bar)
if (border != NULL) { if (border != NULL) {
const struct yml_node *width = yml_get_value(border, "width"); const struct yml_node *width = yml_get_value(border, "width");
const struct yml_node *color = yml_get_value(border, "color"); const struct yml_node *color = yml_get_value(border, "color");
const struct yml_node *margin = yml_get_value(border, "margin");
const struct yml_node *left_margin = yml_get_value(border, "left-margin");
const struct yml_node *right_margin = yml_get_value(border, "right-margin");
const struct yml_node *top_margin = yml_get_value(border, "top-margin");
const struct yml_node *bottom_margin = yml_get_value(border, "bottom-margin");
if (width != NULL) if (width != NULL)
conf.border.width = yml_value_as_int(width); conf.border.width = yml_value_as_int(width);
if (color != NULL) if (color != NULL)
conf.border.color = conf_to_color(color); conf.border.color = conf_to_color(color);
if (margin != NULL)
conf.border.left_margin =
conf.border.right_margin =
conf.border.top_margin =
conf.border.bottom_margin = yml_value_as_int(margin);
if (left_margin != NULL)
conf.border.left_margin = yml_value_as_int(left_margin);
if (right_margin != NULL)
conf.border.right_margin = yml_value_as_int(right_margin);
if (top_margin != NULL)
conf.border.top_margin = yml_value_as_int(top_margin);
if (bottom_margin != NULL)
conf.border.bottom_margin = yml_value_as_int(bottom_margin);
} }
/* /*