DragonNest/Third/XTToolkitPro/Samples/CommandBars/ReBarSample/ExplorerTheme.cpp
2024-12-19 09:48:26 +08:00

74 lines
2.1 KiB
C++

// ExplorerTheme.cpp: implementation of the CExplorerTheme class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ExplorerTheme.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CExplorerTabPaintManager::CExplorerTabPaintManager()
{
SetAppearanceSet(new CExplorerTabAppearance());
SetColor(xtpTabColorWinXP);
m_bBoldSelected = FALSE;
m_rcButtonMargin.SetRect(4, 2, 4, 1);
m_bHotTracking = TRUE;
m_bFillBackground = FALSE;
m_szNavigateButton = CSize(17, 16);
}
void CExplorerTabPaintManager::DrawNavigateButton(CDC* pDC, CXTPTabManagerNavigateButton* pButton, CRect& rc)
{
if (GetColorSet()->IsAppThemed() && pButton->GetID() == xtpTabNavigateButtonClose)
{
LPCTSTR lpszImage = pButton->IsPressed() ? _T("IDB_EXPLORERTABCLOSEBUTTONPUSHED") :
pButton->IsHighlighted() ? _T("IDB_EXPLORERTABCLOSEBUTTONHOT") : _T("IDB_EXPLORERTABCLOSEBUTTON");
CXTPOffice2007Image* pImage = ((CExplorerTabAppearance*)GetAppearanceSet())->m_images.LoadFile(lpszImage);
if (pImage)
{
pImage->Premultiply();
pImage->DrawImage(pDC, rc, pImage->GetSource());
}
}
else
{
CXTPTabPaintManager::DrawNavigateButton(pDC, pButton, rc);
}
}
void CExplorerTabPaintManager::CExplorerTabAppearance::DrawSingleButton(CDC* pDC, CXTPTabManagerItem* pItem)
{
if (!m_pPaintManager->GetColorSet()->IsAppThemed())
{
CAppearanceSetPropertyPage::DrawSingleButton(pDC, pItem);
return;
}
CRect rcItem = pItem->GetRect();
if (pItem->IsSelected())
rcItem.InflateRect(1, 2, 1, 0);
else rcItem.InflateRect(0, 0, 1, 0);
LPCTSTR lpszImage = pItem->IsSelected() ? _T("IDB_EXPLORERTABSELECTED") :
pItem->IsHighlighted() ? _T("IDB_EXPLORERTABHOT") : _T("IDB_EXPLORERTABNORMAL");
CXTPOffice2007Image* pImage = m_images.LoadFile(lpszImage);
ASSERT(pImage);
if (pImage)
{
pImage->Premultiply();
pImage->DrawImage(pDC, rcItem, pImage->GetSource(), CRect(3, 3, 3, 3));
}
m_pPaintManager->DrawSingleButtonIconAndText(pDC, pItem, rcItem, TRUE);
}