finalcut/include/final/fc.h

1130 lines
48 KiB
C
Raw Normal View History

/************************************************************************
* fc.h - Implements global constants and enumerations *
* *
* This file is part of the Final Cut widget toolkit *
* *
* Copyright 2015-2017 Markus Gans *
* *
* The Final Cut is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 3 of the License, or *
* (at your option) any later version. *
* *
* The Final Cut is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
************************************************************************/
/* Standalone class
*
*
*
* fc
*
*/
2015-05-23 13:35:12 +02:00
#ifndef FC_H
#define FC_H
2015-05-23 13:35:12 +02:00
#include "final/fstring.h"
// ascii sequences
#define ESC "\033" // Escape
#define CSI ESC "[" // Control sequence introducer (7-bit)
#define ENQ "\005" // Enquiry
#define BEL "\007" // Bell (ctrlg)
#define BS "\010" // Backspace
#define SO "\016" // Shift out (alternative character set)
#define SI "\017" // Shift in (regular character set)
#define OSC ESC "]" // Operating system command (7-bit)
#define SECDA ESC "[>c" // Secondary Device Attributes
2015-05-23 13:35:12 +02:00
//----------------------------------------------------------------------
// class fc
//----------------------------------------------------------------------
#pragma pack(push)
#pragma pack(1)
class fc
{
2017-09-11 03:06:02 +02:00
public:
// Event types
enum events
{
None_Event, // invalid event
KeyPress_Event, // key pressed
KeyUp_Event, // key released
KeyDown_Event, // key pressed
MouseDown_Event, // mouse button pressed
MouseUp_Event, // mouse button released
MouseDoubleClick_Event, // mouse button double click
MouseWheel_Event, // mouse wheel rolled
MouseMove_Event, // mouse move
FocusIn_Event, // focus in
FocusOut_Event, // focus out
ChildFocusIn_Event, // child focus in
ChildFocusOut_Event, // child focus out
WindowActive_Event, // activate window
WindowInactive_Event, // deactivate window
WindowRaised_Event, // raise window
WindowLowered_Event, // lower window
Accelerator_Event, // keyboard accelerator
Resize_Event, // terminal resize
Show_Event, // widget is shown
Hide_Event, // widget is hidden
Close_Event, // widget close
Timer_Event // timer event occur
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
// Properties of a widget
enum widget_flags
{
shadow = 0x00000001,
trans_shadow = 0x00000002,
active = 0x00000004,
focus = 0x00000008,
scrollable = 0x00000010,
resizeable = 0x00000020,
modal = 0x00000040,
window_widget = 0x00000080,
dialog_widget = 0x00000100,
menu_widget = 0x00000200,
always_on_top = 0x00000400,
flat = 0x00000800,
no_underline = 0x00001000
};
2016-01-24 14:53:09 +01:00
2017-09-11 03:06:02 +02:00
// Internal character encoding
enum encoding
{
UTF8,
VT100,
PC,
ASCII,
NUM_OF_ENCODINGS // number of items
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
// VT100 line graphic keys
enum vt100_keys
{
vt100_key_rarrow = '+', // ► - arrow pointing right
vt100_key_larrow = ',', // ◄ - arrow pointing left
vt100_key_uarrow = '-', // ▲ - arrow pointing up
vt100_key_darrow = '.', // ▼ - arrow pointing down
vt100_key_block = '0', // █ - solid square block
vt100_key_nsup = 'I', // ⁿ - superscript letter n
vt100_key_blackrect = '_', // ▮ - black vertical rectangle
vt100_key_diamond = '`', // ◆ - diamond
vt100_key_ckboard = 'a', // ▒ - checker board (stipple)
vt100_key_htab = 'b', // ␉ - horizontal tab symbol
vt100_key_ff = 'c', // ␌ - form feed symbol
vt100_key_cr = 'd', // ␍ - carriage return symbol
vt100_key_lf = 'e', // ␊ - line feed symbol
vt100_key_degree = 'f', // ° - degree symbol
vt100_key_plminus = 'g', // ± - plus/minus
vt100_key_board = 'h', // ␤ - board of squares
vt100_key_lantern = 'i', // ␋ - lantern symbol
vt100_key_lrcorner = 'j', // ┘ - lower right corner
vt100_key_urcorner = 'k', // ┐ - upper right corner
vt100_key_ulcorner = 'l', // ┌ - upper left corner
vt100_key_llcorner = 'm', // └ - lower left corner
vt100_key_plus = 'n', // ┼ - large plus or crossover
vt100_key_s1 = 'o', // ⎺ - scan line 1
vt100_key_s3 = 'p', // ⎻ - scan line 3
vt100_key_hline = 'q', // ─ - horizontal line
vt100_key_s7 = 'r', // ⎼ - scan line 7
vt100_key_s9 = 's', // ⎽ - scan line 9
vt100_key_ltee = 't', // ├ - tee pointing right
vt100_key_rtee = 'u', // ┤ - tee pointing left
vt100_key_btee = 'v', // ┴ - tee pointing up
vt100_key_ttee = 'w', // ┬ - tee pointing down
vt100_key_vline = 'x', // │ - vertical line
vt100_key_lequal = 'y', // ≤ - less-than-or-equal-to
vt100_key_gequal = 'z', // ≥ - greater-than-or-equal-to
vt100_key_pi = '{', // π - greek pi
vt100_key_nequal = '|', // ≠ - not-equal
vt100_key_sterling = '}', // £ - UK pound sign
vt100_key_bullet = '~' // · - bullet
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
// Unicode characters
enum SpecialCharacter
{
Euro = 0x20ac, // €
Pound = 0x00a3, // £
Pi = 0x03c0, // π
SuperscriptLatinSmallLetterN = 0x207F, // ⁿ
GreaterThanOrEqualTo = 0x2265, // ≥
LessThanOrEqualTo = 0x2264, // ≤
NotEqualTo = 0x2260, // ≠
PlusMinus = 0x00b1, // ±
Times = 0x00d7, // ×
Degree = 0x00b0, // °
BlackVerticalRectangle = 0x25ae, // ▮ (1)
2017-09-11 03:06:02 +02:00
SmallBullet = 0x00b7, // ·
BlackDiamondSuit = 0x2666, // ◆
SymbolForNewline = 0x2424, // ␤ (1)
SymbolForVerticalTab = 0x240b, // ␋ (1)
SymbolForHorizontalTab = 0x2409, // ␉ (1)
SymbolForFormFeed = 0x240c, // ␌ (1)
SymbolForCarriageReturn = 0x240d, // ␍ (1)
SymbolForLineFeed = 0x240a, // ␊ (1)
2017-09-11 03:06:02 +02:00
MediumShade = 0x2592, // ▒
BoxDrawingsHorizontal = 0x2500, // ─
BoxDrawingsVertical = 0x2502, // │
BoxDrawingsDownAndRight = 0x250c, // ┌
BoxDrawingsDownAndLeft = 0x2510, // ┐
BoxDrawingsUpAndRight = 0x2514, // └
BoxDrawingsUpAndLeft = 0x2518, // ┘
BoxDrawingsCross = 0x253c, // ┼
BoxDrawingsDownAndHorizontal = 0x252c, // ┬
BoxDrawingsVerticalAndLeft = 0x2524, // ┤
BoxDrawingsVerticalAndRight = 0x251c, // ├
BoxDrawingsUpAndHorizontal = 0x2534, // ┴
HorizontalScanLine1 = 0x23ba, // ⎺ (1)
HorizontalScanLine3 = 0x23bb, // ⎻ (1)
HorizontalScanLine7 = 0x23bc, // ⎼ (1)
HorizontalScanLine9 = 0x23bd, // ⎽ (1)
2017-09-11 03:06:02 +02:00
BlackUpPointingTriangle = 0x25b2, // ▲
BlackDownPointingTriangle = 0x25bc, // ▼
BlackRightPointingTriangle = 0x25b6, // ▶ (1)
BlackLeftPointingTriangle = 0x25c0, // ◀ (1)
2017-09-11 03:06:02 +02:00
BlackRightPointingPointer = 0x25ba, // ►
BlackLeftPointingPointer = 0x25c4, // ◄
Bullet = 0x2022, // •
FullBlock = 0x2588, // █
UpperHalfBlock = 0x2580, // ▀
LowerHalfBlock = 0x2584, // ▄
LeftHalfBlock = 0x258c, // ▌
RightHalfBlock = 0x2590, // ▐
NF_rev_left_arrow2 = 0x1ab4, // ⊐ (2)
NF_rev_right_arrow2 = 0x1ab5, // ► (2)
NF_radio_button3 = 0x1ab7, // ) (2)
NF_rev_border_corner_upper_right = 0x1ab8, // ⎤ (2)
NF_rev_border_line_right = 0x1ab9, // ⎹ (2)
NF_rev_border_line_vertical_left = 0x1aba, // ┤ (2)
NF_rev_border_corner_lower_right = 0x1abb, // ⎦ (2)
NF_border_line_left = 0x1abc, // ⎸ (2)
NF_rev_up_arrow2 = 0x1abd, //⎹◣ (2)
NF_rev_down_arrow2 = 0x1abe, //⎹◤ (2)
NF_border_corner_middle_lower_left = 0x1ac0, // └ (2)
NF_rev_up_arrow1 = 0x1ac1, // ◢⎸ (2)
NF_rev_down_arrow1 = 0x1ac2, // ◥⎸ (2)
NF_border_line_vertical_right = 0x1ac3, // ├ (2)
NF_border_line_up_and_down = 0x1ac5, // ニ (2)
NF_shadow_box_middle = 0x1ac6, // ニ (2)
NF_shadow_box_hdd = 0x1ac7, // ニ (2)
NF_rev_left_arrow1 = 0x1ac8, // ◄ (2)
NF_rev_right_arrow1 = 0x1ac9, // ⊏ (2)
NF_rev_menu_button1 = 0x1aca, // [ (2)
NF_rev_menu_button2 = 0x1acb, // - (2)
NF_border_corner_middle_upper_left = 0x1acc, // ┌ (2)
NF_shadow_box_cd = 0x1acd, // ニ (2)
NF_shadow_box_left = 0x1ace, // [ (2)
NF_border_corner_middle_lower_right = 0x1acf, // ┘ (2)
NF_border_corner_middle_upper_right = 0x1ad0, // ┐ (2)
NF_shadow_box_net = 0x1ad1, // ニ (2)
NF_rev_up_pointing_triangle1 = 0x1ad2, // ◢ (2)
NF_border_corner_lower_left = 0x1ad3, // ⎣ (2)
NF_border_line_bottom = 0x1ad4, // _ (2)
NF_radio_button2 = 0x1ad5, // ⁐ (2)
NF_radio_button2_checked = 0x1ad6, // ● (2)
NF_rev_down_pointing_triangle1 = 0x1ad7, // ◥ (2)
NF_border_line_upper = 0x1ad8, // ¯ (2)
NF_radio_button1 = 0x1ad9, // ( (2)
NF_border_corner_upper_left = 0x1ada, // ⎡ (2)
NF_shadow_box_checked = 0x1adc, // ✓ (2)
NF_rev_border_line_right_and_left = 0x1ae7, // || (2)
NF_rev_up_pointing_triangle2 = 0x1ae8, // ◣ (2)
NF_rev_down_pointing_triangle2 = 0x1ae9, // ◤ (2)
NF_rev_menu_button3 = 0x1af4, // ] (2)
NF_shadow_box_right = 0x1af5, // ] (2)
NF_Bullet = 0x1af9, // ● (2)
NF_check_mark = 0x1afb, // ✓ (2)
2017-09-11 03:06:02 +02:00
SquareRoot = 0x221a // √
};
/*
* (1) Not defined in Windows Glyph List 4 (WGL4)
* (2) Only supported in use with newfont
*/
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
// keyboard - single keys
enum keys
{
Fckey_a = 0x0000001, // control-a
Fckey_b = 0x0000002, // control-b
Fckey_c = 0x0000003, // control-c
Fckey_d = 0x0000004, // control-d
Fckey_e = 0x0000005, // control-e
Fckey_f = 0x0000006, // control-f
Fckey_g = 0x0000007, // control-g
Fkey_erase = 0x0000008, // control-h
Fkey_tab = 0x0000009, // control-i
Fckey_j = 0x000000a, // control-j
Fckey_h = 0x000000b, // control-k
Fckey_l = 0x000000c, // control-l
Fkey_return = 0x000000d, // control-m
Fckey_n = 0x000000e, // control-n
Fckey_o = 0x000000f, // control-o
Fckey_p = 0x0000010, // control-p
Fckey_q = 0x0000011, // control-q
Fckey_r = 0x0000012, // control-r
Fckey_s = 0x0000013, // control-s
Fckey_t = 0x0000014, // control-t
Fckey_u = 0x0000015, // control-u
Fckey_v = 0x0000016, // control-v
Fckey_w = 0x0000017, // control-w
Fckey_x = 0x0000018, // control-x
Fckey_y = 0x0000019, // control-y
Fckey_z = 0x000001a, // control-t
Fkey_escape = 0x000001b, // control-[
Fckey_backslash = 0x000001c, // control-'\'
Fckey_right_square_bracket = 0x000001d, // control-]
Fckey_caret = 0x000001e, // control-^
Fckey_underscore = 0x000001f, // control-_
Fkey_space = 0x0000020,
Fckey_space = 0x1000020, // control-space
Fkey_backspace = 0x1000100,
Fkey_catab = 0x1000101,
Fkey_clear = 0x1000102,
Fkey_ctab = 0x1000103,
Fkey_dc = 0x1000104,
Fkey_dl = 0x1000105,
Fkey_down = 0x1000106,
Fkey_eic = 0x1000107,
Fkey_eol = 0x1000108,
Fkey_eos = 0x1000109,
Fkey_f0 = 0x100010a,
Fkey_f1 = 0x100010b,
Fkey_f2 = 0x100010c,
Fkey_f3 = 0x100010d,
Fkey_f4 = 0x100010e,
Fkey_f5 = 0x100010f,
Fkey_f6 = 0x1000110,
Fkey_f7 = 0x1000111,
Fkey_f8 = 0x1000112,
Fkey_f9 = 0x1000113,
Fkey_f10 = 0x1000114,
Fkey_home = 0x1000115,
Fkey_ic = 0x1000116, // insert key
Fkey_il = 0x1000117,
Fkey_left = 0x1000118,
Fkey_ll = 0x1000119,
Fkey_npage = 0x100011a,
Fkey_ppage = 0x100011b,
Fkey_right = 0x100011c,
Fkey_sf = 0x100011d,
Fkey_sr = 0x100011e,
Fkey_stab = 0x100011f,
Fkey_up = 0x1000120,
Fkey_a1 = 0x1000121,
Fkey_a3 = 0x1000122,
Fkey_b2 = 0x1000123,
Fkey_c1 = 0x1000124,
Fkey_c3 = 0x1000125,
Fkey_btab = 0x1000126,
Fkey_beg = 0x1000127,
Fkey_cancel = 0x1000128,
Fkey_close = 0x1000129,
Fkey_command = 0x100012a,
Fkey_copy = 0x100012b,
Fkey_create = 0x100012c,
Fkey_end = 0x100012d,
Fkey_enter = 0x100012e,
Fkey_exit = 0x100012f,
Fkey_find = 0x1000130,
Fkey_help = 0x1000131,
Fkey_mark = 0x1000132,
Fkey_message = 0x1000133,
Fkey_move = 0x1000134,
Fkey_next = 0x1000135,
Fkey_open = 0x1000136,
Fkey_options = 0x1000137,
Fkey_previous = 0x1000138,
Fkey_print = 0x1000139,
Fkey_redo = 0x100013a,
Fkey_reference = 0x100013b,
Fkey_refresh = 0x100013c,
Fkey_replace = 0x100013d,
Fkey_restart = 0x100013e,
Fkey_resume = 0x100013f,
Fkey_save = 0x1000140,
Fkey_suspend = 0x1000141,
Fkey_undo = 0x1000142,
Fkey_sbeg = 0x1000143,
Fkey_scancel = 0x1000144,
Fkey_scommand = 0x1000145,
Fkey_scopy = 0x1000146,
Fkey_screate = 0x1000147,
Fkey_sdc = 0x1000148,
Fkey_sdl = 0x1000149,
Fkey_select = 0x100014a,
Fkey_send = 0x100014b,
Fkey_seol = 0x100014c,
Fkey_sexit = 0x100014d,
Fkey_sfind = 0x100014e,
Fkey_shelp = 0x100014f,
Fkey_shome = 0x1000150,
Fkey_sic = 0x1000151,
Fkey_sleft = 0x1000152,
Fkey_smessage = 0x1000153,
Fkey_smove = 0x1000154,
Fkey_snext = 0x1000155,
Fkey_soptions = 0x1000156,
Fkey_sprevious = 0x1000157,
Fkey_sprint = 0x1000158,
Fkey_sredo = 0x1000159,
Fkey_sreplace = 0x100015a,
Fkey_sright = 0x100015b,
Fkey_srsume = 0x100015c,
Fkey_ssave = 0x100015d,
Fkey_ssuspend = 0x100015e,
Fkey_sundo = 0x100015f,
Fkey_f11 = 0x1000160,
Fkey_f12 = 0x1000161,
Fkey_f13 = 0x1000162,
Fkey_f14 = 0x1000163,
Fkey_f15 = 0x1000164,
Fkey_f16 = 0x1000165,
Fkey_f17 = 0x1000166,
Fkey_f18 = 0x1000167,
Fkey_f19 = 0x1000168,
Fkey_f20 = 0x1000169,
Fkey_f21 = 0x100016a,
Fkey_f22 = 0x100016b,
Fkey_f23 = 0x100016c,
Fkey_f24 = 0x100016d,
Fkey_f25 = 0x100016e,
Fkey_f26 = 0x100016f,
Fkey_f27 = 0x1000170,
Fkey_f28 = 0x1000171,
Fkey_f29 = 0x1000172,
Fkey_f30 = 0x1000173,
Fkey_f31 = 0x1000174,
Fkey_f32 = 0x1000175,
Fkey_f33 = 0x1000176,
Fkey_f34 = 0x1000177,
Fkey_f35 = 0x1000178,
Fkey_f36 = 0x1000179,
Fkey_f37 = 0x100017a,
Fkey_f38 = 0x100017b,
Fkey_f39 = 0x100017c,
Fkey_f40 = 0x100017d,
Fkey_f41 = 0x100017e,
Fkey_f42 = 0x100017f,
Fkey_f43 = 0x1000180,
Fkey_f44 = 0x1000181,
Fkey_f45 = 0x1000182,
Fkey_f46 = 0x1000183,
Fkey_f47 = 0x1000184,
Fkey_f48 = 0x1000185,
Fkey_f49 = 0x1000186,
Fkey_f50 = 0x1000187,
Fkey_f51 = 0x1000188,
Fkey_f52 = 0x1000189,
Fkey_f53 = 0x100018a,
Fkey_f54 = 0x100018b,
Fkey_f55 = 0x100018c,
Fkey_f56 = 0x100018d,
Fkey_f57 = 0x100018e,
Fkey_f58 = 0x100018f,
Fkey_f59 = 0x1000190,
Fkey_f60 = 0x1000191,
Fkey_f61 = 0x1000192,
Fkey_f62 = 0x1000193,
Fkey_f63 = 0x1000194
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
// Keyboard - modifier key combinations
enum metakeys
{
Fmkey_ic = 0x1500100, // M-insert
Fmkey_dc = 0x1500101, // M-delete
Fmkey_home = 0x1500102, // M-home
Fmkey_end = 0x1500103, // M-end
Fmkey_ppage = 0x1500104, // M-prev-page
Fmkey_npage = 0x1500105, // M-next-page
Fmkey_f1 = 0x1500106, // M-f1
Fmkey_f2 = 0x1500107, // M-f2
Fmkey_f3 = 0x1500108, // M-f3
Fmkey_f4 = 0x1500109, // M-f4
Fmkey_f5 = 0x150010a, // M-f5
Fmkey_f6 = 0x150010b, // M-F6
Fmkey_f7 = 0x150010c, // M-f7
Fmkey_f8 = 0x150010d, // M-f8
Fmkey_f9 = 0x150010e, // M-f9
Fmkey_f10 = 0x150010f, // M-f10
Fmkey_f11 = 0x1500110, // M-f11
Fmkey_f12 = 0x1500111, // M-f12
Fmkey_up = 0x1500112, // M-up
Fmkey_down = 0x1500113, // M-down
Fmkey_right = 0x1500114, // M-right
Fmkey_left = 0x1500115, // M-left
Fmkey_sic = 0x1500116, // shifted M-Insert
Fmkey_sdc = 0x1500117, // shifted M-Delete
Fmkey_shome = 0x1500118, // shifted M-Home
Fmkey_send = 0x1500119, // shifted M-End
Fmkey_sppage = 0x150011a, // shifted M-Page_Up
Fmkey_snpage = 0x150011b, // shifted M-Page_Down
Fmkey_sf1 = 0x150011c, // shifted M-F1
Fmkey_sf2 = 0x150011d, // shifted M-F2
Fmkey_sf3 = 0x150011e, // shifted M-F3
Fmkey_sf4 = 0x150011f, // shifted M-F4
Fmkey_sf5 = 0x1500120, // shifted M-F5
Fmkey_sf6 = 0x1500121, // shifted M-F6
Fmkey_sf7 = 0x1500122, // shifted M-F7
Fmkey_sf8 = 0x1500123, // shifted M-F8
Fmkey_sf9 = 0x1500124, // shifted M-F9
Fmkey_sf10 = 0x1500125, // shifted M-F10
Fmkey_sf11 = 0x1500126, // shifted M-F11
Fmkey_sf12 = 0x1500127, // shifted M-F12
Fmkey_sup = 0x1500128, // shifted M-Up
Fmkey_sdown = 0x1500129, // shifted M-Down
Fmkey_sright = 0x150012a, // shifted M-Right
Fmkey_sleft = 0x150012b, // shifted M-Left
Fckey_ic = 0x150012c, // control-Insert
Fckey_dc = 0x150012d, // control-Delete
Fckey_home = 0x150012e, // control-Home
Fckey_end = 0x150012f, // control-End
Fckey_ppage = 0x1500130, // control-Page_Up
Fckey_npage = 0x1500131, // control-Page_Down
Fckey_up = 0x1500132, // control-Up
Fckey_down = 0x1500133, // control-Down
Fckey_right = 0x1500134, // control-Right
Fckey_left = 0x1500135, // control-Left
Fckey_sic = 0x1500136, // shifted control-M-Insert
Fckey_sdc = 0x1500137, // shifted control-M-Delete
Fckey_shome = 0x1500138, // shifted control-M-Home
Fckey_send = 0x1500139, // shifted control-M-End
Fckey_sppage = 0x150013a, // shifted control-M-Page_Up
Fckey_snpage = 0x150013b, // shifted control-M-Page_Down
Fckey_sup = 0x150013c, // shifted control-M-Up
Fckey_sdown = 0x150013d, // shifted control-M-Down
Fckey_sright = 0x150013e, // shifted control-M-Right
Fckey_sleft = 0x150013f, // shifted control-M-Left
Fcmkey_ic = 0x1500140, // control-M-Insert
Fcmkey_dc = 0x1500141, // control-M-Delete
Fcmkey_home = 0x1500142, // control-M-Home
Fcmkey_end = 0x1500143, // control-M-End
Fcmkey_ppage = 0x1500144, // control-M-Page_Up
Fcmkey_npage = 0x1500145, // control-M-Page_Down
Fcmkey_up = 0x1500146, // control-M-Up
Fcmkey_down = 0x1500147, // control-M-Down
Fcmkey_right = 0x1500148, // control-M-Right
Fcmkey_left = 0x1500149, // control-M-Left
Fcmkey_sic = 0x150014a, // shifted control-M-Insert
Fcmkey_sdc = 0x150014b, // shifted control-M-Delete
Fcmkey_shome = 0x150014c, // shifted control-M-Home
Fcmkey_send = 0x150014d, // shifted control-M-End
Fcmkey_sppage = 0x150014e, // shifted control-M-Page_Up
Fcmkey_snpage = 0x150014f, // shifted control-M-Page_Down
Fcmkey_sf1 = 0x1500150, // shifted control-M-F1
Fcmkey_sf2 = 0x1500151, // shifted control-M-F2
Fcmkey_sf3 = 0x1500152, // shifted control-M-F3
Fcmkey_sf4 = 0x1500153, // shifted control-M-F4
Fcmkey_sf5 = 0x1500154, // shifted control-M-F5
Fcmkey_sf6 = 0x1500155, // shifted control-M-F6
Fcmkey_sf7 = 0x1500156, // shifted control-M-F7
Fcmkey_sf8 = 0x1500157, // shifted control-M-F8
Fcmkey_sf9 = 0x1500158, // shifted control-M-F9
Fcmkey_sf10 = 0x1500159, // shifted control-M-F10
Fcmkey_sf11 = 0x150015a, // shifted control-M-F11
Fcmkey_sf12 = 0x150015b, // shifted control-M-F12
Fcmkey_sup = 0x150015c, // shifted control-M-Up
Fcmkey_sdown = 0x150015d, // shifted control-M-Down
Fcmkey_sright = 0x150015e, // shifted control-M-Right
Fcmkey_sleft = 0x150015f, // shifted control-M-Left
Fkey_menu = 0x1600000, // menu
Fkey_smenu = 0x1600001, // shifted menu
Fckey_menu = 0x1600002, // control-menu
Fckey_smenu = 0x1600003, // shifted control-menu
Fmkey_menu = 0x1600004, // M-menu
Fmkey_smenu = 0x1600005, // shifted M-menu
Fcmkey_menu = 0x1600006, // control-M-menu
Fcmkey_smenu = 0x1600007, // shifted control-M-menu
Fkey_escape_mintty = 0x200001b, // mintty Esc
Fkey_mouse = 0x2000020, // xterm mouse
Fkey_extended_mouse = 0x2000021, // SGR extended mouse
Fkey_urxvt_mouse = 0x2000022, // urxvt mouse extension
Fmkey_meta = 0x20000e0, // meta key offset
Fmkey_tab = 0x20000e9, // M-tab
Fmkey_enter = 0x20000ea, // M-enter
Fmkey_space = 0x2000100, // M-' '
Fmkey_bang = 0x2000101, // M-!
Fmkey_quotes = 0x2000102, // M-"
Fmkey_hash = 0x2000103, // M-#
Fmkey_dollar = 0x2000104, // M-$
Fmkey_percent = 0x2000105, // M-%
Fmkey_ampersand = 0x2000106, // M-&
Fmkey_apostrophe = 0x2000107, // M-'
Fmkey_left_parenthesis = 0x2000108, // M-(
Fmkey_right_parenthesis = 0x2000109, // M-)
Fmkey_asterisk = 0x200010a, // M-*
Fmkey_plus = 0x200010b, // M-+
Fmkey_comma = 0x200010c, // M-,
Fmkey_minus = 0x200010d, // M-'-'
Fmkey_full_stop = 0x200010e, // M-.
Fmkey_slash = 0x200010f, // M-/
Fmkey_0 = 0x2000110, // M-0
Fmkey_1 = 0x2000111, // M-1
Fmkey_2 = 0x2000112, // M-2
Fmkey_3 = 0x2000113, // M-3
Fmkey_4 = 0x2000114, // M-4
Fmkey_5 = 0x2000115, // M-5
Fmkey_6 = 0x2000116, // M-6
Fmkey_7 = 0x2000117, // M-7
Fmkey_8 = 0x2000118, // M-8
Fmkey_9 = 0x2000119, // M-9
Fmkey_colon = 0x200011a, // M-:
Fmkey_semicolon = 0x200011b, // M-;
Fmkey_less_than = 0x200011c, // M-<
Fmkey_equals = 0x200011d, // M-=
Fmkey_greater_than = 0x200011e, // M->
Fmkey_question_mark = 0x200011f, // M-?
Fmkey_at = 0x2000120, // M-@
Fmkey_A = 0x2000121, // M-A
Fmkey_B = 0x2000122, // M-B
Fmkey_C = 0x2000123, // M-C
Fmkey_D = 0x2000124, // M-D
Fmkey_E = 0x2000125, // M-E
Fmkey_F = 0x2000126, // M-F
Fmkey_G = 0x2000127, // M-G
Fmkey_H = 0x2000128, // M-H
Fmkey_I = 0x2000129, // M-I
Fmkey_J = 0x200012a, // M-J
Fmkey_K = 0x200012b, // M-K
Fmkey_L = 0x200012c, // M-L
Fmkey_M = 0x200012d, // M-M
Fmkey_N = 0x200012e, // M-N
Fmkey_O = 0x200012f, // M-O
Fmkey_P = 0x2000130, // M-P
Fmkey_Q = 0x2000131, // M-Q
Fmkey_R = 0x2000132, // M-R
Fmkey_S = 0x2000133, // M-S
Fmkey_T = 0x2000134, // M-T
Fmkey_U = 0x2000135, // M-U
Fmkey_V = 0x2000136, // M-V
Fmkey_W = 0x2000137, // M-W
Fmkey_X = 0x2000138, // M-X
Fmkey_Y = 0x2000139, // M-Y
Fmkey_Z = 0x200013a, // M-Z
Fmkey_left_square_bracket = 0x200013b, // M-[
Fmkey_backslash = 0x200013c, // M-'\'
Fmkey_right_square_bracket = 0x200013d, // M-]
Fmkey_caret = 0x200013e, // M-^
Fmkey_underscore = 0x200013f, // M-_
Fmkey_grave_accent = 0x2000140, // M-`
Fmkey_a = 0x2000141, // M-a
Fmkey_b = 0x2000142, // M-b
Fmkey_c = 0x2000143, // M-c
Fmkey_d = 0x2000144, // M-d
Fmkey_e = 0x2000145, // M-e
Fmkey_f = 0x2000146, // M-f
Fmkey_g = 0x2000147, // M-g
Fmkey_h = 0x2000148, // M-h
Fmkey_i = 0x2000149, // M-i
Fmkey_j = 0x200014a, // M-j
Fmkey_k = 0x200014b, // M-k
Fmkey_l = 0x200014c, // M-l
Fmkey_m = 0x200014d, // M-m
Fmkey_n = 0x200014e, // M-n
Fmkey_o = 0x200014f, // M-o
Fmkey_p = 0x2000150, // M-p
Fmkey_q = 0x2000151, // M-q
Fmkey_r = 0x2000152, // M-r
Fmkey_s = 0x2000153, // M-s
Fmkey_t = 0x2000154, // M-t
Fmkey_u = 0x2000155, // M-u
Fmkey_v = 0x2000156, // M-v
Fmkey_w = 0x2000157, // M-w
Fmkey_x = 0x2000158, // M-x
Fmkey_y = 0x2000159, // M-y
Fmkey_z = 0x200015a, // M-z
Fmkey_left_curly_bracket = 0x200015b, // M-{
Fmkey_vertical_bar = 0x200015c, // M-|
Fmkey_right_curly_bracket = 0x200015d, // M-}
Fmkey_tilde = 0x200015e // M-~
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
// Console color names
enum colornames
{
Default = -1,
Black = 0,
Blue = 1,
Green = 2,
Cyan = 3,
Red = 4,
Magenta = 5,
Brown = 6,
LightGray = 7,
DarkGray = 8,
LightBlue = 9,
LightGreen = 10,
LightCyan = 11,
LightRed = 12,
LightMagenta = 13,
Yellow = 14,
White = 15,
/* 256 color terminals */
Grey0 = 16, // #000000
NavyBlue = 17, // #00005f
DarkBlue = 18, // #000087
Blue3 = 19, // #0000af
Blue2 = 20, // #0000d7
Blue1 = 21, // #0000ff
DarkGreen = 22, // #005f00
DarkCyan2 = 23, // #005f5f
DeepSkyBlue6 = 24, // #005f87
DeepSkyBlue5 = 25, // #005faf
DodgerBlue3 = 26, // #005fd7
DodgerBlue2 = 27, // #005fff
Green4 = 28, // #008700
SpringGreen6 = 29, // #00875f
Turquoise4 = 30, // #008787
DeepSkyBlue4 = 31, // #0087af
DeepSkyBlue3 = 32, // #0087d7
DodgerBlue1 = 33, // #0087ff
Green2 = 34, // #00af00
SpringGreen5 = 35, // #00af5f
DarkCyan = 36, // #00af87
LightSeaGreen = 37, // #00afaf
DeepSkyBlue2 = 38, // #00afd7
DeepSkyBlue1 = 39, // #00afff
Green3 = 40, // #00d700
SpringGreen4 = 41, // #00d75f
SpringGreen3 = 42, // #00d787
Cyan3 = 43, // #00d7af
DarkTurquoise = 44, // #00d7d7
Turquoise2 = 45, // #00d7ff
Green1 = 46, // #00ff00
SpringGreen2 = 47, // #00ff5f
SpringGreen1 = 48, // #00ff87
MediumSpringGreen = 49, // #00ffaf
Cyan2 = 50, // #00ffd7
Cyan1 = 51, // #00ffff
DarkRed = 52, // #5f0000
DeepPink7 = 53, // #5f005f
Purple4 = 54, // #5f0087
Purple3 = 55, // #5f00af
Purple2 = 56, // #5f00d7
BlueViolet = 57, // #5f00ff
Orange4 = 58, // #5f5f00
Grey37 = 59, // #5f5f5f
MediumPurple6 = 60, // #5f5f87
SlateBlue3 = 61, // #5f5faf
SlateBlue2 = 62, // #5f5fd7
RoyalBlue1 = 63, // #5f5fff
Chartreuse5 = 64, // #5f8700
DarkSeaGreen8 = 65, // #5f875f
PaleTurquoise4 = 66, // #5f8787
SteelBlue = 67, // #5f87af
SteelBlue3 = 68, // #5f87d7
CornflowerBlue = 69, // #5f87ff
Chartreuse4 = 70, // #5faf00
DarkSeaGreen7 = 71, // #5faf5f
CadetBlue2 = 72, // #5faf87
CadetBlue1 = 73, // #5fafaf
SkyBlue3 = 74, // #5fafd7
SteelBlue2 = 75, // #5fafff
Chartreuse3 = 76, // #5fd700
PaleGreen3 = 77, // #5fd75f
SeaGreen4 = 78, // #5fd787
Aquamarine3 = 79, // #5fd7af
MediumTurquoise = 80, // #5fd7d7
SteelBlue1 = 81, // #5fd7ff
Chartreuse = 82, // #5fff00
SeaGreen3 = 83, // #5fff5f
SeaGreen2 = 84, // #5fff87
SeaGreen1 = 85, // #5fffaf
Aquamarine2 = 86, // #5fffd7
DarkSlateGray2 = 87, // #5fffff
DarkRed2 = 88, // #870000
DeepPink6 = 89, // #87005f
DarkMagenta2 = 90, // #870087
DarkMagenta = 91, // #8700af
DarkViolet1 = 92, // #8700d7
Purple1 = 93, // #8700ff
Orange3 = 94, // #875f00
LightPink4 = 95, // #875f5f
Plum4 = 96, // #875f87
MediumPurple5 = 97, // #875faf
MediumPurple4 = 98, // #875fd7
SlateBlue1 = 99, // #875fff
Yellow6 = 100, // #878700
Wheat4 = 101, // #87875f
Grey53 = 102, // #878787
LightSlateGrey = 103, // #8787af
MediumPurple = 104, // #8787d7
LightSlateBlue = 105, // #8787ff
Yellow5 = 106, // #87af00
DarkOliveGreen5 = 107, // #87af5f
DarkSeaGreen6 = 108, // #87af87
LightSkyBlue3 = 109, // #87afaf
LightSkyBlue2 = 110, // #87afd7
SkyBlue2 = 111, // #87afff
Chartreuse2 = 112, // #87d700
DarkOliveGreen4 = 113, // #87d75f
PaleGreen2 = 114, // #87d787
DarkSeaGreen5 = 115, // #87d7af
DarkSlateGray3 = 116, // #87d7d7
SkyBlue1 = 117, // #87d7ff
Chartreuse1 = 118, // #87ff00
LightGreen3 = 119, // #87ff5f
LightGreen2 = 120, // #87ff87
PaleGreen1 = 121, // #87ffaf
Aquamarine1 = 122, // #87ffd7
DarkSlateGray1 = 123, // #87ffff
Red3 = 124, // #af0000
DeepPink5 = 125, // #af005f
MediumVioletRed = 126, // #af0087
Magenta6 = 127, // #af00af
DarkViolet = 128, // #af00d7
Purple = 129, // #af00ff
DarkOrange3 = 130, // #af5f00
IndianRed3 = 131, // #af5f5f
HotPink4 = 132, // #af5f87
MediumOrchid3 = 133, // #af5faf
MediumOrchid = 134, // #af5fd7
MediumPurple3 = 135, // #af5fff
DarkGoldenrod = 136, // #af8700
LightSalmon3 = 137, // #af875f
RosyBrown = 138, // #af8787
Grey63 = 139, // #af87af
MediumPurple2 = 140, // #af87d7
MediumPurple1 = 141, // #af87ff
Gold3 = 142, // #afaf00
DarkKhaki = 143, // #afaf5f
NavajoWhite3 = 144, // #afaf87
Grey69 = 145, // #afafaf
LightSteelBlue3 = 146, // #afafd7
LightSteelBlue = 147, // #afafff
Yellow4 = 148, // #afd700
DarkOliveGreen3 = 149, // #afd75f
DarkSeaGreen4 = 150, // #afd787
DarkSeaGreen3 = 151, // #afd7af
LightCyan3 = 152, // #afd7d7
LightSkyBlue1 = 153, // #afd7ff
GreenYellow = 154, // #afff00
DarkOliveGreen2 = 155, // #afff5f
PaleGreen = 156, // #afff87
DarkSeaGreen2 = 157, // #afffaf
DarkSeaGreen1 = 158, // #afffd7
PaleTurquoise1 = 159, // #afffff
Red2 = 160, // #d70000
DeepPink4 = 161, // #d7005f
DeepPink3 = 162, // #d70087
Magenta5 = 163, // #d700af
Magenta4 = 164, // #d700d7
Magenta3 = 165, // #d700ff
DarkOrange2 = 166, // #d75f00
IndianRed = 167, // #d75f5f
HotPink3 = 168, // #d75f87
HotPink2 = 169, // #d75faf
Orchid = 170, // #d75fd7
MediumOrchid2 = 171, // #d75fff
Orange2 = 172, // #d78700
LightSalmon2 = 173, // #d7875f
LightPink3 = 174, // #d78787
Pink3 = 175, // #d787af
Plum3 = 176, // #d787d7
Violet = 177, // #d787ff
Gold2 = 178, // #d7af00
LightGoldenrod5 = 179, // #d7af5f
Tan = 180, // #d7af87
MistyRose3 = 181, // #d7afaf
Thistle3 = 182, // #d7afd7
Plum2 = 183, // #d7afff
Yellow3 = 184, // #d7d700
Khaki3 = 185, // #d7d75f
LightGoldenrod4 = 186, // #d7d787
LightYellow3 = 187, // #d7d7af
Grey84 = 188, // #d7d7d7
LightSteelBlue1 = 189, // #d7d7ff
Yellow2 = 190, // #d7ff00
DarkOliveGreen1 = 191, // #d7ff5f
DarkOliveGreen = 192, // #d7ff87
DarkSeaGreen = 193, // #d7ffaf
Honeydew2 = 194, // #d7ffd7
LightCyan1 = 195, // #d7ffff
Red1 = 196, // #ff0000
DeepPink2 = 197, // #ff005f
DeepPink1 = 198, // #ff0087
DeepPink = 199, // #ff00af
Magenta2 = 200, // #ff00d7
Magenta1 = 201, // #ff00ff
OrangeRed1 = 202, // #ff5f00
IndianRed2 = 203, // #ff5f5f
IndianRed1 = 204, // #ff5f87
HotPink1 = 205, // #ff5faf
HotPink = 206, // #ff5fd7
MediumOrchid1 = 207, // #ff5fff
DarkOrange = 208, // #ff8700
Salmon1 = 209, // #ff875f
LightCoral = 210, // #ff8787
PaleVioletRed1 = 211, // #ff87af
Orchid2 = 212, // #ff87d7
Orchid1 = 213, // #ff87ff
Orange1 = 214, // #ffaf00
SandyBrown = 215, // #ffaf5f
LightSalmon1 = 216, // #ffaf87
LightPink1 = 217, // #ffafaf
Pink1 = 218, // #ffafd7
Plum1 = 219, // #ffafff
Gold1 = 220, // #ffd700
LightGoldenrod3 = 221, // #ffd75f
LightGoldenrod2 = 222, // #ffd787
NavajoWhite1 = 223, // #ffd7af
MistyRose1 = 224, // #ffd7d7
Thistle1 = 225, // #ffd7ff
Yellow1 = 226, // #ffff00
LightGoldenrod = 227, // #ffff5f
Khaki1 = 228, // #ffff87
Wheat1 = 229, // #ffffaf
Cornsilk1 = 230, // #ffffd7
Grey100 = 231, // #ffffff
Grey3 = 232, // #080808
Grey7 = 233, // #121212
Grey11 = 234, // #1c1c1c
Grey15 = 235, // #262626
Grey19 = 236, // #303030
Grey23 = 237, // #3a3a3a
Grey27 = 238, // #444444
Grey30 = 239, // #4e4e4e
Grey35 = 240, // #585858
Grey39 = 241, // #626262
Grey42 = 242, // #6c6c6c
Grey46 = 243, // #767676
Grey50 = 244, // #808080
Grey54 = 245, // #8a8a8a
Grey58 = 246, // #949494
Grey62 = 247, // #9e9e9e
Grey66 = 248, // #a8a8a8
Grey70 = 249, // #b2b2b2
Grey74 = 250, // #bcbcbc
Grey78 = 251, // #c6c6c6
Grey82 = 252, // #d0d0d0
Grey85 = 253, // #dadada
Grey89 = 254, // #e4e4e4
Grey93 = 255 // #eeeeee
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
// Mouse/keyboard state values
enum ButtonState
{
NoButton = 0x00,
LeftButton = 0x01,
RightButton = 0x02,
MiddleButton = 0x04,
MouseButtonMask = 0x07,
ShiftButton = 0x08,
ControlButton = 0x10,
MetaButton = 0x20,
KeyButtonMask = 0x38
};
2016-01-17 02:57:08 +01:00
2017-09-11 03:06:02 +02:00
// Wheel state values
enum WheelState
{
NoWheel = 0x00,
WheelUp = 0x01,
WheelDown = 0x02,
WheelMask = 0x03
};
2016-01-17 02:57:08 +01:00
2017-09-11 03:06:02 +02:00
// Type of focus
enum FocusTypes
{
FocusNextWidget = 0x00,
FocusPreviousWidget = 0x01,
FocusDefiniteWidget = 0x03 // event default
};
2016-01-17 02:57:08 +01:00
2017-09-11 03:06:02 +02:00
// Drag scrolling mode
enum dragScroll
{
noScroll = 0,
scrollUp = 1,
scrollDown = 2,
scrollUpSelect = 3,
scrollDownSelect = 4
};
2017-09-11 03:06:02 +02:00
// Scroll bar visibility mode
enum scrollBarMode
{
Auto = 0, // Shows a scroll bar when area is larger than viewport
Hidden = 1, // Never shows a scroll bar
Scroll = 2 // Always shows a scroll bar
};
2017-09-11 03:06:02 +02:00
// Xterm cursor style
enum xtermCursorStyle
{
blinking_block = 0,
blinking_block_default = 1,
steady_block = 2,
blinking_underline = 3,
steady_underline = 4,
blinking_bar_xterm = 5,
steady_bar_xterm = 6
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
// Linux console and framebuffer cursor style
enum linuxConsoleCursorStyle
{
default_cursor = 0,
invisible_cursor = 1,
underscore_cursor = 2,
lower_third_cursor = 3,
lower_half_cursor = 4,
two_thirds_cursor = 5,
full_block_cursor = 6
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
// BSD console cursor style
enum freebsdConsoleCursorStyle
{
normal_cursor = 0,
blink_cursor = 1,
destructive_cursor = 3
};
2017-09-11 03:06:02 +02:00
// KDE konsole cursor style
enum kdeKonsoleCursorShape
{
BlockCursor = 0,
IBeamCursor = 1,
UnderlineCursor = 2
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
enum text_alignment
{
alignLeft = 1,
alignCenter = 2,
alignRight = 3
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
enum orientation
{
vertical = 0,
horizontal = 1
};
2015-05-23 13:35:12 +02:00
2017-09-11 03:06:02 +02:00
enum sides
{
top = 0,
right = 1,
bottom = 2,
left = 3
};
2017-09-11 03:06:02 +02:00
enum brackets_type
{
NoBrackets = 0,
SquareBrackets = 1, // [ ]
Parenthesis = 2, // ( )
CurlyBrackets = 3, // { }
AngleBrackets = 4 // < >
};
2017-09-11 03:06:02 +02:00
enum termcaps
{
t_bell,
t_erase_chars,
t_clear_screen,
t_clr_eos,
t_clr_eol,
t_clr_bol,
t_cursor_home,
t_cursor_to_ll,
t_carriage_return,
t_tab,
t_back_tab,
t_insert_padding,
t_insert_character,
t_parm_ich,
t_repeat_char,
t_initialize_color,
t_initialize_pair,
t_set_a_foreground,
t_set_a_background,
t_set_foreground,
t_set_background,
t_set_color_pair,
t_orig_pair,
t_orig_colors,
t_no_color_video,
t_cursor_address,
t_column_address,
t_row_address,
t_cursor_visible,
t_cursor_invisible,
t_cursor_normal,
t_cursor_up,
t_cursor_down,
t_cursor_left,
t_cursor_right,
t_parm_up_cursor,
t_parm_down_cursor,
t_parm_left_cursor,
t_parm_right_cursor,
t_save_cursor,
t_restore_cursor,
t_scroll_forward,
t_scroll_reverse,
t_enter_ca_mode,
t_exit_ca_mode,
t_enable_acs,
t_enter_bold_mode,
t_exit_bold_mode,
t_enter_dim_mode,
t_exit_dim_mode,
t_enter_italics_mode,
t_exit_italics_mode,
t_enter_underline_mode,
t_exit_underline_mode,
t_enter_blink_mode,
t_exit_blink_mode,
t_enter_reverse_mode,
t_exit_reverse_mode,
t_enter_standout_mode,
t_exit_standout_mode,
t_enter_secure_mode,
t_exit_secure_mode,
t_enter_protected_mode,
t_exit_protected_mode,
t_enter_crossed_out_mode,
t_exit_crossed_out_mode,
t_enter_dbl_underline_mode,
t_exit_dbl_underline_mode,
t_set_attributes,
t_exit_attribute_mode,
t_enter_alt_charset_mode,
t_exit_alt_charset_mode,
t_enter_pc_charset_mode,
t_exit_pc_charset_mode,
t_enter_insert_mode,
t_exit_insert_mode,
t_enter_am_mode,
t_exit_am_mode,
t_acs_chars,
t_keypad_xmit,
t_keypad_local,
t_key_mouse
};
2017-09-11 03:06:02 +02:00
// Data Member
static const FString* empty_string;
2015-05-23 13:35:12 +02:00
};
#pragma pack(pop)
#endif // FC_H