// CustomThemeSampleFrame.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 "CommandBarsSample.h" #include "MainFrm.h" #include "CustomThemeSampleFrame.h" #include "Themes.h" #ifdef _DEBUG # define new DEBUG_NEW # undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; ////////////////////////////////////////////////////////////////////////// // CControlsSampleFrame BEGIN_MESSAGE_MAP(CCustomThemeSampleFrame, CXTPFrameWnd) //{{AFX_MSG_MAP(CCustomThemeSampleFrame) ON_WM_CREATE() ON_WM_DESTROY() ON_COMMAND(ID_THEME_MAC, OnThemesMac) ON_UPDATE_COMMAND_UI_RANGE(ID_THEME_MAC, ID_THEME_ACD, OnThemesUpdate) ON_COMMAND(ID_THEME_GRAY, OnThemesGray) ON_COMMAND(ID_THEME_ICY, OnThemesIcy) ON_COMMAND(ID_THEME_GRAD, OnThemesGradient) ON_COMMAND(ID_THEME_BEVEL, OnThemesBevel) ON_COMMAND(ID_THEME_FANCY, OnThemesFancy) ON_COMMAND(ID_THEME_ACD, OnThemesAcd) //}}AFX_MSG_MAP END_MESSAGE_MAP() void CCustomThemeSampleFrame::OnDestroy() { ((CMainFrame*)m_pOwnerFrame)->m_pCustomThemeFrame = NULL; CFrameWnd::OnDestroy(); } int CCustomThemeSampleFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CXTPFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; // Initialize the command bars if (!InitCommandBars()) return -1; // Get a pointer to the command bars object. CXTPCommandBars* pCommandBars = GetCommandBars(); if (pCommandBars == NULL) { TRACE0("Failed to create command bars object.\n"); return -1; // fail to create } 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 } // Add the menu bar CXTPToolBar* pMenuBar = pCommandBars->SetMenu(_T("Menu Bar"), IDR_CUSTOMTHEMEFRAME); if (pMenuBar == NULL) { TRACE0("Failed to create menu bar.\n"); return -1; // fail to create } CXTPToolBar* pStandardBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop); if (!pStandardBar || !pStandardBar->LoadToolBar(IDR_ACTIONS_TOOLBAR, FALSE)) { TRACE0("Failed to create toolbar\n"); return -1; } CXTPToolBar* pThemesBar = (CXTPToolBar*)pCommandBars->Add(_T("Custom Themes"), xtpBarTop); if (!pThemesBar) { TRACE0("Failed to create toolbar\n"); return -1; } CXTPControl* pIcyButton = pThemesBar->GetControls()->Add(xtpControlButton, ID_THEME_ICY); pIcyButton->SetStyle(xtpButtonCaption); pIcyButton->SetCaption(_T("Icy")); CXTPControl* pMacButton = pThemesBar->GetControls()->Add(xtpControlButton, ID_THEME_MAC); pMacButton->SetStyle(xtpButtonCaption); pMacButton->SetCaption(_T("Mac")); CXTPControl* pGrayButton = pThemesBar->GetControls()->Add(xtpControlButton, ID_THEME_GRAY); pGrayButton->SetStyle(xtpButtonCaption); pGrayButton->SetCaption(_T("Gray")); CXTPControl* pGradButton = pThemesBar->GetControls()->Add(xtpControlButton, ID_THEME_GRAD); pGradButton->SetStyle(xtpButtonCaption); pGradButton->SetCaption(_T("Gradient")); CXTPControl* pBevelButton = pThemesBar->GetControls()->Add(xtpControlButton, ID_THEME_BEVEL); pBevelButton->SetStyle(xtpButtonCaption); pBevelButton->SetCaption(_T("Bevel")); CXTPControl* pFancyButton = pThemesBar->GetControls()->Add(xtpControlButton, ID_THEME_FANCY); pFancyButton->SetStyle(xtpButtonCaption); pFancyButton->SetCaption(_T("Fancy")); CXTPControl* pAcdButton = pThemesBar->GetControls()->Add(xtpControlButton, ID_THEME_ACD); pAcdButton->SetStyle(xtpButtonCaption); pAcdButton->SetCaption(_T("ACD")); DockRightOf(pThemesBar, pStandardBar); m_wndStatusBar.SetCommandBars(pCommandBars); return 0; } void CCustomThemeSampleFrame::OnThemesMac() { m_nCustomTheme = ID_THEME_MAC; CXTPCommandBars* pCommandBars = GetCommandBars(); pCommandBars->SetPaintManager(new CCustomMacTheme()); pCommandBars->RedrawCommandBars(); } void CCustomThemeSampleFrame::OnThemesGray() { m_nCustomTheme = ID_THEME_GRAY; CXTPCommandBars* pCommandBars = GetCommandBars(); pCommandBars->SetPaintManager(new CCustomGrayTheme()); pCommandBars->RedrawCommandBars(); } void CCustomThemeSampleFrame::OnThemesIcy() { m_nCustomTheme = ID_THEME_ICY; CXTPCommandBars* pCommandBars = GetCommandBars(); pCommandBars->SetPaintManager(new CCustomIcyTheme()); pCommandBars->RedrawCommandBars(); } void CCustomThemeSampleFrame::OnThemesGradient() { m_nCustomTheme = ID_THEME_GRAD; CXTPCommandBars* pCommandBars = GetCommandBars(); pCommandBars->SetPaintManager(new CCustomGradientTheme()); pCommandBars->RedrawCommandBars(); } void CCustomThemeSampleFrame::OnThemesBevel() { m_nCustomTheme = ID_THEME_BEVEL; CXTPCommandBars* pCommandBars = GetCommandBars(); pCommandBars->SetPaintManager(new CCustomBevelTheme()); pCommandBars->RedrawCommandBars(); } void CCustomThemeSampleFrame::OnThemesFancy() { m_nCustomTheme = ID_THEME_FANCY; CXTPCommandBars* pCommandBars = GetCommandBars(); pCommandBars->SetPaintManager(new CCustomFancyTheme()); pCommandBars->RedrawCommandBars(); } void CCustomThemeSampleFrame::OnThemesAcd() { m_nCustomTheme = ID_THEME_ACD; CXTPCommandBars* pCommandBars = GetCommandBars(); pCommandBars->SetPaintManager(new CCustomBackgroundTheme()); pCommandBars->RedrawCommandBars(); } void CCustomThemeSampleFrame::OnThemesUpdate(CCmdUI* pCmdUI) { if (pCmdUI->m_nID == m_nCustomTheme) pCmdUI->SetCheck(TRUE); else pCmdUI->SetCheck(FALSE); } ///////////////////////////////////////////////////////////////////////////// // CCustomThemeSampleFrame diagnostics #ifdef _DEBUG void CCustomThemeSampleFrame::AssertValid() const { CXTPFrameWnd::AssertValid(); } void CCustomThemeSampleFrame::Dump(CDumpContext& dc) const { CXTPFrameWnd::Dump(dc); } #endif //_DEBUG