ELinks 0.18.0
|
Data Structures | |
struct | term_event_size |
struct | term_event |
An event received from a terminal. More... | |
struct | interlink_event |
An event transferred via the interlink socket. More... | |
struct | terminal_info |
This holds the information used when handling the initial connection between a dumb and master terminal. More... | |
Macros | |
#define | interlink_event_size term_event_size |
#define | set_init_term_event(ev, w, h, cw, ch) set_wh_term_event(ev, EVENT_INIT, w, h, cw, ch) |
#define | set_resize_term_event(ev, w, h, cw, ch) set_wh_term_event(ev, EVENT_RESIZE, w, h, cw, ch) |
#define | set_redraw_term_event(ev, w, h, cw, ch) set_wh_term_event(ev, EVENT_REDRAW, w, h, cw, ch) |
#define | set_resize_interlink_event(ev, w, h, cw, ch) set_wh_interlink_event(ev, EVENT_RESIZE, w, h, cw, ch) |
#define | TERMINAL_INFO_SIZE offsetof(struct terminal_info, data) |
The terminal_info.data member has to have size of one for portability but it can be empty/zero so when reading and writing it we need to ignore the byte. | |
#define | INTERLINK_MAGIC(major, minor) -(((major) << 8) + (minor)) |
We use magic numbers to signal the identity of the dump client terminal. | |
#define | INTERLINK_NORMAL_MAGIC INTERLINK_MAGIC(1, 0) |
#define | INTERLINK_REMOTE_MAGIC INTERLINK_MAGIC(1, 1) |
For keyboard events handling | |
#define | get_kbd_key(event) (kbd_get_key(&(event)->info.keyboard)) |
#define | check_kbd_key(event, key) (kbd_key_is(&(event)->info.keyboard, (key))) |
#define | get_kbd_modifier(event) (kbd_get_modifier(&(event)->info.keyboard)) |
#define | check_kbd_modifier(event, mod) (kbd_modifier_is(&(event)->info.keyboard, (mod))) |
#define | check_kbd_textinput_key(event) (get_kbd_key(event) >= ' ' && (check_kbd_modifier(event, KBD_MOD_NONE) || check_kbd_modifier(event, KBD_MOD_PASTE))) |
#define | check_kbd_label_key(event) (get_kbd_key(event) > ' ' && (check_kbd_modifier(event, KBD_MOD_NONE) || check_kbd_modifier(event, KBD_MOD_ALT))) |
For mouse events handling | |
#define | get_mouse_action(event) (mouse_get_action(&(event)->info.mouse)) |
#define | check_mouse_action(event, value) (mouse_action_is(&(event)->info.mouse, (value))) |
#define | get_mouse_button(event) (mouse_get_button(&(event)->info.mouse)) |
#define | check_mouse_button(event, value) (mouse_button_is(&(event)->info.mouse, (value))) |
#define | check_mouse_wheel(event) (mouse_wheeling(&(event)->info.mouse)) |
#define | check_mouse_position(event, box) mouse_is_in_box(&(event)->info.mouse, box) |
Enumerations | |
enum | term_event_type { EVENT_INIT , EVENT_KBD , EVENT_MOUSE , EVENT_REDRAW , EVENT_RESIZE , EVENT_ABORT } |
Type of an event received from a terminal. More... | |
Functions | |
static void | set_mouse_term_event (struct term_event *ev, int x, int y, unsigned int button) |
static void | set_mouse_interlink_event (struct interlink_event *ev, int x, int y, unsigned int button) |
static void | set_kbd_term_event (struct term_event *ev, int key, term_event_modifier_T modifier) |
static void | set_kbd_interlink_event (struct interlink_event *ev, int key, term_event_modifier_T modifier) |
Initialize ev as an interlink keyboard event. | |
static void | set_abort_term_event (struct term_event *ev) |
static void | set_wh_term_event (struct term_event *ev, enum term_event_type type, int width, int height, int cell_width, int cell_height) |
static void | set_wh_interlink_event (struct interlink_event *ev, enum term_event_type type, int width, int height, int cell_width, int cell_height) |
void | term_send_event (struct terminal *, struct term_event *) |
void | in_term (struct terminal *) |
#define check_kbd_key | ( | event, | |
key ) (kbd_key_is(&(event)->info.keyboard, (key))) |
#define check_kbd_label_key | ( | event | ) | (get_kbd_key(event) > ' ' && (check_kbd_modifier(event, KBD_MOD_NONE) || check_kbd_modifier(event, KBD_MOD_ALT))) |
#define check_kbd_modifier | ( | event, | |
mod ) (kbd_modifier_is(&(event)->info.keyboard, (mod))) |
#define check_kbd_textinput_key | ( | event | ) | (get_kbd_key(event) >= ' ' && (check_kbd_modifier(event, KBD_MOD_NONE) || check_kbd_modifier(event, KBD_MOD_PASTE))) |
#define check_mouse_action | ( | event, | |
value ) (mouse_action_is(&(event)->info.mouse, (value))) |
#define check_mouse_button | ( | event, | |
value ) (mouse_button_is(&(event)->info.mouse, (value))) |
#define check_mouse_position | ( | event, | |
box ) mouse_is_in_box(&(event)->info.mouse, box) |
#define check_mouse_wheel | ( | event | ) | (mouse_wheeling(&(event)->info.mouse)) |
#define get_kbd_key | ( | event | ) | (kbd_get_key(&(event)->info.keyboard)) |
#define get_kbd_modifier | ( | event | ) | (kbd_get_modifier(&(event)->info.keyboard)) |
#define get_mouse_action | ( | event | ) | (mouse_get_action(&(event)->info.mouse)) |
#define get_mouse_button | ( | event | ) | (mouse_get_button(&(event)->info.mouse)) |
#define interlink_event_size term_event_size |
#define INTERLINK_MAGIC | ( | major, | |
minor ) -(((major) << 8) + (minor)) |
We use magic numbers to signal the identity of the dump client terminal.
Magic numbers are composed by the INTERLINK_MAGIC() macro. It is a negative magic to be able to distinguish the oldest format from the newer ones.
#define INTERLINK_NORMAL_MAGIC INTERLINK_MAGIC(1, 0) |
#define INTERLINK_REMOTE_MAGIC INTERLINK_MAGIC(1, 1) |
#define set_init_term_event | ( | ev, | |
w, | |||
h, | |||
cw, | |||
ch ) set_wh_term_event(ev, EVENT_INIT, w, h, cw, ch) |
#define set_redraw_term_event | ( | ev, | |
w, | |||
h, | |||
cw, | |||
ch ) set_wh_term_event(ev, EVENT_REDRAW, w, h, cw, ch) |
#define set_resize_interlink_event | ( | ev, | |
w, | |||
h, | |||
cw, | |||
ch ) set_wh_interlink_event(ev, EVENT_RESIZE, w, h, cw, ch) |
#define set_resize_term_event | ( | ev, | |
w, | |||
h, | |||
cw, | |||
ch ) set_wh_term_event(ev, EVENT_RESIZE, w, h, cw, ch) |
#define TERMINAL_INFO_SIZE offsetof(struct terminal_info, data) |
The terminal_info.data member has to have size of one for portability but it can be empty/zero so when reading and writing it we need to ignore the byte.
enum term_event_type |
void in_term | ( | struct terminal * | term | ) |
|
inlinestatic |
|
inlinestatic |
Initialize ev
as an interlink keyboard event.
key can be either an 8-bit byte or a value from enum term_event_special_key. In the latter case, this function negates the value, unless it is KBD_UNDEF. For example, key == KBD_ENTER results in ev->info.keyboard.key = -KBD_ENTER. This mapping keeps the interlink protocol compatible with ELinks 0.11.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
void term_send_event | ( | struct terminal * | term, |
struct term_event * | ev ) |