version 1.359, 2012/10/02 08:16:28 |
version 1.360, 2012/10/26 14:35:42 |
|
|
RB_HEAD(sessions, session); |
RB_HEAD(sessions, session); |
ARRAY_DECL(sessionslist, struct session *); |
ARRAY_DECL(sessionslist, struct session *); |
|
|
/* |
|
* Mouse input. xterm mouse mode is fairly silly. Buttons are in the bottom two |
|
* bits: 0 = button 1; 1 = button 2; 2 = button 3; 3 = buttons released. Bits |
|
* 3, 4 and 5 are for keys. Bit 6 is set for dragging and 7 for mouse buttons 4 |
|
* and 5. |
|
*/ |
|
struct mouse_event { |
|
u_int b; |
|
#define MOUSE_1 0 |
|
#define MOUSE_2 1 |
|
#define MOUSE_3 2 |
|
#define MOUSE_UP 3 |
|
#define MOUSE_BUTTON 3 |
|
#define MOUSE_SHIFT 4 |
|
#define MOUSE_ESCAPE 8 |
|
#define MOUSE_CTRL 16 |
|
#define MOUSE_DRAG 32 |
|
#define MOUSE_45 64 |
|
#define MOUSE_RESIZE_PANE 128 /* marker for resizing */ |
|
u_int x; |
|
u_int y; |
|
}; |
|
|
|
/* TTY information. */ |
/* TTY information. */ |
struct tty_key { |
struct tty_key { |
char ch; |
char ch; |
|
|
}; |
}; |
LIST_HEAD(tty_terms, tty_term); |
LIST_HEAD(tty_terms, tty_term); |
|
|
|
/* Mouse wheel states. */ |
|
#define MOUSE_WHEEL_UP 0 |
|
#define MOUSE_WHEEL_DOWN 1 |
|
|
|
/* Mouse events. */ |
|
#define MOUSE_EVENT_DOWN (1 << 0) |
|
#define MOUSE_EVENT_DRAG (1 << 1) |
|
#define MOUSE_EVENT_UP (1 << 2) |
|
#define MOUSE_EVENT_CLICK (1 << 3) |
|
#define MOUSE_EVENT_WHEEL (1 << 4) |
|
|
|
/* Mouse flags. */ |
|
#define MOUSE_RESIZE_PANE (1 << 0) |
|
|
|
/* |
|
* Mouse input. When sent by xterm: |
|
* |
|
* - buttons are in the bottom two bits: 0 = b1; 1 = b2; 2 = b3; 3 = released |
|
* - bits 3, 4 and 5 are for keys |
|
* - bit 6 is set for dragging |
|
* - bit 7 for buttons 4 and 5 |
|
*/ |
|
struct mouse_event { |
|
u_int xb; |
|
|
|
u_int x; |
|
u_int lx; |
|
u_int sx; |
|
|
|
u_int y; |
|
u_int ly; |
|
u_int sy; |
|
|
|
u_int button; |
|
u_int clicks; |
|
|
|
int wheel; |
|
int event; |
|
int flags; |
|
}; |
|
|
struct tty { |
struct tty { |
struct client *client; |
struct client *client; |
|
|
|
|
struct session *session; |
struct session *session; |
struct session *last_session; |
struct session *last_session; |
|
|
struct mouse_event last_mouse; |
|
|
|
int wlmouse; |
int wlmouse; |
|
|
int references; |
int references; |
|
|
|
|
/* input-key.c */ |
/* input-key.c */ |
void input_key(struct window_pane *, int); |
void input_key(struct window_pane *, int); |
void input_mouse(struct window_pane *, struct mouse_event *); |
void input_mouse(struct window_pane *, struct session *, |
|
struct mouse_event *); |
|
|
/* xterm-keys.c */ |
/* xterm-keys.c */ |
char *xterm_keys_lookup(int); |
char *xterm_keys_lookup(int); |
|
|
void layout_resize(struct window *, u_int, u_int); |
void layout_resize(struct window *, u_int, u_int); |
void layout_resize_pane( |
void layout_resize_pane( |
struct window_pane *, enum layout_type, int); |
struct window_pane *, enum layout_type, int); |
void layout_resize_pane_mouse( |
void layout_resize_pane_mouse(struct client *c); |
struct client *c, struct mouse_event *mouse); |
|
void layout_assign_pane(struct layout_cell *, struct window_pane *); |
void layout_assign_pane(struct layout_cell *, struct window_pane *); |
struct layout_cell *layout_split_pane( |
struct layout_cell *layout_split_pane( |
struct window_pane *, enum layout_type, int, int); |
struct window_pane *, enum layout_type, int, int); |