ELinks 0.16.1.1
event.h File Reference
#include "terminal/kbd.h"
#include "terminal/mouse.h"
Include dependency graph for event.h:
This graph shows which files directly or indirectly include this file:

Data Structures

struct  term_event_size
struct  term_event
 An event received from a terminal. More...
 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)
#define set_resize_term_event(ev, w, h)
#define set_redraw_term_event(ev, w, h)
#define set_resize_interlink_event(ev, w, h)
#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)
 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)
#define check_kbd_key(event, key)
#define get_kbd_modifier(event)
#define check_kbd_modifier(event, mod)
#define check_kbd_textinput_key(event)
#define check_kbd_label_key(event)
For mouse events handling
#define get_mouse_action(event)
#define check_mouse_action(event, value)
#define get_mouse_button(event)
#define check_mouse_button(event, value)
#define check_mouse_wheel(event)
#define check_mouse_position(event, 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)
static void set_wh_interlink_event (struct interlink_event *ev, enum term_event_type type, int width, int height)
void term_send_event (struct terminal *, struct term_event *)
void in_term (struct terminal *)

Macro Definition Documentation

◆ check_kbd_key

#define check_kbd_key ( event,
key )
Value:
(kbd_key_is(&(event)->info.keyboard, (key)))
#define kbd_key_is(kbd_, key)
Definition kbd.h:148

◆ check_kbd_label_key

#define check_kbd_label_key ( event)
Value:
@ KBD_MOD_NONE
Definition kbd.h:41
@ KBD_MOD_ALT
Definition kbd.h:44
#define check_kbd_modifier(event, mod)
Definition event.h:183
#define get_kbd_key(event)
Definition event.h:179

◆ check_kbd_modifier

#define check_kbd_modifier ( event,
mod )
Value:
(kbd_modifier_is(&(event)->info.keyboard, (mod)))
#define kbd_modifier_is(kbd_, mod)
Definition kbd.h:151

◆ check_kbd_textinput_key

#define check_kbd_textinput_key ( event)
Value:
@ KBD_MOD_PASTE
The character is part of a string being pasted from the terminal.
Definition kbd.h:50

◆ check_mouse_action

#define check_mouse_action ( event,
value )
Value:
(mouse_action_is(&(event)->info.mouse, (value)))
#define mouse_action_is(mouse_, value)
Definition mouse.h:108

◆ check_mouse_button

#define check_mouse_button ( event,
value )
Value:
(mouse_button_is(&(event)->info.mouse, (value)))
#define mouse_button_is(mouse_, value)
Definition mouse.h:111

◆ check_mouse_position

#define check_mouse_position ( event,
box )
Value:
mouse_is_in_box(&(event)->info.mouse, box)
#define mouse_is_in_box(mouse_, box)
Definition mouse.h:114

◆ check_mouse_wheel

#define check_mouse_wheel ( event)
Value:
(mouse_wheeling(&(event)->info.mouse))
#define mouse_wheeling(mouse_)
Definition mouse.h:112

◆ get_kbd_key

#define get_kbd_key ( event)
Value:
(kbd_get_key(&(event)->info.keyboard))
#define kbd_get_key(kbd_)
Definition kbd.h:147

◆ get_kbd_modifier

#define get_kbd_modifier ( event)
Value:
(kbd_get_modifier(&(event)->info.keyboard))
#define kbd_get_modifier(kbd_)
Definition kbd.h:150

◆ get_mouse_action

#define get_mouse_action ( event)
Value:
(mouse_get_action(&(event)->info.mouse))
#define mouse_get_action(mouse_)
Definition mouse.h:107

◆ get_mouse_button

#define get_mouse_button ( event)
Value:
(mouse_get_button(&(event)->info.mouse))
#define mouse_get_button(mouse_)
Definition mouse.h:110

◆ interlink_event_size

#define interlink_event_size   term_event_size

◆ INTERLINK_MAGIC

#define INTERLINK_MAGIC ( major,
minor )
Value:
-(((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.

◆ INTERLINK_NORMAL_MAGIC

#define INTERLINK_NORMAL_MAGIC   INTERLINK_MAGIC(1, 0)

◆ INTERLINK_REMOTE_MAGIC

#define INTERLINK_REMOTE_MAGIC   INTERLINK_MAGIC(1, 1)

◆ set_init_term_event

#define set_init_term_event ( ev,
w,
h )
Value:
@ EVENT_INIT
Definition event.h:15
static void set_wh_term_event(struct term_event *ev, enum term_event_type type, int width, int height)
Definition event.h:115

◆ set_redraw_term_event

#define set_redraw_term_event ( ev,
w,
h )
Value:
@ EVENT_REDRAW
Definition event.h:18

◆ set_resize_interlink_event

#define set_resize_interlink_event ( ev,
w,
h )
Value:
static void set_wh_interlink_event(struct interlink_event *ev, enum term_event_type type, int width, int height)
Definition event.h:128
@ EVENT_RESIZE
Definition event.h:19

◆ set_resize_term_event

#define set_resize_term_event ( ev,
w,
h )
Value:

◆ TERMINAL_INFO_SIZE

#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.

Enumeration Type Documentation

◆ term_event_type

Type of an event received from a terminal.

Enumerator
EVENT_INIT 
EVENT_KBD 
EVENT_MOUSE 
EVENT_REDRAW 
EVENT_RESIZE 
EVENT_ABORT 

Function Documentation

◆ in_term()

void in_term ( struct terminal * term)

◆ set_abort_term_event()

void set_abort_term_event ( struct term_event * ev)
inlinestatic

◆ set_kbd_interlink_event()

void set_kbd_interlink_event ( struct interlink_event * ev,
int key,
term_event_modifier_T modifier )
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.

◆ set_kbd_term_event()

void set_kbd_term_event ( struct term_event * ev,
int key,
term_event_modifier_T modifier )
inlinestatic

◆ set_mouse_interlink_event()

void set_mouse_interlink_event ( struct interlink_event * ev,
int x,
int y,
unsigned int button )
inlinestatic

◆ set_mouse_term_event()

void set_mouse_term_event ( struct term_event * ev,
int x,
int y,
unsigned int button )
inlinestatic

◆ set_wh_interlink_event()

void set_wh_interlink_event ( struct interlink_event * ev,
enum term_event_type type,
int width,
int height )
inlinestatic

◆ set_wh_term_event()

void set_wh_term_event ( struct term_event * ev,
enum term_event_type type,
int width,
int height )
inlinestatic

◆ term_send_event()

void term_send_event ( struct terminal * term,
struct term_event * ev )