aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
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 /tmux.h
parentc930fd5ff696f5a60e93ed503f0ff57e0bbf6e4d (diff)
downloadrtmux-945339b443affdaaca260605e15b5a3b9a3c6e16.tar.gz
rtmux-945339b443affdaaca260605e15b5a3b9a3c6e16.tar.bz2
rtmux-945339b443affdaaca260605e15b5a3b9a3c6e16.zip
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 'tmux.h')
-rw-r--r--tmux.h36
1 files changed, 25 insertions, 11 deletions
diff --git a/tmux.h b/tmux.h
index b28f10a0..b8fd445c 100644
--- a/tmux.h
+++ b/tmux.h
@@ -726,11 +726,12 @@ struct options_entry {
enum {
OPTIONS_STRING,
OPTIONS_NUMBER,
- OPTIONS_DATA,
+ OPTIONS_STYLE
} type;
- char *str;
- long long num;
+ char *str;
+ long long num;
+ struct grid_cell style;
RB_ENTRY(options_entry) entry;
};
@@ -1453,7 +1454,8 @@ enum options_table_type {
OPTIONS_TABLE_COLOUR,
OPTIONS_TABLE_ATTRIBUTES,
OPTIONS_TABLE_FLAG,
- OPTIONS_TABLE_CHOICE
+ OPTIONS_TABLE_CHOICE,
+ OPTIONS_TABLE_STYLE
};
struct options_table_entry {
@@ -1466,6 +1468,8 @@ struct options_table_entry {
const char *default_str;
long long default_num;
+
+ const char *style;
};
/* Tree of format entries. */
@@ -1577,12 +1581,15 @@ void options_free(struct options *);
struct options_entry *options_find1(struct options *, const char *);
struct options_entry *options_find(struct options *, const char *);
void options_remove(struct options *, const char *);
-struct options_entry *printflike3 options_set_string(
- struct options *, const char *, const char *, ...);
+struct options_entry *printflike3 options_set_string(struct options *,
+ const char *, const char *, ...);
char *options_get_string(struct options *, const char *);
-struct options_entry *options_set_number(
- struct options *, const char *, long long);
+struct options_entry *options_set_number(struct options *, const char *,
+ long long);
long long options_get_number(struct options *, const char *);
+struct options_entry *options_set_style(struct options *, const char *,
+ const char *, int);
+struct grid_cell *options_get_style(struct options *, const char *);
/* options-table.c */
extern const struct options_table_entry server_options_table[];
@@ -2042,8 +2049,6 @@ void printflike5 screen_write_nputs(struct screen_write_ctx *,
ssize_t, struct grid_cell *, int, const char *, ...);
void screen_write_vnputs(struct screen_write_ctx *,
ssize_t, struct grid_cell *, int, const char *, va_list);
-void screen_write_parsestyle(
- struct grid_cell *, struct grid_cell *, const char *);
void screen_write_putc(
struct screen_write_ctx *, struct grid_cell *, u_char);
void screen_write_copy(struct screen_write_ctx *,
@@ -2173,7 +2178,6 @@ struct window_pane *window_pane_find_right(struct window_pane *);
void window_set_name(struct window *, const char *);
void window_remove_ref(struct window *);
void winlink_clear_flags(struct winlink *);
-void window_mode_attrs(struct grid_cell *, struct options *);
/* layout.c */
u_int layout_count_cells(struct layout_cell *);
@@ -2345,4 +2349,14 @@ int xvasprintf(char **, const char *, va_list);
int printflike3 xsnprintf(char *, size_t, const char *, ...);
int xvsnprintf(char *, size_t, const char *, va_list);
+/* style.c */
+int style_parse(const struct grid_cell *,
+ struct grid_cell *, const char *);
+const char *style_tostring(struct grid_cell *);
+void style_update_new(struct options *, const char *, const char *);
+void style_update_old(struct options *, const char *,
+ struct grid_cell *);
+void style_apply(struct grid_cell *, struct options *, const char *);
+void style_apply_update(struct grid_cell *, struct options *, const char *);
+
#endif /* TMUX_H */