summaryrefslogtreecommitdiffstats
path: root/options-table.c
diff options
context:
space:
mode:
authornicm <nicm>2014-01-28 23:07:09 +0000
committernicm <nicm>2014-01-28 23:07:09 +0000
commit945339b443affdaaca260605e15b5a3b9a3c6e16 (patch)
treed04a4ccbdb9d83ded880cda1277911f6cf436197 /options-table.c
parentc930fd5ff696f5a60e93ed503f0ff57e0bbf6e4d (diff)
Allow replacing each of the many sets of separate foo-{fg,bg,attr}
options with a single foo-style option. For example: set -g status-fg yellow set -g status-bg red set -g status-attr blink Becomes: set -g status-style fg=yellow,bg=red,blink The -a flag to set can be used to add to rather than replace a style. So: set -g status-bg red Becomes: set -ag status-style bg=red Currently this is fully backwards compatible (all *-{fg,bg,attr} options remain) but the plan is to deprecate them over time. From Tiago Cunha.
Diffstat (limited to 'options-table.c')
-rw-r--r--options-table.c231
1 files changed, 176 insertions, 55 deletions
diff --git a/options-table.c b/options-table.c
index 97ca90be..4480b344 100644
--- a/options-table.c
+++ b/options-table.c
@@ -196,32 +196,43 @@ const struct options_table_entry session_options_table[] = {
{ .name = "message-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = 0
+ .default_num = 0,
+ .style = "message-style"
},
{ .name = "message-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 3
+ .default_num = 3,
+ .style = "message-style"
},
{ .name = "message-command-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = 0
+ .default_num = 0,
+ .style = "message-command-style"
},
{ .name = "message-command-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 0
+ .default_num = 0,
+ .style = "message-command-style"
},
{ .name = "message-command-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 3
+ .default_num = 3,
+ .style = "message-command-style"
+ },
+
+ { .name = "message-command-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "bg=black,fg=yellow"
},
{ .name = "message-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 0
+ .default_num = 0,
+ .style = "message-style"
},
{ .name = "message-limit",
@@ -231,6 +242,11 @@ const struct options_table_entry session_options_table[] = {
.default_num = 20
},
+ { .name = "message-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "bg=yellow,fg=black"
+ },
+
{ .name = "mouse-resize-pane",
.type = OPTIONS_TABLE_FLAG,
.default_num = 0
@@ -253,22 +269,36 @@ const struct options_table_entry session_options_table[] = {
{ .name = "pane-active-border-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "pane-active-border-style"
},
{ .name = "pane-active-border-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 2
+ .default_num = 2,
+ .style = "pane-active-border-style"
+ },
+
+ { .name = "pane-active-border-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "fg=green"
},
{ .name = "pane-border-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "pane-border-style"
},
{ .name = "pane-border-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "pane-border-style"
+ },
+
+ { .name = "pane-border-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "default"
},
{ .name = "prefix",
@@ -315,17 +345,20 @@ const struct options_table_entry session_options_table[] = {
{ .name = "status-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = 0
+ .default_num = 0,
+ .style = "status-style"
},
{ .name = "status-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 2
+ .default_num = 2,
+ .style = "status-style"
},
{ .name = "status-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 0
+ .default_num = 0,
+ .style = "status-style"
},
{ .name = "status-interval",
@@ -354,17 +387,20 @@ const struct options_table_entry session_options_table[] = {
{ .name = "status-left-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = 0
+ .default_num = 0,
+ .style = "status-left-style"
},
{ .name = "status-left-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "status-left-style"
},
{ .name = "status-left-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "status-left-style"
},
{ .name = "status-left-length",
@@ -374,6 +410,11 @@ const struct options_table_entry session_options_table[] = {
.default_num = 10
},
+ { .name = "status-left-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "default"
+ },
+
{ .name = "status-position",
.type = OPTIONS_TABLE_CHOICE,
.choices = options_table_status_position_list,
@@ -387,17 +428,20 @@ const struct options_table_entry session_options_table[] = {
{ .name = "status-right-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = 0
+ .default_num = 0,
+ .style = "status-right-style"
},
{ .name = "status-right-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "status-right-style"
},
{ .name = "status-right-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "status-right-style"
},
{ .name = "status-right-length",
@@ -407,6 +451,16 @@ const struct options_table_entry session_options_table[] = {
.default_num = 40
},
+ { .name = "status-right-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "default"
+ },
+
+ { .name = "status-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "bg=green,fg=black"
+ },
+
{ .name = "status-utf8",
.type = OPTIONS_TABLE_FLAG,
.default_num = 0 /* overridden in main() */
@@ -537,17 +591,20 @@ const struct options_table_entry window_options_table[] = {
{ .name = "mode-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = 0
+ .default_num = 0,
+ .style = "mode-style"
},
{ .name = "mode-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 3
+ .default_num = 3,
+ .style = "mode-style"
},
{ .name = "mode-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 0
+ .default_num = 0,
+ .style = "mode-style"
},
{ .name = "mode-keys",
@@ -562,6 +619,11 @@ const struct options_table_entry window_options_table[] = {
.default_num = 0
},
+ { .name = "mode-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "bg=yellow,fg=black"
+ },
+
{ .name = "monitor-activity",
.type = OPTIONS_TABLE_FLAG,
.default_num = 0
@@ -617,72 +679,101 @@ const struct options_table_entry window_options_table[] = {
{ .name = "window-status-activity-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = GRID_ATTR_REVERSE
+ .default_num = GRID_ATTR_REVERSE,
+ .style = "window-status-activity-style"
},
{ .name = "window-status-activity-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "window-status-activity-style"
},
{ .name = "window-status-activity-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "window-status-activity-style"
+ },
+
+ { .name = "window-status-activity-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "reverse"
+ },
+
+ { .name = "window-status-attr",
+ .type = OPTIONS_TABLE_ATTRIBUTES,
+ .default_num = 0,
+ .style = "window-status-style"
},
{ .name = "window-status-bell-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = GRID_ATTR_REVERSE
+ .default_num = GRID_ATTR_REVERSE,
+ .style = "window-status-bell-style"
},
{ .name = "window-status-bell-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "window-status-bell-style"
},
{ .name = "window-status-bell-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "window-status-bell-style"
+ },
+
+ { .name = "window-status-bell-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "reverse"
+ },
+
+ { .name = "window-status-bg",
+ .type = OPTIONS_TABLE_COLOUR,
+ .default_num = 8,
+ .style = "window-status-style"
},
{ .name = "window-status-content-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = GRID_ATTR_REVERSE
+ .default_num = GRID_ATTR_REVERSE,
+ .style = "window-status-content-style"
},
{ .name = "window-status-content-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "window-status-content-style"
},
{ .name = "window-status-content-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "window-status-content-style"
},
- { .name = "window-status-attr",
- .type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = 0
- },
-
- { .name = "window-status-bg",
- .type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ { .name = "window-status-content-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "reverse"
},
{ .name = "window-status-current-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = 0
+ .default_num = 0,
+ .style = "window-status-current-style"
},
{ .name = "window-status-current-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "window-status-current-style"
},
{ .name = "window-status-current-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "window-status-current-style"
},
{ .name = "window-status-current-format",
@@ -690,29 +781,43 @@ const struct options_table_entry window_options_table[] = {
.default_str = "#I:#W#F"
},
+ { .name = "window-status-current-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "default"
+ },
+
+ { .name = "window-status-fg",
+ .type = OPTIONS_TABLE_COLOUR,
+ .default_num = 8,
+ .style = "window-status-style"
+ },
+
+ { .name = "window-status-format",
+ .type = OPTIONS_TABLE_STRING,
+ .default_str = "#I:#W#F"
+ },
+
{ .name = "window-status-last-attr",
.type = OPTIONS_TABLE_ATTRIBUTES,
- .default_num = 0
+ .default_num = 0,
+ .style = "window-status-last-style"
},
{ .name = "window-status-last-bg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "window-status-last-style"
},
{ .name = "window-status-last-fg",
.type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
+ .default_num = 8,
+ .style = "window-status-last-style"
},
- { .name = "window-status-fg",
- .type = OPTIONS_TABLE_COLOUR,
- .default_num = 8
- },
-
- { .name = "window-status-format",
- .type = OPTIONS_TABLE_STRING,
- .default_str = "#I:#W#F"
+ { .name = "window-status-last-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "default"
},
{ .name = "window-status-separator",
@@ -720,6 +825,11 @@ const struct options_table_entry window_options_table[] = {
.default_str = " "
},
+ { .name = "window-status-style",
+ .type = OPTIONS_TABLE_STYLE,
+ .default_str = "default"
+ },
+
{ .name = "wrap-search",
.type = OPTIONS_TABLE_FLAG,
.default_num = 1
@@ -741,10 +851,17 @@ options_table_populate_tree(
const struct options_table_entry *oe;
for (oe = table; oe->name != NULL; oe++) {
- if (oe->default_str != NULL)
+ switch (oe->type) {
+ case OPTIONS_TABLE_STRING:
options_set_string(oo, oe->name, "%s", oe->default_str);
- else
+ break;
+ case OPTIONS_TABLE_STYLE:
+ options_set_style(oo, oe->name, oe->default_str);
+ break;
+ default:
options_set_number(oo, oe->name, oe->default_num);
+ break;
+ }
}
}
@@ -789,6 +906,10 @@ options_table_print_entry(const struct options_table_entry *oe,
s = oe->choices[o->num];
xsnprintf(out, sizeof out, "%s", s);
break;
+ case OPTIONS_TABLE_STYLE:
+ s = style_tostring(&o->style);
+ xsnprintf(out, sizeof out, "%s", s);
+ break;
}
return (out);
}