WIP on Win32 support
This commit is contained in:
parent
a93e423764
commit
485ee6ec95
@ -2,7 +2,6 @@
|
||||
#include <emgui/emgui.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// On win32 (where we use unicode for text-strings) this is defined already
|
||||
|
||||
#ifndef _WIN32
|
||||
#define _T(v) v
|
||||
@ -60,28 +59,22 @@ MenuDescriptor g_viewMenu[] =
|
||||
{
|
||||
{ _T("Start/Stop Playback"), EDITOR_MENU_PLAY, EMGUI_KEY_SPACE, 0, 0 },
|
||||
{ _T(""), EDITOR_MENU_SEPARATOR, 0, 0, 0 },
|
||||
// { _T("Jump one row up"), EDITOR_MENU_ROW_UP, EMGUI_KEY_ARROW_UP, 0, 0 },
|
||||
// { _T("Jump one row down"), EDITOR_MENU_ROW_DOWN, EMGUI_KEY_ARROW_DOWN, 0, 0 },
|
||||
// { _T("Jump one track left"), EDITOR_MENU_TRACK_LEFT, EMGUI_KEY_ARROW_LEFT, 0, 0 },
|
||||
// { _T("Jump one track right"), EDITOR_MENU_TRACK_RIGHT, EMGUI_KEY_ARROW_RIGHT, 0, 0 },
|
||||
{ _T("Jump 8 rows up"), EDITOR_MENU_ROWS_UP, EMGUI_KEY_ARROW_UP, EMGUI_KEY_ALT, EMGUI_KEY_ALT },
|
||||
{ _T("Jump 8 rows down"), EDITOR_MENU_ROWS_DOWN, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_ALT, EMGUI_KEY_ALT },
|
||||
{ _T("Jump to previous bookmark"), EDITOR_MENU_PREV_BOOKMARK, EMGUI_KEY_ARROW_UP, EMGUI_KEY_COMMAND, EMGUI_KEY_ALT | EMGUI_KEY_WIN },
|
||||
{ _T("Jump to next bookmark"), EDITOR_MENU_NEXT_BOOKMARK, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_COMMAND, EMGUI_KEY_ALT | EMGUI_KEY_WIN },
|
||||
{ _T("Jump to first track"), EDITOR_MENU_FIRST_TRACK, EMGUI_KEY_ARROW_LEFT, EMGUI_KEY_COMMAND, EMGUI_KEY_CTRL },
|
||||
{ _T("Jump to last track"), EDITOR_MENU_LAST_TRACK, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_COMMAND, EMGUI_KEY_CTRL },
|
||||
{ _T("Jump to previous key"), EDITOR_MENU_PREV_KEY, EMGUI_KEY_ARROW_UP, EMGUI_KEY_CTRL, EMGUI_KEY_CTRL },
|
||||
{ _T("Jump to next key"), EDITOR_MENU_NEXT_KEY, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_CTRL, EMGUI_KEY_CTRL },
|
||||
{ _T(""), EDITOR_MENU_SEPARATOR, 0, 0, 0 },
|
||||
{ _T("Jump 8 rows up"), EDITOR_MENU_ROWS_UP, EMGUI_KEY_ARROW_UP, EMGUI_KEY_ALT, 0 },
|
||||
{ _T("Jump 8 rows down"), EDITOR_MENU_ROWS_DOWN, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_ALT, 0 },
|
||||
{ _T("Jump to previous bookmark"), EDITOR_MENU_PREV_BOOKMARK, EMGUI_KEY_ARROW_UP, EMGUI_KEY_COMMAND, 0 },
|
||||
{ _T("Jump to next bookmark"), EDITOR_MENU_NEXT_BOOKMARK, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_COMMAND, 0 },
|
||||
{ _T("Jump to first track"), EDITOR_MENU_FIRST_TRACK, EMGUI_KEY_ARROW_LEFT, EMGUI_KEY_COMMAND, 0 },
|
||||
{ _T("Jump to last track"), EDITOR_MENU_LAST_TRACK, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_COMMAND, 0 },
|
||||
{ _T("Jump to previous key"), EDITOR_MENU_PREV_KEY, EMGUI_KEY_ARROW_UP, EMGUI_KEY_CTRL, 0 },
|
||||
{ _T("Jump to next key"), EDITOR_MENU_NEXT_KEY, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_CTRL, 0 },
|
||||
{ _T(""), EDITOR_MENU_SEPARATOR, 0, 0, 0 },
|
||||
{ _T("Fold track"), EDITOR_MENU_FOLD_TRACK, EMGUI_KEY_ARROW_LEFT, EMGUI_KEY_ALT, 0 },
|
||||
{ _T("Unfold track"), EDITOR_MENU_UNFOLD_TRACK, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_ALT, 0 },
|
||||
{ _T("Fold group"), EDITOR_MENU_FOLD_GROUP, EMGUI_KEY_ARROW_LEFT, EMGUI_KEY_ALT | EMGUI_KEY_CTRL, 0 },
|
||||
{ _T("Unfold group"), EDITOR_MENU_UNFOLD_GROUP, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_ALT | EMGUI_KEY_CTRL, 0 },
|
||||
{ _T("Fold track"), EDITOR_MENU_FOLD_TRACK, EMGUI_KEY_ARROW_LEFT, EMGUI_KEY_ALT, EMGUI_KEY_ALT },
|
||||
{ _T("Unfold track"), EDITOR_MENU_UNFOLD_TRACK, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_ALT, EMGUI_KEY_ALT },
|
||||
{ _T("Fold group"), EDITOR_MENU_FOLD_GROUP, EMGUI_KEY_ARROW_LEFT, EMGUI_KEY_ALT | EMGUI_KEY_CTRL, EMGUI_KEY_ALT | EMGUI_KEY_CTRL },
|
||||
{ _T("Unfold group"), EDITOR_MENU_UNFOLD_GROUP, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_ALT | EMGUI_KEY_CTRL, EMGUI_KEY_ALT | EMGUI_KEY_CTRL },
|
||||
{ _T(""), EDITOR_MENU_SEPARATOR, 0, 0, 0 },
|
||||
{ _T("Toogle bookmark"), EDITOR_MENU_TOGGLE_BOOKMARK, 'b', 0, 0 },
|
||||
{ _T("Clear bookmarks"), EDITOR_MENU_CLEAR_BOOKMARKS, 'b', EMGUI_KEY_COMMAND, EMGUI_KEY_CTRL },
|
||||
{ _T("Unfold track"), EDITOR_MENU_UNFOLD_TRACK, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_ALT, 0 },
|
||||
{ _T("Jump row,start/end & edit"), EDITOR_MENU_TAB, EMGUI_KEY_TAB, 0, 0 },
|
||||
{ 0 },
|
||||
};
|
||||
|
||||
@ -88,7 +88,7 @@ typedef struct MenuDescriptor
|
||||
int id;
|
||||
int key;
|
||||
int macMod;
|
||||
int winMid;
|
||||
int winMod;
|
||||
} MenuDescriptor;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -161,6 +161,70 @@ bool createWindow(const wchar_t* title, int width, int height)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static ACCEL s_accelTable[512];
|
||||
static int s_accelCount = 0;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static void formatName(wchar_t* outName, int keyMod, int key, const wchar_t* name)
|
||||
{
|
||||
wchar_t modName[64] = L"";
|
||||
wchar_t keyName[64] = L"";
|
||||
|
||||
if ((keyMod & EMGUI_KEY_WIN))
|
||||
wcscat(modName, L"Win - ");
|
||||
|
||||
if ((keyMod & EMGUI_KEY_CTRL))
|
||||
wcscat(modName, L"Ctrl - ");
|
||||
|
||||
if ((keyMod & EMGUI_KEY_ALT))
|
||||
wcscat(modName, L"Alt - ");
|
||||
|
||||
if ((keyMod & EMGUI_KEY_SHIFT))
|
||||
wcscat(modName, L"Alt - ");
|
||||
|
||||
if (key < 127)
|
||||
{
|
||||
keyName[0] = (wchar_t)(char)(key & ~0x20);
|
||||
keyName[1] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (key)
|
||||
{
|
||||
case EMGUI_KEY_ARROW_DOWN : wcscpy_s(keyName, sizeof(keyName), L"Down"); break;
|
||||
case EMGUI_KEY_ARROW_UP: wcscpy_s(keyName, sizeof(keyName), L"Up"); break;
|
||||
case EMGUI_KEY_ARROW_RIGHT: wcscpy_s(keyName, sizeof(keyName), L"Right"); break;
|
||||
case EMGUI_KEY_ARROW_LEFT: wcscpy_s(keyName, sizeof(keyName), L"Left"); break;
|
||||
case EMGUI_KEY_ESC: wcscpy_s(keyName, sizeof(keyName), L"ESC"); break;
|
||||
case EMGUI_KEY_TAB: wcscpy_s(keyName, sizeof(keyName), L"TAB"); break;
|
||||
case EMGUI_KEY_BACKSPACE: wcscpy_s(keyName, sizeof(keyName), L"Delete"); break;
|
||||
case EMGUI_KEY_ENTER: wcscpy_s(keyName, sizeof(keyName), L"Enter"); break;
|
||||
case EMGUI_KEY_SPACE: wcscpy_s(keyName, sizeof(keyName), L"Space"); break;
|
||||
}
|
||||
}
|
||||
|
||||
wsprintf(outName, L"%s\t%s%s", name, modName, keyName);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*
|
||||
static void addAccelarator(const MenuDescriptor* desc)
|
||||
{
|
||||
uint8_t virt = 0;
|
||||
uint32_t winMod = desc->winMod;
|
||||
uint32_t key = desc->key;
|
||||
|
||||
if (winMod & EMGUI_KEY_ALT)
|
||||
virt |= 0x10;
|
||||
if (winMod & EMGUI_KEY_CTRL)
|
||||
virt |= 0x08;
|
||||
//if (key > 127)
|
||||
// virt
|
||||
}
|
||||
*/
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static void buildSubMenu(HMENU parentMenu, MenuDescriptor menuDesc[], wchar_t* name)
|
||||
@ -182,8 +246,7 @@ static void buildSubMenu(HMENU parentMenu, MenuDescriptor menuDesc[], wchar_t* n
|
||||
else
|
||||
{
|
||||
wchar_t temp[256];
|
||||
wsprintf(temp, L"%s\tCtrl-X", desc->name);
|
||||
//&New\tCtrl+N
|
||||
formatName(temp, desc->winMod, desc->key, desc->name);
|
||||
AppendMenu(menu, MF_STRING, desc->id, temp);
|
||||
}
|
||||
|
||||
@ -346,10 +409,53 @@ LRESULT CALLBACK WndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam
|
||||
{
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case ID_FILE_OPEN:
|
||||
case EDITOR_MENU_OPEN:
|
||||
case EDITOR_MENU_SAVE:
|
||||
case EDITOR_MENU_SAVE_AS:
|
||||
case EDITOR_MENU_REMOTE_EXPORT:
|
||||
case EDITOR_MENU_RECENT_FILE_0:
|
||||
case EDITOR_MENU_RECENT_FILE_1:
|
||||
case EDITOR_MENU_RECENT_FILE_2:
|
||||
case EDITOR_MENU_RECENT_FILE_3:
|
||||
case EDITOR_MENU_UNDO:
|
||||
case EDITOR_MENU_REDO:
|
||||
case EDITOR_MENU_CANCEL_EDIT:
|
||||
case EDITOR_MENU_DELETE_KEY:
|
||||
case EDITOR_MENU_CUT:
|
||||
case EDITOR_MENU_COPY:
|
||||
case EDITOR_MENU_PASTE:
|
||||
case EDITOR_MENU_SELECT_TRACK:
|
||||
case EDITOR_MENU_BIAS_P_001:
|
||||
case EDITOR_MENU_BIAS_P_01:
|
||||
case EDITOR_MENU_BIAS_P_1:
|
||||
case EDITOR_MENU_BIAS_P_10:
|
||||
case EDITOR_MENU_BIAS_P_100:
|
||||
case EDITOR_MENU_BIAS_P_1000:
|
||||
case EDITOR_MENU_BIAS_N_001:
|
||||
case EDITOR_MENU_BIAS_N_01:
|
||||
case EDITOR_MENU_BIAS_N_1:
|
||||
case EDITOR_MENU_BIAS_N_10:
|
||||
case EDITOR_MENU_BIAS_N_100:
|
||||
case EDITOR_MENU_BIAS_N_1000:
|
||||
case EDITOR_MENU_INTERPOLATION:
|
||||
case EDITOR_MENU_ENTER_CURRENT_V:
|
||||
case EDITOR_MENU_PLAY:
|
||||
case EDITOR_MENU_ROWS_UP:
|
||||
case EDITOR_MENU_ROWS_DOWN:
|
||||
case EDITOR_MENU_PREV_BOOKMARK:
|
||||
case EDITOR_MENU_NEXT_BOOKMARK:
|
||||
case EDITOR_MENU_FIRST_TRACK:
|
||||
case EDITOR_MENU_LAST_TRACK:
|
||||
case EDITOR_MENU_PREV_KEY:
|
||||
case EDITOR_MENU_NEXT_KEY:
|
||||
case EDITOR_MENU_FOLD_TRACK:
|
||||
case EDITOR_MENU_UNFOLD_TRACK:
|
||||
case EDITOR_MENU_FOLD_GROUP:
|
||||
case EDITOR_MENU_UNFOLD_GROUP:
|
||||
case EDITOR_MENU_TOGGLE_BOOKMARK:
|
||||
case EDITOR_MENU_CLEAR_BOOKMARKS:
|
||||
{
|
||||
//Editor_menuEvent(EDITOR_MENU_OPEN);
|
||||
Editor_update();
|
||||
Editor_menuEvent(LOWORD(wParam));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user