ELinks 0.18.0
|
#include "intl/charsets.h"
Data Structures | |
struct | screen_char |
One position in the terminal screen's image. More... | |
Typedefs | |
typedef unsigned short | screen_char_attr_T |
typedef int | border_char_T |
Enumerations | |
enum | screen_char_attr { SCREEN_ATTR_NONE = 0 , SCREEN_ATTR_UNSEARCHABLE = 0x01 , SCREEN_ATTR_STRIKE = 0x02 , SCREEN_ATTR_BOLD = 0x08 , SCREEN_ATTR_ITALIC = 0x10 , SCREEN_ATTR_UNDERLINE = 0x20 , SCREEN_ATTR_STANDOUT = 0x40 , SCREEN_ATTR_FRAME = 0x80 } |
Attributes of a character on the screen. More... | |
enum | border_char { BORDER_NONE = 0x0000 , BORDER_SULCORNER = BD_LIGHT(DOWN_AND_RIGHT) , BORDER_SURCORNER = BD_LIGHT(DOWN_AND_LEFT) , BORDER_SDLCORNER = BD_LIGHT(UP_AND_RIGHT) , BORDER_SDRCORNER = BD_LIGHT(UP_AND_LEFT) , BORDER_SLTEE = BD_LIGHT(VERTICAL_AND_LEFT) , BORDER_SRTEE = BD_LIGHT(VERTICAL_AND_RIGHT) , BORDER_SDTEE = BD_LIGHT(DOWN_AND_HORIZONTAL) , BORDER_SUTEE = BD_LIGHT(UP_AND_HORIZONTAL) , BORDER_SVLINE = BD_LIGHT(VERTICAL) , BORDER_SHLINE = BD_LIGHT(HORIZONTAL) , BORDER_SCROSS = BD_LIGHT(VERTICAL_AND_HORIZONTAL) , BORDER_DULCORNER = BD_DOUBLE(DOWN_AND_RIGHT) , BORDER_DURCORNER = BD_DOUBLE(DOWN_AND_LEFT) , BORDER_DDLCORNER = BD_DOUBLE(UP_AND_RIGHT) , BORDER_DDRCORNER = BD_DOUBLE(UP_AND_LEFT) , BORDER_DLTEE = BD_DOUBLE(VERTICAL_AND_LEFT) , BORDER_DRTEE = BD_DOUBLE(VERTICAL_AND_RIGHT) , BORDER_DDTEE = BD_DOUBLE(DOWN_AND_HORIZONTAL) , BORDER_DUTEE = BD_DOUBLE(UP_AND_HORIZONTAL) , BORDER_DVLINE = BD_DOUBLE(VERTICAL) , BORDER_DHLINE = BD_DOUBLE(HORIZONTAL) , BORDER_DCROSS = BD_DOUBLE(VERTICAL_AND_HORIZONTAL) , BORDER_SDULCORNER = BD_MIXED(DOWN_SINGLE_AND_RIGHT_DOUBLE) , BORDER_SDURCORNER = BD_MIXED(DOWN_SINGLE_AND_LEFT_DOUBLE) , BORDER_SDDLCORNER = BD_MIXED(UP_SINGLE_AND_RIGHT_DOUBLE) , BORDER_SDDRCORNER = BD_MIXED(UP_SINGLE_AND_LEFT_DOUBLE) , BORDER_SDLTEE = BD_MIXED(VERTICAL_SINGLE_AND_LEFT_DOUBLE) , BORDER_SDRTEE = BD_MIXED(VERTICAL_SINGLE_AND_RIGHT_DOUBLE) , BORDER_SDDTEE = BD_MIXED(DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) , BORDER_SDUTEE = BD_MIXED(UP_SINGLE_AND_HORIZONTAL_DOUBLE) , BORDER_SDCROSS = BD_MIXED(VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) , BORDER_DSULCORNER = BD_MIXED(DOWN_DOUBLE_AND_RIGHT_SINGLE) , BORDER_DSURCORNER = BD_MIXED(DOWN_DOUBLE_AND_LEFT_SINGLE) , BORDER_DSDLCORNER = BD_MIXED(UP_DOUBLE_AND_RIGHT_SINGLE) , BORDER_DSDRCORNER = BD_MIXED(UP_DOUBLE_AND_LEFT_SINGLE) , BORDER_DSLTEE = BD_MIXED(VERTICAL_DOUBLE_AND_LEFT_SINGLE) , BORDER_DSRTEE = BD_MIXED(VERTICAL_DOUBLE_AND_RIGHT_SINGLE) , BORDER_DSDTEE = BD_MIXED(DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) , BORDER_DSUTEE = BD_MIXED(UP_DOUBLE_AND_HORIZONTAL_SINGLE) , BORDER_DSCROSS = BD_MIXED(VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) } |
enum | border_cross_direction { BORDER_X_RIGHT = 0 , BORDER_X_LEFT , BORDER_X_DOWN , BORDER_X_UP } |
Functions | |
struct screen_char * | get_char (struct terminal *, int x, int y) |
Extracts a char from the screen. | |
void | draw_char_color (struct terminal *term, int x, int y, struct color_pair *color) |
Sets the color of a screen position. | |
void | draw_char_data (struct terminal *term, int x, int y, unicode_val_T data) |
Sets the data of a screen position. | |
void | draw_border_char (struct terminal *term, int x, int y, border_char_T border, struct color_pair *color) |
Sets the data to border and of a screen position. | |
void | draw_border_cross (struct terminal *, int x, int y, enum border_cross_direction, struct color_pair *color) |
Sets the cross position of two borders. | |
void | draw_char (struct terminal *term, int x, int y, unicode_val_T data, int attr, struct color_pair *color) |
Draws a char. | |
void | draw_space (struct terminal *term, int x, int y, struct screen_char *color) |
void | draw_box (struct terminal *term, struct el_box *box, unicode_val_T data, int attr, struct color_pair *color) |
Draws area defined by box using the same colors and attributes. | |
void | draw_shadow (struct terminal *term, struct el_box *box, struct color_pair *color, int width, int height) |
Draws a shadow of width and height with color color around box. | |
void | draw_border (struct terminal *term, struct el_box *box, struct color_pair *color, int width) |
Draw borders. | |
void | fix_dwchar_around_box (struct terminal *term, struct el_box *box, int border, int shadow_width, int shadow_height) |
Checks cells left and right to the box for broken double-width chars. | |
void | draw_text (struct terminal *term, int x, int y, const char *text, int length, int attr, struct color_pair *color) |
Draws length chars from text. | |
void | draw_dlg_text (struct dialog_data *dlg_data, int x, int y, const char *text, int length, int attr, struct color_pair *color) |
Draws text for dialogs. | |
void | draw_line (struct terminal *term, int x, int y, int length, struct screen_char *line) |
Draws length chars from line on the screen. | |
void | set_cursor (struct terminal *term, int x, int y, int blockable) |
Updates the terminals cursor position. | |
void | set_dlg_cursor (struct terminal *term, struct dialog_data *dlg_data, int x, int y, int blockable) |
void | clear_terminal (struct terminal *) |
Blanks the screen. | |
#define BD_DOUBLE | ( | XXX | ) | T_CP437_BOX_DRAWINGS_DOUBLE_##XXX |
#define BD_LIGHT | ( | XXX | ) | T_CP437_BOX_DRAWINGS_LIGHT_##XXX |
#define BD_MIXED | ( | XXX | ) | T_CP437_BOX_DRAWINGS_##XXX |
#define SCREEN_COLOR_SIZE 1 |
How many bytes we need for the colors of one character cell.
#define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB |
#define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB |
#define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 |
#define T_CP437_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD |
#define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA |
#define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC |
#define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 |
#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA |
#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE |
#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 |
#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC |
#define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D2 |
#define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x00B7 |
#define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x00D6 |
#define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D1 |
#define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x00B8 |
#define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00D5 |
#define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 |
#define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF |
#define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA |
#define T_CP437_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 |
#define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 |
#define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 |
#define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 |
#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 |
#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 |
#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 |
#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 |
#define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D0 |
#define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x00BD |
#define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00D3 |
#define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00CF |
#define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00BE |
#define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00D4 |
#define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D7 |
#define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x00B6 |
#define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00C7 |
#define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D8 |
#define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B5 |
#define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00C6 |
typedef int border_char_T |
typedef unsigned short screen_char_attr_T |
enum border_char |
enum screen_char_attr |
Attributes of a character on the screen.
All attributes should fit inside an unsigned char.
XXX: The bold mask is used as part of the color encoding.
Enumerator | |
---|---|
SCREEN_ATTR_NONE | |
SCREEN_ATTR_UNSEARCHABLE | |
SCREEN_ATTR_STRIKE | |
SCREEN_ATTR_BOLD | |
SCREEN_ATTR_ITALIC | |
SCREEN_ATTR_UNDERLINE | |
SCREEN_ATTR_STANDOUT | |
SCREEN_ATTR_FRAME |
void clear_terminal | ( | struct terminal * | term | ) |
Blanks the screen.
void draw_border | ( | struct terminal * | term, |
struct el_box * | box, | ||
struct color_pair * | color, | ||
int | width ) |
Draw borders.
void draw_border_char | ( | struct terminal * | term, |
int | x, | ||
int | y, | ||
border_char_T | border, | ||
struct color_pair * | color ) |
Sets the data to border and of a screen position.
void draw_border_cross | ( | struct terminal * | term, |
int | x, | ||
int | y, | ||
enum | border_cross_direction, | ||
struct color_pair * | color ) |
Sets the cross position of two borders.
void draw_box | ( | struct terminal * | term, |
struct el_box * | box, | ||
unicode_val_T | data, | ||
int | attr, | ||
struct color_pair * | color ) |
Draws area defined by box using the same colors and attributes.
void draw_char | ( | struct terminal * | term, |
int | x, | ||
int | y, | ||
unicode_val_T | data, | ||
int | attr, | ||
struct color_pair * | color ) |
Draws a char.
void draw_char_color | ( | struct terminal * | term, |
int | x, | ||
int | y, | ||
struct color_pair * | color ) |
Sets the color of a screen position.
void draw_char_data | ( | struct terminal * | term, |
int | x, | ||
int | y, | ||
unicode_val_T | data ) |
Sets the data of a screen position.
The data parameter here is like screen_char.data: UCS-4 if the charset of the terminal is UTF-8 (possible only if CONFIG_UTF8 is defined), and a byte otherwise.
void draw_dlg_text | ( | struct dialog_data * | dlg_data, |
int | x, | ||
int | y, | ||
const char * | text, | ||
int | length, | ||
int | attr, | ||
struct color_pair * | color ) |
Draws text for dialogs.
void draw_line | ( | struct terminal * | term, |
int | x, | ||
int | y, | ||
int | l, | ||
struct screen_char * | line ) |
Draws length chars from line on the screen.
Used by viewer to copy over a document. When doing frame drawing x can be different than 0.
void draw_shadow | ( | struct terminal * | term, |
struct el_box * | box, | ||
struct color_pair * | color, | ||
int | width, | ||
int | height ) |
Draws a shadow of width and height with color color around box.
void draw_space | ( | struct terminal * | term, |
int | x, | ||
int | y, | ||
struct screen_char * | color ) |
void draw_text | ( | struct terminal * | term, |
int | x, | ||
int | y, | ||
const char * | text, | ||
int | length, | ||
int | attr, | ||
struct color_pair * | color ) |
Draws length chars from text.
void fix_dwchar_around_box | ( | struct terminal * | term, |
struct el_box * | box, | ||
int | border, | ||
int | shadow_width, | ||
int | shadow_height ) |
Checks cells left and right to the box for broken double-width chars.
Replace it with UCS_ORPHAN_CELL.
* 1+---+3 * 1|box|##4 * 1| |##4 * 1| |##4 * 1+---+##4 * 2#####4 * 1,2,3,4 - needs to be checked, # - shadow , +,-,| - border *
struct screen_char * get_char | ( | struct terminal * | term, |
int | x, | ||
int | y ) |
Extracts a char from the screen.
void set_cursor | ( | struct terminal * | term, |
int | x, | ||
int | y, | ||
int | blockable ) |
Updates the terminals cursor position.
When blockable is set the block_cursor terminal option decides whether the cursor should be put at the bottom right corner of the screen.
void set_dlg_cursor | ( | struct terminal * | term, |
struct dialog_data * | dlg_data, | ||
int | x, | ||
int | y, | ||
int | blockable ) |