|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2018 [email protected] ! 4: // ! 5: ! 6: #pragma once ! 7: ! 8: #include "keyboard.h" ! 9: ! 10: class LunaKeyboard : public Keyboard ! 11: { ! 12: typedef Keyboard inherited; ! 13: public: ! 14: LunaKeyboard(); ! 15: virtual ~LunaKeyboard(); ! 16: ! 17: // キーを押した ! 18: virtual void MakeKey(uint); ! 19: // キーを離した ! 20: virtual void BreakKey(uint); ! 21: ! 22: private: ! 23: // 共通キーコードから LUNA キーコードへの変換 ! 24: uint keycode2lunakey(uint); ! 25: ! 26: // 変換テーブル ! 27: static const uint keycode2lunakey_table[128]; ! 28: ! 29: // キー名テーブル ! 30: static const char * const keyname[128]; ! 31: ! 32: // キーリピート用のテーブル。 ! 33: // LUNA のキーボードはキーを押し続けてもキーボードはオートリピート ! 34: // しないが、wxWidgets はキーを押し続けると KEY_DOWN イベントが連続 ! 35: // して飛んでくる。そのためすでに押されているキーについて再び ! 36: // KEY_DOWN が来てもこれを本体に送らないようにする。 ! 37: uint8 reptable[128] {}; ! 38: ! 39: // LUNA キーコード ! 40: static const uint NoKey = 0; ! 41: static const uint LunaKey_TAB = 0x09; ! 42: static const uint LunaKey_CTRL = 0x0a; ! 43: static const uint LunaKey_kana = 0x0b; ! 44: static const uint LunaKey_SHIFT_L = 0x0c; ! 45: static const uint LunaKey_SHIFT_R = 0x0d; ! 46: static const uint LunaKey_CAPS = 0x0e; ! 47: static const uint LunaKey_SF = 0x0f; ! 48: ! 49: static const uint LunaKey_ESC = 0x10; ! 50: static const uint LunaKey_BS = 0x11; ! 51: static const uint LunaKey_enter = 0x12; ! 52: static const uint LunaKey_space = 0x14; ! 53: static const uint LunaKey_DEL = 0x15; ! 54: static const uint LunaKey_XFER = 0x16; ! 55: static const uint LunaKey_VALID = 0x17; ! 56: static const uint LunaKey_PF11 = 0x18; ! 57: static const uint LunaKey_PF12 = 0x19; ! 58: static const uint LunaKey_PF13 = 0x1a; ! 59: static const uint LunaKey_PF14 = 0x1b; ! 60: static const uint LunaKey_up = 0x1c; ! 61: static const uint LunaKey_left = 0x1d; ! 62: static const uint LunaKey_right = 0x1e; ! 63: static const uint LunaKey_down = 0x1f; ! 64: ! 65: static const uint LunaKey_1 = 0x22; ! 66: static const uint LunaKey_2 = 0x23; ! 67: static const uint LunaKey_3 = 0x24; ! 68: static const uint LunaKey_4 = 0x25; ! 69: static const uint LunaKey_5 = 0x26; ! 70: static const uint LunaKey_6 = 0x27; ! 71: static const uint LunaKey_7 = 0x28; ! 72: static const uint LunaKey_8 = 0x29; ! 73: static const uint LunaKey_9 = 0x2a; ! 74: static const uint LunaKey_0 = 0x2b; ! 75: static const uint LunaKey_minus = 0x2c; ! 76: static const uint LunaKey_circum = 0x2d; ! 77: static const uint LunaKey_backslash = 0x2e; ! 78: ! 79: static const uint LunaKey_Q = 0x32; ! 80: static const uint LunaKey_W = 0x33; ! 81: static const uint LunaKey_E = 0x34; ! 82: static const uint LunaKey_R = 0x35; ! 83: static const uint LunaKey_T = 0x36; ! 84: static const uint LunaKey_Y = 0x37; ! 85: static const uint LunaKey_U = 0x38; ! 86: static const uint LunaKey_I = 0x39; ! 87: static const uint LunaKey_O = 0x3a; ! 88: static const uint LunaKey_P = 0x3b; ! 89: static const uint LunaKey_at = 0x3c; ! 90: static const uint LunaKey_bracketleft = 0x3d; ! 91: ! 92: static const uint LunaKey_A = 0x42; ! 93: static const uint LunaKey_S = 0x43; ! 94: static const uint LunaKey_D = 0x44; ! 95: static const uint LunaKey_F = 0x45; ! 96: static const uint LunaKey_G = 0x46; ! 97: static const uint LunaKey_H = 0x47; ! 98: static const uint LunaKey_J = 0x48; ! 99: static const uint LunaKey_K = 0x49; ! 100: static const uint LunaKey_L = 0x4a; ! 101: static const uint LunaKey_semicolon = 0x4b; ! 102: static const uint LunaKey_colon = 0x4c; ! 103: static const uint LunaKey_bracketright = 0x4d; ! 104: ! 105: static const uint LunaKey_Z = 0x52; ! 106: static const uint LunaKey_X = 0x53; ! 107: static const uint LunaKey_C = 0x54; ! 108: static const uint LunaKey_V = 0x55; ! 109: static const uint LunaKey_B = 0x56; ! 110: static const uint LunaKey_N = 0x57; ! 111: static const uint LunaKey_M = 0x58; ! 112: static const uint LunaKey_comma = 0x59; ! 113: static const uint LunaKey_period = 0x5a; ! 114: static const uint LunaKey_slash = 0x5b; ! 115: static const uint LunaKey_underscore = 0x5c; ! 116: ! 117: static const uint LunaKey_PAD_plus = 0x61; ! 118: static const uint LunaKey_PAD_minus = 0x62; ! 119: static const uint LunaKey_PAD_7 = 0x63; ! 120: static const uint LunaKey_PAD_8 = 0x64; ! 121: static const uint LunaKey_PAD_9 = 0x65; ! 122: static const uint LunaKey_PAD_4 = 0x66; ! 123: static const uint LunaKey_PAD_5 = 0x67; ! 124: static const uint LunaKey_PAD_6 = 0x68; ! 125: static const uint LunaKey_PAD_1 = 0x69; ! 126: static const uint LunaKey_PAD_2 = 0x6a; ! 127: static const uint LunaKey_PAD_3 = 0x6b; ! 128: static const uint LunaKey_PAD_0 = 0x6c; ! 129: static const uint LunaKey_PAD_decimal = 0x6d; ! 130: static const uint LunaKey_PAD_enter = 0x6e; ! 131: ! 132: static const uint LunaKey_F1 = 0x72; ! 133: static const uint LunaKey_F2 = 0x73; ! 134: static const uint LunaKey_F3 = 0x74; ! 135: static const uint LunaKey_F4 = 0x75; ! 136: static const uint LunaKey_F5 = 0x76; ! 137: static const uint LunaKey_F6 = 0x77; ! 138: static const uint LunaKey_F7 = 0x78; ! 139: static const uint LunaKey_F8 = 0x79; ! 140: static const uint LunaKey_F9 = 0x7a; ! 141: static const uint LunaKey_F10 = 0x7b; ! 142: static const uint LunaKey_PAD_multiply = 0x7c; ! 143: static const uint LunaKey_PAD_divide = 0x7d; ! 144: static const uint LunaKey_PAD_equal = 0x7e; ! 145: static const uint LunaKey_PAD_comma = 0x7f; ! 146: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.