ELinks 0.18.0
draw.h File Reference
#include "intl/charsets.h"
Include dependency graph for draw.h:
This graph shows which files directly or indirectly include this file:

Data Structures

struct  screen_char
 One position in the terminal screen's image. More...

Macros

#define SCREEN_COLOR_SIZE   1
 How many bytes we need for the colors of one character cell.
#define BD_LIGHT(XXX)
#define BD_DOUBLE(XXX)
#define BD_MIXED(XXX)
Linux frame symbols table.

It is magically converted to other terminals when needed.

In the screen image, they have attribute SCREEN_ATTR_FRAME; you should drop them to the image using draw_border_char().

Todo
TODO: When we'll support internal Unicode, this should be changed to some Unicode sequences. –pasky

Codes extracted from twin-0.4.6 GPL project, a Textmode WINdow environment, by Massimiliano Ghilardi http://linuz.sns.it/~max/

#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL   0x00B3
#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT   0x00B4
#define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE   0x00B5
#define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE   0x00B6
#define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE   0x00B7
#define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE   0x00B8
#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT   0x00B9
#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL   0x00BA
#define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT   0x00BB
#define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT   0x00BC
#define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE   0x00BD
#define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE   0x00BE
#define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT   0x00BF
#define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT   0x00C0
#define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL   0x00C1
#define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL   0x00C2
#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT   0x00C3
#define T_CP437_BOX_DRAWINGS_LIGHT_HORIZONTAL   0x00C4
#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL   0x00C5
#define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE   0x00C6
#define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE   0x00C7
#define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT   0x00C8
#define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT   0x00C9
#define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL   0x00CA
#define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL   0x00CB
#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT   0x00CC
#define T_CP437_BOX_DRAWINGS_DOUBLE_HORIZONTAL   0x00CD
#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL   0x00CE
#define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE   0x00CF
#define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE   0x00D0
#define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE   0x00D1
#define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE   0x00D2
#define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE   0x00D3
#define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE   0x00D4
#define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE   0x00D5
#define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE   0x00D6
#define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE   0x00D7
#define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE   0x00D8
#define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_LEFT   0x00D9
#define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT   0x00DA

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

Macro Definition Documentation

◆ BD_DOUBLE

#define BD_DOUBLE ( XXX)
Value:
T_CP437_BOX_DRAWINGS_DOUBLE_##XXX

◆ BD_LIGHT

#define BD_LIGHT ( XXX)
Value:
T_CP437_BOX_DRAWINGS_LIGHT_##XXX

◆ BD_MIXED

#define BD_MIXED ( XXX)
Value:
T_CP437_BOX_DRAWINGS_##XXX

◆ SCREEN_COLOR_SIZE

#define SCREEN_COLOR_SIZE   1

How many bytes we need for the colors of one character cell.

◆ T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL

#define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL   0x00CB

◆ T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT

#define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT   0x00BB

◆ T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT

#define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT   0x00C9

◆ T_CP437_BOX_DRAWINGS_DOUBLE_HORIZONTAL

#define T_CP437_BOX_DRAWINGS_DOUBLE_HORIZONTAL   0x00CD

◆ T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL

#define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL   0x00CA

◆ T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT

#define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT   0x00BC

◆ T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT

#define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT   0x00C8

◆ T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL

#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL   0x00BA

◆ T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL

#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL   0x00CE

◆ T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT

#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT   0x00B9

◆ T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT

#define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT   0x00CC

◆ T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE

#define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE   0x00D2

◆ T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE

#define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE   0x00B7

◆ T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE

#define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE   0x00D6

◆ T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE

#define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE   0x00D1

◆ T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE

#define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE   0x00B8

◆ T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE

#define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE   0x00D5

◆ T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL

#define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL   0x00C2

◆ T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT

#define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT   0x00BF

◆ T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT

#define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT   0x00DA

◆ T_CP437_BOX_DRAWINGS_LIGHT_HORIZONTAL

#define T_CP437_BOX_DRAWINGS_LIGHT_HORIZONTAL   0x00C4

◆ T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL

#define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL   0x00C1

◆ T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_LEFT

#define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_LEFT   0x00D9

◆ T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT

#define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT   0x00C0

◆ T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL

#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL   0x00B3

◆ T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL

#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL   0x00C5

◆ T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT

#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT   0x00B4

◆ T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT

#define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT   0x00C3

◆ T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE

#define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE   0x00D0

◆ T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE

#define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE   0x00BD

◆ T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE

#define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE   0x00D3

◆ T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE

#define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE   0x00CF

◆ T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE

#define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE   0x00BE

◆ T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE

#define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE   0x00D4

◆ T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE

#define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE   0x00D7

◆ T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE

#define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE   0x00B6

◆ T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE

#define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE   0x00C7

◆ T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE

#define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE   0x00D8

◆ T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE

#define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE   0x00B5

◆ T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE

#define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE   0x00C6

Typedef Documentation

◆ border_char_T

typedef int border_char_T

◆ screen_char_attr_T

typedef unsigned short screen_char_attr_T

Enumeration Type Documentation

◆ border_char

Enumerator
BORDER_NONE 
BORDER_SULCORNER 
BORDER_SURCORNER 
BORDER_SDLCORNER 
BORDER_SDRCORNER 
BORDER_SLTEE 
BORDER_SRTEE 
BORDER_SDTEE 
BORDER_SUTEE 
BORDER_SVLINE 
BORDER_SHLINE 
BORDER_SCROSS 
BORDER_DULCORNER 
BORDER_DURCORNER 
BORDER_DDLCORNER 
BORDER_DDRCORNER 
BORDER_DLTEE 
BORDER_DRTEE 
BORDER_DDTEE 
BORDER_DUTEE 
BORDER_DVLINE 
BORDER_DHLINE 
BORDER_DCROSS 
BORDER_SDULCORNER 
BORDER_SDURCORNER 
BORDER_SDDLCORNER 
BORDER_SDDRCORNER 
BORDER_SDLTEE 
BORDER_SDRTEE 
BORDER_SDDTEE 
BORDER_SDUTEE 
BORDER_SDCROSS 
BORDER_DSULCORNER 
BORDER_DSURCORNER 
BORDER_DSDLCORNER 
BORDER_DSDRCORNER 
BORDER_DSLTEE 
BORDER_DSRTEE 
BORDER_DSDTEE 
BORDER_DSUTEE 
BORDER_DSCROSS 

◆ border_cross_direction

Enumerator
BORDER_X_RIGHT 
BORDER_X_LEFT 
BORDER_X_DOWN 
BORDER_X_UP 

◆ 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 

Function Documentation

◆ clear_terminal()

void clear_terminal ( struct terminal * term)

Blanks the screen.

◆ draw_border()

void draw_border ( struct terminal * term,
struct el_box * box,
struct color_pair * color,
int width )

Draw borders.

◆ draw_border_char()

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.

◆ draw_border_cross()

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.

◆ draw_box()

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.

◆ draw_char()

void draw_char ( struct terminal * term,
int x,
int y,
unicode_val_T data,
int attr,
struct color_pair * color )

Draws a char.

◆ draw_char_color()

void draw_char_color ( struct terminal * term,
int x,
int y,
struct color_pair * color )

Sets the color of a screen position.

◆ draw_char_data()

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.

◆ draw_dlg_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.

◆ draw_line()

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.

◆ draw_shadow()

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.

◆ draw_space()

void draw_space ( struct terminal * term,
int x,
int y,
struct screen_char * color )

◆ draw_text()

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.

◆ fix_dwchar_around_box()

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
* 

◆ get_char()

struct screen_char * get_char ( struct terminal * term,
int x,
int y )

Extracts a char from the screen.

◆ set_cursor()

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.

◆ set_dlg_cursor()

void set_dlg_cursor ( struct terminal * term,
struct dialog_data * dlg_data,
int x,
int y,
int blockable )