// TabbedToolbarView.cpp : implementation file // #include "stdafx.h" #include "commandbarssample.h" #include "TabbedToolbarView.h" #ifdef _DEBUG # define new DEBUG_NEW # undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CTabbedToolbarView IMPLEMENT_DYNCREATE(CTabbedToolbarView, CFormView) CTabbedToolbarView::CTabbedToolbarView() : CFormView(CTabbedToolbarView::IDD) { //{{AFX_DATA_INIT(CTabbedToolbarView) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_nAppearance = xtpTabAppearancePropertyPage2003; m_nColor = -1; m_nLayout = -1; m_bBoldSelected = TRUE; m_bHotTracking = FALSE; m_bBoldSelected = TRUE; m_bOneNoteColors = TRUE; m_bAllowReorder = FALSE; m_bShowIcons = FALSE; m_bFillBackground = FALSE; m_bMultiRowFixedSelection = FALSE; m_bMultiRowJustified = FALSE; } CTabbedToolbarView::~CTabbedToolbarView() { } void CTabbedToolbarView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTabbedToolbarView) DDX_Control(pDX, IDC_APPEARANCE_COMBO, m_comboAppearance); DDX_CBIndex(pDX, IDC_APPEARANCE_COMBO, m_nAppearance); DDX_Control(pDX, IDC_COLOR_SET_COMBO, m_comboColor); DDX_CBIndex(pDX, IDC_COLOR_SET_COMBO, m_nColor); DDX_CBIndex(pDX, IDC_LAYOUT_COMBO, m_nLayout); DDX_Check(pDX, IDC_BOLD_CHECK, m_bBoldSelected); DDX_Check(pDX, IDC_HOT_TRACKING_CHECK, m_bHotTracking); DDX_Check(pDX, IDC_LUNA_COLORS_CHECK, m_bLunaColors); DDX_Check(pDX, IDC_ONE_NOTE_CHECK, m_bOneNoteColors); DDX_Check(pDX, IDC_REORDER_CHECK, m_bAllowReorder); DDX_Check(pDX, IDC_SHOW_ICONS_CHECK, m_bShowIcons); DDX_Check(pDX, IDC_FILL_BACKGROUND_CHECK, m_bFillBackground); DDX_Check(pDX, IDC_MULTIROW_FIXED_CHECK, m_bMultiRowFixedSelection); DDX_Check(pDX, IDC_MULTIROW_JUSTIFIED_CHECK, m_bMultiRowJustified); // NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CTabbedToolbarView, CFormView) //{{AFX_MSG_MAP(CTabbedToolbarView) ON_CBN_SELCHANGE(IDC_APPEARANCE_COMBO, OnSelchangeComboAppearance) ON_CBN_SELCHANGE(IDC_COLOR_SET_COMBO, OnSelchangeComboColor) ON_CBN_SELCHANGE(IDC_LAYOUT_COMBO, OnSelchangeComboLayout) ON_BN_CLICKED(IDC_BOLD_CHECK, OnCheckBoldSelected) ON_BN_CLICKED(IDC_HOT_TRACKING_CHECK, OnCheckHottracking) ON_BN_CLICKED(IDC_LUNA_COLORS_CHECK, OnCheckLunaColors) ON_BN_CLICKED(IDC_ONE_NOTE_CHECK, OnCheckOnenoteColors) ON_BN_CLICKED(IDC_REORDER_CHECK, OnCheckAllowReorder) ON_BN_CLICKED(IDC_SHOW_ICONS_CHECK, OnCheckIcons) ON_BN_CLICKED(IDC_FILL_BACKGROUND_CHECK, OnCheckBackground) ON_BN_CLICKED(IDC_MULTIROW_FIXED_CHECK, OnCheckFixedSelection) ON_BN_CLICKED(IDC_MULTIROW_JUSTIFIED_CHECK, OnCheckJustified) ON_WM_CTLCOLOR() // NOTE - the ClassWizard will add and remove mapping macros here. //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CTabbedToolbarView diagnostics #ifdef _DEBUG void CTabbedToolbarView::AssertValid() const { CFormView::AssertValid(); } void CTabbedToolbarView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CTabbedToolbarView message handlers void CTabbedToolbarView::OnSelchangeComboAppearance() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->SetAppearance((XTPTabAppearanceStyle)m_nAppearance); pCB->RedrawCommandBars(); UpdateControls(); Update(); UpdateData(FALSE); } void CTabbedToolbarView::OnInitialUpdate() { CFormView::OnInitialUpdate(); UpdateControls(); Update(); UpdateData(FALSE); // TODO: Add your specialized code here and/or call the base class } void CTabbedToolbarView::OnSelchangeComboColor() { UpdateData(); XTPTabColorStyle color = (XTPTabColorStyle)m_comboColor.GetItemData(m_nColor); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->SetColor(color); pCB->RedrawCommandBars(); UpdateControls(); Update(); UpdateData(FALSE); } void CTabbedToolbarView::UpdateControls() { const struct { int nColorSet; LPCTSTR strColorSet; } colors[] = { xtpTabColorDefault, _T("xtpTabColorDefault"), xtpTabColorVisualStudio2003, _T("xtpTabColorVisualStudio2003"), xtpTabColorOffice2003, _T("xtpTabColorOffice2003"), xtpTabColorWinNative, _T("xtpTabColorWinNative"), xtpTabColorVisualStudio2005, _T("xtpTabColorVisualStudio2005") }; CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); int nSupported = pPM->GetAppearanceSet()->GetSupportedColorSets(); m_comboColor.ResetContent(); for (int i = 0; i < 5; i++) { if (nSupported & colors[i].nColorSet) { int nItem = m_comboColor.AddString(colors[i].strColorSet); m_comboColor.SetItemData(nItem, colors[i].nColorSet); if (pPM->GetColor() == colors[i].nColorSet) { m_nColor = nItem; m_comboColor.SetCurSel(nItem); } } } GetDlgItem(IDC_LUNA_COLORS_CHECK) ->EnableWindow((m_comboColor.GetItemData(m_nColor) & (xtpTabColorOffice2003 | xtpTabColorVisualStudio2005)) != 0); GetDlgItem(IDC_ONE_NOTE_CHECK) ->EnableWindow(m_comboColor.GetItemData(m_nColor) != xtpTabColorWinNative); GetDlgItem(IDC_MULTIROW_FIXED_CHECK)->EnableWindow(m_nLayout == xtpTabLayoutMultiRow); GetDlgItem(IDC_MULTIROW_JUSTIFIED_CHECK)->EnableWindow(m_nLayout == xtpTabLayoutMultiRow); } void CTabbedToolbarView::OnSelchangeComboLayout() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->SetLayout((XTPTabLayoutStyle)m_nLayout); pCB->RedrawCommandBars(); UpdateControls(); Update(); UpdateData(FALSE); } void CTabbedToolbarView::Update() { m_nColor = 1; CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); m_nAppearance = pPM->GetAppearance(); m_nLayout = pPM->GetLayout(); m_bBoldSelected = pPM->m_bBoldSelected; m_bHotTracking = pPM->m_bHotTracking; m_bLunaColors = !pPM->IsLunaColorsDisabled(); m_bOneNoteColors = pPM->m_bOneNoteColors; m_bShowIcons = pPM->m_bShowIcons; m_bFillBackground = pPM->m_bFillBackground; m_bMultiRowFixedSelection = pPM->m_bMultiRowFixedSelection; m_bMultiRowJustified = pPM->m_bMultiRowJustified; } void CTabbedToolbarView::OnCheckBoldSelected() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->m_bBoldSelected = m_bBoldSelected; pCB->RedrawCommandBars(); } void CTabbedToolbarView::OnCheckHottracking() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->m_bHotTracking = m_bHotTracking; pCB->RedrawCommandBars(); } void CTabbedToolbarView::OnCheckLunaColors() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->DisableLunaColors(!m_bLunaColors); pCB->RedrawCommandBars(); } void CTabbedToolbarView::OnCheckOnenoteColors() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->SetOneNoteColors(m_bOneNoteColors); pCB->RedrawCommandBars(); } void CTabbedToolbarView::OnCheckAllowReorder() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); if (pTab) pTab->SetAllowReorder(m_bAllowReorder); pCB->RedrawCommandBars(); } void CTabbedToolbarView::OnCheckIcons() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->m_bShowIcons = m_bShowIcons; pCB->RedrawCommandBars(); } void CTabbedToolbarView::OnCheckBackground() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->m_bFillBackground = m_bFillBackground; pCB->RedrawCommandBars(); } void CTabbedToolbarView::OnCheckFixedSelection() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->m_bMultiRowFixedSelection = m_bMultiRowFixedSelection; pCB->RedrawCommandBars(); } void CTabbedToolbarView::OnCheckJustified() { UpdateData(); CXTPFrameWnd* pParent = (CXTPFrameWnd*)GetParentFrame(); CXTPCommandBars* pCB = pParent->GetCommandBars(); CXTPTabToolBar* pTab = (CXTPTabToolBar*)pCB->GetToolBar(IDR_TABBEDTOOLBAR); CXTPTabPaintManager* pPM = pTab->GetPaintManager(); pPM->m_bMultiRowJustified = m_bMultiRowJustified; pCB->RedrawCommandBars(); } HBRUSH CTabbedToolbarView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { CFormView::OnCtlColor(pDC, pWnd, nCtlColor); if (nCtlColor == CTLCOLOR_STATIC) { pDC->SetTextColor(m_clrText); pDC->SetBkMode(TRANSPARENT); } return m_brush; } void CTabbedToolbarView::RefreshMetrics(int m_Theme) { m_brush.DeleteObject(); COLORREF clrBrush = ::GetSysColor(COLOR_3DFACE); m_clrText = RGB(0, 0, 0); switch (m_Theme) { case xtpThemeDlgVisualStudio2008: case xtpThemeDlgVisualStudio2010: case xtpThemeDlgOffice2003: case xtpThemeDlgOffice2007: case xtpThemeDlgOffice2010: clrBrush = XTPIniColor(_T("Toolbar"), _T("DockBarFace"), RGB(255, 255, 255)); m_clrText = XTPIniColor(_T("Toolbar"), _T("MenuBarText"), RGB(255, 255, 255)); break; case xtpThemeDlgOffice2013: case xtpThemeDlgOffice2016: case xtpThemeDlgVisualStudio2012: case xtpThemeDlgVisualStudio2015: case xtpThemeDlgVisualStudio2017: case xtpThemeDlgVisualStudio2019: case xtpThemeDlgVisualStudio2022: case xtpThemeDlgNativeWindows10: case xtpThemeDlgNativeWindows11: clrBrush = XTPIniColor(_T("CommandBars"), _T("Back"), RGB(255, 255, 255)); m_clrText = XTPIniColor(_T("CommandBars.Menu"), _T("ButtonText"), RGB(255, 255, 255)); break; default: break; } m_brush.CreateSolidBrush(clrBrush); }