You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
505 lines
14 KiB
C++
505 lines
14 KiB
C++
// XTFlatControlsTheme.cpp: implementation of the CXTFlatControlsTheme class.
|
|
//
|
|
// This file is a part of the XTREME CONTROLS MFC class library.
|
|
// (c)1998-2012 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 "Common/XTPMaskEditT.h"
|
|
#include "Common/XTPColorManager.h"
|
|
#include "Common/XTPDrawHelpers.h"
|
|
|
|
#include "../Util/XTPControlTheme.h"
|
|
#include "../Edit/XTPEdit.h"
|
|
#include "../Util/XTPGlobal.h"
|
|
|
|
#include "XTThemeManager.h"
|
|
#include "XTVC50Helpers.h"
|
|
#include "XTFlatControlsTheme.h"
|
|
#include "XTFlatComboBox.h"
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#define new DEBUG_NEW
|
|
#endif
|
|
|
|
IMPLEMENT_THEME_FACTORY(CXTFlatComboBoxTheme)
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CXTFlatComboBoxTheme class
|
|
//
|
|
|
|
CXTFlatComboBoxTheme::CXTFlatComboBoxTheme()
|
|
{
|
|
}
|
|
|
|
void CXTFlatComboBoxTheme::RefreshMetrics()
|
|
{
|
|
CXTThemeManagerStyle ::RefreshMetrics();
|
|
|
|
// get system metrics for border, 3D edge and drop arrow box.
|
|
m_sizeThumb.cx = ::GetSystemMetrics(SM_CXHTHUMB);
|
|
m_sizeThumb.cy = ::GetSystemMetrics(SM_CYVTHUMB);
|
|
m_sizeBorder.cx = ::GetSystemMetrics(SM_CXBORDER);
|
|
m_sizeBorder.cy = ::GetSystemMetrics(SM_CYBORDER);
|
|
m_sizeEdge.cx = ::GetSystemMetrics(SM_CXEDGE);
|
|
m_sizeEdge.cy = ::GetSystemMetrics(SM_CYEDGE);
|
|
|
|
// define sizes for office arrow and max height.
|
|
m_cxArrow = GetDropArrowWidth();
|
|
}
|
|
|
|
void CXTFlatComboBoxTheme::DrawFlatComboBox(CDC* pDC, CXTFlatComboBox* pCombo, int eState)
|
|
{
|
|
CRect rcItem;
|
|
pCombo->GetClientRect(&rcItem);
|
|
|
|
CRect rcBack(rcItem);
|
|
rcBack.DeflateRect(m_sizeEdge);
|
|
|
|
if (pCombo->IsWindowEnabled())
|
|
{
|
|
// erase background.
|
|
pDC->FillSolidRect(rcBack, GetXtremeColor(COLOR_WINDOW));
|
|
|
|
CRect rFillColor(rcBack);
|
|
rFillColor.DeflateRect(m_sizeBorder);
|
|
rFillColor.right -= m_cxArrow;
|
|
|
|
if (eState == xtMouseHover || eState == xtMouseSelect)
|
|
{
|
|
rFillColor.right--;
|
|
pDC->Draw3dRect(&rcItem, GetXtremeColor(COLOR_3DSHADOW), GetXtremeColor(COLOR_3DHILIGHT));
|
|
}
|
|
|
|
if (pCombo->GetEditSel() == (DWORD)CB_ERR)
|
|
pDC->FillSolidRect(rFillColor, pCombo->GetBackColor());
|
|
}
|
|
else
|
|
{
|
|
pDC->FillSolidRect(rcBack, GetXtremeColor(XPCOLOR_3DFACE));
|
|
|
|
pDC->Draw3dRect(&rcItem, GetXtremeColor(XPCOLOR_3DSHADOW),
|
|
GetXtremeColor(XPCOLOR_3DSHADOW));
|
|
}
|
|
|
|
DrawDownArrow(pDC, rcBack, eState, pCombo);
|
|
}
|
|
|
|
void CXTFlatComboBoxTheme::DrawDownArrow(CDC* pDC, const CRect& rcItem, int eState, CXTFlatComboBox* pCombo)
|
|
{
|
|
// determine background size.
|
|
CRect rcArrow(rcItem);
|
|
DrawArrowBack(pDC, rcArrow, eState, pCombo);
|
|
|
|
CPoint pt;
|
|
pt.x = (rcArrow.left + rcArrow.right - 4) / 2;
|
|
pt.y = (rcArrow.top + rcArrow.bottom - 2) / 2;
|
|
|
|
if (eState == xtMouseSelect)
|
|
pt.Offset(1, 1);
|
|
|
|
COLORREF cr = pCombo->IsWindowEnabled() ? GetXtremeColor(COLOR_WINDOWTEXT) : GetXtremeColor(COLOR_3DSHADOW);
|
|
|
|
pDC->SetPixel(pt.x, pt.y, cr);
|
|
pDC->SetPixel(pt.x+1, pt.y, cr);
|
|
pDC->SetPixel(pt.x+2, pt.y, cr);
|
|
pDC->SetPixel(pt.x+3, pt.y, cr);
|
|
pDC->SetPixel(pt.x+4, pt.y, cr);
|
|
pDC->SetPixel(pt.x+1, pt.y+1, cr);
|
|
pDC->SetPixel(pt.x+2, pt.y+1, cr);
|
|
pDC->SetPixel(pt.x+3, pt.y+1, cr);
|
|
pDC->SetPixel(pt.x+2, pt.y+2, cr);
|
|
}
|
|
|
|
int CXTFlatComboBoxTheme::GetDropArrowWidth() const
|
|
{
|
|
TEXTMETRIC tm;
|
|
|
|
CWindowDC dc(NULL);
|
|
CXTPFontDC fontDC(&dc, &XTPAuxData().font);
|
|
dc.GetTextMetrics(&tm);
|
|
|
|
int nThumbWidth = __max(15, tm.tmAveCharWidth * 2 + 4);
|
|
|
|
return min(nThumbWidth, GetSystemMetrics(SM_CXVSCROLL) + 1);
|
|
|
|
}
|
|
|
|
void CXTFlatComboBoxTheme::DrawArrowBack(CDC* pDC, CRect& rcArrow, int eState, CXTFlatComboBox* /*pCombo*/)
|
|
{
|
|
rcArrow.left = rcArrow.right - (m_cxArrow - 4);
|
|
|
|
if (eState == xtMouseHover)
|
|
{
|
|
pDC->Draw3dRect(&rcArrow, GetXtremeColor(COLOR_3DHILIGHT), GetXtremeColor(COLOR_3DSHADOW));
|
|
rcArrow.DeflateRect(-1, -1);
|
|
|
|
pDC->Draw3dRect(&rcArrow, GetXtremeColor(COLOR_3DFACE), GetXtremeColor(COLOR_3DFACE));
|
|
rcArrow.DeflateRect(1, 1);
|
|
}
|
|
|
|
if (eState == xtMouseSelect)
|
|
{
|
|
pDC->Draw3dRect(&rcArrow, GetXtremeColor(COLOR_3DSHADOW), GetXtremeColor(COLOR_3DHILIGHT));
|
|
rcArrow.DeflateRect(-1, -1);
|
|
|
|
pDC->Draw3dRect(&rcArrow, GetXtremeColor(COLOR_3DFACE), GetXtremeColor(COLOR_3DFACE));
|
|
rcArrow.DeflateRect(1, 1);
|
|
}
|
|
|
|
// erase background.
|
|
rcArrow.DeflateRect(1, 1);
|
|
pDC->FillSolidRect(&rcArrow, GetXtremeColor(COLOR_3DFACE));
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CXTFlatComboBoxThemeOfficeXP class
|
|
//
|
|
|
|
CXTFlatComboBoxThemeOfficeXP::CXTFlatComboBoxThemeOfficeXP()
|
|
{
|
|
|
|
}
|
|
|
|
void CXTFlatComboBoxThemeOfficeXP::DrawArrowBack(CDC* pDC, CRect& rcArrow, int eState, CXTFlatComboBox* /*pCombo*/)
|
|
{
|
|
rcArrow.left = rcArrow.right - (m_cxArrow - 2);
|
|
|
|
if (eState == xtMouseHover)
|
|
{
|
|
pDC->FillSolidRect(&rcArrow, GetXtremeColor(XPCOLOR_HIGHLIGHT));
|
|
|
|
CXTPPenDC pen(*pDC, GetXtremeColor(XPCOLOR_HIGHLIGHT_BORDER));
|
|
pDC->MoveTo(rcArrow.left-1, rcArrow.top);
|
|
pDC->LineTo(rcArrow.left-1, rcArrow.bottom);
|
|
}
|
|
|
|
else if (eState == xtMouseSelect)
|
|
{
|
|
pDC->FillSolidRect(&rcArrow, GetXtremeColor(XPCOLOR_HIGHLIGHT_PUSHED));
|
|
|
|
CXTPPenDC pen(*pDC, GetXtremeColor(XPCOLOR_HIGHLIGHT_BORDER));
|
|
pDC->MoveTo(rcArrow.left-1, rcArrow.top);
|
|
pDC->LineTo(rcArrow.left-1, rcArrow.bottom);
|
|
}
|
|
|
|
else
|
|
{
|
|
rcArrow.DeflateRect(1, 1);
|
|
pDC->FillSolidRect(&rcArrow, GetXtremeColor(COLOR_3DFACE));
|
|
}
|
|
}
|
|
|
|
void CXTFlatComboBoxThemeOfficeXP::DrawDownArrow(CDC* pDC, const CRect& rcItem, int eState, CXTFlatComboBox* pCombo)
|
|
{
|
|
// determine background size.
|
|
CRect rcArrow(rcItem);
|
|
DrawArrowBack(pDC, rcArrow, eState, pCombo);
|
|
|
|
CPoint pt;
|
|
pt.x = (rcArrow.left + rcArrow.right - 4) / 2;
|
|
pt.y = (rcArrow.top + rcArrow.bottom - 2) / 2;
|
|
|
|
COLORREF cr = pCombo->IsWindowEnabled() ? GetXtremeColor(COLOR_WINDOWTEXT) : GetXtremeColor(COLOR_3DSHADOW);
|
|
|
|
pDC->SetPixel(pt.x, pt.y, cr);
|
|
pDC->SetPixel(pt.x+1, pt.y, cr);
|
|
pDC->SetPixel(pt.x+2, pt.y, cr);
|
|
pDC->SetPixel(pt.x+3, pt.y, cr);
|
|
pDC->SetPixel(pt.x+4, pt.y, cr);
|
|
pDC->SetPixel(pt.x+1, pt.y+1, cr);
|
|
pDC->SetPixel(pt.x+2, pt.y+1, cr);
|
|
pDC->SetPixel(pt.x+3, pt.y+1, cr);
|
|
pDC->SetPixel(pt.x+2, pt.y+2, cr);
|
|
}
|
|
|
|
void CXTFlatComboBoxThemeOfficeXP::DrawFlatComboBox(CDC* pDC, CXTFlatComboBox* pCombo, int eState)
|
|
{
|
|
CRect rcItem;
|
|
pCombo->GetClientRect(&rcItem);
|
|
|
|
CRect rcBack(rcItem);
|
|
rcBack.DeflateRect(m_sizeBorder);
|
|
|
|
if (pCombo->IsWindowEnabled())
|
|
{
|
|
pDC->FillSolidRect(rcBack, GetXtremeColor(COLOR_WINDOW));
|
|
|
|
CRect rFillColor = rcBack;
|
|
rFillColor.DeflateRect(m_sizeBorder);
|
|
rFillColor.right -= m_cxArrow;
|
|
|
|
if (eState == xtMouseHover || eState == xtMouseSelect)
|
|
{
|
|
rFillColor.right--;
|
|
pDC->Draw3dRect(&rcItem, GetXtremeColor(XPCOLOR_HIGHLIGHT_BORDER),
|
|
GetXtremeColor(XPCOLOR_HIGHLIGHT_BORDER));
|
|
}
|
|
else
|
|
{
|
|
pDC->Draw3dRect(&rcItem, GetXtremeColor(XPCOLOR_3DFACE),
|
|
GetXtremeColor(XPCOLOR_3DFACE));
|
|
}
|
|
|
|
if (pCombo->GetEditSel() == (DWORD)CB_ERR)
|
|
pDC->FillSolidRect(rFillColor, pCombo->GetBackColor());
|
|
}
|
|
else
|
|
{
|
|
pDC->FillSolidRect(rcBack, GetXtremeColor(XPCOLOR_3DFACE));
|
|
|
|
pDC->Draw3dRect(&rcItem, GetXtremeColor(XPCOLOR_3DSHADOW),
|
|
GetXtremeColor(XPCOLOR_3DSHADOW));
|
|
}
|
|
|
|
DrawDownArrow(pDC, rcBack, eState, pCombo);
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CXTFlatComboBoxThemeOffice2003 class
|
|
//
|
|
|
|
CXTFlatComboBoxThemeOffice2003::CXTFlatComboBoxThemeOffice2003()
|
|
{
|
|
|
|
}
|
|
|
|
void CXTFlatComboBoxThemeOffice2003::DrawArrowBack(CDC* pDC, CRect& rcArrow, int eState, CXTFlatComboBox* pCombo)
|
|
{
|
|
rcArrow.left = rcArrow.right - (m_cxArrow - 2);
|
|
|
|
if (eState == xtMouseHover)
|
|
{
|
|
XTPDrawHelpers()->GradientFill(pDC, &rcArrow,
|
|
XTPColorManager()->grcLunaSelected, FALSE);
|
|
|
|
CXTPPenDC pen(*pDC, GetMSO2003Color(XPCOLOR_HIGHLIGHT_BORDER));
|
|
pDC->MoveTo(rcArrow.left-1, rcArrow.top);
|
|
pDC->LineTo(rcArrow.left-1, rcArrow.bottom);
|
|
}
|
|
|
|
else if (eState == xtMouseSelect)
|
|
{
|
|
XTPDrawHelpers()->GradientFill(pDC, &rcArrow,
|
|
XTPColorManager()->grcLunaPushed, FALSE);
|
|
|
|
CXTPPenDC pen(*pDC, GetMSO2003Color(XPCOLOR_HIGHLIGHT_BORDER));
|
|
pDC->MoveTo(rcArrow.left-1, rcArrow.top);
|
|
pDC->LineTo(rcArrow.left-1, rcArrow.bottom);
|
|
}
|
|
|
|
else if (pCombo->IsWindowEnabled())
|
|
{
|
|
rcArrow.DeflateRect(1, 1);
|
|
XTPDrawHelpers()->GradientFill(pDC, &rcArrow,
|
|
XTPColorManager()->grcMenuItemPopup, FALSE);
|
|
}
|
|
}
|
|
|
|
void CXTFlatComboBoxThemeOffice2003::DrawFlatComboBox(CDC* pDC, CXTFlatComboBox* pCombo, int eState)
|
|
{
|
|
CRect rcItem;
|
|
pCombo->GetClientRect(&rcItem);
|
|
|
|
CRect rcBack(rcItem);
|
|
rcBack.DeflateRect(m_sizeBorder);
|
|
|
|
if (pCombo->IsWindowEnabled())
|
|
{
|
|
pDC->FillSolidRect(rcBack, GetXtremeColor(COLOR_WINDOW));
|
|
|
|
CRect rFillColor = rcBack;
|
|
rFillColor.DeflateRect(m_sizeBorder);
|
|
rFillColor.right -= m_cxArrow;
|
|
|
|
if (eState == xtMouseHover || eState == xtMouseSelect)
|
|
{
|
|
rFillColor.right--;
|
|
pDC->Draw3dRect(&rcItem, GetMSO2003Color(XPCOLOR_HIGHLIGHT_BORDER),
|
|
GetMSO2003Color(XPCOLOR_HIGHLIGHT_BORDER));
|
|
}
|
|
|
|
if (pCombo->GetEditSel() == (DWORD)CB_ERR)
|
|
pDC->FillSolidRect(rFillColor, pCombo->GetBackColor());
|
|
}
|
|
else
|
|
{
|
|
pDC->FillSolidRect(rcBack, GetXtremeColor(XPCOLOR_3DFACE));
|
|
|
|
pDC->Draw3dRect(&rcItem, GetXtremeColor(XPCOLOR_3DSHADOW),
|
|
GetXtremeColor(XPCOLOR_3DSHADOW));
|
|
}
|
|
|
|
DrawDownArrow(pDC, rcBack, eState, pCombo);
|
|
}
|
|
|
|
IMPLEMENT_THEME_FACTORY(CXTFlatEditTheme)
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CXTFlatEditTheme class
|
|
|
|
CXTFlatEditTheme::CXTFlatEditTheme()
|
|
{
|
|
|
|
}
|
|
|
|
void CXTFlatEditTheme::RefreshMetrics()
|
|
{
|
|
CXTThemeManagerStyle ::RefreshMetrics();
|
|
}
|
|
|
|
void CXTFlatEditTheme::DrawBorders(CDC* pDC, CXTFlatEdit* pEdit, const CRect& rWindow, int eState)
|
|
{
|
|
if (pEdit->IsWindowEnabled())
|
|
{
|
|
// erase background.
|
|
pDC->FillSolidRect(&rWindow, GetXtremeColor(COLOR_WINDOW));
|
|
|
|
if (eState == xtMouseHover || eState == xtMouseSelect)
|
|
{
|
|
pDC->Draw3dRect(&rWindow, GetXtremeColor(COLOR_3DSHADOW), GetXtremeColor(COLOR_3DHILIGHT));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
pDC->FillSolidRect(&rWindow, GetXtremeColor(XPCOLOR_3DFACE));
|
|
|
|
pDC->Draw3dRect(&rWindow, GetXtremeColor(XPCOLOR_3DSHADOW),
|
|
GetXtremeColor(XPCOLOR_3DSHADOW));
|
|
}
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CXTFlatEditThemeOfficeXP class
|
|
|
|
CXTFlatEditThemeOfficeXP::CXTFlatEditThemeOfficeXP()
|
|
{
|
|
|
|
}
|
|
|
|
void CXTFlatEditThemeOfficeXP::RefreshMetrics()
|
|
{
|
|
CXTFlatEditTheme::RefreshMetrics();
|
|
|
|
m_clrHighlightText.SetStandardValue(GetXtremeColor(XPCOLOR_HIGHLIGHT_TEXT));
|
|
m_clrPushedText.SetStandardValue(GetXtremeColor(XPCOLOR_PUSHED_TEXT));
|
|
m_clrHighlight.SetStandardValue(GetXtremeColor(XPCOLOR_HIGHLIGHT));
|
|
m_clrPushed.SetStandardValue(GetXtremeColor(XPCOLOR_HIGHLIGHT_PUSHED));
|
|
m_clrFrameHighlight.SetStandardValue(GetXtremeColor(XPCOLOR_HIGHLIGHT_BORDER));
|
|
m_clrFrameNormal.SetStandardValue(GetXtremeColor(COLOR_WINDOW));
|
|
m_clrNormal.SetStandardValue(GetXtremeColor(COLOR_3DFACE));
|
|
m_clrFrameEdit.SetStandardValue(GetXtremeColor(COLOR_3DFACE));
|
|
}
|
|
|
|
void CXTFlatEditThemeOfficeXP::DrawBorders(CDC* pDC, CXTFlatEdit* pEdit, const CRect& rWindow, int eState)
|
|
{
|
|
if (pEdit->IsWindowEnabled())
|
|
{
|
|
pDC->FillSolidRect(&rWindow, GetXtremeColor(COLOR_WINDOW));
|
|
|
|
if (eState == xtMouseHover || eState == xtMouseSelect)
|
|
{
|
|
pDC->Draw3dRect(&rWindow, GetXtremeColor(XPCOLOR_HIGHLIGHT_BORDER),
|
|
GetXtremeColor(XPCOLOR_HIGHLIGHT_BORDER));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
pDC->FillSolidRect(&rWindow, GetXtremeColor(XPCOLOR_3DFACE));
|
|
|
|
pDC->Draw3dRect(&rWindow, GetXtremeColor(XPCOLOR_3DSHADOW),
|
|
GetXtremeColor(XPCOLOR_3DSHADOW));
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// CXTFlatEditThemeOffice2003
|
|
|
|
CXTFlatEditThemeOffice2003::CXTFlatEditThemeOffice2003()
|
|
{
|
|
|
|
}
|
|
|
|
void CXTFlatEditThemeOffice2003::RefreshMetrics()
|
|
{
|
|
CXTFlatEditThemeOfficeXP::RefreshMetrics();
|
|
|
|
XTPCurrentSystemTheme systemTheme = XTPColorManager()->GetCurrentSystemTheme();
|
|
|
|
switch (systemTheme)
|
|
{
|
|
case xtpSystemThemeBlue:
|
|
case xtpSystemThemeRoyale:
|
|
case xtpSystemThemeAero:
|
|
m_clrHighlightText.SetStandardValue(0);
|
|
m_clrPushedText.SetStandardValue(0);
|
|
m_clrHighlight.SetStandardValue(RGB(255, 238, 194));
|
|
m_clrPushed.SetStandardValue(RGB(254, 128, 62));
|
|
m_clrFrameHighlight.SetStandardValue(RGB(0, 0, 128));
|
|
m_clrFrameNormal.SetStandardValue(RGB(127, 157, 185));
|
|
m_clrNormal.SetStandardValue(RGB(169, 199, 240));
|
|
break;
|
|
|
|
case xtpSystemThemeOlive:
|
|
m_clrHighlightText.SetStandardValue(0);
|
|
m_clrPushedText.SetStandardValue(0);
|
|
m_clrHighlight.SetStandardValue(RGB(255, 238, 194));
|
|
m_clrPushed.SetStandardValue(RGB(254, 128, 62));
|
|
m_clrFrameHighlight.SetStandardValue(RGB(63, 93, 56));
|
|
m_clrFrameNormal.SetStandardValue(RGB(164, 185, 127));
|
|
m_clrNormal.SetStandardValue(RGB(197, 212, 159));
|
|
break;
|
|
|
|
case xtpSystemThemeSilver:
|
|
m_clrHighlightText.SetStandardValue(0);
|
|
m_clrPushedText.SetStandardValue(0);
|
|
m_clrHighlight.SetStandardValue(RGB(255, 238, 194));
|
|
m_clrPushed.SetStandardValue(RGB(254, 128, 62));
|
|
m_clrFrameHighlight.SetStandardValue(RGB(75, 75, 111));
|
|
m_clrFrameNormal.SetStandardValue(RGB(165, 172, 178));
|
|
m_clrNormal.SetStandardValue(RGB(192, 192, 211));
|
|
break;
|
|
default:
|
|
m_clrFrameNormal.SetStandardValue(GetXtremeColor(COLOR_3DSHADOW));
|
|
}
|
|
m_clrFrameEdit.SetStandardValue(m_clrFrameNormal);
|
|
}
|
|
|
|
void CXTFlatEditThemeOffice2003::DrawBorders(CDC* pDC, CXTFlatEdit* pEdit, const CRect& rWindow, int eState)
|
|
{
|
|
if (pEdit->IsWindowEnabled())
|
|
{
|
|
pDC->FillSolidRect(&rWindow, GetXtremeColor(COLOR_WINDOW));
|
|
|
|
if (eState == xtMouseHover || eState == xtMouseSelect)
|
|
{
|
|
pDC->Draw3dRect(&rWindow, GetMSO2003Color(XPCOLOR_HIGHLIGHT_BORDER),
|
|
GetMSO2003Color(XPCOLOR_HIGHLIGHT_BORDER));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
pDC->FillSolidRect(&rWindow, GetXtremeColor(XPCOLOR_3DFACE));
|
|
|
|
pDC->Draw3dRect(&rWindow, GetXtremeColor(XPCOLOR_3DSHADOW),
|
|
GetXtremeColor(XPCOLOR_3DSHADOW));
|
|
}
|
|
}
|