Win32 fixes (esp for modifier key handling)
This commit is contained in:
parent
11be62cdcf
commit
31e19296f8
12
ogl_editor/data/windows/afxres.h
Normal file
12
ogl_editor/data/windows/afxres.h
Normal file
@ -0,0 +1,12 @@
|
||||
#include <windows.h>
|
||||
#define ID_FILE_NEW 0xE100
|
||||
#define ID_FILE_OPEN 0xE101
|
||||
#define ID_FILE_SAVE 0xE103
|
||||
#define ID_FILE_SAVE_AS 0xE104
|
||||
#define ID_EDIT_CLEAR 0xE120
|
||||
#define ID_EDIT_COPY 0xE122
|
||||
#define ID_EDIT_CUT 0xE123
|
||||
#define ID_EDIT_PASTE 0xE125
|
||||
#define ID_EDIT_SELECT_ALL 0xE12A
|
||||
#define ID_EDIT_UNDO 0xE12B
|
||||
#define ID_EDIT_REDO 0xE12C
|
||||
@ -164,7 +164,10 @@ void Window_setTitle(const char* title)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static int s_modifier = 0;
|
||||
void Window_populateRecentList(char** files)
|
||||
{
|
||||
(void)files;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -174,11 +177,6 @@ static int onKeyDown(WPARAM wParam, LPARAM lParam)
|
||||
|
||||
switch (wParam)
|
||||
{
|
||||
case VK_SHIFT: s_modifier |= EMGUI_KEY_SHIFT; break;
|
||||
case VK_CONTROL: s_modifier |= EMGUI_KEY_CTRL; break;
|
||||
case VK_MENU : s_modifier |= EMGUI_KEY_ALT; break;
|
||||
case VK_LWIN :
|
||||
case VK_RWIN : s_modifier |= EMGUI_KEY_COMMAND; break;
|
||||
case VK_LEFT : key = EMGUI_ARROW_LEFT; break;
|
||||
case VK_UP : key = EMGUI_ARROW_UP; break;
|
||||
case VK_RIGHT : key = EMGUI_ARROW_RIGHT; break;
|
||||
@ -203,17 +201,19 @@ static int onKeyDown(WPARAM wParam, LPARAM lParam)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static void onKeyUp(WPARAM wParam, LPARAM lParam)
|
||||
static int getModifiers()
|
||||
{
|
||||
switch (wParam)
|
||||
{
|
||||
case VK_SHIFT: s_modifier &= ~EMGUI_KEY_SHIFT; break;
|
||||
case VK_CONTROL: s_modifier &= ~EMGUI_KEY_CTRL; break;
|
||||
case VK_MENU : s_modifier &= ~EMGUI_KEY_ALT; break;
|
||||
case VK_LWIN :
|
||||
case VK_RWIN : s_modifier &= ~EMGUI_KEY_COMMAND; break;
|
||||
}
|
||||
int modifiers = 0;
|
||||
|
||||
modifiers |= GetKeyState(VK_SHIFT) < 0 ? EMGUI_KEY_SHIFT : 0;
|
||||
modifiers |= GetKeyState(VK_CONTROL) < 0 ? EMGUI_KEY_CTRL : 0;
|
||||
modifiers |= GetKeyState(VK_MENU) < 0 ? EMGUI_KEY_ALT : 0;
|
||||
modifiers |= GetKeyState(VK_LWIN) < 0 ? EMGUI_KEY_COMMAND : 0;
|
||||
modifiers |= GetKeyState(VK_RWIN) < 0 ? EMGUI_KEY_COMMAND : 0;
|
||||
|
||||
return modifiers;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
LRESULT CALLBACK WndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
@ -259,21 +259,15 @@ LRESULT CALLBACK WndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam
|
||||
|
||||
if (key != -1)
|
||||
{
|
||||
Emgui_sendKeyinput(key, s_modifier);
|
||||
Editor_keyDown(key, -1, s_modifier);
|
||||
int modifier = getModifiers();
|
||||
Emgui_sendKeyinput(key, modifier);
|
||||
Editor_keyDown(key, -1, modifier);
|
||||
Editor_update();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_KEYUP:
|
||||
case WM_SYSKEYUP:
|
||||
{
|
||||
onKeyUp(wParam, lParam);
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_COMMAND:
|
||||
{
|
||||
switch (LOWORD(wParam))
|
||||
@ -282,7 +276,6 @@ LRESULT CALLBACK WndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam
|
||||
{
|
||||
Editor_menuEvent(EDITOR_MENU_OPEN);
|
||||
Editor_update();
|
||||
s_modifier = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
16
units.lua
16
units.lua
@ -77,7 +77,7 @@ Program {
|
||||
"../../../../../emgui/src",
|
||||
"ogl_editor/External/mxml" },
|
||||
PROGOPTS = {
|
||||
{ "/SUBSYSTEM:WINDOWS", "/ENTRY:mainCRTStartup", "/DEBUG"; Config = { "win32-*-*", "win64-*-*" } },
|
||||
{ "/SUBSYSTEM:WINDOWS", "/DEBUG"; Config = { "win32-*-*", "win64-*-*" } },
|
||||
},
|
||||
|
||||
CPPDEFS = {
|
||||
@ -100,11 +100,13 @@ Program {
|
||||
{ Pattern = "windows"; Config = { "win32-*-*", "win64-*-*" } },
|
||||
},
|
||||
},
|
||||
|
||||
{ "ogl_editor/data/windows/editor.rc" ; Config = { "win32-*-*", "win64-*-*" } },
|
||||
},
|
||||
|
||||
Depends = { "sync", "mxml", "emgui" },
|
||||
|
||||
Libs = { { "wsock32.lib", "opengl32.lib", "glu32.lib", "kernel32.lib", "user32.lib", "gdi32.lib" ; Config = "win32-*-*" } },
|
||||
Libs = { { "wsock32.lib", "opengl32.lib", "glu32.lib", "kernel32.lib", "user32.lib", "gdi32.lib", "Comdlg32.lib" ; Config = "win32-*-*" } },
|
||||
|
||||
Frameworks = { "Cocoa", "OpenGL" },
|
||||
|
||||
@ -122,13 +124,13 @@ local rocketBundle = OsxBundle
|
||||
},
|
||||
}
|
||||
|
||||
--local native = require('tundra.native')
|
||||
local native = require('tundra.native')
|
||||
|
||||
--if native.host_platform == "macosx" then
|
||||
if native.host_platform == "macosx" then
|
||||
Default(rocketBundle)
|
||||
--#else
|
||||
-- Default "editor"
|
||||
--end
|
||||
else
|
||||
Default "editor"
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user