// 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 "RibbonControls.h" #include "MainFrm.h" #include "GalleryItems.h" #include "CustomizePageGeneral.h" #include "RibbonControlsView.h" #ifdef _DEBUG # define new DEBUG_NEW # undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMainFrame IMPLEMENT_DYNCREATE(CMainFrame, CXTPFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CXTPFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_GETMINMAXINFO() ON_WM_SETTINGCHANGE() ON_COMMAND(ID_OPTIONS_STYLE_THEMEDIALOG, OnThemeDlg) ON_COMMAND(XTP_ID_CUSTOMIZE, OnCustomize) ON_COMMAND(XTP_ID_RIBBONCUSTOMIZE, OnCustomizeQuickAccess) ON_WM_XTP_THEMECHANGED() ON_XTP_CREATECONTROL() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMainFrame construction/destruction CMainFrame::CMainFrame() : m_bThemeApplied(FALSE) , m_nAppliedTheme(xtpThemeNone) , m_pRibbonBar(NULL) , m_pBackstageView(NULL) , m_pReductionControls(NULL) , m_pItemsShapes(NULL) , m_pItemsStyles(NULL) , m_pItemsFontTextColor(NULL) , m_pItemsFontFace(NULL) , m_pItemsTable(NULL) { } CMainFrame::~CMainFrame() { } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) { TRACE(_T("ERROR: Failed to create main frame.\n")); return -1; } // Default menu has to be disabled so that it does not overlap CommandBars SetMenu(NULL); if (!CreateStatusBar()) { TRACE(_T("ERROR: Failed to create the status bar.\n")); return -1; } if (!InitCommandBars()) { TRACE(_T("ERROR: Failed to initialize command bars.\n")); return -1; } if (!CreateRibbonBar()) { TRACE(_T("ERROR: Failed to initialize the ribbon bar.\n")); return -1; } LoadXAMLIcons(); InitTooltips(); InitThemeDlg(); CenterWindow(); return 0; } void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { lpMMI->ptMinTrackSize.x = XTP_DPI_X(300); lpMMI->ptMinTrackSize.y = XTP_DPI_Y(300); CXTPFrameWnd::OnGetMinMaxInfo(lpMMI); } void CMainFrame::OnSettingChange(UINT uFlags, LPCTSTR lpszSection) { CXTPFrameWnd::OnSettingChange(uFlags, lpszSection); } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if (!CXTPFrameWnd::PreCreateWindow(cs)) return FALSE; cs.style = WS_OVERLAPPED | WS_CAPTION | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU | FWS_ADDTOTITLE; cs.lpszClass = _T("RibbonControls"); CXTPDrawHelpers::RegisterWndClass(AfxGetInstanceHandle(), cs.lpszClass, CS_DBLCLKS, AfxGetApp()->LoadIcon(IDR_MAINFRAME)); cs.cx = XTP_DPI_X(1280); cs.cy = XTP_DPI_Y(720); return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CMainFrame diagnostics #ifdef _DEBUG void CMainFrame::AssertValid() const { CFrameWnd::AssertValid(); } void CMainFrame::Dump(CDumpContext& dc) const { CFrameWnd::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMainFrame message handlers BOOL CMainFrame::CreateStatusBar() { _ASSERTE(!::IsWindow(m_wndStatusBar)); static const UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; if (!m_wndStatusBar.Create(this)) { TRACE(_T("ERROR: Unable to create status bar.\n")); return FALSE; } m_wndStatusBar.SetIndicators(indicators, _countof(indicators)); return TRUE; } BOOL CMainFrame::CreateRibbonBar() { CMenu menu; menu.Attach(::GetMenu(m_hWnd)); SetMenu(NULL); CXTPCommandBars* pCommandBars = GetCommandBars(); if (!pCommandBars) { return FALSE; } pCommandBars->RemoveAll(); m_pRibbonBar = DYNAMIC_DOWNCAST(CXTPRibbonBar, pCommandBars->Add(_T("The Ribbon"), xtpBarTop, RUNTIME_CLASS(CXTPRibbonBar))); if (!m_pRibbonBar) { return FALSE; } CXTPControlPopup* pRibbonButton = DYNAMIC_DOWNCAST(CXTPControlPopup, m_pRibbonBar->AddSystemButton(ID_RIBBON_MENU)); if (pRibbonButton) pRibbonButton->SetIconId(IDB_GEAR); UINT uCommand = { IDB_GEAR }; pCommandBars->GetImageManager()->SetIcons(IDB_GEAR, &uCommand, 1, CSize(0, 0), xtpImageNormal); CreateGalleries(); CreateRibbonTab_Buttons(); CreateRibbonTab_Editors(); CreateRibbonTab_Galleries(); CreateRibbonTab_Misc(); CreateRibbonTab_GroupReduction(); CXTPControlPopup* pControlOptions = DYNAMIC_DOWNCAST(CXTPControlPopup, m_pRibbonBar->GetControls()->Add(xtpControlPopup, -1)); if (pControlOptions) { pControlOptions->SetFlags(xtpFlagRightAlign); CMenu mnuOptions; mnuOptions.LoadMenu(IDR_MENU_OPTIONS); pControlOptions->SetCommandBar(mnuOptions.GetSubMenu(0)); pControlOptions->SetCaption(_T("Options")); } CXTPControl* pControlAbout = m_pRibbonBar->GetControls()->Add(xtpControlButton, ID_APP_ABOUT); if (pControlAbout) pControlAbout->SetFlags(xtpFlagRightAlign); m_pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_FILE_SAVE); m_pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_EDIT_UNDO); m_pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_EDIT_REDO); m_pRibbonBar->GetQuickAccessControls()->Add(xtpControlButton, ID_FILE_PRINT); m_pRibbonBar->GetQuickAccessControls()->CreateOriginalControls(); GetCommandBars()->GetPaintManager()->RefreshMetrics(); GetCommandBars()->RedrawCommandBars(); return TRUE; } void CMainFrame::CreateRibbonTab_Buttons() { ASSERT_VALID(m_pRibbonBar); CXTPRibbonTab* pTab = m_pRibbonBar->AddTab(ID_TAB_BUTTONS); if (pTab) { CXTPControl* pControl; CXTPRibbonGroup* pGroupLargeButtons = pTab->AddGroup(ID_GROUP_LARGE_BUTTONS); if (pGroupLargeButtons) { pControl = pGroupLargeButtons->Add(xtpControlButton, ID_BUTTONS_LARGE_SIMPLEBUTTON); pControl->SetStyle(xtpButtonIconAndCaptionBelow); pControl = pGroupLargeButtons->Add(xtpControlButton, ID_BUTTONS_LARGE_TOGGLEBUTTON); pControl->SetStyle(xtpButtonIconAndCaptionBelow); pControl = pGroupLargeButtons->Add(xtpControlButtonPopup, ID_BUTTONS_LARGE_POPUPBUTTON); pControl->SetStyle(xtpButtonIconAndCaptionBelow); pControl = pGroupLargeButtons->Add(xtpControlSplitButtonPopup, ID_BUTTONS_LARGE_SPLITPOPUPBUTTON); pControl->SetStyle(xtpButtonIconAndCaptionBelow); } CXTPRibbonGroup* pGroupSmallButtons = pTab->AddGroup(ID_GROUP_SMALL_BUTTONS); if (pGroupSmallButtons) { pControl = pGroupSmallButtons->Add(xtpControlButton, ID_BUTTONS_SMALL_SIMPLEBUTTON); pControl->SetStyle(xtpButtonIconAndCaption); pControl = pGroupSmallButtons->Add(xtpControlPopup, ID_BUTTONS_SMALL_POPUPBUTTON); pControl->SetStyle(xtpButtonIconAndCaption); pControl = pGroupSmallButtons->Add(xtpControlSplitButtonPopup, ID_BUTTONS_SMALL_SPLITPOPUPBUTTON); pControl->SetStyle(xtpButtonIconAndCaption); pControl = pGroupSmallButtons->Add(xtpControlButton, ID_BUTTONS_SMALL_SIMPLEBUTTON); pControl->SetStyle(xtpButtonIcon); pControl = pGroupSmallButtons->Add(xtpControlPopup, ID_BUTTONS_SMALL_POPUPBUTTON); pControl->SetStyle(xtpButtonIcon); pControl = pGroupSmallButtons->Add(xtpControlSplitButtonPopup, ID_BUTTONS_SMALL_SPLITPOPUPBUTTON); pControl->SetStyle(xtpButtonIcon); } CXTPRibbonGroup* pGroupCheckBoxes = pTab->AddGroup(ID_GROUP_CHECKBOXES); if (pGroupCheckBoxes) { pControl = pGroupCheckBoxes->Add(xtpControlCheckBox, ID_BUTTONS_CHECKBOX1); pControl = pGroupCheckBoxes->Add(xtpControlCheckBox, ID_BUTTONS_CHECKBOX2); pControl = pGroupCheckBoxes->Add(xtpControlCheckBox, ID_BUTTONS_CHECKBOX3); pControl = pGroupCheckBoxes->Add(xtpControlRadioButton, ID_BUTTONS_RADIOBUTTON1); pControl->SetBeginGroup(TRUE); pControl = pGroupCheckBoxes->Add(xtpControlRadioButton, ID_BUTTONS_RADIOBUTTON2); pControl = pGroupCheckBoxes->Add(xtpControlRadioButton, ID_BUTTONS_RADIOBUTTON3); } } } void CMainFrame::CreateRibbonTab_Editors() { ASSERT_VALID(m_pRibbonBar); CXTPCommandBars* pCommandBars = GetCommandBars(); ASSERT_VALID(pCommandBars); CXTPRibbonTab* pTab = m_pRibbonBar->AddTab(ID_TAB_EDITORS); if (pTab) { CXTPRibbonGroup* pGroupEditors = pTab->AddGroup(ID_GROUP_STANDARDEDITORS); if (pGroupEditors) { CXTPControlEdit* pControlEdit = DYNAMIC_DOWNCAST(CXTPControlEdit, pGroupEditors->Add(xtpControlEdit, ID_EDITORS_EDIT)); if (pControlEdit) { pControlEdit->SetEditText(_T("Edit")); pControlEdit->SetWidth(XTP_DPI_X(150)); pControlEdit->SetStyle(xtpButtonIcon); } CXTPControlComboBox* pControlCombo = DYNAMIC_DOWNCAST( CXTPControlComboBox, pGroupEditors->Add(xtpControlComboBox, ID_EDITORS_COMBO)); if (pControlCombo) { pControlCombo->GetCommandBar()->SetCommandBars(pCommandBars); pControlCombo->ModifyListBoxStyle(0, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS); pControlCombo->SetWidth(XTP_DPI_X(150)); pControlCombo->SetStyle(xtpButtonIcon); pControlCombo->SetDropDownListStyle(); pControlCombo->SetEditText(_T("ComboBox")); pControlCombo->AddString(_T("Item 1")); pControlCombo->AddString(_T("Item 2")); } CXTPControlComboBox* pControlCombo2 = DYNAMIC_DOWNCAST( CXTPControlComboBox, pGroupEditors->Add(xtpControlComboBox, ID_EDITORS_COMBO2)); if (pControlCombo2) { pControlCombo2->GetCommandBar()->SetCommandBars(pCommandBars); pControlCombo2->ModifyListBoxStyle(0, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS); pControlCombo2->SetWidth(XTP_DPI_X(150)); pControlCombo2->SetStyle(xtpButtonIcon); pControlCombo2->AddString(_T("ComboBox")); pControlCombo2->AddString(_T("Item 1")); pControlCombo2->AddString(_T("Item 2")); pControlCombo2->SetCurSel(0); } } CXTPRibbonGroup* pGroupEditorsEx = pTab->AddGroup(ID_GROUP_EXTENDEDEDITORS); if (pGroupEditorsEx) { CXTPControlEdit* pControlEdit = DYNAMIC_DOWNCAST( CXTPControlEdit, pGroupEditorsEx->Add(xtpControlEdit, ID_EDITORSEX_EDIT)); if (pControlEdit) { pControlEdit->SetEditText(_T("0")); pControlEdit->ShowSpinButtons(TRUE); pControlEdit->SetWidth(XTP_DPI_X(150)); pControlEdit->SetStyle(xtpButtonIconAndCaption); } CXTPControlComboBox* pControlCombo = DYNAMIC_DOWNCAST( CXTPControlComboBox, pGroupEditorsEx->Add(xtpControlComboBox, ID_EDITORSEX_COMBO)); if (pControlCombo) { pControlCombo->GetCommandBar()->SetCommandBars(pCommandBars); pControlCombo->ModifyListBoxStyle(0, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS); pControlCombo->SetWidth(XTP_DPI_X(155)); pControlCombo->SetStyle(xtpButtonIconAndCaption); pControlCombo->SetDropDownListStyle(); pControlCombo->SetEditText(_T("ComboBox")); pControlCombo->AddString(_T("Item 1")); pControlCombo->AddString(_T("Item 2")); } CXTPControlComboBox* pControlCombo2 = DYNAMIC_DOWNCAST( CXTPControlComboBox, pGroupEditorsEx->Add(xtpControlComboBox, ID_EDITORSEX_COMBO2)); if (pControlCombo2) { pControlCombo2->GetCommandBar()->SetCommandBars(pCommandBars); pControlCombo2->ModifyListBoxStyle(0, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS); pControlCombo2->SetWidth(XTP_DPI_X(155)); pControlCombo2->SetStyle(xtpButtonIconAndCaption); pControlCombo2->AddString(_T("ComboBox")); pControlCombo2->AddString(_T("Item 1")); pControlCombo2->AddString(_T("Item 2")); pControlCombo2->SetCurSel(0); } } CXTPRibbonGroup* pGroupGallery = pTab->AddGroup(ID_GROUP_GALLERY); if (pGroupGallery) { CXTPControlGalleryItems* m_pItemsFont = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_EDITORS_GALLERY_FONT); if (m_pItemsFont) { m_pItemsFont->SetItemSize(CSize(0, 26)); CGalleryItemFontFace::AddFontItems(m_pItemsFont); } CXTPControlComboBox* pComboFont = new CXTPControlComboBox(); if (pComboFont) { pGroupGallery->Add(pComboFont, ID_EDITORS_GALLERY_FONT); pComboFont->SetDropDownListStyle(); pComboFont->EnableAutoComplete(); pComboFont->SetWidth(XTP_DPI_X(150)); CXTPPopupBar* pPopupBarGallery = CXTPControlComboBoxGalleryPopupBar::CreateComboBoxGalleryPopupBar(pCommandBars); if (pPopupBarGallery) { pComboFont->SetCommandBar(pPopupBarGallery); CXTPControlGallery* pControlGallery = new CXTPControlGallery(); if (pControlGallery) { pControlGallery->SetControlSize(CSize(290, 508)); pControlGallery->SetResizable(FALSE, TRUE); pControlGallery->ShowLabels(TRUE); pControlGallery->SetItems(m_pItemsFontFace); pPopupBarGallery->GetControls()->Add(pControlGallery, ID_EDITORS_GALLERY_FONT); } pPopupBarGallery->InternalRelease(); } pComboFont->SetCurSel(1); } CXTPControlComboBox* pComboPopup = new CXTPControlComboBox(); if (pComboPopup) { pComboPopup->SetWidth(XTP_DPI_X(150)); pGroupGallery->Add(pComboPopup, ID_EDITORS_GALLERY_POPUP); CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(pCommandBars); if (pPopupBar) { pPopupBar->SetWidth(XTP_DPI_X(150)); pComboPopup->SetCommandBar(pPopupBar); CMenu menu; menu.LoadMenu(IDR_MENU_OPTIONS); pPopupBar->LoadMenu(menu.GetSubMenu(0)); } pPopupBar->InternalRelease(); } } } } void CMainFrame::CreateRibbonTab_Galleries() { ASSERT_VALID(m_pRibbonBar); CXTPCommandBars* pCommandBars = GetCommandBars(); ASSERT_VALID(pCommandBars); CXTPRibbonTab* pTab = m_pRibbonBar->AddTab(ID_TAB_GALLERIES); if (pTab) { CXTPRibbonGroup* pGroupPopup = pTab->AddGroup(ID_GROUP_POPUP); if (pGroupPopup) { pGroupPopup->SetControlsCentering(TRUE); CXTPControlPopup* pControlStyles = DYNAMIC_DOWNCAST(CXTPControlPopup, pGroupPopup->Add(xtpControlButtonPopup, ID_BUTTON_GALLERY_STYLES)); if (pControlStyles) { CMenu menu; menu.LoadMenu(ID_MENU_STYLES); CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(pCommandBars); if (pPopupBar) { pPopupBar->LoadMenu(menu.GetSubMenu(0)); pControlStyles->SetCommandBar(pPopupBar); pPopupBar->InternalRelease(); } } CXTPControlPopup* pControlShapes = DYNAMIC_DOWNCAST(CXTPControlPopup, pGroupPopup->Add(xtpControlSplitButtonPopup, ID_BUTTON_GALLERY_SHAPES)); if (pControlShapes) { CMenu menuShapes; menuShapes.LoadMenu(ID_MENU_SHAPES); CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(pCommandBars); if (pPopupBar) { pPopupBar->LoadMenu(menuShapes.GetSubMenu(0)); pControlShapes->SetCommandBar(pPopupBar); pPopupBar->EnableAnimation(); pPopupBar->InternalRelease(); } } CXTPControlPopup* pControlTable = DYNAMIC_DOWNCAST( CXTPControlPopup, pGroupPopup->Add(xtpControlButtonPopup, ID_BUTTON_GALLERY_TABLE)); if (pControlTable) { CXTPControlGallery* pControlGallery = new CXTPControlGallery(); if (pControlGallery) { pControlGallery->SetControlSize(8, 10, CSize(19, 19)); pControlGallery->ShowLabels(TRUE); pControlGallery->ShowScrollBar(FALSE); pControlGallery->SetItems(m_pItemsTable); pControlTable->GetCommandBar()->GetControls()->Add(pControlGallery); } } CXTPControlPopup* pControlColor = DYNAMIC_DOWNCAST( CXTPControlPopup, pGroupPopup->Add(xtpControlButtonPopup, ID_BUTTON_GALLERY_COLOR)); if (pControlColor) { CXTPControlGallery* pControlGallery = new CXTPControlGallery(); if (pControlGallery) { pControlGallery->ShowLabels(TRUE); pControlGallery->ShowScrollBar(FALSE); pControlGallery->SetItems(m_pItemsFontTextColor); pControlGallery->SetControlSize(7, 10, XTP_DPI(CSize(17, 15))); pControlColor->GetCommandBar()->GetControls()->Add(pControlGallery); } } } CXTPRibbonGroup* pGroupInline = pTab->AddGroup(ID_GROUP_INLINE); if (pGroupInline) { pGroupInline->SetControlsCentering(TRUE); CXTPControlGallery* pControlGallery = new CXTPControlGallery(); if (pControlGallery) { const int nScrollWidth = XTP_DPI_X(19); pControlGallery->SetControlSize(CSize(XTP_DPI_X(17) * 10 + nScrollWidth, 60)); pControlGallery->ShowLabels(FALSE); pControlGallery->ShowScrollBar(TRUE); pControlGallery->ShowBorders(TRUE); pControlGallery->SetItems(m_pItemsFontTextColor); pGroupInline->Add(pControlGallery, ID_INLINE_GALLERY_COLORSET); } pControlGallery = new CXTPControlGallery(); if (pControlGallery) { pControlGallery->SetBeginGroup(TRUE); pControlGallery->SetControlSize(CSize(235, 60)); pControlGallery->SetResizable(); pControlGallery->SetItemsMargin(0, 1, 0, 1); pControlGallery->ShowLabels(FALSE); pControlGallery->ShowBorders(TRUE); pControlGallery->SetItems(m_pItemsStyles); CMenu menu; menu.LoadMenu(ID_MENU_STYLES); CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(pCommandBars); if (pPopupBar) { pPopupBar->LoadMenu(menu.GetSubMenu(0)); pControlGallery->SetCommandBar(pPopupBar); pPopupBar->InternalRelease(); pGroupInline->Add(pControlGallery, ID_INLINE_GALLERY_STYLESET); } } } } } void CMainFrame::CreateRibbonTab_Misc() { ASSERT_VALID(m_pRibbonBar); CXTPRibbonTab* pTab = m_pRibbonBar->AddTab(ID_TAB_MISC); if (pTab) { CXTPRibbonGroup* pGroupLabel = pTab->AddGroup(ID_GROUP_LABEL); if (pGroupLabel) { pGroupLabel->SetControlsCentering(TRUE); CXTPControl* pControl = pGroupLabel->Add(xtpControlLabel, 0); pControl->SetCaption(_T("Label Text 1")); pControl->SetStyle(xtpButtonCaption); pControl = pGroupLabel->Add(xtpControlLabel, 0); pControl->SetCaption(_T("Label Text 2")); pControl->SetStyle(xtpButtonCaption); pControl = pGroupLabel->Add(xtpControlLabel, 0); pControl->SetCaption(_T("Label Text 3")); pControl->SetStyle(xtpButtonCaption); #ifdef _XTP_INCLUDE_MARKUP CXTPControlMarkupLabel* pLabel = new CXTPControlMarkupLabel(); pGroupLabel->Add(pLabel, 0); pLabel->SetBeginGroup(TRUE); pLabel->SetCaption( _T("This ") _T("isMarkup LabelControl")); #endif } CXTPRibbonGroup* pGroupBitmap = pTab->AddGroup(ID_GROUP_BITMAP); if (pGroupBitmap) { pGroupBitmap->SetControlsCentering(TRUE); CXTPControlBitmap* pLabel = new CXTPControlBitmap(); if (pLabel) { pGroupBitmap->Add(pLabel, ID_BITMAP_WINDOWS); } } CXTPRibbonGroup* pGroupHyperlink = pTab->AddGroup(ID_GROUP_HYPERLINK); if (pGroupHyperlink) { pGroupHyperlink->SetControlsCentering(TRUE); pGroupHyperlink->GetControlGroupPopup()->SetIconSize(CSize(48, 48)); CXTPControlHyperlink* pLabelUrl = new CXTPControlHyperlink(); if (pLabelUrl) { pLabelUrl->SetFlags(xtpFlagManualUpdate); pGroupHyperlink->Add(pLabelUrl, ID_HYPERLINK_URL); } CXTPControlHyperlink* pLabelEmail = new CXTPControlHyperlink(); if (pLabelEmail) { pLabelEmail->SetFlags(xtpFlagManualUpdate); pGroupHyperlink->Add(pLabelEmail, ID_HYPERLINK_EMAIL); } } CXTPRibbonGroup* pGroupProgress = pTab->AddGroup(ID_GROUP_PROGRESS); if (pGroupProgress) { pGroupProgress->SetControlsCentering(TRUE); CXTPControlProgress* pControl = DYNAMIC_DOWNCAST( CXTPControlProgress, pGroupProgress->Add(new CXTPControlProgress(), 0)); if (pControl) { pControl->SetPos(30); pControl->SetFlags(xtpFlagNoMovable | xtpFlagSkipFocus); } } CXTPRibbonGroup* pGroupScrollBar = pTab->AddGroup(ID_GROUP_SCROLLBAR); if (pGroupScrollBar) { pGroupScrollBar->SetControlsCentering(TRUE); CXTPControlScrollBar* pControl = DYNAMIC_DOWNCAST( CXTPControlScrollBar, pGroupScrollBar->Add(new CXTPControlScrollBar(), 0)); if (pControl) { pControl->SetFlags(xtpFlagNoMovable | xtpFlagSkipFocus); pControl->SetPos(30); pControl->SetWidth(XTP_DPI_X(100)); } } CXTPRibbonGroup* pGroupSlider = pTab->AddGroup(ID_GROUP_SLIDER); if (pGroupSlider) { pGroupSlider->SetControlsCentering(TRUE); CXTPControlScrollBar* pControl = DYNAMIC_DOWNCAST( CXTPControlScrollBar, pGroupSlider->Add(new CXTPControlScrollBar(), 0)); if (pControl) { pControl->SetScrollBarStyle(xtpScrollStyleSlider); pControl->SetPos(30); pControl->SetFlags(xtpFlagNoMovable | xtpFlagSkipFocus); pControl->SetWidth(XTP_DPI_X(100)); } } } } void CMainFrame::CreateRibbonTab_GroupReduction() { ASSERT_VALID(m_pRibbonBar); CXTPRibbonTab* pTab = m_pRibbonBar->AddTab(ID_TAB_REDUCTION); if (pTab) { CXTPRibbonGroup* pGroupLevels = pTab->AddGroup(ID_GROUP_REDUCTION_LEVELS); if (pGroupLevels) { pGroupLevels->Add(xtpControlRadioButton, ID_BUTTON_REDUCTION_DISABLED); pGroupLevels->Add(xtpControlRadioButton, ID_BUTTON_REDUCTION_FULL_CAPTION); pGroupLevels->Add(xtpControlRadioButton, ID_BUTTON_REDUCTION_REDUCE_CAPTION); pGroupLevels->Add(xtpControlRadioButton, ID_BUTTON_REDUCTION_FULL_REDUCTION); } m_pReductionControls = pTab->AddGroup(ID_GROUP_REDUCTION_CONTROLS); if (m_pReductionControls) { m_pReductionControls->Add(xtpControlButton, ID_BUTTON_REDUCTION_1); m_pReductionControls->Add(xtpControlButton, ID_BUTTON_REDUCTION_2); m_pReductionControls->Add(xtpControlButton, ID_BUTTON_REDUCTION_3); m_pReductionControls->Add(xtpControlButton, ID_BUTTON_REDUCTION_4); m_pReductionControls->Add(xtpControlButton, ID_BUTTON_REDUCTION_5); m_pReductionControls->Add(xtpControlButton, ID_BUTTON_REDUCTION_6); m_pReductionControls->Add(xtpControlButton, ID_BUTTON_REDUCTION_7); m_pReductionControls->Add(xtpControlButton, ID_BUTTON_REDUCTION_8); m_pReductionControls->Add(xtpControlPopup, ID_BUTTON_REDUCTION_9); m_pReductionControls->Add(xtpControlPopup, ID_BUTTON_REDUCTION_10); m_pReductionControls->Add(xtpControlPopup, ID_BUTTON_REDUCTION_11); m_pReductionControls->Add(xtpControlPopup, ID_BUTTON_REDUCTION_12); } } } void CMainFrame::InitTooltips() { CXTPToolTipContext* pToolTipContext = GetCommandBars()->GetToolTipContext(); ASSERT_VALID(pToolTipContext); pToolTipContext->ShowTitleAndDescription(); pToolTipContext->ShowImage(TRUE, 0); pToolTipContext->SetMargin(XTP_DPI(CRect(2, 2, 2, 2))); pToolTipContext->SetMaxTipWidth(XTP_DPI_X(180)); pToolTipContext->SetFont(GetCommandBars()->GetPaintManager()->GetIconFont()); pToolTipContext->SetDelayTime(TTDT_INITIAL, 900); } void CMainFrame::SetTooltipStyle(XTPToolTipStyle nStyle) { CXTPToolTipContext* pToolTipContext = NULL; // Update tooltip styles. pToolTipContext = m_wndStatusBar.GetToolTipContext(); if (NULL != pToolTipContext) { pToolTipContext->SetStyle(nStyle); } pToolTipContext = GetCommandBars()->GetToolTipContext(); if (NULL != pToolTipContext) { pToolTipContext->SetStyle(nStyle); } } void CMainFrame::SetFrameIcon(CSize szIcon) { HICON hIcon = reinterpret_cast(::LoadImage(AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON, szIcon.cx, szIcon.cy, LR_SHARED)); if (NULL == hIcon) { TRACE(_T("ERROR: Unable to load frame icon.\n")); return; } GetCommandBars()->GetPaintManager()->GetFramePaintManager()->SetIcon(hIcon, szIcon); } void CMainFrame::InitThemeDlg() { // exclude unused themes. m_dlgTheme.ExcludeTheme( XTP_EXCLUDE_THEME_VISUALSTUDIO6 | XTP_EXCLUDE_THEME_VISUALSTUDIO2005 | XTP_EXCLUDE_THEME_VISUALSTUDIO2008 | XTP_EXCLUDE_THEME_VISUALSTUDIO2010 | XTP_EXCLUDE_THEME_VISUALSTUDIO2012 | XTP_EXCLUDE_THEME_OFFICE2000 | XTP_EXCLUDE_THEME_OFFICEXP | XTP_EXCLUDE_THEME_OFFICE2003 | XTP_EXCLUDE_THEME_CUSTOM); // create theme dialog. VERIFY(m_dlgTheme.Create(IDD_THEME_DIALOG, this)); // set startup theme m_dlgTheme.SetTheme(xtpThemeDlgOffice2016, xtpThemeColor2016Colorful, xtpThemeAccentWord, xtpThemeRibbonBackUndef, TRUE); // enable auto preview. m_dlgTheme.EnableAutoPreview(TRUE); } void CMainFrame::OnThemeDlg() { m_dlgTheme.ShowWindow(SW_SHOW); } LRESULT CMainFrame::OnThemeChanged(WPARAM wParam, LPARAM lParam) { UNREFERENCED_PARAMETER(wParam); CWaitCursor wait; // Disable previous theme. EnableTheme(m_nAppliedTheme, m_strAppliedThemeSettings, FALSE); THEME_COLOR* pThemeColor = reinterpret_cast(lParam); int nTheme = pThemeColor->nTheme; int nColor = pThemeColor->nColor; int nAccent = pThemeColor->nAccent; XTPGetApplication()->SetAmbientProperty(xtpApplicationAccentColor, static_cast(pThemeColor->nAccent)); XTPGetApplication()->SetAmbientProperty(xtpApplicationUseSystemAccentColor, static_cast(pThemeColor->bUseSystemAccent)); switch (nTheme) { case xtpThemeDlgOffice2007: { switch (nColor) { case xtpThemeColor2007Blue: theApp.SetAppTheme(xtpThemeOffice2007, xtpIniOffice2007Blue); break; case xtpThemeColor2007Silver: theApp.SetAppTheme(xtpThemeOffice2007, xtpIniOffice2007Silver); break; case xtpThemeColor2007Black: theApp.SetAppTheme(xtpThemeOffice2007, xtpIniOffice2007Black); break; case xtpThemeColor2007Aqua: theApp.SetAppTheme(xtpThemeOffice2007, xtpIniOffice2007Aqua); break; case xtpThemeColor2007System: theApp.SetAppTheme(xtpThemeOffice2007System); break; } } break; case xtpThemeDlgOffice2010: { switch (nColor) { case xtpThemeColor2010Blue: theApp.SetAppTheme(xtpThemeResource, xtpIniOffice2010Blue); break; case xtpThemeColor2010Silver: theApp.SetAppTheme(xtpThemeResource, xtpIniOffice2010Silver); break; case xtpThemeColor2010Black: theApp.SetAppTheme(xtpThemeResource, xtpIniOffice2010Black); break; } } break; case xtpThemeDlgOffice2013: { switch (nColor) { case xtpThemeColor2013White: { switch (nAccent) { case xtpThemeAccentAccess: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013Access); break; case xtpThemeAccentExcel: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013Excel); break; case xtpThemeAccentOneNote: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013OneNote); break; case xtpThemeAccentOutlook: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013Outlook); break; case xtpThemeAccentPowerPoint: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013PowerPoint); break; case xtpThemeAccentPublisher: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013Publisher); break; case xtpThemeAccentWord: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013Word); break; } } break; case xtpThemeColor2013GrayLight: { switch (nAccent) { case xtpThemeAccentAccess: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013AccessGrayLight); break; case xtpThemeAccentExcel: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013ExcelGrayLight); break; case xtpThemeAccentOneNote: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013OneNoteGrayLight); break; case xtpThemeAccentOutlook: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013OutlookGrayLight); break; case xtpThemeAccentPowerPoint: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013PowerPointGrayLight); break; case xtpThemeAccentPublisher: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013PublisherGrayLight); break; case xtpThemeAccentWord: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013WordGrayLight); break; } } break; case xtpThemeColor2013GrayDark: { switch (nAccent) { case xtpThemeAccentAccess: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013AccessGrayDark); break; case xtpThemeAccentExcel: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013ExcelGrayDark); break; case xtpThemeAccentOneNote: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013OneNoteGrayDark); break; case xtpThemeAccentOutlook: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013OutlookGrayDark); break; case xtpThemeAccentPowerPoint: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013PowerPointGrayDark); break; case xtpThemeAccentPublisher: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013PublisherGrayDark); break; case xtpThemeAccentWord: theApp.SetAppTheme(xtpThemeOffice2013, xtpIniOffice2013WordGrayDark); break; } } break; } } break; case xtpThemeDlgOffice2016: { switch (nColor) { case xtpThemeColor2016Black: { switch (nAccent) { case xtpThemeAccentAccess: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016AccessBlack); break; case xtpThemeAccentExcel: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016ExcelBlack); break; case xtpThemeAccentOneNote: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016OneNoteBlack); break; case xtpThemeAccentOutlook: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016OutlookBlack); break; case xtpThemeAccentPowerPoint: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016PowerPointBlack); break; case xtpThemeAccentPublisher: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016PublisherBlack); break; case xtpThemeAccentWord: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016WordBlack); break; } } break; case xtpThemeColor2016White: { switch (nAccent) { case xtpThemeAccentAccess: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016AccessWhite); break; case xtpThemeAccentExcel: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016ExcelWhite); break; case xtpThemeAccentOneNote: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016OneNoteWhite); break; case xtpThemeAccentOutlook: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016OutlookWhite); break; case xtpThemeAccentPowerPoint: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016PowerPointWhite); break; case xtpThemeAccentPublisher: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016PublisherWhite); break; case xtpThemeAccentWord: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016WordWhite); break; } } break; case xtpThemeColor2016Colorful: { switch (nAccent) { case xtpThemeAccentAccess: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016AccessColorful); break; case xtpThemeAccentExcel: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016ExcelColorful); break; case xtpThemeAccentOneNote: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016OneNoteColorful); break; case xtpThemeAccentOutlook: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016OutlookColorful); break; case xtpThemeAccentPowerPoint: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016PowerPointColorful); break; case xtpThemeAccentPublisher: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016PublisherColorful); break; case xtpThemeAccentWord: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016WordColorful); break; } } break; case xtpThemeColor2016GrayDark: { switch (nAccent) { case xtpThemeAccentAccess: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016AccessDarkGray); break; case xtpThemeAccentExcel: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016ExcelDarkGray); break; case xtpThemeAccentOneNote: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016OneNoteDarkGray); break; case xtpThemeAccentOutlook: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016OutlookDarkGray); break; case xtpThemeAccentPowerPoint: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016PowerPointDarkGray); break; case xtpThemeAccentPublisher: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016PublisherDarkGray); break; case xtpThemeAccentWord: theApp.SetAppTheme(xtpThemeOffice2016, xtpIniOffice2016WordDarkGray); break; } } break; } } break; case xtpThemeDlgVisualStudio2015: { switch (nColor) { case xtpThemeColor2015Blue: theApp.SetAppTheme(xtpThemeVisualStudio2015, xtpIniVisualStudio2015Blue); break; case xtpThemeColor2015Dark: theApp.SetAppTheme(xtpThemeVisualStudio2015, xtpIniVisualStudio2015Dark); break; case xtpThemeColor2015Light: theApp.SetAppTheme(xtpThemeVisualStudio2015, xtpIniVisualStudio2015Light); break; } } break; case xtpThemeDlgVisualStudio2017: { switch (nColor) { case xtpThemeColor2017Blue: theApp.SetAppTheme(xtpThemeVisualStudio2017, xtpIniVisualStudio2017Blue); break; case xtpThemeColor2017BlueExtra: theApp.SetAppTheme(xtpThemeVisualStudio2017, xtpIniVisualStudio2017BlueExtra); break; case xtpThemeColor2017Dark: theApp.SetAppTheme(xtpThemeVisualStudio2017, xtpIniVisualStudio2017Dark); break; case xtpThemeColor2017Light: theApp.SetAppTheme(xtpThemeVisualStudio2017, xtpIniVisualStudio2017Light); break; } } break; case xtpThemeDlgVisualStudio2019: { switch (nColor) { case xtpThemeColor2019Blue: theApp.SetAppTheme(xtpThemeVisualStudio2019, xtpIniVisualStudio2019Blue); break; case xtpThemeColor2019BlueExtra: theApp.SetAppTheme(xtpThemeVisualStudio2019, xtpIniVisualStudio2019BlueExtra); break; case xtpThemeColor2019Dark: theApp.SetAppTheme(xtpThemeVisualStudio2019, xtpIniVisualStudio2019Dark); break; case xtpThemeColor2019Light: theApp.SetAppTheme(xtpThemeVisualStudio2019, xtpIniVisualStudio2019Light); break; } } break; case xtpThemeDlgVisualStudio2022: { switch (nColor) { case xtpThemeColor2022Blue: theApp.SetAppTheme(xtpThemeVisualStudio2022, xtpIniVisualStudio2022Blue); break; case xtpThemeColor2022BlueExtra: theApp.SetAppTheme(xtpThemeVisualStudio2022, xtpIniVisualStudio2022BlueExtra); break; case xtpThemeColor2022Dark: theApp.SetAppTheme(xtpThemeVisualStudio2022, xtpIniVisualStudio2022Dark); break; case xtpThemeColor2022Light: theApp.SetAppTheme(xtpThemeVisualStudio2022, xtpIniVisualStudio2022Light); break; } } break; case xtpThemeDlgNativeWindows: theApp.SetAppTheme(xtpThemeResource, xtpIniWindows7Blue); break; case xtpThemeDlgNativeWindows10: { switch (nColor) { case xtpThemeColorWindows10Light: XTPGetApplication()->SetAmbientProperty(xtpApplicationAccentColor, static_cast( pThemeColor->nAccent)); theApp.SetAppTheme(xtpThemeNativeWindows10, xtpIniWindows10Light); break; case xtpThemeColorWindows10Dark: XTPGetApplication()->SetAmbientProperty(xtpApplicationAccentColor, static_cast( pThemeColor->nAccent)); theApp.SetAppTheme(xtpThemeNativeWindows10, xtpIniWindows10Dark); break; } } break; case xtpThemeDlgNativeWindows11: { switch (nColor) { case xtpThemeColorWindows11Light: theApp.SetAppTheme(xtpThemeNativeWindows11, xtpIniWindows11Light); break; case xtpThemeColorWindows11Dark: theApp.SetAppTheme(xtpThemeNativeWindows11, xtpIniWindows11Dark); break; } } break; } UpdateTheme(); return 0; } void CMainFrame::UpdateTheme() { XTPPaintTheme nNewTheme = theApp.GetAppTheme(); CString strNewThemeSettings = theApp.GetAppThemeSettings(); if (m_bThemeApplied && m_nAppliedTheme == nNewTheme && m_strAppliedThemeSettings == strNewThemeSettings) { // No change required. return; } CWaitCursor wait; // Enable new theme. EnableTheme(nNewTheme, strNewThemeSettings); m_nAppliedTheme = nNewTheme; m_strAppliedThemeSettings = strNewThemeSettings; CXTPCommandBars* pCommandBars = GetCommandBars(); pCommandBars->GetPaintManager()->m_bAutoResizeIcons = TRUE; pCommandBars->GetPaintManager()->RefreshMetrics(); pCommandBars->GetImageManager()->RefreshAll(); pCommandBars->RedrawCommandBars(); SendMessage(WM_NCPAINT); RedrawWindow(0, 0, RDW_ALLCHILDREN | RDW_INVALIDATE); } void CMainFrame::EnableTheme(XTPPaintTheme nTheme, LPCTSTR lpzThemeSettings, BOOL bEnable /*= TRUE*/) { _ASSERTE(NULL != lpzThemeSettings); switch (nTheme) { case xtpThemeNone: EnableNoStyle(bEnable); break; case xtpThemeOffice2013: if (0 < _tcsstr(lpzThemeSettings, _T("OFFICE2013"))) { EnableStyleOffice2013(bEnable); } else if (0 < _tcsstr(lpzThemeSettings, _T("OFFICE2016"))) { EnableStyleOffice2016(bEnable); } else { _ASSERTE(!"Unexpected theme settings"); } break; case xtpThemeVisualStudio2015: EnableStyleVisualStudio2015(bEnable); break; case xtpThemeVisualStudio2017: EnableStyleVisualStudio2017(bEnable); break; case xtpThemeVisualStudio2019: EnableStyleVisualStudio2019(bEnable); break; case xtpThemeVisualStudio2022: EnableStyleVisualStudio2022(bEnable); break; case xtpThemeNativeWindows10: EnableStyleWindows10(bEnable); break; case xtpThemeNativeWindows11: EnableStyleWindows11(bEnable); break; case xtpThemeResource: if (0 < _tcsstr(lpzThemeSettings, _T("OFFICE2007"))) { EnableStyleOffice2007(bEnable); } else if (0 < _tcsstr(lpzThemeSettings, _T("OFFICE2010"))) { EnableStyleOffice2010(bEnable); } else if (0 < _tcsstr(lpzThemeSettings, _T("WINDOWS7"))) { EnableStyleWindows7(bEnable); } else { _ASSERTE(!"Unexpected theme settings"); } break; case xtpThemeOffice2007System: EnableStyleOffice2007(bEnable); break; default: _ASSERTE(!"Unsupported theme"); break; } } void CMainFrame::UpdateChildrenTheme() { CRibbonControlsView* pView = DYNAMIC_DOWNCAST(CRibbonControlsView, GetActiveView()); if (NULL != pView) { pView->OnThemeChanged(); } } void CMainFrame::DisableStyle() { SetTooltipStyle(xtpToolTipStandard); DisableFrameTheme(); ASSERT_VALID(m_pRibbonBar); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonAutomatic); UpdateChildrenTheme(); } void CMainFrame::EnableNoStyle(BOOL bEnable /*= TRUE*/) { if (bEnable) { CXTPCommandBarsFrameHook::m_bAllowDwm = FALSE; EnableFrameTheme(GetCommandBars()); } else { DisableFrameTheme(); } UpdateChildrenTheme(); } void CMainFrame::EnableStyleOffice2007(BOOL bEnable /*= TRUE*/) { if (bEnable) { SetTooltipStyle(xtpToolTipOffice2007); EnableFrameTheme(GetCommandBars()); CreateSystemMenuPopup(); UpdateChildrenTheme(); } else { DisableStyle(); } } void CMainFrame::EnableStyleOffice2010(BOOL bEnable /*= TRUE*/) { if (bEnable) { ASSERT_VALID(m_pRibbonBar); SetTooltipStyle(xtpToolTipOffice); EnableFrameTheme(GetCommandBars()); CreateBackstage(); ASSERT_VALID(m_pBackstageView); m_pBackstageView->SetTheme(xtpThemeRibbon); m_pBackstageView->SetBackstageStyle(xtpRibbonBackstageOffice2010Style); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); UpdateChildrenTheme(); } else { DestroyBackstage(); DisableStyle(); } } void CMainFrame::EnableStyleOffice2013(BOOL bEnable /*= TRUE*/) { if (bEnable) { ASSERT_VALID(m_pRibbonBar); GetCommandBars()->SetAllCaps(TRUE); m_wndStatusBar.SetAllCaps(TRUE); SetTooltipStyle(xtpToolTipOffice2013); EnableFrameTheme(GetCommandBars()); SetFrameIcon(CSize(20, 20)); CreateBackstage(); ASSERT_VALID(m_pBackstageView); m_pBackstageView->SetTheme(xtpThemeOffice2013); m_pBackstageView->SetBackstageStyle(xtpRibbonBackstageOffice2013Style); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); UpdateChildrenTheme(); } else { DestroyBackstage(); GetCommandBars()->SetAllCaps(FALSE); m_wndStatusBar.SetAllCaps(FALSE); SetFrameIcon(CSize(16, 16)); DisableStyle(); } } void CMainFrame::EnableStyleOffice2016(BOOL bEnable /*= TRUE*/) { if (bEnable) { ASSERT_VALID(m_pRibbonBar); SetTooltipStyle(xtpToolTipOffice2016); EnableFrameTheme(GetCommandBars()); SetFrameIcon(CSize(20, 20)); CreateBackstage(); ASSERT_VALID(m_pBackstageView); m_pBackstageView->SetTheme(xtpThemeOffice2016); m_pBackstageView->SetBackstageStyle(xtpRibbonBackstageOffice2016Style); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); UpdateChildrenTheme(); } else { DestroyBackstage(); SetFrameIcon(CSize(16, 16)); DisableStyle(); } } void CMainFrame::EnableStyleVisualStudio2015(BOOL bEnable /*= TRUE*/) { if (bEnable) { ASSERT_VALID(m_pRibbonBar); GetCommandBars()->SetAllCaps(TRUE); m_wndStatusBar.SetAllCaps(TRUE); SetTooltipStyle(xtpToolTipStandard); EnableFrameTheme(GetCommandBars()); SetFrameIcon(CSize(20, 20)); CreateSystemMenuPopup(); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); UpdateChildrenTheme(); } else { GetCommandBars()->SetAllCaps(FALSE); m_wndStatusBar.SetAllCaps(FALSE); SetFrameIcon(CSize(16, 16)); DisableStyle(); } } void CMainFrame::EnableStyleVisualStudio2017(BOOL bEnable /*= TRUE*/) { if (bEnable) { ASSERT_VALID(m_pRibbonBar); SetTooltipStyle(xtpToolTipStandard); EnableFrameTheme(GetCommandBars()); SetFrameIcon(CSize(20, 20)); CreateSystemMenuPopup(); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); UpdateChildrenTheme(); } else { SetFrameIcon(CSize(16, 16)); DisableStyle(); } } void CMainFrame::EnableStyleVisualStudio2019(BOOL bEnable /*= TRUE*/) { if (bEnable) { ASSERT_VALID(m_pRibbonBar); SetTooltipStyle(xtpToolTipStandard); EnableFrameTheme(GetCommandBars()); SetFrameIcon(CSize(20, 20)); CreateSystemMenuPopup(); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); UpdateChildrenTheme(); } else { SetFrameIcon(CSize(16, 16)); DisableStyle(); } } void CMainFrame::EnableStyleVisualStudio2022(BOOL bEnable /*= TRUE*/) { if (bEnable) { ASSERT_VALID(m_pRibbonBar); SetTooltipStyle(xtpToolTipStandard); EnableFrameTheme(GetCommandBars()); SetFrameIcon(CSize(20, 20)); CreateSystemMenuPopup(); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); UpdateChildrenTheme(); } else { SetFrameIcon(CSize(16, 16)); DisableStyle(); } } void CMainFrame::EnableStyleWindows7(BOOL bEnable /*= TRUE*/) { if (bEnable) { ASSERT_VALID(m_pRibbonBar); SetTooltipStyle(xtpToolTipStandard); EnableFrameTheme(GetCommandBars()); SetFrameIcon(CSize(20, 20)); CreateSystemMenuPopup(); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); UpdateChildrenTheme(); } else { SetFrameIcon(CSize(16, 16)); DisableStyle(); } } void CMainFrame::EnableStyleWindows10(BOOL bEnable /*= TRUE*/) { if (bEnable) { ASSERT_VALID(m_pRibbonBar); SetTooltipStyle(xtpToolTipStandard); EnableFrameTheme(GetCommandBars()); // TODO: Leave COLORREF_NULL as an accent color to get system accent color // or specify any custom RGB accent color value. XTPGetApplication()->SetAmbientProperty(xtpApplicationAccentColor, COleVariant(static_cast(COLORREF_NULL), VT_I4)); CreateSystemMenuPopup(); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); UpdateChildrenTheme(); } else { DisableStyle(); } } void CMainFrame::EnableStyleWindows11(BOOL bEnable /*= TRUE*/) { if (bEnable) { ASSERT_VALID(m_pRibbonBar); SetTooltipStyle(xtpToolTipStandard); EnableFrameTheme(GetCommandBars()); // TODO: Leave COLORREF_NULL as an accent color to get system accent color // or specify any custom RGB accent color value. XTPGetApplication()->SetAmbientProperty(xtpApplicationAccentColor, COleVariant(static_cast(COLORREF_NULL), VT_I4)); CreateSystemMenuPopup(); m_pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); UpdateChildrenTheme(); } else { DisableStyle(); } } void CMainFrame::OnCustomize() { ShowOptionsDialog(); } void CMainFrame::OnCustomizeQuickAccess() { ShowOptionsDialog(xtpOptionsPageGeneral); } XTPControlTheme CMainFrame::GetOptionsDialogTheme() { 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; case xtpThemeNativeWindows10: controlTheme = xtpControlThemeNativeWindows10; break; case xtpThemeNativeWindows11: controlTheme = xtpControlThemeNativeWindows11; break; default: controlTheme = xtpControlThemeDefault; break; } return controlTheme; } void CMainFrame::ShowOptionsDialog(OptionsPage nSelectedPage /*= xtpOptionsPageGeneral*/) { XTPListBoxStyle nTheme; switch (XTPPaintManager()->GetCurrentTheme()) { case xtpThemeOffice2013: nTheme = xtpListBoxOffice2013; break; case xtpThemeVisualStudio2015: nTheme = xtpListBoxVisualStudio2015; break; case xtpThemeVisualStudio2017: nTheme = xtpListBoxVisualStudio2017; break; case xtpThemeVisualStudio2019: nTheme = xtpListBoxVisualStudio2019; break; case xtpThemeVisualStudio2022: nTheme = xtpListBoxVisualStudio2022; break; case xtpThemeNativeWindows10: nTheme = xtpListBoxNativeWindows10; break; case xtpThemeNativeWindows11: nTheme = xtpListBoxNativeWindows11; break; case xtpThemeResource: case xtpThemeRibbon: case xtpThemeOffice2007System: nTheme = xtpListBoxOffice2007; break; case xtpThemeOfficeXP: nTheme = xtpListBoxOfficeXP; break; default: nTheme = xtpListBoxStandard; break; } CXTPPropertyPageListNavigator* pList = new CXTPPropertyPageListNavigator(); pList->SetListStyle(nTheme); CXTPPropertySheet cs(_T("Options")); cs.m_psh.dwFlags |= PSH_NOAPPLYNOW; cs.SetNavigator(pList); CXTPPropertyPage* pActivePage = NULL; CCustomizePageGeneral pageCustomizeGeneral; cs.AddPage(&pageCustomizeGeneral); if (xtpOptionsPageGeneral == nSelectedPage) { pActivePage = &pageCustomizeGeneral; } CXTPRibbonCustomizePage pageCustomizeRibbon(GetCommandBars()); cs.AddPage(&pageCustomizeRibbon); pageCustomizeRibbon.AddCategories(IDR_MAINFRAME); if (xtpOptionsPageRibbon == nSelectedPage) { pActivePage = &pageCustomizeRibbon; } CXTPRibbonCustomizeQuickAccessPage pageQuickAccess(GetCommandBars()); cs.AddPage(&pageQuickAccess); pageQuickAccess.AddCategories(IDR_MAINFRAME); if (xtpOptionsPageQAT == nSelectedPage) { pActivePage = &pageQuickAccess; } cs.SetResizable(); if (NULL != pActivePage) { cs.SetActivePage(pActivePage); } cs.SetTheme(GetOptionsDialogTheme()); cs.DoModal(); } void CMainFrame::LoadXAMLIcons() { CString type(_T("RT_XAML")); // resource type UINT nWidth = 0; // COMMON // Normal icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_DOCUMENT, ID_FILE_NEW, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_OPEN_FILLED, ID_FILE_OPEN, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_SAVE_FILLED, ID_FILE_SAVE, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_SAVE_AS_FILLED, ID_FILE_SAVE_AS, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_COMMAND_UNDO_2, ID_EDIT_UNDO, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_COMMAND_REDO_2, ID_EDIT_REDO, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PRINTER, ID_FILE_PRINT, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PRINT_PREVIEW, ID_FILE_PRINT_PREVIEW, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_PRINT_SETUP, ID_FILE_PRINT_SETUP, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_EXIT, ID_APP_EXIT, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_BUTTON_HELP, ID_APP_ABOUT, nWidth); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_DOCUMENT, ID_FILE_NEW, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_OPEN_FILLED, ID_FILE_OPEN, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_SAVE_FILLED, ID_FILE_SAVE, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_SAVE_AS_FILLED, ID_FILE_SAVE_AS, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_COMMAND_UNDO_2, ID_EDIT_UNDO, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_COMMAND_REDO_2, ID_EDIT_REDO, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PRINTER, ID_FILE_PRINT, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PRINT_PREVIEW, ID_FILE_PRINT_PREVIEW, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_PRINT_SETUP, ID_FILE_PRINT_SETUP, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_EXIT, ID_APP_EXIT, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_BUTTON_HELP, ID_APP_ABOUT, nWidth); // Disabled icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_DOCUMENT, ID_FILE_NEW, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_OPEN_FILLED, ID_FILE_OPEN, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_SAVE_FILLED, ID_FILE_SAVE, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_SAVE_AS_FILLED, ID_FILE_SAVE_AS, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_COMMAND_UNDO_2, ID_EDIT_UNDO, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_COMMAND_REDO_2, ID_EDIT_REDO, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PRINTER, ID_FILE_PRINT, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PRINT_PREVIEW, ID_FILE_PRINT_PREVIEW, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_PRINT_SETUP, ID_FILE_PRINT_SETUP, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_EXIT, ID_APP_EXIT, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_BUTTON_HELP, ID_APP_ABOUT, nWidth, xtpImageDisabled); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_DOCUMENT, ID_FILE_NEW, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_OPEN_FILLED, ID_FILE_OPEN, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_SAVE_FILLED, ID_FILE_SAVE, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_SAVE_AS_FILLED, ID_FILE_SAVE_AS, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_COMMAND_UNDO_2, ID_EDIT_UNDO, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_COMMAND_REDO_2, ID_EDIT_REDO, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PRINTER, ID_FILE_PRINT, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PRINT_PREVIEW, ID_FILE_PRINT_PREVIEW, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_PRINT_SETUP, ID_FILE_PRINT_SETUP, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_EXIT, ID_APP_EXIT, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_BUTTON_HELP, ID_APP_ABOUT, nWidth, xtpImageDisabled); // BUTTONS // Normal icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_BARS_4, ID_BUTTONS_LARGE_SIMPLEBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_TOGGLE_OFF, ID_BUTTONS_LARGE_TOGGLEBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_HOME, ID_BUTTONS_LARGE_POPUPBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_EYE, ID_BUTTONS_LARGE_SPLITPOPUPBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_OVERLAYS_DOCUMENT_TEXT_ERROR, ID_BUTTONS_SMALL_SIMPLEBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_OVERLAYS_DOCUMENT_TEXT_INFO, ID_BUTTONS_SMALL_POPUPBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_OVERLAYS_DOCUMENT_TEXT_OK, ID_BUTTONS_SMALL_SPLITPOPUPBUTTON, nWidth); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_BARS_4, ID_BUTTONS_LARGE_SIMPLEBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_TOGGLE_OFF, ID_BUTTONS_LARGE_TOGGLEBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_HOME, ID_BUTTONS_LARGE_POPUPBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_EYE, ID_BUTTONS_LARGE_SPLITPOPUPBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_OVERLAYS_DOCUMENT_TEXT_ERROR, ID_BUTTONS_SMALL_SIMPLEBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_OVERLAYS_DOCUMENT_TEXT_INFO, ID_BUTTONS_SMALL_POPUPBUTTON, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_OVERLAYS_DOCUMENT_TEXT_OK, ID_BUTTONS_SMALL_SPLITPOPUPBUTTON, nWidth); // Disabled icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_BARS_4, ID_BUTTONS_LARGE_SIMPLEBUTTON, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_HOME, ID_BUTTONS_LARGE_POPUPBUTTON, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_EYE, ID_BUTTONS_LARGE_SPLITPOPUPBUTTON, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_OVERLAYS_DOCUMENT_TEXT_ERROR, ID_BUTTONS_SMALL_SIMPLEBUTTON, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_OVERLAYS_DOCUMENT_TEXT_INFO, ID_BUTTONS_SMALL_POPUPBUTTON, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_OVERLAYS_DOCUMENT_TEXT_OK, ID_BUTTONS_SMALL_SPLITPOPUPBUTTON, nWidth, xtpImageDisabled); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_BARS_4, ID_BUTTONS_LARGE_SIMPLEBUTTON, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_HOME, ID_BUTTONS_LARGE_POPUPBUTTON, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_EYE, ID_BUTTONS_LARGE_SPLITPOPUPBUTTON, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_OVERLAYS_DOCUMENT_TEXT_ERROR, ID_BUTTONS_SMALL_SIMPLEBUTTON, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_OVERLAYS_DOCUMENT_TEXT_INFO, ID_BUTTONS_SMALL_POPUPBUTTON, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_OVERLAYS_DOCUMENT_TEXT_OK, ID_BUTTONS_SMALL_SPLITPOPUPBUTTON, nWidth, xtpImageDisabled); // Checked icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_TOGGLE_ON, ID_BUTTONS_LARGE_TOGGLEBUTTON, nWidth, xtpImageChecked); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_TOGGLE_ON, ID_BUTTONS_LARGE_TOGGLEBUTTON, nWidth, xtpImageChecked); // EDITORS // Normal icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_0, ID_EDITORS_COMBO, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_9, ID_EDITORS_COMBO2, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_ZOOM_IN, ID_EDITORSEX_COMBO, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_ZOOM_OUT, ID_EDITORSEX_COMBO2, nWidth); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_0, ID_EDITORS_COMBO, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_9, ID_EDITORS_COMBO2, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_ZOOM_IN, ID_EDITORSEX_COMBO, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_ZOOM_OUT, ID_EDITORSEX_COMBO2, nWidth); // Disabled icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_0, ID_EDITORS_COMBO, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_9, ID_EDITORS_COMBO2, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_ZOOM_IN, ID_EDITORSEX_COMBO, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_ZOOM_OUT, ID_EDITORSEX_COMBO2, nWidth, xtpImageDisabled); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_0, ID_EDITORS_COMBO, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_9, ID_EDITORS_COMBO2, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_ZOOM_IN, ID_EDITORSEX_COMBO, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_ZOOM_OUT, ID_EDITORSEX_COMBO2, nWidth, xtpImageDisabled); // GALLERIES // Normal icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_STYLES, ID_BUTTON_GALLERY_STYLES, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_TABLE, ID_BUTTON_GALLERY_TABLE, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_COLOR_FILL, ID_BUTTON_GALLERY_COLOR, nWidth); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_STYLES, ID_BUTTON_GALLERY_STYLES, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_TABLE, ID_BUTTON_GALLERY_TABLE, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_COLOR_FILL, ID_BUTTON_GALLERY_COLOR, nWidth); // Disabled icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_STYLES, ID_BUTTON_GALLERY_STYLES, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_TABLE, ID_BUTTON_GALLERY_TABLE, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_COLOR_FILL, ID_BUTTON_GALLERY_COLOR, nWidth, xtpImageDisabled); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_STYLES, ID_BUTTON_GALLERY_STYLES, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_TABLE, ID_BUTTON_GALLERY_TABLE, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_COLOR_FILL, ID_BUTTON_GALLERY_COLOR, nWidth, xtpImageDisabled); // SHAPES button nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_INSERT_SHAPES_FILLED, ID_BUTTON_GALLERY_SHAPES, nWidth); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_INSERT_SHAPES_FILLED, ID_BUTTON_GALLERY_SHAPES, nWidth); nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_INSERT_SHAPES_FILLED, ID_BUTTON_GALLERY_SHAPES, nWidth, xtpImageDisabled); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_INSERT_SHAPES_FILLED, ID_BUTTON_GALLERY_SHAPES, nWidth, xtpImageDisabled); // REDUCTION // Normal icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_1, ID_BUTTON_REDUCTION_1, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_2, ID_BUTTON_REDUCTION_2, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_3, ID_BUTTON_REDUCTION_3, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_4, ID_BUTTON_REDUCTION_4, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_5, ID_BUTTON_REDUCTION_5, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_6, ID_BUTTON_REDUCTION_6, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_7, ID_BUTTON_REDUCTION_7, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_8, ID_BUTTON_REDUCTION_8, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_9, ID_BUTTON_REDUCTION_9, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_0, ID_BUTTON_REDUCTION_10, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_1, ID_BUTTON_REDUCTION_11, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_NORMAL_NUMBER_2, ID_BUTTON_REDUCTION_12, nWidth); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_1, ID_BUTTON_REDUCTION_1, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_2, ID_BUTTON_REDUCTION_2, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_3, ID_BUTTON_REDUCTION_3, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_4, ID_BUTTON_REDUCTION_4, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_5, ID_BUTTON_REDUCTION_5, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_6, ID_BUTTON_REDUCTION_6, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_7, ID_BUTTON_REDUCTION_7, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_8, ID_BUTTON_REDUCTION_8, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_9, ID_BUTTON_REDUCTION_9, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_0, ID_BUTTON_REDUCTION_10, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_1, ID_BUTTON_REDUCTION_11, nWidth); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_NORMAL_NUMBER_2, ID_BUTTON_REDUCTION_12, nWidth); // Disabled icons nWidth = XTP_DPI_X(16); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_1, ID_BUTTON_REDUCTION_1, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_2, ID_BUTTON_REDUCTION_2, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_3, ID_BUTTON_REDUCTION_3, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_4, ID_BUTTON_REDUCTION_4, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_5, ID_BUTTON_REDUCTION_5, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_6, ID_BUTTON_REDUCTION_6, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_7, ID_BUTTON_REDUCTION_7, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_8, ID_BUTTON_REDUCTION_8, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_9, ID_BUTTON_REDUCTION_9, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_0, ID_BUTTON_REDUCTION_10, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_1, ID_BUTTON_REDUCTION_11, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_SMALL_ICON_DISABLED_NUMBER_2, ID_BUTTON_REDUCTION_12, nWidth, xtpImageDisabled); nWidth = XTP_DPI_X(32); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_1, ID_BUTTON_REDUCTION_1, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_2, ID_BUTTON_REDUCTION_2, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_3, ID_BUTTON_REDUCTION_3, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_4, ID_BUTTON_REDUCTION_4, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_5, ID_BUTTON_REDUCTION_5, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_6, ID_BUTTON_REDUCTION_6, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_7, ID_BUTTON_REDUCTION_7, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_8, ID_BUTTON_REDUCTION_8, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_9, ID_BUTTON_REDUCTION_9, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_0, ID_BUTTON_REDUCTION_10, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_1, ID_BUTTON_REDUCTION_11, nWidth, xtpImageDisabled); XTPImageManager()->SetVectorIcon(type, IDR_XAML_LARGE_ICON_DISABLED_NUMBER_2, ID_BUTTON_REDUCTION_12, nWidth, xtpImageDisabled); UINT nIDs[] = { ID_BITMAP_WINDOWS }; XTPImageManager()->SetIcons(IDB_GROUP_MISC_64, nIDs, 1, CSize(0, 0), xtpImageNormal); } void CMainFrame::CreateGalleries() { int item = 0; CXTPImageManager* pImgMgr = NULL; CString t(_T("RT_XAML")); UINT w = 0; CSize szItemBorder(4 * 2, 4 * 2); m_pItemsShapes = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_SUBMENU_SHAPES); pImgMgr = m_pItemsShapes->GetImageManager(); w = XTP_DPI_X(16); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_0, IDR_GALLERY_SHAPES_ITEM_0, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_1, IDR_GALLERY_SHAPES_ITEM_1, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_2, IDR_GALLERY_SHAPES_ITEM_2, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_3, IDR_GALLERY_SHAPES_ITEM_3, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_4, IDR_GALLERY_SHAPES_ITEM_4, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_5, IDR_GALLERY_SHAPES_ITEM_5, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_6, IDR_GALLERY_SHAPES_ITEM_6, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_7, IDR_GALLERY_SHAPES_ITEM_7, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_8, IDR_GALLERY_SHAPES_ITEM_8, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_9, IDR_GALLERY_SHAPES_ITEM_9, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_10, IDR_GALLERY_SHAPES_ITEM_10, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_11, IDR_GALLERY_SHAPES_ITEM_11, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_12, IDR_GALLERY_SHAPES_ITEM_12, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_13, IDR_GALLERY_SHAPES_ITEM_13, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_14, IDR_GALLERY_SHAPES_ITEM_14, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_15, IDR_GALLERY_SHAPES_ITEM_15, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_16, IDR_GALLERY_SHAPES_ITEM_16, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_17, IDR_GALLERY_SHAPES_ITEM_17, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_18, IDR_GALLERY_SHAPES_ITEM_18, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_19, IDR_GALLERY_SHAPES_ITEM_19, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_20, IDR_GALLERY_SHAPES_ITEM_20, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_21, IDR_GALLERY_SHAPES_ITEM_21, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_22, IDR_GALLERY_SHAPES_ITEM_22, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_23, IDR_GALLERY_SHAPES_ITEM_23, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_24, IDR_GALLERY_SHAPES_ITEM_24, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_25, IDR_GALLERY_SHAPES_ITEM_25, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_26, IDR_GALLERY_SHAPES_ITEM_26, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_27, IDR_GALLERY_SHAPES_ITEM_27, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_28, IDR_GALLERY_SHAPES_ITEM_28, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_29, IDR_GALLERY_SHAPES_ITEM_29, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_30, IDR_GALLERY_SHAPES_ITEM_30, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_31, IDR_GALLERY_SHAPES_ITEM_31, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_32, IDR_GALLERY_SHAPES_ITEM_32, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_33, IDR_GALLERY_SHAPES_ITEM_33, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_34, IDR_GALLERY_SHAPES_ITEM_34, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_35, IDR_GALLERY_SHAPES_ITEM_35, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_36, IDR_GALLERY_SHAPES_ITEM_36, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_37, IDR_GALLERY_SHAPES_ITEM_37, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_38, IDR_GALLERY_SHAPES_ITEM_38, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_39, IDR_GALLERY_SHAPES_ITEM_39, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_40, IDR_GALLERY_SHAPES_ITEM_40, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_41, IDR_GALLERY_SHAPES_ITEM_41, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_42, IDR_GALLERY_SHAPES_ITEM_42, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_43, IDR_GALLERY_SHAPES_ITEM_43, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_44, IDR_GALLERY_SHAPES_ITEM_44, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_45, IDR_GALLERY_SHAPES_ITEM_45, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_46, IDR_GALLERY_SHAPES_ITEM_46, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_47, IDR_GALLERY_SHAPES_ITEM_47, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_48, IDR_GALLERY_SHAPES_ITEM_48, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_49, IDR_GALLERY_SHAPES_ITEM_49, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_50, IDR_GALLERY_SHAPES_ITEM_50, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_51, IDR_GALLERY_SHAPES_ITEM_51, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_52, IDR_GALLERY_SHAPES_ITEM_52, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_53, IDR_GALLERY_SHAPES_ITEM_53, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_54, IDR_GALLERY_SHAPES_ITEM_54, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_55, IDR_GALLERY_SHAPES_ITEM_55, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_56, IDR_GALLERY_SHAPES_ITEM_56, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_57, IDR_GALLERY_SHAPES_ITEM_57, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_58, IDR_GALLERY_SHAPES_ITEM_58, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_59, IDR_GALLERY_SHAPES_ITEM_59, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_60, IDR_GALLERY_SHAPES_ITEM_60, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_61, IDR_GALLERY_SHAPES_ITEM_61, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_62, IDR_GALLERY_SHAPES_ITEM_62, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_63, IDR_GALLERY_SHAPES_ITEM_63, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_64, IDR_GALLERY_SHAPES_ITEM_64, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_65, IDR_GALLERY_SHAPES_ITEM_65, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_66, IDR_GALLERY_SHAPES_ITEM_66, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_67, IDR_GALLERY_SHAPES_ITEM_67, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_68, IDR_GALLERY_SHAPES_ITEM_68, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_69, IDR_GALLERY_SHAPES_ITEM_69, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_70, IDR_GALLERY_SHAPES_ITEM_70, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_SHAPES_ITEM_71, IDR_GALLERY_SHAPES_ITEM_71, w); m_pItemsShapes->SetItemSize(CSize(20, 20)); CXTPControlGalleryItem* pItem = m_pItemsShapes->AddLabel(0); pItem->SetCaption(_T("Letters")); for (item = IDR_GALLERY_LETTERS_ITEM_FIRST; item <= IDR_GALLERY_LETTERS_ITEM_LAST; item++) m_pItemsShapes->AddItem(item, item); pItem = m_pItemsShapes->AddLabel(0); pItem->SetCaption(_T("Numbers")); for (item = IDR_GALLERY_NUMBERS_ITEM_FIRST; item <= IDR_GALLERY_NUMBERS_ITEM_LAST; item++) m_pItemsShapes->AddItem(item, item); pItem = m_pItemsShapes->AddLabel(0); pItem->SetCaption(_T("Symbols")); for (item = IDR_GALLERY_SHAPES_ITEM_FIRST; item <= IDR_GALLERY_SHAPES_ITEM_LAST; item++) m_pItemsShapes->AddItem(item, item); m_pItemsStyles = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_SUBMENU_GALLERY); pImgMgr = m_pItemsStyles->GetImageManager(); w = XTP_DPI_X(64); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_0, ID_GALLERY_STYLES_ITEM_0, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_1, ID_GALLERY_STYLES_ITEM_1, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_2, ID_GALLERY_STYLES_ITEM_2, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_3, ID_GALLERY_STYLES_ITEM_3, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_4, ID_GALLERY_STYLES_ITEM_4, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_5, ID_GALLERY_STYLES_ITEM_5, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_6, ID_GALLERY_STYLES_ITEM_6, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_7, ID_GALLERY_STYLES_ITEM_7, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_8, ID_GALLERY_STYLES_ITEM_8, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_9, ID_GALLERY_STYLES_ITEM_9, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_10, ID_GALLERY_STYLES_ITEM_10, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_11, ID_GALLERY_STYLES_ITEM_11, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_12, ID_GALLERY_STYLES_ITEM_12, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_13, ID_GALLERY_STYLES_ITEM_13, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_14, ID_GALLERY_STYLES_ITEM_14, w); pImgMgr->SetVectorIcon(t, IDR_XAML_ICON_GALLERY_STYLES_ITEM_15, ID_GALLERY_STYLES_ITEM_15, w); m_pItemsStyles->SetItemSize(CSize(64 + szItemBorder.cx, 48 + szItemBorder.cy)); for (item = ID_GALLERY_STYLES_ITEM_FIRST; item <= ID_GALLERY_STYLES_ITEM_LAST; item++) m_pItemsStyles->AddItem(item, item); m_pItemsFontTextColor = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_SUBMENU_FONT_COLOR); m_pItemsFontTextColor->SetItemSize(CSize(17, 17)); pItem = m_pItemsFontTextColor->AddLabel(0); pItem->SetCaption(_T("Theme Colors")); CGalleryItemFontColor::AddThemeColors(m_pItemsFontTextColor, 0); pItem = m_pItemsFontTextColor->AddLabel(0); pItem->SetCaption(_T("Standard Colors")); CGalleryItemFontColor::AddStandardColors(m_pItemsFontTextColor); m_pItemsFontFace = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_BUTTON_GALLERY_FONT_FACE); m_pItemsFontFace->SetItemSize(CSize(0, 26)); CGalleryItemFontFace::AddFontItems(m_pItemsFontFace); m_pItemsTable = CXTPControlGalleryItems::CreateItems(GetCommandBars(), ID_BUTTON_GALLERY_TABLE); if (m_pItemsTable) { m_pItemsTable->ClipItems(FALSE); // Redraw all Items if selection changed m_pItemsTable->SetItemSize(CSize(19, 19)); CXTPControlGalleryItem* pItem = m_pItemsTable->AddItem(new CGalleryItemTableLabel()); int nItem; for (nItem = 0; nItem < 10 * 8; nItem++) m_pItemsTable->AddItem(new CGalleryItemTable(nItem)); } } int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl) { if (lpCreateControl->nID == ID_SUBMENU_GALLERY) { CXTPControlGallery* pControlGallery = new CXTPControlGallery(); _ASSERTE(pControlGallery); pControlGallery->SetControlSize(CSize(220, 60 * 2)); pControlGallery->SetResizable(); pControlGallery->SetItems(m_pItemsStyles); lpCreateControl->pControl = pControlGallery; return TRUE; } if (lpCreateControl->nID == ID_SUBMENU_SHAPES) { CXTPControlGallery* pControlGallery = new CXTPControlGallery(); _ASSERTE(pControlGallery); pControlGallery->SetControlSize(CSize(200, 200)); pControlGallery->SetResizable(); pControlGallery->ShowLabels(TRUE); pControlGallery->SetItems(m_pItemsShapes); lpCreateControl->pControl = pControlGallery; return TRUE; } return FALSE; } void CMainFrame::CreateSystemMenuPopup() { CXTPRibbonBar* pRibbonBar = DYNAMIC_DOWNCAST(CXTPRibbonBar, GetCommandBars()->GetMenuBar()); if (pRibbonBar) { pRibbonBar->GetSystemButton()->SetStyle(xtpButtonAutomatic); CXTPRibbonControlSystemButton* pRibbonButton = pRibbonBar->GetSystemButton(); if (pRibbonButton) { CMenu menu; menu.LoadMenu(IDR_MAINFRAME); CXTPPopupBar* pCommandBar = new CXTPRibbonSystemPopupBar(); if (pCommandBar) { pCommandBar->SetCommandBars(GetCommandBars()); pRibbonButton->SetCommandBar(pCommandBar); pCommandBar->InternalRelease(); pCommandBar->LoadMenu(menu.GetSubMenu(0)); pCommandBar->SetIconSize(CSize(36, 36)); } } } } void CMainFrame::CreateBackstage() { _ASSERTE(NULL == m_pBackstageView); ASSERT_VALID(m_pRibbonBar); m_pBackstageView = CXTPRibbonBackstageView::CreateBackstageView(GetCommandBars()); ASSERT_VALID(m_pBackstageView); if (m_pBackstageView) { m_pBackstageView->AddCommand(ID_FILE_OPEN); m_pBackstageView->AddCommand(ID_FILE_SAVE); m_pBackstageView->AddCommand(ID_FILE_SAVE_AS); m_pBackstageView->AddCommand(ID_FILE_PRINT); m_pBackstageView->AddCommand(ID_APP_ABOUT); m_pBackstageView->AddMenuSeparator(); m_pBackstageView->AddCommand(ID_APP_EXIT); CXTPRibbonBar* pRibbonBar = DYNAMIC_DOWNCAST(CXTPRibbonBar, GetCommandBars()->GetMenuBar()); if (pRibbonBar) { pRibbonBar->GetSystemButton()->SetStyle(xtpButtonCaption); CXTPRibbonControlSystemButton* pRibbonButton = pRibbonBar->GetSystemButton(); if (pRibbonButton) { pRibbonButton->SetCommandBar(m_pBackstageView); } } m_pBackstageView->InternalRelease(); } } void CMainFrame::DestroyBackstage() { ASSERT_VALID(m_pBackstageView); ASSERT_VALID(m_pRibbonBar); m_pBackstageView = NULL; }