mirror of
https://github.com/tmux/tmux.git
synced 2026-04-18 15:09:32 +00:00
Merge.
This commit is contained in:
299
tmux.h
299
tmux.h
@@ -129,18 +129,6 @@ struct winlink;
|
||||
#define VISUAL_ON 1
|
||||
#define VISUAL_BOTH 2
|
||||
|
||||
/* No key or unknown key. */
|
||||
#define KEYC_NONE 0x000ff000000000ULL
|
||||
#define KEYC_UNKNOWN 0x000fe000000000ULL
|
||||
|
||||
/*
|
||||
* Base for special (that is, not Unicode) keys. An enum must be at most a
|
||||
* signed int, so these are based in the highest Unicode PUA.
|
||||
*/
|
||||
#define KEYC_BASE 0x0000000010e000ULL
|
||||
#define KEYC_USER 0x0000000010f000ULL
|
||||
#define KEYC_USER_END (KEYC_USER + KEYC_NUSER)
|
||||
|
||||
/* Key modifier bits. */
|
||||
#define KEYC_META 0x00100000000000ULL
|
||||
#define KEYC_CTRL 0x00200000000000ULL
|
||||
@@ -156,45 +144,122 @@ struct winlink;
|
||||
#define KEYC_SENT 0x40000000000000ULL
|
||||
|
||||
/* Masks for key bits. */
|
||||
#define KEYC_MASK_MODIFIERS 0x00f00000000000ULL
|
||||
#define KEYC_MASK_TYPE 0x0000ff00000000ULL
|
||||
#define KEYC_MASK_MODIFIERS 0x00ff0000000000ULL
|
||||
#define KEYC_MASK_FLAGS 0xff000000000000ULL
|
||||
#define KEYC_MASK_KEY 0x000fffffffffffULL
|
||||
#define KEYC_MASK_KEY 0x0000ffffffffffULL
|
||||
|
||||
/* Available user keys. */
|
||||
#define KEYC_NUSER 1000
|
||||
#define KEYC_NUSER 1000
|
||||
#define KEYC_SHIFT_TYPE(t) ((unsigned long long)(t) << 32)
|
||||
#define KEYC_IS_TYPE(k, t) (((k) & KEYC_MASK_TYPE) == KEYC_SHIFT_TYPE(t))
|
||||
enum key_code_type {
|
||||
KEYC_TYPE_UNICODE,
|
||||
KEYC_TYPE_USER,
|
||||
KEYC_TYPE_FUNCTION,
|
||||
KEYC_TYPE_MOUSEMOVE,
|
||||
KEYC_TYPE_MOUSEDOWN,
|
||||
KEYC_TYPE_MOUSEUP,
|
||||
KEYC_TYPE_MOUSEDRAG,
|
||||
KEYC_TYPE_MOUSEDRAGEND,
|
||||
KEYC_TYPE_WHEELDOWN,
|
||||
KEYC_TYPE_WHEELUP,
|
||||
KEYC_TYPE_SECONDCLICK,
|
||||
KEYC_TYPE_DOUBLECLICK,
|
||||
KEYC_TYPE_TRIPLECLICK,
|
||||
KEYC_TYPE_NOTYPE /* end */
|
||||
};
|
||||
|
||||
/* Is this a mouse key? */
|
||||
#define KEYC_IS_MOUSE(key) \
|
||||
(((key) & KEYC_MASK_KEY) >= KEYC_MOUSE && \
|
||||
((key) & KEYC_MASK_KEY) < KEYC_BSPACE)
|
||||
enum key_code_mouse_location {
|
||||
KEYC_MOUSE_LOCATION_PANE,
|
||||
KEYC_MOUSE_LOCATION_STATUS,
|
||||
KEYC_MOUSE_LOCATION_STATUS_LEFT,
|
||||
KEYC_MOUSE_LOCATION_STATUS_RIGHT,
|
||||
KEYC_MOUSE_LOCATION_STATUS_DEFAULT,
|
||||
KEYC_MOUSE_LOCATION_BORDER,
|
||||
KEYC_MOUSE_LOCATION_SCROLLBAR_UP,
|
||||
KEYC_MOUSE_LOCATION_SCROLLBAR_SLIDER,
|
||||
KEYC_MOUSE_LOCATION_SCROLLBAR_DOWN,
|
||||
KEYC_MOUSE_LOCATION_CONTROL0, /* keep order */
|
||||
KEYC_MOUSE_LOCATION_CONTROL1,
|
||||
KEYC_MOUSE_LOCATION_CONTROL2,
|
||||
KEYC_MOUSE_LOCATION_CONTROL3,
|
||||
KEYC_MOUSE_LOCATION_CONTROL4,
|
||||
KEYC_MOUSE_LOCATION_CONTROL5,
|
||||
KEYC_MOUSE_LOCATION_CONTROL6,
|
||||
KEYC_MOUSE_LOCATION_CONTROL7,
|
||||
KEYC_MOUSE_LOCATION_CONTROL8,
|
||||
KEYC_MOUSE_LOCATION_CONTROL9,
|
||||
KEYC_MOUSE_LOCATION_NOWHERE /* end */
|
||||
};
|
||||
|
||||
/* Is this a Unicode key? */
|
||||
#define KEYC_IS_UNICODE(key) \
|
||||
(((key) & KEYC_MASK_KEY) > 0x7f && \
|
||||
(((key) & KEYC_MASK_KEY) < KEYC_BASE || \
|
||||
((key) & KEYC_MASK_KEY) >= KEYC_BASE_END) && \
|
||||
(((key) & KEYC_MASK_KEY) < KEYC_USER || \
|
||||
((key) & KEYC_MASK_KEY) >= KEYC_USER_END))
|
||||
(((key) & KEYC_MASK_TYPE) == KEYC_SHIFT_TYPE(KEYC_TYPE_UNICODE) && \
|
||||
((key) & KEYC_MASK_KEY) > 0x7f)
|
||||
|
||||
/* Is this a user key? */
|
||||
#define KEYC_IS_USER(key) \
|
||||
(((key) & KEYC_MASK_TYPE) == KEYC_SHIFT_TYPE(KEYC_TYPE_USER))
|
||||
|
||||
/* Is this a function key? */
|
||||
#define KEYC_IS_SPECIAL(key) \
|
||||
(((key) & KEYC_MASK_TYPE) == KEYC_SHIFT_TYPE(KEYC_TYPE_FUNCTION))
|
||||
|
||||
/* Is this a mouse key? */
|
||||
#define KEYC_IS_MOUSE(key) \
|
||||
(((key) & KEYC_MASK_KEY) == KEYC_MOUSE || \
|
||||
(((key) & KEYC_MASK_TYPE) >= KEYC_SHIFT_TYPE(KEYC_TYPE_MOUSEMOVE) && \
|
||||
((key) & KEYC_MASK_TYPE) <= KEYC_SHIFT_TYPE(KEYC_TYPE_TRIPLECLICK)))
|
||||
|
||||
/* Is this a paste key? */
|
||||
#define KEYC_IS_PASTE(key) \
|
||||
(((key) & KEYC_MASK_KEY) == KEYC_PASTE_START || \
|
||||
((key) & KEYC_MASK_KEY) == KEYC_PASTE_END)
|
||||
(((key) & KEYC_MASK_TYPE) == KEYC_SHIFT_TYPE(KEYC_TYPE_FUNCTION) && \
|
||||
(((key) & KEYC_MASK_KEY) == KEYC_PASTE_START || \
|
||||
((key) & KEYC_MASK_KEY) == KEYC_PASTE_END))
|
||||
|
||||
/* Multiple click timeout. */
|
||||
#define KEYC_CLICK_TIMEOUT 300
|
||||
|
||||
/* Bit shift for mouse events. */
|
||||
#define KEYC_MOUSE_LOCATION_SHIFT 0
|
||||
#define KEYC_MOUSE_BUTTON_SHIFT 8
|
||||
|
||||
/* Mouse key codes. */
|
||||
#define KEYC_MOUSE_KEY(name) \
|
||||
KEYC_ ## name ## _PANE, \
|
||||
KEYC_ ## name ## _STATUS, \
|
||||
KEYC_ ## name ## _STATUS_LEFT, \
|
||||
KEYC_ ## name ## _STATUS_RIGHT, \
|
||||
KEYC_ ## name ## _STATUS_DEFAULT, \
|
||||
KEYC_ ## name ## _SCROLLBAR_UP, \
|
||||
KEYC_ ## name ## _SCROLLBAR_SLIDER, \
|
||||
KEYC_ ## name ## _SCROLLBAR_DOWN, \
|
||||
KEYC_ ## name ## _BORDER
|
||||
#define KEYC_MOUSE_KEYS(t) \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, PANE), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, STATUS), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, STATUS_LEFT), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, STATUS_RIGHT), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, STATUS_DEFAULT), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, BORDER), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, SCROLLBAR_UP), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, SCROLLBAR_SLIDER), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, SCROLLBAR_DOWN), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, CONTROL0), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, CONTROL1), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, CONTROL2), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, CONTROL3), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, CONTROL4), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, CONTROL5), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, CONTROL6), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, CONTROL7), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, CONTROL8), \
|
||||
KEYC_MOUSE_KEY(KEYC_ ## t, KEYC_TYPE_ ## t, CONTROL9)
|
||||
#define KEYC_MOUSE_KEY(p, t, l) \
|
||||
p ## _ ## l = KEYC_MAKE_MOUSE_KEY(t, 0, KEYC_MOUSE_LOCATION_ ## l), \
|
||||
p ## 1_ ## l = KEYC_MAKE_MOUSE_KEY(t, 1, KEYC_MOUSE_LOCATION_ ## l), \
|
||||
p ## 2_ ## l = KEYC_MAKE_MOUSE_KEY(t, 2, KEYC_MOUSE_LOCATION_ ## l), \
|
||||
p ## 3_ ## l = KEYC_MAKE_MOUSE_KEY(t, 3, KEYC_MOUSE_LOCATION_ ## l), \
|
||||
p ## 6_ ## l = KEYC_MAKE_MOUSE_KEY(t, 6, KEYC_MOUSE_LOCATION_ ## l), \
|
||||
p ## 7_ ## l = KEYC_MAKE_MOUSE_KEY(t, 7, KEYC_MOUSE_LOCATION_ ## l), \
|
||||
p ## 8_ ## l = KEYC_MAKE_MOUSE_KEY(t, 8, KEYC_MOUSE_LOCATION_ ## l), \
|
||||
p ## 9_ ## l = KEYC_MAKE_MOUSE_KEY(t, 9, KEYC_MOUSE_LOCATION_ ## l), \
|
||||
p ## 10_ ## l = KEYC_MAKE_MOUSE_KEY(t, 10, KEYC_MOUSE_LOCATION_ ## l), \
|
||||
p ## 11_ ## l = KEYC_MAKE_MOUSE_KEY(t, 11, KEYC_MOUSE_LOCATION_ ## l)
|
||||
#define KEYC_MAKE_MOUSE_KEY(t, b, l) \
|
||||
((KEYC_SHIFT_TYPE(t)) | \
|
||||
((unsigned long long)(b) << KEYC_MOUSE_BUTTON_SHIFT) | \
|
||||
((unsigned long long)(l) << KEYC_MOUSE_LOCATION_SHIFT))
|
||||
#define KEYC_MOUSE_STRING(name, s) \
|
||||
{ #s "Pane", KEYC_ ## name ## _PANE }, \
|
||||
{ #s "Status", KEYC_ ## name ## _STATUS }, \
|
||||
@@ -204,7 +269,17 @@ struct winlink;
|
||||
{ #s "ScrollbarUp", KEYC_ ## name ## _SCROLLBAR_UP }, \
|
||||
{ #s "ScrollbarSlider", KEYC_ ## name ## _SCROLLBAR_SLIDER }, \
|
||||
{ #s "ScrollbarDown", KEYC_ ## name ## _SCROLLBAR_DOWN }, \
|
||||
{ #s "Border", KEYC_ ## name ## _BORDER }
|
||||
{ #s "Border", KEYC_ ## name ## _BORDER }, \
|
||||
{ #s "Control0", KEYC_ ## name ## _CONTROL0 }, \
|
||||
{ #s "Control1", KEYC_ ## name ## _CONTROL1 }, \
|
||||
{ #s "Control2", KEYC_ ## name ## _CONTROL2 }, \
|
||||
{ #s "Control3", KEYC_ ## name ## _CONTROL3 }, \
|
||||
{ #s "Control4", KEYC_ ## name ## _CONTROL4 }, \
|
||||
{ #s "Control5", KEYC_ ## name ## _CONTROL5 }, \
|
||||
{ #s "Control6", KEYC_ ## name ## _CONTROL6 }, \
|
||||
{ #s "Control7", KEYC_ ## name ## _CONTROL7 }, \
|
||||
{ #s "Control8", KEYC_ ## name ## _CONTROL8 }, \
|
||||
{ #s "Control9", KEYC_ ## name ## _CONTROL9 }
|
||||
|
||||
/*
|
||||
* A single key. This can be ASCII or Unicode or one of the keys between
|
||||
@@ -250,8 +325,15 @@ enum {
|
||||
|
||||
/* Special key codes. */
|
||||
enum {
|
||||
/* User key code range. */
|
||||
KEYC_USER = KEYC_SHIFT_TYPE(KEYC_TYPE_USER),
|
||||
|
||||
/* Functional key code range. */
|
||||
KEYC_NONE = KEYC_SHIFT_TYPE(KEYC_TYPE_FUNCTION),
|
||||
KEYC_UNKNOWN,
|
||||
|
||||
/* Focus events. */
|
||||
KEYC_FOCUS_IN = KEYC_BASE,
|
||||
KEYC_FOCUS_IN,
|
||||
KEYC_FOCUS_OUT,
|
||||
|
||||
/* "Any" key, used if not found in key table. */
|
||||
@@ -261,77 +343,6 @@ enum {
|
||||
KEYC_PASTE_START,
|
||||
KEYC_PASTE_END,
|
||||
|
||||
/* Mouse keys. */
|
||||
KEYC_MOUSE, /* unclassified mouse event */
|
||||
KEYC_DRAGGING, /* dragging in progress */
|
||||
KEYC_DOUBLECLICK, /* double click complete */
|
||||
KEYC_MOUSE_KEY(MOUSEMOVE),
|
||||
KEYC_MOUSE_KEY(MOUSEDOWN1),
|
||||
KEYC_MOUSE_KEY(MOUSEDOWN2),
|
||||
KEYC_MOUSE_KEY(MOUSEDOWN3),
|
||||
KEYC_MOUSE_KEY(MOUSEDOWN6),
|
||||
KEYC_MOUSE_KEY(MOUSEDOWN7),
|
||||
KEYC_MOUSE_KEY(MOUSEDOWN8),
|
||||
KEYC_MOUSE_KEY(MOUSEDOWN9),
|
||||
KEYC_MOUSE_KEY(MOUSEDOWN10),
|
||||
KEYC_MOUSE_KEY(MOUSEDOWN11),
|
||||
KEYC_MOUSE_KEY(MOUSEUP1),
|
||||
KEYC_MOUSE_KEY(MOUSEUP2),
|
||||
KEYC_MOUSE_KEY(MOUSEUP3),
|
||||
KEYC_MOUSE_KEY(MOUSEUP6),
|
||||
KEYC_MOUSE_KEY(MOUSEUP7),
|
||||
KEYC_MOUSE_KEY(MOUSEUP8),
|
||||
KEYC_MOUSE_KEY(MOUSEUP9),
|
||||
KEYC_MOUSE_KEY(MOUSEUP10),
|
||||
KEYC_MOUSE_KEY(MOUSEUP11),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAG1),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAG2),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAG3),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAG6),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAG7),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAG8),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAG9),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAG10),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAG11),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAGEND1),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAGEND2),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAGEND3),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAGEND6),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAGEND7),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAGEND8),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAGEND9),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAGEND10),
|
||||
KEYC_MOUSE_KEY(MOUSEDRAGEND11),
|
||||
KEYC_MOUSE_KEY(WHEELUP),
|
||||
KEYC_MOUSE_KEY(WHEELDOWN),
|
||||
KEYC_MOUSE_KEY(SECONDCLICK1),
|
||||
KEYC_MOUSE_KEY(SECONDCLICK2),
|
||||
KEYC_MOUSE_KEY(SECONDCLICK3),
|
||||
KEYC_MOUSE_KEY(SECONDCLICK6),
|
||||
KEYC_MOUSE_KEY(SECONDCLICK7),
|
||||
KEYC_MOUSE_KEY(SECONDCLICK8),
|
||||
KEYC_MOUSE_KEY(SECONDCLICK9),
|
||||
KEYC_MOUSE_KEY(SECONDCLICK10),
|
||||
KEYC_MOUSE_KEY(SECONDCLICK11),
|
||||
KEYC_MOUSE_KEY(DOUBLECLICK1),
|
||||
KEYC_MOUSE_KEY(DOUBLECLICK2),
|
||||
KEYC_MOUSE_KEY(DOUBLECLICK3),
|
||||
KEYC_MOUSE_KEY(DOUBLECLICK6),
|
||||
KEYC_MOUSE_KEY(DOUBLECLICK7),
|
||||
KEYC_MOUSE_KEY(DOUBLECLICK8),
|
||||
KEYC_MOUSE_KEY(DOUBLECLICK9),
|
||||
KEYC_MOUSE_KEY(DOUBLECLICK10),
|
||||
KEYC_MOUSE_KEY(DOUBLECLICK11),
|
||||
KEYC_MOUSE_KEY(TRIPLECLICK1),
|
||||
KEYC_MOUSE_KEY(TRIPLECLICK2),
|
||||
KEYC_MOUSE_KEY(TRIPLECLICK3),
|
||||
KEYC_MOUSE_KEY(TRIPLECLICK6),
|
||||
KEYC_MOUSE_KEY(TRIPLECLICK7),
|
||||
KEYC_MOUSE_KEY(TRIPLECLICK8),
|
||||
KEYC_MOUSE_KEY(TRIPLECLICK9),
|
||||
KEYC_MOUSE_KEY(TRIPLECLICK10),
|
||||
KEYC_MOUSE_KEY(TRIPLECLICK11),
|
||||
|
||||
/* Backspace key. */
|
||||
KEYC_BSPACE,
|
||||
|
||||
@@ -384,8 +395,22 @@ enum {
|
||||
KEYC_REPORT_DARK_THEME,
|
||||
KEYC_REPORT_LIGHT_THEME,
|
||||
|
||||
/* End of special keys. */
|
||||
KEYC_BASE_END
|
||||
/* Mouse state. */
|
||||
KEYC_MOUSE, /* unclassified mouse event */
|
||||
KEYC_DRAGGING, /* dragging in progress */
|
||||
KEYC_DOUBLECLICK, /* double click complete */
|
||||
|
||||
/* Mouse key code ranges. Must be at the end. */
|
||||
KEYC_MOUSE_KEYS(MOUSEMOVE),
|
||||
KEYC_MOUSE_KEYS(WHEELDOWN),
|
||||
KEYC_MOUSE_KEYS(WHEELUP),
|
||||
KEYC_MOUSE_KEYS(MOUSEDOWN),
|
||||
KEYC_MOUSE_KEYS(MOUSEUP),
|
||||
KEYC_MOUSE_KEYS(MOUSEDRAG),
|
||||
KEYC_MOUSE_KEYS(MOUSEDRAGEND),
|
||||
KEYC_MOUSE_KEYS(SECONDCLICK),
|
||||
KEYC_MOUSE_KEYS(DOUBLECLICK),
|
||||
KEYC_MOUSE_KEYS(TRIPLECLICK),
|
||||
};
|
||||
|
||||
/* Termcap codes. */
|
||||
@@ -880,7 +905,8 @@ enum style_range_type {
|
||||
STYLE_RANGE_PANE,
|
||||
STYLE_RANGE_WINDOW,
|
||||
STYLE_RANGE_SESSION,
|
||||
STYLE_RANGE_USER
|
||||
STYLE_RANGE_USER,
|
||||
STYLE_RANGE_CONTROL
|
||||
};
|
||||
struct style_range {
|
||||
enum style_range_type type;
|
||||
@@ -894,6 +920,12 @@ struct style_range {
|
||||
};
|
||||
TAILQ_HEAD(style_ranges, style_range);
|
||||
|
||||
/* Ranges connected with a status line. */
|
||||
struct style_line_entry {
|
||||
char *expanded;
|
||||
struct style_ranges ranges;
|
||||
};
|
||||
|
||||
/* Default style width and pad. */
|
||||
#define STYLE_WIDTH_DEFAULT -1
|
||||
#define STYLE_PAD_DEFAULT -1
|
||||
@@ -952,6 +984,20 @@ enum screen_cursor_style {
|
||||
SCREEN_CURSOR_BAR
|
||||
};
|
||||
|
||||
|
||||
/* Progress bar, OSC 9;4. */
|
||||
enum progress_bar_state {
|
||||
PROGRESS_BAR_HIDDEN = 0,
|
||||
PROGRESS_BAR_NORMAL = 1,
|
||||
PROGRESS_BAR_ERROR = 2,
|
||||
PROGRESS_BAR_INDETERMINATE = 3,
|
||||
PROGRESS_BAR_PAUSED = 4
|
||||
};
|
||||
struct progress_bar {
|
||||
enum progress_bar_state state;
|
||||
int progress;
|
||||
};
|
||||
|
||||
/* Virtual screen. */
|
||||
struct screen_sel;
|
||||
struct screen_titles;
|
||||
@@ -993,6 +1039,7 @@ struct screen {
|
||||
struct screen_write_cline *write_list;
|
||||
|
||||
struct hyperlinks *hyperlinks;
|
||||
struct progress_bar progress_bar;
|
||||
};
|
||||
|
||||
/* Screen write context. */
|
||||
@@ -1216,8 +1263,8 @@ struct window_pane {
|
||||
#define PANE_DROP 0x2
|
||||
#define PANE_FOCUSED 0x4
|
||||
#define PANE_VISITED 0x8
|
||||
/* 0x10 unused */
|
||||
/* 0x20 unused */
|
||||
#define PANE_ZOOMED 0x10
|
||||
#define PANE_FLOATING 0x20
|
||||
#define PANE_INPUTOFF 0x40
|
||||
#define PANE_CHANGED 0x80
|
||||
#define PANE_EXITED 0x100
|
||||
@@ -1228,9 +1275,7 @@ struct window_pane {
|
||||
#define PANE_THEMECHANGED 0x2000
|
||||
#define PANE_UNSEENCHANGES 0x4000
|
||||
#define PANE_REDRAWSCROLLBAR 0x8000
|
||||
#define PANE_FLOATING 0x10000
|
||||
#define PANE_MINIMISED 0x20000
|
||||
#define PANE_ZOOMED 0x40000
|
||||
#define PANE_SAVED_FLOAT 0x80000 /* saved_float_* fields are valid */
|
||||
|
||||
/* Last floating position/size, saved when the pane is tiled. */
|
||||
@@ -1268,6 +1313,7 @@ struct window_pane {
|
||||
struct grid_cell cached_active_gc;
|
||||
struct colour_palette palette;
|
||||
enum client_theme last_theme;
|
||||
struct style_line_entry border_status_line;
|
||||
|
||||
int pipe_fd;
|
||||
pid_t pipe_pid;
|
||||
@@ -1892,10 +1938,6 @@ struct cmd_entry {
|
||||
|
||||
/* Status line. */
|
||||
#define STATUS_LINES_LIMIT 5
|
||||
struct status_line_entry {
|
||||
char *expanded;
|
||||
struct style_ranges ranges;
|
||||
};
|
||||
struct status_line {
|
||||
struct event timer;
|
||||
|
||||
@@ -1904,7 +1946,7 @@ struct status_line {
|
||||
int references;
|
||||
|
||||
struct grid_cell style;
|
||||
struct status_line_entry entries[STATUS_LINES_LIMIT];
|
||||
struct style_line_entry entries[STATUS_LINES_LIMIT];
|
||||
};
|
||||
|
||||
/* Prompt type. */
|
||||
@@ -1969,6 +2011,7 @@ typedef void (*overlay_resize_cb)(struct client *, void *);
|
||||
struct client {
|
||||
const char *name;
|
||||
struct tmuxpeer *peer;
|
||||
const char *user;
|
||||
struct cmdq_list *queue;
|
||||
|
||||
struct client_windows windows;
|
||||
@@ -2009,7 +2052,7 @@ struct client {
|
||||
struct event repeat_timer;
|
||||
|
||||
struct event click_timer;
|
||||
int click_where;
|
||||
int click_loc;
|
||||
int click_wp;
|
||||
u_int click_button;
|
||||
struct mouse_event click_event;
|
||||
@@ -3312,6 +3355,7 @@ int screen_set_title(struct screen *, const char *);
|
||||
void screen_set_path(struct screen *, const char *);
|
||||
void screen_push_title(struct screen *);
|
||||
void screen_pop_title(struct screen *);
|
||||
void screen_set_progress_bar(struct screen *, enum progress_bar_state, int);
|
||||
void screen_resize(struct screen *, u_int, u_int, int);
|
||||
void screen_resize_cursor(struct screen *, u_int, u_int, int, int, int);
|
||||
void screen_set_selection(struct screen *, u_int, u_int, u_int, u_int,
|
||||
@@ -3324,7 +3368,7 @@ int screen_select_cell(struct screen *, struct grid_cell *,
|
||||
void screen_alternate_on(struct screen *, struct grid_cell *, int);
|
||||
void screen_alternate_off(struct screen *, struct grid_cell *, int);
|
||||
const char *screen_mode_to_string(int);
|
||||
const char *screen_print(struct screen *);
|
||||
const char *screen_print(struct screen *, int);
|
||||
|
||||
/* window.c */
|
||||
extern struct windows windows;
|
||||
@@ -3404,7 +3448,7 @@ int window_pane_exited(struct window_pane *);
|
||||
u_int window_pane_search(struct window_pane *, const char *, int,
|
||||
int);
|
||||
const char *window_printable_flags(struct winlink *, int);
|
||||
const char *window_pane_printable_flags(struct window_pane *, int);
|
||||
const char *window_pane_printable_flags(struct window_pane *);
|
||||
struct window_pane *window_pane_find_up(struct window_pane *);
|
||||
struct window_pane *window_pane_find_down(struct window_pane *);
|
||||
struct window_pane *window_pane_find_left(struct window_pane *);
|
||||
@@ -3435,6 +3479,8 @@ int window_pane_get_bg_control_client(struct window_pane *);
|
||||
int window_get_bg_client(struct window_pane *);
|
||||
enum client_theme window_pane_get_theme(struct window_pane *);
|
||||
void window_pane_send_theme_update(struct window_pane *);
|
||||
struct style_range *window_pane_border_status_get_range(struct window_pane *,
|
||||
u_int, u_int);
|
||||
|
||||
/* layout.c */
|
||||
u_int layout_count_cells(struct layout_cell *);
|
||||
@@ -3756,6 +3802,9 @@ void style_set(struct style *, const struct grid_cell *);
|
||||
void style_copy(struct style *, struct style *);
|
||||
void style_set_scrollbar_style_from_option(struct style *,
|
||||
struct options *);
|
||||
void style_ranges_init(struct style_ranges *);
|
||||
void style_ranges_free(struct style_ranges *);
|
||||
struct style_range *style_ranges_get_range(struct style_ranges *, u_int);
|
||||
|
||||
/* spawn.c */
|
||||
struct winlink *spawn_window(struct spawn_context *, char **);
|
||||
|
||||
Reference in New Issue
Block a user