74 lines
2.1 KiB
C++
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);
|
|
}
|