Win32 fixes (esp for modifier key handling)

This commit is contained in:
Daniel Collin 2012-12-31 19:50:57 +01:00
parent 11be62cdcf
commit 31e19296f8
3 changed files with 39 additions and 32 deletions

View 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

View File

@ -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;
}
}

View File

@ -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