ELinks 0.18.0
|
This is one of the axis of ELinks' user interaction. More...
#include <terminal.h>
Public Member Functions | |
LIST_HEAD_EL (struct terminal) |
Data Fields | |
struct window list | windows |
This is (at least partially) a stack of all the windows living in this terminal. | |
struct option * | spec |
The specification of terminal in terms of terminal options. | |
char * | title |
This is the terminal's current title, as perhaps displayed somewhere in the X window frame or so. | |
struct terminal_screen * | screen |
This is the screen. | |
struct menu * | main_menu |
This is for displaying main menu. | |
int | fdin |
These are pipes for communication with the ELinks instance owning this terminal. | |
int | fdout |
int | blocked |
This indicates that the terminal is blocked, that is nothing should be drawn on it etc. | |
int | width |
Terminal dimensions. | |
int | height |
enum term_redrawing_state | redrawing |
Indicates whether we are currently in the process of redrawing the stuff being displayed on the terminal. | |
unsigned int | master:1 |
Indicates the master terminal, that is the terminal under supervision of the master ELinks instance (the one doing all the work and even maintaining these structures ;-). | |
unsigned int | utf8_cp:1 |
Indicates whether the charset of the terminal is UTF-8. | |
unsigned int | utf8_io:1 |
Indicates whether UTF-8 I/O is used. | |
int | current_tab |
The current tab number. | |
term_env_type_T | environment |
The type of environment this terminal lives in. | |
char | cwd [MAX_CWD_LEN] |
The current working directory for this terminal / ELinks instance. | |
struct terminal_interlink * | interlink |
For communication between instances. | |
void * | textarea_data |
struct term_event_mouse | prev_mouse_event |
int | cell_width |
int | cell_height |
struct uri * | closed_tab_uri |
This is one of the axis of ELinks' user interaction.
struct terminal defines the terminal ELinks is running on — each ELinks instance has one. It contains the basic terminal attributes, the settings associated with this terminal, screen content (and more abstract description of what is currently displayed on it) etc. It also maintains some runtime information about the actual ELinks instance owning this terminal.
int terminal::blocked |
This indicates that the terminal is blocked, that is nothing should be drawn on it etc.
Typically an external program is running on it right now. This is a file descriptor.
int terminal::cell_height |
int terminal::cell_width |
struct uri* terminal::closed_tab_uri |
int terminal::current_tab |
The current tab number.
char terminal::cwd[MAX_CWD_LEN] |
The current working directory for this terminal / ELinks instance.
term_env_type_T terminal::environment |
The type of environment this terminal lives in.
int terminal::fdin |
These are pipes for communication with the ELinks instance owning this terminal.
int terminal::fdout |
int terminal::height |
struct terminal_interlink* terminal::interlink |
For communication between instances.
struct menu* terminal::main_menu |
This is for displaying main menu.
unsigned int terminal::master |
Indicates the master terminal, that is the terminal under supervision of the master ELinks instance (the one doing all the work and even maintaining these structures ;-).
struct term_event_mouse terminal::prev_mouse_event |
enum term_redrawing_state terminal::redrawing |
Indicates whether we are currently in the process of redrawing the stuff being displayed on the terminal.
It is typically used to prevent redrawing inside of redrawing.
struct terminal_screen* terminal::screen |
This is the screen.
struct option* terminal::spec |
The specification of terminal in terms of terminal options.
void* terminal::textarea_data |
char* terminal::title |
This is the terminal's current title, as perhaps displayed somewhere in the X window frame or so.
unsigned int terminal::utf8_cp |
Indicates whether the charset of the terminal is UTF-8.
unsigned int terminal::utf8_io |
Indicates whether UTF-8 I/O is used.
Forced on if the UTF-8 charset is selected. (bug 827)
int terminal::width |
Terminal dimensions.
struct window list terminal::windows |
This is (at least partially) a stack of all the windows living in this terminal.
A window can be wide range of stuff, from a menu box through classical dialog window to a tab. See terminal/window.h for more on windows.
Tabs are special windows, though, and you never want to display them all, but only one of them. ALWAYS check inactive_tab() during iterations through this list (unless it is really useless or you are sure what are you doing) to make sure that you don't distribute events etc to inactive tabs.
The stack is top-down, thus .next is the stack's top, the current window; and
.prev is the bottom, covered by others.
If the main menu is inactive, then it is at the very bottom, hidden under the tabs. Call assert_window_stacking() to verify this.
Keeping the current tab at the very bottom would require storing tab numbers explicitly, rather than computing them from the stack order as is done now. Also, what should be done with the inactive main menu? –KON