// MainFrm.cpp // // (c)1998-2025 Codejock Software, All Rights Reserved. // // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN // CONSENT OF CODEJOCK SOFTWARE. // // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A // SINGLE COMPUTER. // // CONTACT INFORMATION: // support@codejock.com // http://www.codejock.com // ///////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "CommandBarsDesigner.h" #include "MainFrm.h" #include "CommandBarsDesignerDoc.h" #include "CommandBarsDesignerView.h" #include "ChildFrm.h" #ifdef _DEBUG # define new DEBUG_NEW # undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMainFrame IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_DESTROY() ON_WM_MOVE() ON_WM_WINDOWPOSCHANGED() ON_WM_CLOSE() ON_COMMAND(ID_VIEW_PROPERTIES, OnViewProperties) ON_COMMAND(ID_VIEW_COMMANDBARS, OnViewCommandBars) ON_COMMAND(ID_VIEW_ACCELERATORS, OnViewAccelerators) ON_COMMAND(ID_VIEW_CONTROLSPANE, OnViewControlspane) ON_COMMAND(ID_VIEW_ICONSPANE, OnViewIconspane) ON_COMMAND(ID_VIEW_TOOLBARSPANE, OnViewToolbarspane) ON_COMMAND(ID_VIEW_LIBRARY, OnViewLibrary) ON_COMMAND(ID_FILE_IMPORT_XMLDOCUMENT, OnFileImportXmldocument) ON_UPDATE_COMMAND_UI(ID_FILE_IMPORT_XMLDOCUMENT, OnUpdateFileImportXmldocument) ON_UPDATE_COMMAND_UI(IDR_THEME, OnOptionUpdate) //}}AFX_MSG_MAP ON_COMMAND_RANGE(ID_COLORFUL_WORD, ID_WHITE_OUTLOOK, OnTheme) ON_UPDATE_COMMAND_UI_RANGE(ID_COLORFUL_WORD, ID_WHITE_OUTLOOK, OnUpdateTheme) ON_MESSAGE(XTPWM_DOCKINGPANE_NOTIFY, OnDockingPaneNotify) ON_COMMAND(XTP_ID_CUSTOMIZE, OnCustomize) ON_XTP_CREATECONTROL() END_MESSAGE_MAP() static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; ///////////////////////////////////////////////////////////////////////////// // CMainFrame construction/destruction CMainFrame::CMainFrame() { m_pActiveCommandBars = NULL; m_pActivePane = NULL; m_nTheme = 0; m_nTheme = AfxGetApp()->GetProfileInt(_T("MainFrame"), _T("ApplicationTheme"), ID_COLORFUL_WORD); TCHAR szStylesPath[_MAX_PATH]; VERIFY(::GetModuleFileName(AfxGetApp()->m_hInstance, szStylesPath, _MAX_PATH)); CString csStylesPath(szStylesPath); int nIndex = csStylesPath.ReverseFind(_T('\\')); if (nIndex > 0) { csStylesPath = csStylesPath.Left(nIndex); } else { csStylesPath.Empty(); } csStylesPath += _T("\\Styles\\Office2016.dll"); m_hModule2016.LoadLibrary(csStylesPath); } CMainFrame::~CMainFrame() { } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators) / sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return -1; // fail to create } if (!InitCommandBars()) return -1; CXTPCommandBars* pCommandBars = GetCommandBars(); pCommandBars->GetMouseManager()->EnableSkipTrackedMouseMoveDuplicates(TRUE); CXTPCommandBar* pMenuBar = pCommandBars->SetMenu(_T("Menu Bar"), IDR_MAINFRAME); pMenuBar->SetFlags(xtpFlagIgnoreSetMenuMessage | xtpFlagHideMaximizeBox | xtpFlagHideMinimizeBox); CXTPImageManager* pImageManager = pCommandBars->GetImageManager(); pImageManager->SetMaskColor(RGB(255, 0, 255)); CXTPToolBar* pCommandBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop); if (!pCommandBar || !pCommandBar->LoadToolBar(IDR_MAINFRAME, FALSE)) { TRACE0("Failed to create toolbar\n"); return -1; } XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_NEW, ID_FILE_NEW, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_OPEN, ID_FILE_OPEN, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_CLOSE, ID_FILE_CLOSE, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_SAVE, ID_FILE_SAVE, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_SAVE_AS, ID_FILE_SAVE_AS, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_CUT, ID_EDIT_CUT, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_COPY, ID_EDIT_COPY, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_PASTE, ID_EDIT_PASTE, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_UNDO, ID_EDIT_UNDO, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_SEARCH, ID_EDIT_FIND, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_REPLACE, ID_EDIT_REPLACE, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_EXIT, ID_APP_EXIT, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_ABOUT, ID_APP_ABOUT, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_GEARS, ID_VIEW_ACCELERATORS, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_VIEW, ID_VIEW_TOOLBARSPANE, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_VIEW_LARGE_ICONS, ID_VIEW_CONTROLSPANE, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_VIEW_MEDIUM_ICONS, ID_VIEW_ICONSPANE, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_SETTINGS_OPTIONS, ID_VIEW_PROPERTIES, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_VIEW, ID_VIEW_COMMANDBARS, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_NORMAL_EXECUTE, ID_VIEW_LIBRARY, XTP_DPI_X(16)); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_NEW, ID_FILE_NEW, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_OPEN, ID_FILE_OPEN, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_CLOSE, ID_FILE_CLOSE, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_SAVE, ID_FILE_SAVE, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_SAVE_AS, ID_FILE_SAVE_AS, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_CUT, ID_EDIT_CUT, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_COPY, ID_EDIT_COPY, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_PASTE, ID_EDIT_PASTE, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_UNDO, ID_EDIT_UNDO, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_SEARCH, ID_EDIT_FIND, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_REPLACE, ID_EDIT_REPLACE, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_EXIT, ID_APP_EXIT, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_ABOUT, ID_APP_ABOUT, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_GEARS, ID_VIEW_ACCELERATORS, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_VIEW, ID_VIEW_TOOLBARSPANE, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_VIEW_LARGE_ICONS, ID_VIEW_CONTROLSPANE, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_VIEW_MEDIUM_ICONS, ID_VIEW_ICONSPANE, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_SETTINGS_OPTIONS, ID_VIEW_PROPERTIES, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_VIEW, ID_VIEW_COMMANDBARS, XTP_DPI_X(16), xtpImageDisabled); XTPImageManager()->SetVectorIcon(_T("RT_XAML"), IDR_XAML_ICON_DISABLED_EXECUTE, ID_VIEW_LIBRARY, XTP_DPI_X(16), xtpImageDisabled); if (m_hModule2016.GetModuleState() == CXTPModuleHandle::xtpModLoaded) { if (m_nTheme == 0) m_nTheme = ID_COLORFUL_WORD; OnTheme(m_nTheme); } else { m_nTheme = 0; m_nCurrentTheme = DefaultTheme; m_csPane.RefreshMetrics(xtpPaneThemeDefault); } pCommandBars->GetCommandBarsOptions()->ShowKeyboardCues(xtpKeyboardCuesShowWindowsDefault); m_paneManager.InstallDockingPanes(this); // Create docking panes. CXTPDockingPane* pPaneToolbars = m_paneManager.CreatePane(IDR_PANE_TOOLBARS, XTP_DPI_RECT(CRect(0, 0, 200, 120)), xtpPaneDockRight); CXTPDockingPane* pPaneControls = m_paneManager.CreatePane(IDR_PANE_CONTROLS, XTP_DPI_RECT(CRect(0, 0, 200, 120)), xtpPaneDockRight); m_paneManager.AttachPane(pPaneControls, pPaneToolbars); CXTPDockingPane* pPaneProperties = m_paneManager.CreatePane(IDR_PANE_PROPERTIES, XTP_DPI_RECT(CRect(0, 0, 200, 120)), xtpPaneDockBottom, pPaneToolbars); CXTPDockingPane* pPaneCommandBars = m_paneManager.CreatePane(IDR_PANE_COMMANDBARS, XTP_DPI_RECT(CRect(0, 0, 200, 120)), xtpPaneDockBottom, pPaneToolbars); m_paneManager.AttachPane(pPaneCommandBars, pPaneProperties); CXTPDockingPane* pPaneAccelerators = m_paneManager.CreatePane( IDR_PANE_ACCELERATORS, XTP_DPI_RECT(CRect(0, 0, 200, 120)), xtpPaneDockLeft); CXTPDockingPane* pPaneIcons = m_paneManager.CreatePane(IDR_PANE_ICONS, XTP_DPI_RECT(CRect(0, 0, 200, 120)), xtpPaneDockLeft, pPaneAccelerators); CXTPDockingPane* pPaneLibrary = m_paneManager.CreatePane(IDR_PANE_LIBRARY, XTP_DPI_RECT(CRect(0, 0, 200, 120)), xtpPaneDockBottom, pPaneIcons); m_paneManager.AttachPane(pPaneAccelerators, pPaneIcons); pPaneAccelerators->Hide(); pPaneLibrary->Hide(); VERIFY(m_MTIClientWnd.Attach(this)); m_MTIClientWnd.SetFlags(xtpWorkspaceHideArrowsAlways | xtpWorkspaceShowActiveFiles); m_MTIClientWnd.GetPaintManager()->m_clientFrame = xtpTabFrameNone; CXTPTabColorSetOffice2013* pTabColorSetOffice2013 = static_cast( m_MTIClientWnd.GetPaintManager()->GetColorSet()); m_MTIClientWnd.GetPaintManager()->GetColorSet()->m_clrTabClientBack = pTabColorSetOffice2013->m_clrButtonNormal; m_MTIClientWnd.GetPaintManager()->GetColorSet()->m_clrTabClientBorder = pTabColorSetOffice2013->m_clrButtonNormal; // Load the previous state for docking panes. CXTPDockingPaneLayout layoutNormal(&m_paneManager); if (layoutNormal.Load(_T("StandardLayout"))) { if (layoutNormal.GetPaneList().GetCount() == 7) { m_paneManager.SetLayout(&layoutNormal); } } m_paneManager.SetAlphaDockingContext(TRUE); m_paneManager.SetShowDockingContextStickers(TRUE); m_paneManager.SetDockingContextStickerStyle( (ID_BLACK_WORD <= m_nTheme && m_nTheme <= ID_BLACK_OUTLOOK) ? xtpPaneStickerStyleVisualStudio2015Dark : xtpPaneStickerStyleVisualStudio2015Light); m_paneManager.SetShowContentsWhileDragging(); // Load the previous state for toolbars and menus. LoadCommandBars(_T("CommandBars2")); return 0; } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if (!CMDIFrameWnd::PreCreateWindow(cs)) return FALSE; cs.lpszClass = _T("XTPMainFrame"); CXTPDrawHelpers::RegisterWndClass(AfxGetInstanceHandle(), cs.lpszClass, CS_DBLCLKS, AfxGetApp()->LoadIcon(IDR_MAINFRAME)); return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CMainFrame diagnostics #ifdef _DEBUG void CMainFrame::AssertValid() const { CMDIFrameWnd::AssertValid(); } void CMainFrame::Dump(CDumpContext& dc) const { CMDIFrameWnd::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMainFrame message handlers void CMainFrame::OnDestroy() { // m_MTIClientWnd.Detach(); CMDIFrameWnd::OnDestroy(); } LRESULT CMainFrame::OnDockingPaneNotify(WPARAM wParam, LPARAM lParam) { if (wParam == XTP_DPN_ACTION) { XTP_DOCKINGPANE_ACTION* pAction = (XTP_DOCKINGPANE_ACTION*)lParam; if (pAction->action == xtpPaneActionDocked || pAction->action == xtpPaneActionExpanding) { XTPMouseManager()->SendTrackLost(); } } if (wParam == XTP_DPN_SHOWWINDOW) { CXTPDockingPane* pPane = (CXTPDockingPane*)lParam; if (!pPane->IsValid()) { switch (pPane->GetID()) { case IDR_PANE_TOOLBARS: { if (m_paneToolbars.GetSafeHwnd() == 0) { m_paneToolbars.Create(_T("STATIC"), NULL, WS_CHILD, CRect(0, 0, 0, 0), this, 0); } pPane->Attach(&m_paneToolbars); break; } case IDR_PANE_PROPERTIES: { if (m_paneProperties.GetSafeHwnd() == 0) { m_paneProperties.Create(_T("STATIC"), NULL, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, CRect(0, 0, 0, 0), this, 0); XTPMouseManager()->AddTrustedWindow(m_paneProperties); } pPane->Attach(&m_paneProperties); break; } case IDR_PANE_COMMANDBARS: { if (m_paneCommandBars.GetSafeHwnd() == 0) { m_paneCommandBars.Create(_T("STATIC"), NULL, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, CRect(0, 0, 0, 0), this, 0); XTPMouseManager()->AddTrustedWindow(m_paneCommandBars); } pPane->Attach(&m_paneCommandBars); break; } case IDR_PANE_CONTROLS: { if (m_paneControls.GetSafeHwnd() == 0) { m_paneControls.Create(_T("STATIC"), NULL, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, CRect(0, 0, 0, 0), this, 0); } pPane->Attach(&m_paneControls); break; } case IDR_PANE_ACCELERATORS: { if (m_paneAccelerators.GetSafeHwnd() == 0) { m_paneAccelerators.Create(_T("STATIC"), NULL, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, CRect(0, 0, 0, 0), this, 0); } pPane->Attach(&m_paneAccelerators); break; } case IDR_PANE_ICONS: { if (m_paneIcons.GetSafeHwnd() == 0) { m_paneIcons.Create(_T("STATIC"), NULL, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, CRect(0, 0, 0, 0), this, 0); } pPane->Attach(&m_paneIcons); break; } case IDR_PANE_LIBRARY: { if (m_paneLibrary.GetSafeHwnd() == 0) { m_paneLibrary.Create(_T("STATIC"), NULL, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, CRect(0, 0, 0, 0), this, 0); } pPane->Attach(&m_paneLibrary); break; } } RefreshPanes(); } return TRUE; } return FALSE; } void CMainFrame::RefreshPanes(BOOL bForceAll) { if (!AfxGetMainWnd()) return; if (m_pActiveCommandBars != GetActiveCommandBars()) { m_pActivePane = NULL; m_pActiveCommandBars = GetActiveCommandBars(); } if (m_paneToolbars.GetSafeHwnd()) m_paneToolbars.Refresh(); if (m_paneProperties.GetSafeHwnd()) m_paneProperties.Refresh(m_pActivePane); if (m_paneCommandBars.GetSafeHwnd()) m_paneCommandBars.Refresh(m_pActiveCommandBars); if (m_paneControls.GetSafeHwnd()) m_paneControls.Refresh(bForceAll); if (m_paneAccelerators.GetSafeHwnd()) m_paneAccelerators.Refresh(bForceAll); if (m_paneIcons.GetSafeHwnd()) m_paneIcons.Refresh(bForceAll); } CEmbeddedFrame* CMainFrame::GetActiveEmbeddedFrame() { CChildFrame* pChildFrame = DYNAMIC_DOWNCAST(CChildFrame, GetActiveFrame()); if (!pChildFrame) return NULL; CCommandBarsDesignerDoc* pDoc = DYNAMIC_DOWNCAST(CCommandBarsDesignerDoc, pChildFrame->GetActiveDocument()); if (NULL == pDoc) return NULL; return pDoc->GetFrame(); } CXTPCommandBars* CMainFrame::GetActiveCommandBars() { CEmbeddedFrame* pFrame = GetActiveEmbeddedFrame(); return pFrame ? pFrame->GetCommandBars() : NULL; } void CMainFrame::OnClose() { XTPImageManager()->RemoveAll(); if (m_nTheme == 0) m_nTheme = ID_COLORFUL_WORD; AfxGetApp()->WriteProfileInt(_T("MainFrame"), _T("ApplicationTheme"), m_nTheme); CXTPDockingPaneLayout layoutNormal(&m_paneManager); m_paneManager.GetLayout(&layoutNormal); layoutNormal.Save(_T("StandardLayout")); // Save the current state for toolbars and menus. SaveCommandBars(_T("CommandBars2")); CMDIFrameWnd::OnClose(); } void CMainFrame::OnViewProperties() { m_paneManager.ShowPane(IDR_PANE_PROPERTIES); } void CMainFrame::OnViewCommandBars() { m_paneManager.ShowPane(IDR_PANE_COMMANDBARS); } void CMainFrame::OnViewAccelerators() { m_paneManager.ShowPane(IDR_PANE_ACCELERATORS); } void CMainFrame::OnViewControlspane() { m_paneManager.ShowPane(IDR_PANE_CONTROLS); } void CMainFrame::OnViewIconspane() { m_paneManager.ShowPane(IDR_PANE_ICONS); } void CMainFrame::OnViewToolbarspane() { m_paneManager.ShowPane(IDR_PANE_TOOLBARS); } void CMainFrame::OnViewLibrary() { m_paneManager.ShowPane(IDR_PANE_LIBRARY); } XTPControlTheme CMainFrame::GetCustomizeDialogTheme() { XTPControlTheme controlTheme = xtpControlThemeDefault; XTPPaintTheme commandBarsTheme = GetCommandBars()->GetPaintManager()->GetCurrentTheme(); switch (commandBarsTheme) { case xtpThemeResource: controlTheme = xtpControlThemeResource; break; case xtpThemeRibbon: controlTheme = xtpControlThemeResource; break; // case xtpThemeOffice2013: case xtpThemeOffice2016: controlTheme = xtpControlThemeOffice2016; break; case xtpThemeVisualStudio2015: controlTheme = xtpControlThemeVisualStudio2015; break; case xtpThemeVisualStudio2017: controlTheme = xtpControlThemeVisualStudio2017; break; case xtpThemeVisualStudio2019: controlTheme = xtpControlThemeVisualStudio2019; break; case xtpThemeVisualStudio2022: controlTheme = xtpControlThemeVisualStudio2022; break; default: controlTheme = xtpControlThemeDefault; break; } return controlTheme; } void CMainFrame::OnCustomize() { // Get a pointer to the command bars object. CXTPCommandBars* pCommandBars = GetCommandBars(); if (pCommandBars != NULL) { // Instanciate the customize dialog object. CXTPCustomizeSheet dlg(pCommandBars); dlg.SetTheme(GetCustomizeDialogTheme()); // Add the options page to the customize dialog. CXTPCustomizeOptionsPage pageOptions(&dlg); dlg.AddPage(&pageOptions); // Add the commands page to the customize dialog. CXTPCustomizeCommandsPage* pCommands = dlg.GetCommandsPage(); pCommands->AddCategories(IDR_MAINFRAME); // Use the command bar manager to initialize the // customize dialog. pCommands->InsertAllCommandsCategory(); pCommands->InsertBuiltInMenus(IDR_MAINFRAME); pCommands->InsertNewMenuCategory(); // Display the dialog. dlg.DoModal(); } } void CMainFrame::OnFileImportXmldocument() { CString strFilter = _T("XML Document(*.xml)|*.xml|All files (*.*)|*.*||"); CFileDialog fd(TRUE, _T("xml"), NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, strFilter); if (fd.DoModal() != IDOK) return; CXTPPropExchangeXMLNode px(TRUE, NULL, _T("DesignerFile")); if (!px.LoadFromFile(fd.GetPathName())) return; if (!px.OnBeforeExchange()) { AfxMessageBox(_T(" node not found")); return; } CDocument* pDocument = ((CCommandBarsDesignerApp*)AfxGetApp())->m_pDocTemplate->OpenDocumentFile(NULL); POSITION pos = pDocument->GetFirstViewPosition(); CCommandBarsDesignerView* pView = (CCommandBarsDesignerView*)pDocument->GetNextView(pos); CEmbeddedFrame* pFrame = pView->GetEmbeddedFrame(); pFrame->DoPropExchange(&px); pView->OnInitialUpdate(); RefreshPanes(TRUE); } void CMainFrame::OnUpdateFileImportXmldocument(CCmdUI* pCmdUI) { pCmdUI->Enable(IsXMLEngineAvailable()); } int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl) { if (lpCreateControl->nID == ID_FILE_NEW && lpCreateControl->bToolBar) { CXTPControlPopup* pControl = CXTPControlPopup::CreateControlPopup( xtpControlSplitButtonPopup); CMenu mnu; mnu.LoadMenu(IDR_MENU_NEW); pControl->SetCommandBar(mnu.GetSubMenu(0)); lpCreateControl->pControl = pControl; return TRUE; } if (lpCreateControl->nID == IDR_THEME) { CXTPControlPopup* pControl = CXTPControlPopup::CreateControlPopup(xtpControlPopup); pControl->SetFlags(xtpFlagRightAlign); CMenu mnuOptions; mnuOptions.LoadMenu(IDR_THEME_MENU); pControl->SetCommandBar(mnuOptions.GetSubMenu(0)); pControl->SetCaption(_T("Options")); lpCreateControl->pControl = pControl; return TRUE; } return FALSE; } void CMainFrame::OnOptionUpdate(CCmdUI* pCmdUI) { pCmdUI->Enable(TRUE); } void CMainFrame::OnUpdateTheme(CCmdUI* pCmdUI) { if (m_nTheme == 0) { pCmdUI->Enable(FALSE); pCmdUI->SetCheck(FALSE); return; } pCmdUI->SetCheck(pCmdUI->m_nID == m_nTheme ? 1 : 0); } void CMainFrame::OnTheme(UINT nTheme) { if (!(m_hModule2016.GetModuleState() == CXTPModuleHandle::xtpModLoaded)) return; m_nTheme = nTheme; switch (nTheme) { case ID_COLORFUL_WORD: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016WordColorful); break; case ID_COLORFUL_EXEL: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016ExcelColorful); break; case ID_COLORFUL_ACCESS: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016AccessColorful); break; case ID_COLORFUL_PUBLISHER: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016PublisherColorful); break; case ID_COLORFUL_POWERPOINT: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016PowerPointColorful); break; case ID_COLORFUL_ONENOTE: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016OneNoteColorful); break; case ID_COLORFUL_OUTLOOK: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016OutlookColorful); break; case ID_DARKGRAY_WORD: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016WordDarkGray); break; case ID_DARKGRAY_EXEL: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016ExcelDarkGray); break; case ID_DARKGRAY_ACCESS: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016AccessDarkGray); break; case ID_DARKGRAY_PUBLISHER: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016PublisherDarkGray); break; case ID_DARKGRAY_POWERPOINT: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016PowerPointDarkGray); break; case ID_DARKGRAY_ONENOTE: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016OneNoteDarkGray); break; case ID_DARKGRAY_OUTLOOK: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016OutlookDarkGray); break; case ID_BLACK_WORD: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016WordBlack); break; case ID_BLACK_EXEL: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016ExcelBlack); break; case ID_BLACK_ACCESS: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016AccessBlack); break; case ID_BLACK_PUBLISHER: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016PublisherBlack); break; case ID_BLACK_POWERPOINT: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016PowerPointBlack); break; case ID_BLACK_ONENOTE: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016OneNoteBlack); break; case ID_BLACK_OUTLOOK: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016OutlookBlack); break; case ID_WHITE_WORD: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016WordWhite); break; case ID_WHITE_EXEL: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016ExcelWhite); break; case ID_WHITE_ACCESS: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016AccessWhite); break; case ID_WHITE_PUBLISHER: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016PublisherWhite); break; case ID_WHITE_POWERPOINT: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016PowerPointWhite); break; case ID_WHITE_ONENOTE: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016OneNoteWhite); break; case ID_WHITE_OUTLOOK: XTPResourceImages()->SetHandle(m_hModule2016, xtpIniOffice2016OutlookWhite); break; } CXTPPaintManager::SetTheme(xtpThemeOffice2013); GetCommandBars()->EnableFrameTheme(TRUE); m_nCurrentTheme = Office2016; XTPPaintManager()->GetIconsInfo()->bUseDisabledIcons = TRUE; GetCommandBars()->RedrawCommandBars(); UpdateMDIChildrenTheme(); RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE | RDW_ALLCHILDREN); m_MTIClientWnd.GetPaintManager()->m_clientFrame = xtpTabFrameNone; CXTPTabColorSetOffice2013* pTabColorSetOffice2013 = static_cast( m_MTIClientWnd.GetPaintManager()->GetColorSet()); m_MTIClientWnd.GetPaintManager()->GetColorSet()->m_clrTabClientBack = pTabColorSetOffice2013->m_clrButtonNormal; m_MTIClientWnd.GetPaintManager()->GetColorSet()->m_clrTabClientBorder = pTabColorSetOffice2013->m_clrButtonNormal; m_paneManager.SetTheme(xtpPaneThemeOffice2013); m_paneProperties.m_nTheme = Office2016; if (m_paneProperties.GetSafeHwnd() != 0) m_paneProperties.RefreshTheme(); m_paneCommandBars.m_nTheme = Office2016; if (m_paneCommandBars.GetSafeHwnd() != 0) m_paneCommandBars.RefreshTheme(); m_paneToolbars.m_nTheme = Office2016; if (m_paneToolbars.GetSafeHwnd() != 0) m_paneToolbars.RefreshTheme(); m_paneControls.m_nTheme = Office2016; if (m_paneControls.GetSafeHwnd() != 0) m_paneControls.RefreshTheme(); m_paneIcons.m_nTheme = Office2016; if (m_paneIcons.GetSafeHwnd() != 0) m_paneIcons.RefreshTheme(); m_paneLibrary.m_nTheme = Office2016; if (m_paneLibrary.GetSafeHwnd() != 0) m_paneLibrary.RefreshTheme(); m_paneManager.RedrawPanes(); m_csPane.RefreshMetrics(xtpPaneThemeOffice2013); if (GetActiveEmbeddedFrame()) { GetActiveEmbeddedFrame()->OnThemeUpdated(); } m_paneManager.SetDockingContextStickerStyle( (ID_BLACK_WORD <= m_nTheme && m_nTheme <= ID_BLACK_OUTLOOK) ? xtpPaneStickerStyleVisualStudio2015Dark : xtpPaneStickerStyleVisualStudio2015Light); RedrawWindow(0, 0, RDW_INVALIDATE | RDW_ALLCHILDREN); } void CMainFrame::OnMove(int x, int y) { CXTPMDIFrameWnd::OnMove(x, y); SAFE_CALLPTR(GetActiveEmbeddedFrame(), OnHideMenu()); } void CMainFrame::OnWindowPosChanged(WINDOWPOS* lpwndpos) { CXTPMDIFrameWnd::OnWindowPosChanged(lpwndpos); SAFE_CALLPTR(GetActiveEmbeddedFrame(), OnHideMenu()); }