diff --git a/editor/editor.rc b/editor/editor.rc index 9a02adc..c2f8690 100644 --- a/editor/editor.rc +++ b/editor/editor.rc @@ -82,7 +82,11 @@ BEGIN MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE MENUITEM "Save &As", ID_FILE_SAVE_AS MENUITEM SEPARATOR - MENUITEM "Remote Export\tCtrl+E", ID_FILE_REMOTEEXPORT + MENUITEM "Remote &Export\tCtrl+E", ID_FILE_REMOTEEXPORT + POPUP "Recent &Files" + BEGIN + MENUITEM "No recent files", ID_RECENTFILES_NORECENTFILES, GRAYED + END MENUITEM SEPARATOR MENUITEM "E&xit", ID_FILE_EXIT END diff --git a/editor/resource.h b/editor/resource.h index c185d88..6338ae1 100644 --- a/editor/resource.h +++ b/editor/resource.h @@ -6,28 +6,36 @@ #define IDR_MENU 102 #define IDD_SETROWS 103 #define IDD_BIASSELECTION 104 + #define IDC_EDIT 1002 #define IDC_SETROWS_EDIT 1002 #define IDC_BIASSELECTION_EDIT 1003 + #define ID_FILE 40001 #define ID_FILE_EXIT 40002 -#define ID_EDIT 40003 -#define ID_EDIT_SETROWS 40007 -#define ID_EDIT_BIAS 40008 -#define ID_EDIT_CLEAR40011 40011 -#define ID_EDIT_SELECTALL 40012 -#define ID_EDIT_SELECTROW 40013 -#define ID_EDIT_SELECTTRACK 40014 -#define ID_FILE_NEW40015 40015 -#define ID_FILE_REMOTEEXPORT 40016 -#define ID_ACCELERATOR40019 40019 +#define ID_FILE_REMOTEEXPORT 40003 +#define ID_FILE_RECENTFILES 40004 + +#define ID_RECENTFILES_NORECENTFILES 40010 +#define ID_RECENTFILES_FILE1 40011 +#define ID_RECENTFILES_FILE2 40012 +#define ID_RECENTFILES_FILE3 40013 +#define ID_RECENTFILES_FILE4 40014 +#define ID_RECENTFILES_FILE5 40015 + +#define ID_EDIT 40020 +#define ID_EDIT_SETROWS 40021 +#define ID_EDIT_BIAS 40022 +#define ID_EDIT_SELECTALL 40023 +#define ID_EDIT_SELECTROW 40024 +#define ID_EDIT_SELECTTRACK 40025 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 104 -#define _APS_NEXT_COMMAND_VALUE 40021 +#define _APS_NEXT_COMMAND_VALUE 40026 #define _APS_NEXT_CONTROL_VALUE 1004 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/editor/synctracker2.cpp b/editor/synctracker2.cpp index 5dce4cb..27c43a0 100644 --- a/editor/synctracker2.cpp +++ b/editor/synctracker2.cpp @@ -207,6 +207,24 @@ void fileSave() } } +HMENU findSubMenuContaining(HMENU menu, UINT id) +{ + for (int i = 0; i < GetMenuItemCount(menu); ++i) + { + if (GetMenuItemID(menu, i) == id) return menu; + else + { + HMENU subMenu = GetSubMenu(menu, i); + if ((HMENU)0 != subMenu) + { + HMENU ret = findSubMenuContaining(subMenu, id); + if ((HMENU)0 != ret) return ret; + } + } + } + return (HMENU)0; +} + static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) @@ -234,6 +252,19 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA SendMessage(statusBarWin, SB_SETTEXT, 1, (LPARAM)_T("0")); SendMessage(statusBarWin, SB_SETTEXT, 2, (LPARAM)_T("0")); SendMessage(statusBarWin, SB_SETTEXT, 3, (LPARAM)_T("---")); + +#if 0 + /* mock up a Recent Files menu */ + HMENU lruFileMenu = findSubMenuContaining(GetMenu(hwnd), ID_RECENTFILES_NORECENTFILES); + RemoveMenu(lruFileMenu, 0, MF_BYPOSITION); + for (int i = 0; i < 5; ++i) + { + char temp[256]; + _snprintf(temp, 256, "&%d test%d.ROCKET", i + 1, i); + InsertMenu(lruFileMenu, -1, MF_BYPOSITION | MF_STRING, ID_RECENTFILES_FILE1 + i, temp); + } + DrawMenuBar(hwnd); +#endif } break;