forked from Mirrors/openclonk
Compare commits
8 Commits
master
...
scancodes-
Author | SHA1 | Date |
---|---|---|
![]() |
d8a4b2a7bf | |
![]() |
12f10f070d | |
![]() |
3cbd53bada | |
![]() |
120cff1262 | |
![]() |
5877cab4c7 | |
![]() |
3d2a1ce9a3 | |
![]() |
e000b268dd | |
![]() |
40547be458 |
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 |
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue