=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/tmux.h,v retrieving revision 1.848 retrieving revision 1.849 diff -u -r1.848 -r1.849 --- src/usr.bin/tmux/tmux.h 2018/10/18 07:57:57 1.848 +++ src/usr.bin/tmux/tmux.h 2018/10/18 08:38:01 1.849 @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.h,v 1.848 2018/10/18 07:57:57 nicm Exp $ */ +/* $OpenBSD: tmux.h,v 1.849 2018/10/18 08:38:01 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -57,11 +57,17 @@ #define PROTOCOL_VERSION 8 /* Default global configuration file. */ +#ifndef TMUX_CONF #define TMUX_CONF "/etc/tmux.conf" +#endif /* Minimum layout cell size, NOT including border lines. */ #define PANE_MINIMUM 1 +/* Minimum and maximum window size. */ +#define WINDOW_MINIMUM PANE_MINIMUM +#define WINDOW_MAXIMUM 10000 + /* Automatic name refresh interval, in microseconds. Must be < 1 second. */ #define NAME_INTERVAL 500000 @@ -789,6 +795,7 @@ struct timeval name_time; struct event alerts_timer; + struct event offset_timer; struct timeval activity_time; @@ -809,9 +816,7 @@ #define WINDOW_ACTIVITY 0x2 #define WINDOW_SILENCE 0x4 #define WINDOW_ZOOMED 0x8 -#define WINDOW_FORCEWIDTH 0x10 -#define WINDOW_FORCEHEIGHT 0x20 -#define WINDOW_STYLECHANGED 0x40 +#define WINDOW_STYLECHANGED 0x10 #define WINDOW_ALERTFLAGS (WINDOW_BELL|WINDOW_ACTIVITY|WINDOW_SILENCE) int alerts_queued; @@ -852,6 +857,11 @@ RB_HEAD(winlinks, winlink); TAILQ_HEAD(winlink_stack, winlink); +/* Window size option. */ +#define WINDOW_SIZE_LARGEST 0 +#define WINDOW_SIZE_SMALLEST 1 +#define WINDOW_SIZE_MANUAL 2 + /* Layout direction. */ enum layout_type { LAYOUT_LEFTRIGHT, @@ -910,9 +920,6 @@ struct event lock_timer; - u_int sx; - u_int sy; - struct winlink *curw; struct winlink_stack lastw; struct winlinks windows; @@ -972,6 +979,9 @@ u_int ly; u_int lb; + u_int ox; + u_int oy; + int s; int w; int wp; @@ -1019,6 +1029,12 @@ u_int cstyle; char *ccolour; + int oflag; + u_int oox; + u_int ooy; + u_int osx; + u_int osy; + int mode; u_int rlower; @@ -1099,11 +1115,19 @@ u_int orupper; u_int orlower; + /* Pane offset. */ u_int xoff; u_int yoff; /* The background colour used for clearing (erasing). */ u_int bg; + + /* Window offset and size. */ + int bigger; + u_int ox; + u_int oy; + u_int sx; + u_int sy; }; /* Saved message entry. */ @@ -1341,11 +1365,16 @@ #define CLIENT_SIZECHANGED 0x400000 #define CLIENT_STATUSOFF 0x800000 #define CLIENT_REDRAWSTATUSALWAYS 0x1000000 -#define CLIENT_ALLREDRAWFLAGS \ - (CLIENT_REDRAWWINDOW| \ - CLIENT_REDRAWSTATUS| \ - CLIENT_REDRAWSTATUSALWAYS| \ +#define CLIENT_ALLREDRAWFLAGS \ + (CLIENT_REDRAWWINDOW| \ + CLIENT_REDRAWSTATUS| \ + CLIENT_REDRAWSTATUSALWAYS| \ CLIENT_REDRAWBORDERS) +#define CLIENT_NOSIZEFLAGS \ + (CLIENT_EXIT| \ + CLIENT_DEAD| \ + CLIENT_SUSPENDED| \ + CLIENT_DETACHING) int flags; struct key_table *keytable; @@ -1383,6 +1412,10 @@ int references; + void *pan_window; + u_int pan_ox; + u_int pan_oy; + TAILQ_ENTRY(client) entry; }; TAILQ_HEAD(clients, client); @@ -1443,6 +1476,7 @@ const char *separator; const char *style; + const char *pattern; }; /* Common command usages. */ @@ -1643,7 +1677,10 @@ /* tty.c */ void tty_create_log(void); -u_int tty_status_lines(struct client *); +int tty_window_bigger(struct tty *); +int tty_window_offset(struct tty *, u_int *, u_int *, u_int *, u_int *); +void tty_update_window_offset(struct window *); +void tty_update_client_offset(struct client *); void tty_raw(struct tty *, const char *); void tty_attributes(struct tty *, const struct grid_cell *, const struct window_pane *); @@ -1668,10 +1705,8 @@ void tty_stop_tty(struct tty *); void tty_set_title(struct tty *, const char *); void tty_update_mode(struct tty *, int, struct screen *); -void tty_draw_pane(struct tty *, const struct window_pane *, u_int, u_int, - u_int); void tty_draw_line(struct tty *, const struct window_pane *, struct screen *, - u_int, u_int, u_int); + u_int, u_int, u_int, u_int, u_int); int tty_open(struct tty *, char **); void tty_close(struct tty *); void tty_free(struct tty *); @@ -1904,9 +1939,9 @@ /* status.c */ void status_timer_start(struct client *); void status_timer_start_all(void); -void status_update_saved(struct session *s); +void status_update_saved(struct session *); int status_at_line(struct client *); -u_int status_line_size(struct session *); +u_int status_line_size(struct client *); struct window *status_get_window_at(struct client *, u_int); int status_redraw(struct client *); void printflike(2, 3) status_message_set(struct client *, const char *, ...); @@ -1922,6 +1957,9 @@ void status_prompt_save_history(void); /* resize.c */ +void resize_window(struct window *, u_int, u_int); +void default_window_size(struct session *, struct window *, u_int *, + u_int *, int); void recalculate_sizes(void); /* input.c */ @@ -1989,10 +2027,10 @@ void grid_view_scroll_region_down(struct grid *, u_int, u_int, u_int); void grid_view_insert_lines(struct grid *, u_int, u_int, u_int); void grid_view_insert_lines_region(struct grid *, u_int, u_int, u_int, - u_int); + u_int); void grid_view_delete_lines(struct grid *, u_int, u_int, u_int); void grid_view_delete_lines_region(struct grid *, u_int, u_int, u_int, - u_int); + u_int); void grid_view_insert_cells(struct grid *, u_int, u_int, u_int, u_int); void grid_view_delete_cells(struct grid *, u_int, u_int, u_int, u_int); char *grid_view_string_cells(struct grid *, u_int, u_int, u_int); @@ -2180,7 +2218,7 @@ void layout_make_leaf(struct layout_cell *, struct window_pane *); void layout_make_node(struct layout_cell *, enum layout_type); void layout_fix_offsets(struct layout_cell *); -void layout_fix_panes(struct window *, u_int, u_int); +void layout_fix_panes(struct window *); void layout_resize_adjust(struct window *, struct layout_cell *, enum layout_type, int); void layout_init(struct window *, struct window_pane *); @@ -2296,7 +2334,7 @@ struct session *session_find_by_id(u_int); struct session *session_create(const char *, const char *, int, char **, const char *, const char *, struct environ *, - struct termios *, int, u_int, u_int, char **); + struct options *, struct termios *, int, char **); void session_destroy(struct session *, const char *); void session_add_ref(struct session *, const char *); void session_remove_ref(struct session *, const char *);