diff options
author | nicm <nicm> | 2019-05-07 20:01:41 +0000 |
---|---|---|
committer | nicm <nicm> | 2019-05-07 20:01:41 +0000 |
commit | 89db309e106cfdd901ab62243bc07f0b76ef41da (patch) | |
tree | cac6d1b5756f000a362e815544d798e0278705e2 /tmux.h | |
parent | d53d3bce59daa26720682dfcb6bcad182851c9a0 (diff) | |
download | rtmux-89db309e106cfdd901ab62243bc07f0b76ef41da.tar.gz rtmux-89db309e106cfdd901ab62243bc07f0b76ef41da.tar.bz2 rtmux-89db309e106cfdd901ab62243bc07f0b76ef41da.zip |
Move around the display-panes identify code to make it a bit more
generic and hide the display-panes specific bits into
cmd-display-panes.c.
Diffstat (limited to 'tmux.h')
-rw-r--r-- | tmux.h | 35 |
1 files changed, 27 insertions, 8 deletions
@@ -727,6 +727,21 @@ struct screen_write_ctx { u_int skipped; }; +/* Screen redraw context. */ +struct screen_redraw_ctx { + struct client *c; + + u_int statuslines; + int statustop; + + int pane_status; + + u_int sx; + u_int sy; + u_int ox; + u_int oy; +}; + /* Screen size. */ #define screen_size_x(s) ((s)->grid->sx) #define screen_size_y(s) ((s)->grid->sy) @@ -1374,6 +1389,9 @@ struct status_line { /* Client connection. */ typedef int (*prompt_input_cb)(struct client *, void *, const char *, int); typedef void (*prompt_free_cb)(void *); +typedef void (*overlay_draw_cb)(struct client *, struct screen_redraw_ctx *); +typedef int (*overlay_key_cb)(struct client *, struct key_event *); +typedef void (*overlay_free_cb)(struct client *); struct client { const char *name; struct tmuxpeer *peer; @@ -1423,7 +1441,7 @@ struct client { #define CLIENT_REPEAT 0x20 #define CLIENT_SUSPENDED 0x40 #define CLIENT_ATTACHED 0x80 -#define CLIENT_IDENTIFY 0x100 +/* 0x100 unused */ #define CLIENT_DEAD 0x200 #define CLIENT_REDRAWBORDERS 0x400 #define CLIENT_READONLY 0x800 @@ -1452,12 +1470,6 @@ struct client { int flags; struct key_table *keytable; - struct event identify_timer; - void (*identify_callback)(struct client *, - struct window_pane *); - void *identify_callback_data; - struct cmdq_item *identify_callback_item; - char *message_string; struct event message_timer; u_int message_next; @@ -1488,6 +1500,12 @@ struct client { u_int pan_ox; u_int pan_oy; + overlay_draw_cb overlay_draw; + overlay_key_cb overlay_key; + overlay_free_cb overlay_free; + void *overlay_data; + struct event overlay_timer; + TAILQ_ENTRY(client) entry; }; TAILQ_HEAD(clients, client); @@ -2008,7 +2026,8 @@ void server_add_accept(int); /* server-client.c */ u_int server_client_how_many(void); -void server_client_set_identify(struct client *, u_int); +void server_client_set_overlay(struct client *, u_int, overlay_draw_cb, + overlay_key_cb, overlay_free_cb, void *); void server_client_set_key_table(struct client *, const char *); const char *server_client_get_key_table(struct client *); int server_client_check_nested(struct client *); |