mirror of
https://github.com/labwc/labwc.git
synced 2026-05-03 06:47:22 -04:00
labnag: add details border color and margin options
Adds --details-border-color and --details-margin command line options to configure the border color and margin of the details pane.
This commit is contained in:
parent
de3870246a
commit
91d89f71ce
2 changed files with 38 additions and 5 deletions
|
|
@ -46,6 +46,7 @@ struct conf {
|
|||
uint32_t button_text;
|
||||
uint32_t button_background;
|
||||
uint32_t details_background;
|
||||
uint32_t details_border_color;
|
||||
uint32_t background;
|
||||
uint32_t text;
|
||||
uint32_t button_border;
|
||||
|
|
@ -60,6 +61,7 @@ struct conf {
|
|||
ssize_t button_gap_close;
|
||||
ssize_t button_margin_right;
|
||||
ssize_t button_padding;
|
||||
ssize_t details_margin;
|
||||
};
|
||||
|
||||
struct pointer {
|
||||
|
|
@ -343,8 +345,9 @@ render_detailed(cairo_t *cairo, struct nag *nag, uint32_t y)
|
|||
uint32_t width = nag->width;
|
||||
|
||||
int border = nag->conf->details_border_thickness;
|
||||
int margin = nag->conf->details_margin;
|
||||
int padding = nag->conf->message_padding;
|
||||
int decor = padding + border;
|
||||
int decor = margin + border;
|
||||
|
||||
nag->details.x = decor;
|
||||
nag->details.y = y + decor;
|
||||
|
|
@ -401,6 +404,8 @@ render_detailed(cairo_t *cairo, struct nag *nag, uint32_t y)
|
|||
|
||||
nag->details.visible_lines = pango_layout_get_line_count(layout);
|
||||
|
||||
int border_rect_height = nag->details.height + 2 * border;
|
||||
|
||||
if (show_buttons) {
|
||||
nag->details.button_up.x = nag->details.x + nag->details.width;
|
||||
nag->details.button_up.y = nag->details.y;
|
||||
|
|
@ -416,6 +421,11 @@ render_detailed(cairo_t *cairo, struct nag *nag, uint32_t y)
|
|||
render_details_scroll_button(cairo, nag, &nag->details.button_down);
|
||||
}
|
||||
|
||||
cairo_set_source_u32(cairo, nag->conf->details_border_color);
|
||||
cairo_rectangle(cairo, margin, nag->details.y - border,
|
||||
nag->details.width + 2 * border, border_rect_height);
|
||||
cairo_fill(cairo);
|
||||
|
||||
cairo_set_source_u32(cairo, nag->conf->details_background);
|
||||
cairo_rectangle(cairo, nag->details.x, nag->details.y,
|
||||
nag->details.width, nag->details.height);
|
||||
|
|
@ -1464,14 +1474,16 @@ conf_init(struct conf *conf)
|
|||
conf->keyboard_focus = ZWLR_LAYER_SURFACE_V1_KEYBOARD_INTERACTIVITY_NONE;
|
||||
conf->bar_border_thickness = 2;
|
||||
conf->message_padding = 8;
|
||||
conf->details_border_thickness = 3;
|
||||
conf->button_border_thickness = 3;
|
||||
conf->button_gap = 20;
|
||||
conf->button_gap_close = 15;
|
||||
conf->button_margin_right = 2;
|
||||
conf->button_padding = 3;
|
||||
conf->button_background = 0x680A0AFF;
|
||||
conf->details_margin = 11;
|
||||
conf->details_border_thickness = 3;
|
||||
conf->details_background = 0x680A0AFF;
|
||||
conf->details_border_color = 0x680A0AFF;
|
||||
conf->background = 0x900000FF;
|
||||
conf->text = 0xFFFFFFFF;
|
||||
conf->button_text = 0xFFFFFFFF;
|
||||
|
|
@ -1551,16 +1563,18 @@ nag_parse_options(int argc, char **argv, struct nag *nag,
|
|||
TO_COLOR_BORDER_BOTTOM,
|
||||
TO_COLOR_BUTTON_BG,
|
||||
TO_COLOR_DETAILS,
|
||||
TO_COLOR_DETAILS_BORDER,
|
||||
TO_COLOR_TEXT,
|
||||
TO_COLOR_BUTTON_TEXT,
|
||||
TO_THICK_BAR_BORDER,
|
||||
TO_PADDING_MESSAGE,
|
||||
TO_THICK_DET_BORDER,
|
||||
TO_THICK_DETAILS_BORDER,
|
||||
TO_THICK_BTN_BORDER,
|
||||
TO_GAP_BTN,
|
||||
TO_GAP_BTN_DISMISS,
|
||||
TO_MARGIN_BTN_RIGHT,
|
||||
TO_PADDING_BTN,
|
||||
TO_MARGIN_DETAILS,
|
||||
};
|
||||
|
||||
static const struct option opts[] = {
|
||||
|
|
@ -1587,8 +1601,10 @@ nag_parse_options(int argc, char **argv, struct nag *nag,
|
|||
{"button-text-color", required_argument, NULL, TO_COLOR_BUTTON_TEXT},
|
||||
{"border-bottom-size", required_argument, NULL, TO_THICK_BAR_BORDER},
|
||||
{"message-padding", required_argument, NULL, TO_PADDING_MESSAGE},
|
||||
{"details-border-size", required_argument, NULL, TO_THICK_DET_BORDER},
|
||||
{"details-border-size", required_argument, NULL, TO_THICK_DETAILS_BORDER},
|
||||
{"details-background-color", required_argument, NULL, TO_COLOR_DETAILS},
|
||||
{"details-border-color", required_argument, NULL, TO_COLOR_DETAILS_BORDER},
|
||||
{"details-margin", required_argument, NULL, TO_MARGIN_DETAILS},
|
||||
{"button-border-size", required_argument, NULL, TO_THICK_BTN_BORDER},
|
||||
{"button-gap", required_argument, NULL, TO_GAP_BTN},
|
||||
{"button-dismiss-gap", required_argument, NULL, TO_GAP_BTN_DISMISS},
|
||||
|
|
@ -1633,6 +1649,9 @@ nag_parse_options(int argc, char **argv, struct nag *nag,
|
|||
" --details-border-size size Thickness for the details border.\n"
|
||||
" --details-background-color RRGGBB[AA]\n"
|
||||
" Details background color.\n"
|
||||
" --details-border-color RRGGBB[AA]\n"
|
||||
" Details border color.\n"
|
||||
" --details-margin margin Margin for the details.\n"
|
||||
" --button-border-size size Thickness for the button border.\n"
|
||||
" --button-gap gap Size of the gap between buttons\n"
|
||||
" --button-dismiss-gap gap Size of the gap for dismiss button.\n"
|
||||
|
|
@ -1769,6 +1788,11 @@ nag_parse_options(int argc, char **argv, struct nag *nag,
|
|||
fprintf(stderr, "Invalid details background color: %s\n", optarg);
|
||||
}
|
||||
break;
|
||||
case TO_COLOR_DETAILS_BORDER:
|
||||
if (!parse_color(optarg, &conf->details_border_color)) {
|
||||
fprintf(stderr, "Invalid details border color: %s\n", optarg);
|
||||
}
|
||||
break;
|
||||
case TO_COLOR_TEXT: /* Text color */
|
||||
if (!parse_color(optarg, &conf->text)) {
|
||||
fprintf(stderr, "Invalid text color: %s\n", optarg);
|
||||
|
|
@ -1785,7 +1809,7 @@ nag_parse_options(int argc, char **argv, struct nag *nag,
|
|||
case TO_PADDING_MESSAGE: /* Message padding */
|
||||
conf->message_padding = strtol(optarg, NULL, 0);
|
||||
break;
|
||||
case TO_THICK_DET_BORDER: /* Details border thickness */
|
||||
case TO_THICK_DETAILS_BORDER: /* Details border thickness */
|
||||
conf->details_border_thickness = strtol(optarg, NULL, 0);
|
||||
break;
|
||||
case TO_THICK_BTN_BORDER: /* Button border thickness */
|
||||
|
|
@ -1803,6 +1827,9 @@ nag_parse_options(int argc, char **argv, struct nag *nag,
|
|||
case TO_PADDING_BTN: /* Padding for the button text */
|
||||
conf->button_padding = strtol(optarg, NULL, 0);
|
||||
break;
|
||||
case TO_MARGIN_DETAILS:
|
||||
conf->details_margin = strtol(optarg, NULL, 0);
|
||||
break;
|
||||
default: /* Help or unknown flag */
|
||||
fprintf(c == 'h' ? stdout : stderr, "%s", usage);
|
||||
return LAB_EXIT_FAILURE;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue