Compare commits

...

8 Commits

Author SHA1 Message Date
Tobias Zwick d8a4b2a7bf buildfix msvc 2013-05-26 17:59:12 +02:00
Armin Burgmeier 12f10f070d Add missing scancodes for linux 2013-05-26 16:42:35 +02:00
Tobias Zwick 3cbd53bada convert windows scancodes to linux scancodes where they differ; make linux compile 2013-05-26 15:13:02 +02:00
Tobias Zwick 120cff1262 convert windows scancodes to linux scancodes where they differ; make linux compile 2013-05-26 15:01:23 +02:00
Tobias Zwick 5877cab4c7 convert windows scancodes to linux scancodes where they differ; make linux compile 2013-05-26 15:00:03 +02:00
Martin Plicht 3d2a1ce9a3 mac: Compile fix 2013-05-26 14:21:43 +02:00
Tobias Zwick e000b268dd write down all scancodes for windows 2013-05-26 13:06:21 +02:00
Tobias Zwick 40547be458 stop and play icons 2013-05-26 02:04:01 +02:00
9 changed files with 312 additions and 208 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -2707,7 +2707,7 @@ bool C4Game::InitKeyboard()
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_F3 ), "MusicToggle", C4KeyScope(KEYSCOPE_Generic | KEYSCOPE_Gui), new C4KeyCB <C4MusicSystem> (Application.MusicSystem, &C4MusicSystem::ToggleOnOff))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_F3 ), "MusicToggle", C4KeyScope(KEYSCOPE_Generic | KEYSCOPE_Gui), new C4KeyCB <C4MusicSystem> (Application.MusicSystem, &C4MusicSystem::ToggleOnOff)));
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_F9 ), "Screenshot", C4KeyScope(KEYSCOPE_Fullscreen | KEYSCOPE_Gui), new C4KeyCBEx<C4GraphicsSystem, bool>(GraphicsSystem, false, &C4GraphicsSystem::SaveScreenshot))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_F9 ), "Screenshot", C4KeyScope(KEYSCOPE_Fullscreen | KEYSCOPE_Gui), new C4KeyCBEx<C4GraphicsSystem, bool>(GraphicsSystem, false, &C4GraphicsSystem::SaveScreenshot)));
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_F9, KEYS_Control), "ScreenshotEx", KEYSCOPE_Fullscreen, new C4KeyCBEx<C4GraphicsSystem, bool>(GraphicsSystem, true, &C4GraphicsSystem::SaveScreenshot))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_F9, KEYS_Control), "ScreenshotEx", KEYSCOPE_Fullscreen, new C4KeyCBEx<C4GraphicsSystem, bool>(GraphicsSystem, true, &C4GraphicsSystem::SaveScreenshot)));
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(KEY_C, KEYS_Alt), "ToggleChat", C4KeyScope(KEYSCOPE_Generic | KEYSCOPE_Gui), new C4KeyCB <C4Game> (*this, &C4Game::ToggleChat))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_C, KEYS_Alt), "ToggleChat", C4KeyScope(KEYSCOPE_Generic | KEYSCOPE_Gui), new C4KeyCB <C4Game> (*this, &C4Game::ToggleChat)));
// main ingame // main ingame
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_F1 ), "ToggleShowHelp", KEYSCOPE_Generic, new C4KeyCB <C4GraphicsSystem>(GraphicsSystem, &C4GraphicsSystem::ToggleShowHelp))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_F1 ), "ToggleShowHelp", KEYSCOPE_Generic, new C4KeyCB <C4GraphicsSystem>(GraphicsSystem, &C4GraphicsSystem::ToggleShowHelp)));
@ -2778,10 +2778,10 @@ bool C4Game::InitKeyboard()
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_SPACE ), "EditCursorModeToggle", KEYSCOPE_Console, new C4KeyCB <C4EditCursor>(Console.EditCursor, &C4EditCursor::ToggleMode))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_SPACE ), "EditCursorModeToggle", KEYSCOPE_Console, new C4KeyCB <C4EditCursor>(Console.EditCursor, &C4EditCursor::ToggleMode)));
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_ADD ), "ToolsDlgGradeUp", KEYSCOPE_Console, new C4KeyCBEx<C4ToolsDlg, int32_t>(Console.ToolsDlg, +5, &C4ToolsDlg::ChangeGrade))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_ADD ), "ToolsDlgGradeUp", KEYSCOPE_Console, new C4KeyCBEx<C4ToolsDlg, int32_t>(Console.ToolsDlg, +5, &C4ToolsDlg::ChangeGrade)));
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_SUBTRACT ), "ToolsDlgGradeDown", KEYSCOPE_Console, new C4KeyCBEx<C4ToolsDlg, int32_t>(Console.ToolsDlg, -5, &C4ToolsDlg::ChangeGrade))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_SUBTRACT ), "ToolsDlgGradeDown", KEYSCOPE_Console, new C4KeyCBEx<C4ToolsDlg, int32_t>(Console.ToolsDlg, -5, &C4ToolsDlg::ChangeGrade)));
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(KEY_M, KEYS_Control), "ToolsDlgPopMaterial", KEYSCOPE_Console, new C4KeyCB <C4ToolsDlg>(Console.ToolsDlg, &C4ToolsDlg::PopMaterial))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_M, KEYS_Control), "ToolsDlgPopMaterial", KEYSCOPE_Console, new C4KeyCB <C4ToolsDlg>(Console.ToolsDlg, &C4ToolsDlg::PopMaterial)));
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(KEY_T, KEYS_Control), "ToolsDlgPopTextures", KEYSCOPE_Console, new C4KeyCB <C4ToolsDlg>(Console.ToolsDlg, &C4ToolsDlg::PopTextures))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_T, KEYS_Control), "ToolsDlgPopTextures", KEYSCOPE_Console, new C4KeyCB <C4ToolsDlg>(Console.ToolsDlg, &C4ToolsDlg::PopTextures)));
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(KEY_I, KEYS_Control), "ToolsDlgIFTToggle", KEYSCOPE_Console, new C4KeyCB <C4ToolsDlg>(Console.ToolsDlg, &C4ToolsDlg::ToggleIFT))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_I, KEYS_Control), "ToolsDlgIFTToggle", KEYSCOPE_Console, new C4KeyCB <C4ToolsDlg>(Console.ToolsDlg, &C4ToolsDlg::ToggleIFT)));
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(KEY_W, KEYS_Control), "ToolsDlgToolToggle", KEYSCOPE_Console, new C4KeyCB <C4ToolsDlg>(Console.ToolsDlg, &C4ToolsDlg::ToggleTool))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_W, KEYS_Control), "ToolsDlgToolToggle", KEYSCOPE_Console, new C4KeyCB <C4ToolsDlg>(Console.ToolsDlg, &C4ToolsDlg::ToggleTool)));
KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_DELETE ), "EditCursorDelete", KEYSCOPE_Console, new C4KeyCB <C4EditCursor>(Console.EditCursor, &C4EditCursor::Delete))); KeyboardInput.RegisterKey(new C4CustomKey(C4KeyCodeEx(K_DELETE ), "EditCursorDelete", KEYSCOPE_Console, new C4KeyCB <C4EditCursor>(Console.EditCursor, &C4EditCursor::Delete)));
// no default keys assigned // no default keys assigned

View File

@ -80,13 +80,13 @@ namespace C4GUI
pKeyCursorEnd = RegisterCursorOp(COP_END , K_END , "GUIEditCursorEnd", eKeyPrio); pKeyCursorEnd = RegisterCursorOp(COP_END , K_END , "GUIEditCursorEnd", eKeyPrio);
pKeyEnter = new C4KeyBinding(C4KeyCodeEx(K_RETURN), "GUIEditConfirm", KEYSCOPE_Gui, pKeyEnter = new C4KeyBinding(C4KeyCodeEx(K_RETURN), "GUIEditConfirm", KEYSCOPE_Gui,
new ControlKeyCB<Edit>(*this, &Edit::KeyEnter), eKeyPrio); new ControlKeyCB<Edit>(*this, &Edit::KeyEnter), eKeyPrio);
pKeyCopy = new C4KeyBinding(C4KeyCodeEx(KEY_C, KEYS_Control), "GUIEditCopy", KEYSCOPE_Gui, pKeyCopy = new C4KeyBinding(C4KeyCodeEx(K_C, KEYS_Control), "GUIEditCopy", KEYSCOPE_Gui,
new ControlKeyCB<Edit>(*this, &Edit::KeyCopy), eKeyPrio); new ControlKeyCB<Edit>(*this, &Edit::KeyCopy), eKeyPrio);
pKeyPaste = new C4KeyBinding(C4KeyCodeEx(KEY_V, KEYS_Control), "GUIEditPaste", KEYSCOPE_Gui, pKeyPaste = new C4KeyBinding(C4KeyCodeEx(K_V, KEYS_Control), "GUIEditPaste", KEYSCOPE_Gui,
new ControlKeyCB<Edit>(*this, &Edit::KeyPaste), eKeyPrio); new ControlKeyCB<Edit>(*this, &Edit::KeyPaste), eKeyPrio);
pKeyCut = new C4KeyBinding(C4KeyCodeEx(KEY_X, KEYS_Control), "GUIEditCut", KEYSCOPE_Gui, pKeyCut = new C4KeyBinding(C4KeyCodeEx(K_X, KEYS_Control), "GUIEditCut", KEYSCOPE_Gui,
new ControlKeyCB<Edit>(*this, &Edit::KeyCut), eKeyPrio); new ControlKeyCB<Edit>(*this, &Edit::KeyCut), eKeyPrio);
pKeySelAll = new C4KeyBinding(C4KeyCodeEx(KEY_A, KEYS_Control), "GUIEditSelAll", KEYSCOPE_Gui, pKeySelAll = new C4KeyBinding(C4KeyCodeEx(K_A, KEYS_Control), "GUIEditSelAll", KEYSCOPE_Gui,
new ControlKeyCB<Edit>(*this, &Edit::KeySelectAll), eKeyPrio); new ControlKeyCB<Edit>(*this, &Edit::KeySelectAll), eKeyPrio);
} }

View File

@ -112,107 +112,111 @@ struct C4KeyCodeMapEntry
#if defined(USE_WIN32_WINDOWS) || defined(USE_X11) #if defined(USE_WIN32_WINDOWS) || defined(USE_X11)
const C4KeyCodeMapEntry KeyCodeMap[] = { const C4KeyCodeMapEntry KeyCodeMap[] = {
{1, "Escape", "Esc"}, {K_ESCAPE, "Escape", "Esc"},
{2, "1", NULL}, {K_1, "1", NULL},
{3, "2", NULL}, {K_2, "2", NULL},
{4, "3", NULL}, {K_3, "3", NULL},
{5, "4", NULL}, {K_4, "4", NULL},
{6, "5", NULL}, {K_5, "5", NULL},
{7, "6", NULL}, {K_6, "6", NULL},
{8, "7", NULL}, {K_7, "7", NULL},
{9, "8", NULL}, {K_8, "8", NULL},
{10, "9", NULL}, {K_9, "9", NULL},
{11, "0", NULL}, {K_0, "0", NULL},
{12, "Minus", "-"}, {K_MINUS, "Minus", "-"},
{13, "Equal", "="}, {K_EQUAL, "Equal", "="},
{14, "BackSpace", NULL}, {K_BACK, "BackSpace", NULL},
{15, "Tab", NULL}, {K_TAB, "Tab", NULL},
{16, "Q", NULL}, {K_Q, "Q", NULL},
{17, "W", NULL}, {K_W, "W", NULL},
{18, "E", NULL}, {K_E, "E", NULL},
{19, "R", NULL}, {K_R, "R", NULL},
{20, "T", NULL}, {K_T, "T", NULL},
{21, "Y", NULL}, {K_Y, "Y", NULL},
{22, "U", NULL}, {K_U, "U", NULL},
{23, "I", NULL}, {K_I, "I", NULL},
{24, "O", NULL}, {K_O, "O", NULL},
{25, "P", NULL}, {K_P, "P", NULL},
{26, "LeftBracket", "["}, {K_LEFT_BRACKET,"LeftBracket", "["},
{27, "RightBracket", "]"}, {K_RIGHT_BRACKET,"RightBracket","]"},
{28, "Return", "Ret"}, {K_RETURN, "Return", "Ret"},
{29, "LeftControl", "LCtrl"}, {K_CONTROL_L, "LeftControl", "LCtrl"},
{30, "A", NULL}, {K_A, "A", NULL},
{31, "S", NULL}, {K_S, "S", NULL},
{32, "D", NULL}, {K_D, "D", NULL},
{33, "F", NULL}, {K_F, "F", NULL},
{34, "G", NULL}, {K_G, "G", NULL},
{35, "H", NULL}, {K_H, "H", NULL},
{36, "J", NULL}, {K_J, "J", NULL},
{37, "K", NULL}, {K_K, "K", NULL},
{38, "L", NULL}, {K_L, "L", NULL},
{39, "Semicolon", ";"}, {K_SEMICOLON, "Semicolon", ";"},
{40, "Apostrophe", "'"}, {K_APOSTROPHE, "Apostrophe", "'"},
{42, "LeftShift", "LShift"}, {K_GRAVE_ACCENT,"GraveAccent", "`"},
{43, "Backslash", "\\"}, {K_SHIFT_L, "LeftShift", "LShift"},
{44, "Z", NULL}, {K_BACKSLASH, "Backslash", "\\"},
{45, "X", NULL}, {K_Z, "Z", NULL},
{46, "C", NULL}, {K_X, "X", NULL},
{47, "V", NULL}, {K_C, "C", NULL},
{48, "B", NULL}, {K_V, "V", NULL},
{49, "N", NULL}, {K_B, "B", NULL},
{50, "M", NULL}, {K_N, "N", NULL},
{51, "Comma", ","}, {K_M, "M", NULL},
{52, "Period", "."}, {K_COMMA, "Comma", ","},
{53, "Slash", "/"}, {K_PERIOD, "Period", "."},
{54, "RightShift", "RShift"}, {K_SLASH, "Slash", "/"},
{55, "Multiply", "N*"}, {K_SHIFT_R, "RightShift", "RShift"},
{56, "LeftAlt", "LAlt"}, {K_MULTIPLY, "Multiply", "N*"},
{57, "Space", "Sp"}, {K_ALT_L, "LeftAlt", "LAlt"},
{58, "Capslock", NULL}, {K_SPACE, "Space", "Sp"},
{59, "F1", NULL}, {K_CAPS, "Capslock", NULL},
{60, "F2", NULL}, {K_F1, "F1", NULL},
{61, "F3", NULL}, {K_F2, "F2", NULL},
{62, "F4", NULL}, {K_F3, "F3", NULL},
{63, "F5", NULL}, {K_F4, "F4", NULL},
{64, "F6", NULL}, {K_F5, "F5", NULL},
{65, "F7", NULL}, {K_F6, "F6", NULL},
{66, "F8", NULL}, {K_F7, "F7", NULL},
{67, "F9", NULL}, {K_F8, "F8", NULL},
{68, "F10", NULL}, {K_F9, "F9", NULL},
{69, "NumLock", "NLock"}, {K_F10, "F10", NULL},
{71, "Num7", "N7"}, {K_NUM, "NumLock", "NLock"},
{72, "Num8", "N8"}, {K_SCROLL, "ScrollLock", "SLock"},
{73, "Num9", "N9"}, {K_NUM7, "Num7", "N7"},
{74, "Subtract", "N-"}, {K_NUM8, "Num8", "N8"},
{75, "Num4", "N4"}, {K_NUM9, "Num9", "N9"},
{76, "Num5", "N5"}, {K_SUBTRACT, "Subtract", "N-"},
{77, "Num6", "N6"}, {K_NUM4, "Num4", "N4"},
{78, "Add", "N+"}, {K_NUM5, "Num5", "N5"},
{79, "Num1", "N1"}, {K_NUM6, "Num6", "N6"},
{80, "Num2", "N2"}, {K_ADD, "Add", "N+"},
{81, "Num3", "N3"}, {K_NUM1, "Num1", "N1"},
{82, "Num0", "N0"}, {K_NUM2, "Num2", "N2"},
{83, "Decimal", "N,"}, {K_NUM3, "Num3", "N3"},
{86, "|<>", NULL}, {K_NUM0, "Num0", "N0"},
{87, "F11", NULL}, {K_DECIMAL, "Decimal", "N,"},
{88, "F12", NULL}, {K_86, "|<>", NULL},
{96, "NumReturn", "NRet"}, {K_F11, "F11", NULL},
{97, "RightControl", "RCtrl"}, {K_F12, "F12", NULL},
{98, "Divide", "N/"}, {K_NUM_RETURN, "NumReturn", "NRet"},
{100, "RightAlt", "RAlt"}, {K_CONTROL_R, "RightControl", "RCtrl"},
{102, "Home", NULL}, {K_DIVIDE, "Divide", "N/"},
{103, "Up", NULL}, {K_ALT_R, "RightAlt", "RAlt"},
{104, "PageUp", NULL}, {K_HOME, "Home", NULL},
{105, "Left", NULL}, {K_UP, "Up", NULL},
{106, "Right", NULL}, {K_PAGEUP, "PageUp", NULL},
{107, "End", NULL}, {K_LEFT, "Left", NULL},
{108, "Down", NULL}, {K_RIGHT, "Right", NULL},
{109, "PageDown", NULL}, {K_END, "End", NULL},
{110, "Insert", "Ins"}, {K_DOWN, "Down", NULL},
{111, "Delete", "Del"}, {K_PAGEDOWN, "PageDown", NULL},
{119, "Pause", NULL}, {K_INSERT, "Insert", "Ins"},
{125, "LeftWin", "LWin"}, {K_DELETE, "Delete", "Del"},
{127, "Menu", NULL}, {K_PAUSE, "Pause", NULL},
{K_WIN_L, "LeftWin", "LWin"},
{K_WIN_R, "RightWin", "RWin"},
{K_MENU, "Menu", NULL},
{K_PRINT, "Print", NULL},
{0x00, NULL, NULL} {0x00, NULL, NULL}
}; };
#elif defined(USE_COCOA) #elif defined(USE_COCOA)
@ -832,6 +836,8 @@ void C4KeyboardInput::UnregisterKeyBinding(C4CustomKey *pUnregKey)
bool C4KeyboardInput::DoInput(const C4KeyCodeEx &InKey, C4KeyEventType InEvent, DWORD InScope, int32_t iStrength) bool C4KeyboardInput::DoInput(const C4KeyCodeEx &InKey, C4KeyEventType InEvent, DWORD InScope, int32_t iStrength)
{ {
LogF("%d",InKey.Key);
// store last-key-info // store last-key-info
LastKeyExtraData.iStrength = (iStrength >= 0) ? iStrength : ((InEvent != KEYEV_Up) * 100); LastKeyExtraData.iStrength = (iStrength >= 0) ? iStrength : ((InEvent != KEYEV_Up) * 100);
LastKeyExtraData.game_x = LastKeyExtraData.game_y = LastKeyExtraData.vp_x = LastKeyExtraData.vp_y = 0; LastKeyExtraData.game_x = LastKeyExtraData.game_y = LastKeyExtraData.vp_x = LastKeyExtraData.vp_y = 0;

View File

@ -1427,7 +1427,7 @@ C4StartupScenSelDlg::C4StartupScenSelDlg(bool fNetwork) : C4StartupDlg(LoadResSt
new C4GUI::ControlKeyDlgCB<C4StartupScenSelDlg>(pScenSelList, *this, &C4StartupScenSelDlg::KeyRename), C4CustomKey::PRIO_CtrlOverride); new C4GUI::ControlKeyDlgCB<C4StartupScenSelDlg>(pScenSelList, *this, &C4StartupScenSelDlg::KeyRename), C4CustomKey::PRIO_CtrlOverride);
pKeyDelete = new C4KeyBinding(C4KeyCodeEx(K_DELETE), "StartupScenSelDelete", KEYSCOPE_Gui, pKeyDelete = new C4KeyBinding(C4KeyCodeEx(K_DELETE), "StartupScenSelDelete", KEYSCOPE_Gui,
new C4GUI::ControlKeyDlgCB<C4StartupScenSelDlg>(pScenSelList, *this, &C4StartupScenSelDlg::KeyDelete), C4CustomKey::PRIO_CtrlOverride); new C4GUI::ControlKeyDlgCB<C4StartupScenSelDlg>(pScenSelList, *this, &C4StartupScenSelDlg::KeyDelete), C4CustomKey::PRIO_CtrlOverride);
pKeyCheat = new C4KeyBinding(C4KeyCodeEx(KEY_M, KEYS_Alt), "StartupScenSelCheat", KEYSCOPE_Gui, pKeyCheat = new C4KeyBinding(C4KeyCodeEx(K_M, KEYS_Alt), "StartupScenSelCheat", KEYSCOPE_Gui,
new C4GUI::ControlKeyDlgCB<C4StartupScenSelDlg>(pScenSelList, *this, &C4StartupScenSelDlg::KeyCheat), C4CustomKey::PRIO_CtrlOverride); new C4GUI::ControlKeyDlgCB<C4StartupScenSelDlg>(pScenSelList, *this, &C4StartupScenSelDlg::KeyCheat), C4CustomKey::PRIO_CtrlOverride);
} }

View File

@ -29,11 +29,65 @@
#include <StdBuf.h> #include <StdBuf.h>
#if defined(USE_WIN32_WINDOWS) || defined(USE_X11) #if defined(USE_WIN32_WINDOWS) || defined(USE_X11) || defined(USE_CONSOLE)
#define K_ESCAPE 1
#define K_1 2
#define K_2 3
#define K_3 4
#define K_4 5
#define K_5 6
#define K_6 7
#define K_7 8
#define K_8 9
#define K_9 10
#define K_0 11
#define K_MINUS 12
#define K_EQUAL 13
#define K_BACK 14
#define K_TAB 15
#define K_Q 16
#define K_W 17
#define K_E 18
#define K_R 19
#define K_T 20
#define K_Y 21
#define K_U 22
#define K_I 23
#define K_O 24
#define K_P 25
#define K_LEFT_BRACKET 26
#define K_RIGHT_BRACKET 27
#define K_RETURN 28
#define K_CONTROL_L 29
#define K_A 30
#define K_S 31
#define K_D 32
#define K_F 33
#define K_G 34
#define K_H 35
#define K_J 36
#define K_K 37
#define K_L 38
#define K_SEMICOLON 39
#define K_APOSTROPHE 40
#define K_GRAVE_ACCENT 41
#define K_SHIFT_L 42 #define K_SHIFT_L 42
#define K_BACKSLASH 43
#define K_Z 44
#define K_X 45
#define K_C 46
#define K_V 47
#define K_B 48
#define K_N 49
#define K_M 50
#define K_COMMA 51
#define K_PERIOD 52
#define K_SLASH 53
#define K_SHIFT_R 54 #define K_SHIFT_R 54
#define K_ALT_L 56 #define K_MULTIPLY 55
#define K_ALT_R 100 #define K_ALT_L 56
#define K_SPACE 57
#define K_CAPS 58
#define K_F1 59 #define K_F1 59
#define K_F2 60 #define K_F2 60
#define K_F3 61 #define K_F3 61
@ -44,39 +98,89 @@
#define K_F8 66 #define K_F8 66
#define K_F9 67 #define K_F9 67
#define K_F10 68 #define K_F10 68
#define K_NUM 69
#define K_SCROLL 70
#define K_SUBTRACT 74
#define K_ADD 78
#define K_86 86
#define K_F11 87 #define K_F11 87
#define K_F12 88 #define K_F12 88
#define K_ADD 78
#define K_SUBTRACT 74 /*
#define K_MULTIPLY 55 // starting from here, scancodes between windows and linux differ
#define K_ESCAPE 1 // this is not used because the windows scancodes are converted to
#define K_PAUSE 119 // unix scancodes in C4WindowWin32.cpp ConvertToUnixScancode
#define K_TAB 15 #if defined(USE_WIN32_WINDOWS)
#define K_RETURN 28 #define K_HOME 71
#define K_DELETE 111 #define K_UP 72
#define K_INSERT 110 #define K_PAGEUP 73
#define K_BACK 14 #define K_LEFT 75
#define K_SPACE 57 #define K_CENTER 76
#define K_RIGHT 77
#define K_END 79
#define K_DOWN 80
#define K_PAGEDOWN 81
#define K_INSERT 82
#define K_DELETE 83
#define K_WIN_L 91
#define K_WIN_R 92
#define K_MENU 93
#define K_PAUSE 69 // same as numlock?!
#define K_PRINT 55 // same as multiply?!
#define K_ALT_R K_ALT_L // 29 56
#define K_CONTROL_R K_CONTROL_L // 29 29
#define K_NUM_RETURN K_RETURN // 28 57
#define K_NUM7 K_HOME
#define K_NUM8 K_UP
#define K_NUM9 K_PAGEUP
#define K_NUM4 K_LEFT
#define K_NUM5 K_CENTER
#define K_NUM6 K_RIGHT
#define K_NUM1 K_END
#define K_NUM2 K_DOWN
#define K_NUM3 K_PAGEDOWN
#define K_NUM0 K_INSERT
#define K_DECIMAL K_DELETE
#define K_DIVIDE K_SLASH
#elif defined(USE_X11) || defined(USE_CONSOLE)
*/
#define K_NUM7 71
#define K_NUM8 72
#define K_NUM9 73
#define K_NUM4 75
#define K_NUM5 76
#define K_NUM6 77
#define K_NUM1 79
#define K_NUM2 80
#define K_NUM3 81
#define K_NUM0 82
#define K_DECIMAL 83
#define K_DIVIDE 98
#define K_ALT_R 100
#define K_CONTROL_R 97
#define K_NUM_RETURN 96
#define K_HOME 102
#define K_UP 103 #define K_UP 103
#define K_DOWN 108 #define K_PAGEUP 104
#define K_LEFT 105 #define K_LEFT 105
#define K_RIGHT 106 #define K_RIGHT 106
#define K_HOME 102
#define K_END 107 #define K_END 107
#define K_SCROLL 70 #define K_DOWN 108
#define K_MENU 127
#define K_PAGEUP 104
#define K_PAGEDOWN 109 #define K_PAGEDOWN 109
#define KEY_A 30 // select all in GUI-editbox #define K_INSERT 110
#define KEY_C 46 // copy in GUI-editbox #define K_DELETE 111
#define KEY_I 23 // console mode control key #define K_WIN_L 125
#define KEY_M 50 // console mode control key #define K_WIN_R 126
#define KEY_T 20 // console mode control key #define K_MENU 127
#define KEY_V 47 // paste in GUI-editbox #define K_PAUSE 119
#define KEY_W 17 // console mode control key #define K_PRINT 99
#define KEY_X 45 // cut from GUI-editbox #define K_CENTER 76
#elif defined(USE_SDL_MAINLOOP) #elif defined(USE_SDL_MAINLOOP)
#include <SDL.h> #include <SDL.h>
// FIXME
#define K_SHIFT_L SDLK_LSHIFT #define K_SHIFT_L SDLK_LSHIFT
#define K_SHIFT_R SDLK_RSHIFT #define K_SHIFT_R SDLK_RSHIFT
#define K_ALT_L SDLK_LALT #define K_ALT_L SDLK_LALT
@ -114,62 +218,17 @@
#define K_MENU SDLK_MENU #define K_MENU SDLK_MENU
#define K_PAGEUP SDLK_PAGEUP #define K_PAGEUP SDLK_PAGEUP
#define K_PAGEDOWN SDLK_PAGEDOWN #define K_PAGEDOWN SDLK_PAGEDOWN
#define KEY_M SDLK_m #define K_M SDLK_m
#define KEY_T SDLK_t #define K_T SDLK_t
#define KEY_W SDLK_w #define K_W SDLK_w
#define KEY_I SDLK_i #define K_I SDLK_i
#define KEY_C SDLK_c #define K_C SDLK_c
#define KEY_V SDLK_v #define K_V SDLK_v
#define KEY_X SDLK_x #define K_X SDLK_x
#define KEY_A SDLK_a #define K_A SDLK_a
#elif defined(USE_CONSOLE)
#define K_SHIFT_L 0
#define K_SHIFT_R 0
#define K_ALT_L 0
#define K_ALT_R 0
#define K_F1 0
#define K_F2 0
#define K_F3 0
#define K_F4 0
#define K_F5 0
#define K_F6 0
#define K_F7 0
#define K_F8 0
#define K_F9 0
#define K_F10 0
#define K_F11 0
#define K_F12 0
#define K_ADD 0
#define K_SUBTRACT 0
#define K_MULTIPLY 0
#define K_ESCAPE 0
#define K_PAUSE 0
#define K_TAB 0
#define K_RETURN 0
#define K_DELETE 0
#define K_INSERT 0
#define K_BACK 0
#define K_SPACE 0
#define K_UP 0
#define K_DOWN 0
#define K_LEFT 0
#define K_RIGHT 0
#define K_HOME 0
#define K_END 0
#define K_SCROLL 0
#define K_MENU 0
#define K_PAGEUP 0
#define K_PAGEDOWN 0
#define KEY_M 0
#define KEY_T 0
#define KEY_W 0
#define KEY_I 0
#define KEY_C 0
#define KEY_V 0
#define KEY_X 0
#define KEY_A 0
#elif defined(USE_COCOA) #elif defined(USE_COCOA)
#import "ObjectiveCAssociated.h" #import "ObjectiveCAssociated.h"
// FIXME
// declare as extern variables and initialize them in StdMacWindow.mm so as to not include objc headers // declare as extern variables and initialize them in StdMacWindow.mm so as to not include objc headers
const int CocoaKeycodeOffset = 300; const int CocoaKeycodeOffset = 300;
extern C4KeyCode K_SHIFT_L; extern C4KeyCode K_SHIFT_L;
@ -209,14 +268,14 @@ extern C4KeyCode K_SCROLL;
extern C4KeyCode K_MENU; extern C4KeyCode K_MENU;
extern C4KeyCode K_PAGEUP; extern C4KeyCode K_PAGEUP;
extern C4KeyCode K_PAGEDOWN; extern C4KeyCode K_PAGEDOWN;
extern C4KeyCode KEY_M; extern C4KeyCode K_M;
extern C4KeyCode KEY_T; extern C4KeyCode K_T;
extern C4KeyCode KEY_W; extern C4KeyCode K_W;
extern C4KeyCode KEY_I; extern C4KeyCode K_I;
extern C4KeyCode KEY_C; extern C4KeyCode K_C;
extern C4KeyCode KEY_V; extern C4KeyCode K_V;
extern C4KeyCode KEY_X; extern C4KeyCode K_X;
extern C4KeyCode KEY_A; extern C4KeyCode K_A;
#endif #endif
#ifdef USE_X11 #ifdef USE_X11

View File

@ -171,14 +171,14 @@ C4KeyCode K_SCROLL = 1000 + CocoaKeycodeOffset;
C4KeyCode K_MENU = 1000 + CocoaKeycodeOffset; C4KeyCode K_MENU = 1000 + CocoaKeycodeOffset;
C4KeyCode K_PAGEUP = 116 + CocoaKeycodeOffset; C4KeyCode K_PAGEUP = 116 + CocoaKeycodeOffset;
C4KeyCode K_PAGEDOWN = 121 + CocoaKeycodeOffset; C4KeyCode K_PAGEDOWN = 121 + CocoaKeycodeOffset;
C4KeyCode KEY_M = 46 + CocoaKeycodeOffset; C4KeyCode K_M = 46 + CocoaKeycodeOffset;
C4KeyCode KEY_T = 17 + CocoaKeycodeOffset; C4KeyCode K_T = 17 + CocoaKeycodeOffset;
C4KeyCode KEY_W = 13 + CocoaKeycodeOffset; C4KeyCode K_W = 13 + CocoaKeycodeOffset;
C4KeyCode KEY_I = 34 + CocoaKeycodeOffset; C4KeyCode K_I = 34 + CocoaKeycodeOffset;
C4KeyCode KEY_C = 8 + CocoaKeycodeOffset; C4KeyCode K_C = 8 + CocoaKeycodeOffset;
C4KeyCode KEY_V = 9 + CocoaKeycodeOffset; C4KeyCode K_V = 9 + CocoaKeycodeOffset;
C4KeyCode KEY_X = 7 + CocoaKeycodeOffset; C4KeyCode K_X = 7 + CocoaKeycodeOffset;
C4KeyCode KEY_A = 0 + CocoaKeycodeOffset; C4KeyCode K_A = 0 + CocoaKeycodeOffset;
int MK_SHIFT = NSShiftKeyMask; int MK_SHIFT = NSShiftKeyMask;
int MK_CONTROL = NSControlKeyMask; int MK_CONTROL = NSControlKeyMask;
int MK_ALT = NSAlternateKeyMask; int MK_ALT = NSAlternateKeyMask;

View File

@ -56,6 +56,44 @@
#define ConsoleDlgClassName L"C4GUIdlg" #define ConsoleDlgClassName L"C4GUIdlg"
#define ConsoleDlgWindowStyle (WS_VISIBLE | WS_POPUP | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX) #define ConsoleDlgWindowStyle (WS_VISIBLE | WS_POPUP | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX)
/** Convert certain keys to unix scancodes (those that differ from unix scancodes) */
static void ConvertToUnixScancode(WPARAM wParam, C4KeyCode *scancode)
{
C4KeyCode &s = *scancode;
switch(wParam)
{
case VK_HOME: s = K_HOME; break;
case VK_END: s = K_END; break;
case VK_PRIOR: s = K_PAGEUP; break;
case VK_NEXT: s = K_PAGEDOWN; break;
case VK_UP: s = K_UP; break;
case VK_DOWN: s = K_DOWN; break;
case VK_LEFT: s = K_LEFT; break;
case VK_RIGHT: s = K_RIGHT; break;
case VK_CLEAR: s = K_CENTER; break;
case VK_INSERT: s = K_INSERT; break;
case VK_DELETE: s = K_DELETE; break;
case VK_LWIN: s = K_WIN_L; break;
case VK_RWIN: s = K_WIN_R; break;
case VK_MENU: s = K_MENU; break;
case VK_PAUSE: s = K_PAUSE; break;
case VK_PRINT: s = K_PRINT; break;
case VK_RCONTROL: s = K_CONTROL_R; break;
case VK_NUMLOCK: s = K_NUM; break;
case VK_NUMPAD1: s = K_NUM1; break;
case VK_NUMPAD2: s = K_NUM2; break;
case VK_NUMPAD3: s = K_NUM3; break;
case VK_NUMPAD4: s = K_NUM4; break;
case VK_NUMPAD5: s = K_NUM5; break;
case VK_NUMPAD6: s = K_NUM6; break;
case VK_NUMPAD7: s = K_NUM7; break;
case VK_NUMPAD8: s = K_NUM8; break;
case VK_NUMPAD9: s = K_NUM9; break;
case VK_NUMPAD0: s = K_NUM0; break;
}
}
LRESULT APIENTRY FullScreenWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) LRESULT APIENTRY FullScreenWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
static bool NativeCursorShown = true; static bool NativeCursorShown = true;
@ -66,6 +104,7 @@ LRESULT APIENTRY FullScreenWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l
// compute scancode // compute scancode
C4KeyCode scancode = (((unsigned int)lParam) >> 16) & 0xFF; C4KeyCode scancode = (((unsigned int)lParam) >> 16) & 0xFF;
ConvertToUnixScancode(wParam, &scancode);
// Process message // Process message
switch (uMsg) switch (uMsg)