// File: fc.h // Provides: class fc // // Standalone class // ════════════════ // // ▕▔▔▔▔▔▔▔▔▏ // ▕ fc ▏ // ▕▁▁▁▁▁▁▁▁▏ #ifndef FC_H #define FC_H #include "fstring.h" //---------------------------------------------------------------------- // class fc //---------------------------------------------------------------------- #pragma pack(push) #pragma pack(1) class fc { 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 }; // 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 }; // Internal character encoding enum encoding { UTF8, VT100, PC, ASCII, NUM_OF_ENCODINGS // number of items }; // 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 }; // 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, // ▮ SmallBullet = 0x00b7, // · BlackDiamond = 0x25c6, // ◆ SymbolForNewline = 0x2424, // ␤ SymbolForVerticalTab = 0x240b, // ␋ SymbolForHorizontalTab = 0x2409, // ␉ SymbolForFormFeed = 0x240c, // ␌ SymbolForCarriageReturn = 0x240d, // ␍ SymbolForLineFeed = 0x240a, // ␊ 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, // ⎺ HorizontalScanLine3 = 0x23bb, // ⎻ HorizontalScanLine7 = 0x23bc, // ⎼ HorizontalScanLine9 = 0x23bd, // ⎽ BlackUpPointingTriangle = 0x25b2, // ▲ BlackDownPointingTriangle = 0x25bc, // ▼ BlackRightPointingPointer = 0x25ba, // ► BlackLeftPointingPointer = 0x25c4, // ◄ Bullet = 0x2022, // • FullBlock = 0x2588, // █ UpperHalfBlock = 0x2580, // ▀ LowerHalfBlock = 0x2584, // ▄ LeftHalfBlock = 0x258c, // ▌ RightHalfBlock = 0x2590, // ▐ NF_rev_left_arrow2 = 0x1ab4, // ⊐ NF_rev_right_arrow2 = 0x1ab5, // ► NF_radio_button3 = 0x1ab7, // ) NF_rev_border_corner_upper_right = 0x1ab8, // ⎤ NF_rev_border_line_right = 0x1ab9, // ⎹ NF_rev_border_line_vertical_left = 0x1aba, // ┤ NF_rev_border_corner_lower_right = 0x1abb, // ⎦ NF_border_line_left = 0x1abc, // ⎸ NF_rev_up_arrow2 = 0x1abd, //⎹◣ NF_rev_down_arrow2 = 0x1abe, //⎹◤ NF_border_corner_middle_lower_left = 0x1ac0, // └ NF_rev_up_arrow1 = 0x1ac1, // ◢⎸ NF_rev_down_arrow1 = 0x1ac2, // ◥⎸ NF_border_line_vertical_right = 0x1ac3, // ├ NF_border_line_up_and_down = 0x1ac5, // ニ NF_shadow_box_middle = 0x1ac6, // ニ NF_shadow_box_hdd = 0x1ac7, // ニ NF_rev_left_arrow1 = 0x1ac8, // ◄ NF_rev_right_arrow1 = 0x1ac9, // ⊏ NF_rev_menu_button1 = 0x1aca, // [ NF_rev_menu_button2 = 0x1acb, // - NF_border_corner_middle_upper_left = 0x1acc, // ┌ NF_shadow_box_cd = 0x1acd, // ニ NF_shadow_box_left = 0x1ace, // [ NF_border_corner_middle_lower_right = 0x1acf, // ┘ NF_border_corner_middle_upper_right = 0x1ad0, // ┐ NF_shadow_box_net = 0x1ad1, // ニ NF_rev_up_pointing_triangle1 = 0x1ad2, // ◢ NF_border_corner_lower_left = 0x1ad3, // ⎣ NF_border_line_bottom = 0x1ad4, // _ NF_radio_button2 = 0x1ad5, // ⁐ NF_radio_button2_checked = 0x1ad6, // ● NF_rev_down_pointing_triangle1 = 0x1ad7, // ◥ NF_border_line_upper = 0x1ad8, // ¯ NF_radio_button1 = 0x1ad9, // ( NF_border_corner_upper_left = 0x1ada, // ⎡ NF_shadow_box_checked = 0x1adc, // ✓ NF_rev_border_line_right_and_left = 0x1ae7, // || NF_rev_up_pointing_triangle2 = 0x1ae8, // ◣ NF_rev_down_pointing_triangle2 = 0x1ae9, // ◤ NF_rev_menu_button3 = 0x1af4, // ] NF_shadow_box_right = 0x1af5, // ] NF_Bullet = 0x1af9, // ● NF_check_mark = 0x1afb, // ✓ SquareRoot = 0x221a // √ }; // 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 }; // 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-~ }; // 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 }; // Mouse/keyboard state values enum ButtonState { NoButton = 0x00, LeftButton = 0x01, RightButton = 0x02, MiddleButton = 0x04, MouseButtonMask = 0x07, ShiftButton = 0x08, ControlButton = 0x10, MetaButton = 0x20, KeyButtonMask = 0x38 }; // Wheel state values enum WheelState { NoWheel = 0x00, WheelUp = 0x01, WheelDown = 0x02, WheelMask = 0x03 }; // Type of focus enum FocusTypes { FocusNextWidget = 0x00, FocusPreviousWidget = 0x01, FocusDefiniteWidget = 0x03 // event default }; // Drag scrolling mode enum dragScroll { noScroll = 0, scrollUp = 1, scrollDown = 2, scrollUpSelect = 3, scrollDownSelect = 4 }; // 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 }; // 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 }; // 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 }; // BSD console cursor style enum freebsdConsoleCursorStyle { normal_cursor = 0, blink_cursor = 1, destructive_cursor = 3 }; // KDE konsole cursor style enum kdeKonsoleCursorShape { BlockCursor = 0, IBeamCursor = 1, UnderlineCursor = 2 }; enum text_alignment { alignLeft = 1, alignCenter = 2, alignRight = 3 }; enum orientation { vertical = 0, horizontal = 1 }; enum sides { top = 0, right = 1, bottom = 2, left = 3 }; enum brackets_type { NoBrackets = 0, SquareBrackets = 1, // [ ] Parenthesis = 2, // ( ) CurlyBrackets = 3, // { } AngleBrackets = 4 // < > }; 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 }; // Data Member static const FString* empty_string; }; #pragma pack(pop) #endif // FC_H