// 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;
}