OSDN Git Service

Make recently used files or folders openable from the toolbar.
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Fri, 5 Feb 2021 12:43:46 +0000 (21:43 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Fri, 5 Feb 2021 12:43:46 +0000 (21:43 +0900)
Src/MainFrm.cpp
Src/Merge.rc
Src/resource.h

index 30195fe..560f5c4 100644 (file)
@@ -2069,7 +2069,7 @@ BOOL CMainFrame::CreateToolbar()
        LoadToolbarImages();
 
        UINT nID, nStyle;
-       for (auto cmd : { ID_OPTIONS, ID_FILE_NEW })
+       for (auto cmd : { ID_OPTIONS, ID_FILE_NEW, ID_FILE_OPEN })
        {
                int iImage;
                int index = m_wndToolBar.GetToolBarCtrl().CommandToIndex(cmd);
@@ -2400,7 +2400,19 @@ void CMainFrame::OnToolbarButtonDropDown(NMHDR* pNMHDR, LRESULT* pResult)
        LPNMTOOLBAR pToolBar = reinterpret_cast<LPNMTOOLBAR>(pNMHDR);
        ClientToScreen(&(pToolBar->rcButton));
        BCMenu menu;
-       int id = (pToolBar->iItem == ID_FILE_NEW) ? IDR_POPUP_NEW : IDR_POPUP_DIFF_OPTIONS;
+       int id;
+       switch (pToolBar->iItem)
+       {
+       case ID_FILE_NEW:
+               id = IDR_POPUP_NEW;
+               break;
+       case ID_FILE_OPEN:
+               id = IDR_POPUP_OPEN;
+               break;
+       default:
+               id = IDR_POPUP_DIFF_OPTIONS;
+               break;
+       }
        VERIFY(menu.LoadMenu(id));
        theApp.TranslateMenu(menu.m_hMenu);
        CMenu* pPopup = menu.GetSubMenu(0);
@@ -2500,9 +2512,10 @@ void CMainFrame::OnMRUs(UINT nID)
 void CMainFrame::OnUpdateNoMRUs(CCmdUI* pCmdUI)
 {
        // append the MRU submenu
-       HMENU hMenu = pCmdUI->m_pSubMenu ? pCmdUI->m_pSubMenu->m_hMenu : nullptr;
-       if (hMenu == nullptr)
+       CMenu *pMenu = pCmdUI->m_pSubMenu ? pCmdUI->m_pSubMenu : pCmdUI->m_pMenu;
+       if (pMenu == nullptr)
                return;
+       HMENU hMenu = pMenu->m_hMenu;
        
        // empty the menu
        size_t i = ::GetMenuItemCount(hMenu);
index dae21cd..be90d6a 100644 (file)
@@ -882,6 +882,14 @@ BEGIN
     END\r
 END\r
 \r
+IDR_POPUP_OPEN MENU\r
+BEGIN\r
+    POPUP "_POPUP_"\r
+    BEGIN\r
+        MENUITEM "< Empty >",                   ID_NO_MRU\r
+    END\r
+END\r
+\r
 IDR_POPUP_PROJECT MENU\r
 BEGIN\r
     POPUP "_POPUP_"\r
index 87e2739..28f0882 100644 (file)
@@ -18,6 +18,7 @@
 #define IDR_POPUP_PROJECT               115\r
 #define IDR_POPUP_MERGEEDITFRAME_STATUSBAR_EOL 116\r
 #define IDR_POPUP_NEW                   117\r
+#define IDR_POPUP_OPEN                  118\r
 #define IDD_ABOUTBOX                    200\r
 #define IDD_OPEN                        202\r
 #define IDD_PROPPAGE_GENERAL            205\r