WIP on Win32 support
This commit is contained in:
parent
a93e423764
commit
485ee6ec95
@ -2,7 +2,6 @@
|
|||||||
#include <emgui/emgui.h>
|
#include <emgui/emgui.h>
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// On win32 (where we use unicode for text-strings) this is defined already
|
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#define _T(v) v
|
#define _T(v) v
|
||||||
@ -60,28 +59,22 @@ MenuDescriptor g_viewMenu[] =
|
|||||||
{
|
{
|
||||||
{ _T("Start/Stop Playback"), EDITOR_MENU_PLAY, EMGUI_KEY_SPACE, 0, 0 },
|
{ _T("Start/Stop Playback"), EDITOR_MENU_PLAY, EMGUI_KEY_SPACE, 0, 0 },
|
||||||
{ _T(""), EDITOR_MENU_SEPARATOR, 0, 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 8 rows up"), EDITOR_MENU_ROWS_UP, EMGUI_KEY_ARROW_UP, EMGUI_KEY_ALT, EMGUI_KEY_ALT },
|
||||||
// { _T("Jump one row down"), EDITOR_MENU_ROW_DOWN, EMGUI_KEY_ARROW_DOWN, 0, 0 },
|
{ _T("Jump 8 rows down"), EDITOR_MENU_ROWS_DOWN, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_ALT, EMGUI_KEY_ALT },
|
||||||
// { _T("Jump one track left"), EDITOR_MENU_TRACK_LEFT, EMGUI_KEY_ARROW_LEFT, 0, 0 },
|
{ _T("Jump to previous bookmark"), EDITOR_MENU_PREV_BOOKMARK, EMGUI_KEY_ARROW_UP, EMGUI_KEY_COMMAND, EMGUI_KEY_ALT | EMGUI_KEY_WIN },
|
||||||
// { _T("Jump one track right"), EDITOR_MENU_TRACK_RIGHT, EMGUI_KEY_ARROW_RIGHT, 0, 0 },
|
{ _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(""), EDITOR_MENU_SEPARATOR, 0, 0, 0 },
|
||||||
{ _T("Jump 8 rows up"), EDITOR_MENU_ROWS_UP, EMGUI_KEY_ARROW_UP, EMGUI_KEY_ALT, 0 },
|
{ _T("Fold track"), EDITOR_MENU_FOLD_TRACK, EMGUI_KEY_ARROW_LEFT, EMGUI_KEY_ALT, EMGUI_KEY_ALT },
|
||||||
{ _T("Jump 8 rows down"), EDITOR_MENU_ROWS_DOWN, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_ALT, 0 },
|
{ _T("Unfold track"), EDITOR_MENU_UNFOLD_TRACK, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_ALT, EMGUI_KEY_ALT },
|
||||||
{ _T("Jump to previous bookmark"), EDITOR_MENU_PREV_BOOKMARK, EMGUI_KEY_ARROW_UP, EMGUI_KEY_COMMAND, 0 },
|
{ _T("Fold group"), EDITOR_MENU_FOLD_GROUP, EMGUI_KEY_ARROW_LEFT, EMGUI_KEY_ALT | EMGUI_KEY_CTRL, EMGUI_KEY_ALT | EMGUI_KEY_CTRL },
|
||||||
{ _T("Jump to next bookmark"), EDITOR_MENU_NEXT_BOOKMARK, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_COMMAND, 0 },
|
{ _T("Unfold group"), EDITOR_MENU_UNFOLD_GROUP, EMGUI_KEY_ARROW_RIGHT, EMGUI_KEY_ALT | EMGUI_KEY_CTRL, EMGUI_KEY_ALT | EMGUI_KEY_CTRL },
|
||||||
{ _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(""), EDITOR_MENU_SEPARATOR, 0, 0, 0 },
|
{ _T(""), EDITOR_MENU_SEPARATOR, 0, 0, 0 },
|
||||||
{ _T("Toogle bookmark"), EDITOR_MENU_TOGGLE_BOOKMARK, 'b', 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("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 },
|
{ _T("Jump row,start/end & edit"), EDITOR_MENU_TAB, EMGUI_KEY_TAB, 0, 0 },
|
||||||
{ 0 },
|
{ 0 },
|
||||||
};
|
};
|
||||||
|
|||||||
@ -88,7 +88,7 @@ typedef struct MenuDescriptor
|
|||||||
int id;
|
int id;
|
||||||
int key;
|
int key;
|
||||||
int macMod;
|
int macMod;
|
||||||
int winMid;
|
int winMod;
|
||||||
} MenuDescriptor;
|
} MenuDescriptor;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@ -161,6 +161,70 @@ bool createWindow(const wchar_t* title, int width, int height)
|
|||||||
return TRUE;
|
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)
|
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
|
else
|
||||||
{
|
{
|
||||||
wchar_t temp[256];
|
wchar_t temp[256];
|
||||||
wsprintf(temp, L"%s\tCtrl-X", desc->name);
|
formatName(temp, desc->winMod, desc->key, desc->name);
|
||||||
//&New\tCtrl+N
|
|
||||||
AppendMenu(menu, MF_STRING, desc->id, temp);
|
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))
|
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_menuEvent(LOWORD(wParam));
|
||||||
Editor_update();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user