CLI  2.9
io_device.h File Reference

OutputDevice, IODevice and IOEndl classes defintion. More...

#include <stdint.h>
#include "cli/namespace.h"
#include "cli/object.h"
#include "cli/debug.h"
#include "cli/tk.h"
#include "cli/resource_string.h"

Go to the source code of this file.

Classes

class  IOEndl
 End of line for input/output devices. More...
 
class  OutputDevice
 Generic output device. More...
 
class  OutputDevice::ScreenInfo
 Screen information. More...
 
class  IODevice
 Generic input/output device. More...
 

Typedefs

typedef enum _KEY KEY
 Input keys. More...
 

Enumerations

enum  _KEY {
  NULL_KEY = '\0', BREAK = 3, LOGOUT = 4, ENTER = 10,
  ESCAPE = 27, SPACE = 32, BACKSPACE = 8, DELETE = 127,
  CLS = 501, INSERT = 502, TAB = '\t', KEY_0 = '0',
  KEY_1 = '1', KEY_2 = '2', KEY_3 = '3', KEY_4 = '4',
  KEY_5 = '5', KEY_6 = '6', KEY_7 = '7', KEY_8 = '8',
  KEY_9 = '9', KEY_a = 'a', KEY_aacute = 0xc3a1, KEY_agrave = 0xc3a0,
  KEY_auml = 0xc3a4, KEY_acirc = 0xc3a2, KEY_b = 'b', KEY_c = 'c',
  KEY_ccedil = 0xc3a7, KEY_d = 'd', KEY_e = 'e', KEY_eacute = 0xc3a9,
  KEY_egrave = 0xc3a8, KEY_euml = 0xc3ab, KEY_ecirc = 0xc3aa, KEY_f = 'f',
  KEY_g = 'g', KEY_h = 'h', KEY_i = 'i', KEY_iacute = 0xc3ad,
  KEY_igrave = 0xc3ac, KEY_iuml = 0xc3af, KEY_icirc = 0xc3ae, KEY_j = 'j',
  KEY_k = 'k', KEY_l = 'l', KEY_m = 'm', KEY_n = 'n',
  KEY_o = 'o', KEY_oacute = 0xc3b3, KEY_ograve = 0xc3b2, KEY_ouml = 0xc3b6,
  KEY_ocirc = 0xc3b4, KEY_p = 'p', KEY_q = 'q', KEY_r = 'r',
  KEY_s = 's', KEY_t = 't', KEY_u = 'u', KEY_uacute = 0xc3ba,
  KEY_ugrave = 0xc3b9, KEY_uuml = 0xc3bc, KEY_ucirc = 0xc3bb, KEY_v = 'v',
  KEY_w = 'w', KEY_x = 'x', KEY_y = 'y', KEY_z = 'z',
  KEY_A = 'A', KEY_B = 'B', KEY_C = 'C', KEY_D = 'D',
  KEY_E = 'E', KEY_F = 'F', KEY_G = 'G', KEY_H = 'H',
  KEY_I = 'I', KEY_J = 'J', KEY_K = 'K', KEY_L = 'L',
  KEY_M = 'M', KEY_N = 'N', KEY_O = 'O', KEY_P = 'P',
  KEY_Q = 'Q', KEY_R = 'R', KEY_S = 'S', KEY_T = 'T',
  KEY_U = 'U', KEY_V = 'V', KEY_W = 'W', KEY_X = 'X',
  KEY_Y = 'Y', KEY_Z = 'Z', PLUS = '+', MINUS = '-',
  STAR = '*', SLASH = '/', LOWER_THAN = '<', GREATER_THAN = '>',
  EQUAL = '=', PERCENT = '', UNDERSCORE = '_', AROBASE = '@',
  SHARP = '#', AMPERCENT = '&', DOLLAR = '$', BACKSLASH = '\\',
  PIPE = '|', TILDE = '~', SQUARE = 0xc2b2, EURO = 0xe282ac,
  POUND = 0xc2a3, MICRO = 0xc2b5, PARAGRAPH = 0xc2a7, DEGREE = 0xc2b0,
  COPYRIGHT = 0xc2a9, QUESTION = '?', EXCLAMATION = '!', COLUMN = ':',
  DOT = '.', COMA = ',', SEMI_COLUMN = ';', QUOTE = '\'',
  DOUBLE_QUOTE = '"', BACK_QUOTE = '`', OPENING_BRACE = '(', CLOSING_BRACE = ')',
  OPENING_CURLY_BRACE = '{', CLOSING_CURLY_BRACE = '}', OPENING_BRACKET = '[', CLOSING_BRACKET = ']',
  KEY_UP = 1001, KEY_DOWN = 1002, KEY_LEFT = 1003, KEY_RIGHT = 1004,
  PAGE_UP = 1005, PAGE_DOWN = 1006, PAGE_LEFT = 1007, PAGE_RIGHT = 1008,
  KEY_BEGIN = 1020, KEY_END = 1021, COPY = 2001, CUT = 2002,
  PASTE = 2003, UNDO = 2004, REDO = 2005, PREVIOUS = 2006,
  NEXT = 2007, F1 = 0x0f000001, F2 = 0x0f000002, F3 = 0x0f000003,
  F4 = 0x0f000004, F5 = 0x0f000005, F6 = 0x0f000006, F7 = 0x0f000007,
  F8 = 0x0f000008, F9 = 0x0f000009, F10 = 0x0f00000a, F11 = 0x0f00000b,
  F12 = 0x0f00000c, FEED_MORE = 0xffffffff
}
 Input keys. More...
 

Variables

const IOEndl endl
 The common IOEndl object. More...
 

Detailed Description

OutputDevice, IODevice and IOEndl classes defintion.

Author
Alexis Royer

Definition in file io_device.h.

Typedef Documentation

◆ KEY

typedef enum _KEY KEY

Input keys.

Returns
N/A (doxygen warning)

Enumeration Type Documentation

◆ _KEY

enum _KEY

Input keys.

Returns
N/A (doxygen warning)
Enumerator
NULL_KEY 

Null key.

BREAK 

Break (Ctrl+C).

LOGOUT 

Logout (Ctrl+D).

ENTER 

Enter.

ESCAPE 

Escape.

SPACE 

Space.

BACKSPACE 

Backspace (changed from '\b' to 8 in version 2.7 for ASCII compliance).

DELETE 

Delete key (changed from 128 to 127 in version 2.7 for ASCII compliance).

CLS 

Clean screen key (changed from 129 to 501 in order to avoid overlap with printable ASCII characters).

INSERT 

Insert key (changed from 500 to 502 in order to avoid overlap with printable ASCII characters).

TAB 

Tab key.

KEY_aacute 

Based on utf-8 encoding for 'á' (changed in version 2.9)

KEY_agrave 

Based on utf-8 encoding for 'à' (changed in version 2.9)

KEY_auml 

Based on utf-8 encoding for 'ä' (changed in version 2.9)

KEY_acirc 

Based on utf-8 encoding for 'â' (changed in version 2.9)

KEY_ccedil 

Based on utf-8 encoding for 'ç' (changed in version 2.9)

KEY_eacute 

Based on utf-8 encoding for 'é' (changed in version 2.9)

KEY_egrave 

Based on utf-8 encoding for 'è' (changed in version 2.9)

KEY_euml 

Based on utf-8 encoding for 'ü' (changed in version 2.9)

KEY_ecirc 

Based on utf-8 encoding for 'û' (changed in version 2.9)

KEY_iacute 

Based on utf-8 encoding for 'í' (changed in version 2.9)

KEY_igrave 

Based on utf-8 encoding for 'ì' (changed in version 2.9)

KEY_iuml 

Based on utf-8 encoding for 'ï' (changed in version 2.9)

KEY_icirc 

Based on utf-8 encoding for 'î' (changed in version 2.9)

KEY_oacute 

Based on utf-8 encoding for 'ó' (changed in version 2.9)

KEY_ograve 

Based on utf-8 encoding for 'ò' (changed in version 2.9)

KEY_ouml 

Based on utf-8 encoding for 'ö' (changed in version 2.9)

KEY_ocirc 

Based on utf-8 encoding for 'ô' (changed in version 2.9)

KEY_uacute 

Based on utf-8 encoding for 'ú' (changed in version 2.9)

KEY_ugrave 

Based on utf-8 encoding for 'ù' (changed in version 2.9)

KEY_uuml 

Based on utf-8 encoding for 'ü' (changed in version 2.9)

KEY_ucirc 

Based on utf-8 encoding for 'û' (changed in version 2.9)

SQUARE 

Based on utf-8 encoding for '²' (changed in version 2.9)

EURO 

Based on utf-8 encoding for '€' (changed in version 2.9)

POUND 

Based on utf-8 encoding for '£' (changed in version 2.9)

MICRO 

Based on utf-8 encoding for 'µ' (changed in version 2.9)

PARAGRAPH 

Based on utf-8 encoding for '§' (changed in version 2.9)

DEGREE 

Based on utf-8 encoding for '°' (changed in version 2.9)

COPYRIGHT 

Based on utf-8 encoding for '©' (changed in version 2.9)

KEY_UP 

Up arrow key.

KEY_DOWN 

Down arrow key.

KEY_LEFT 

Left arrow key.

KEY_RIGHT 

Right arrow key.

PAGE_UP 

Page up arrow key.

PAGE_DOWN 

Page down arrow key.

PAGE_LEFT 

Page left arrow key.

PAGE_RIGHT 

Page right arrow key.

KEY_BEGIN 

Begin key.

KEY_END 

End key.

COPY 

Copy.

CUT 

Cut.

PASTE 

Paste.

UNDO 

Undo.

REDO 

Redo.

PREVIOUS 

Previous key.

NEXT 

Forward key.

FEED_MORE 

Return code while analyzing input characters, till the encoding sequence is not fulfilled.

Definition at line 49 of file io_device.h.

Variable Documentation

◆ endl

const IOEndl endl

The common IOEndl object.

Returns
Common IOEndl object.

endl can be passed to OutputDevice to print carriage returns.

Referenced by UI::OnStopExecution(), and Text::PrintPage().