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.
365 lines
16 KiB
C++
365 lines
16 KiB
C++
// XTFlatControlsTheme.h: interface for the CXTFlatComboBoxTheme 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
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
#if !defined(__XTFLATCONTROLSTHEME_H__)
|
|
#define __XTFLATCONTROLSTHEME_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
|
|
class CXTFlatComboBox;
|
|
class CXTFlatEdit;
|
|
|
|
DECLARE_THEME_FACTORY(CXTFlatComboBoxTheme)
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTFlatControlsTheme is used to draw the CXTTabCtrl object. All themes
|
|
// used for CXTTabCtrl should inherit from this base class.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTFlatComboBoxTheme : public CXTThemeManagerStyle
|
|
{
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTFlatComboBoxTheme object.
|
|
//-----------------------------------------------------------------------
|
|
CXTFlatComboBoxTheme();
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function refreshes the colors on the flat control.
|
|
//-------------------------------------------------------------------------
|
|
virtual void RefreshMetrics();
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw a Flat ComboBox.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// pCombo - A pointer to a CXTFlatComboBox object. Represents a flat combo box.
|
|
// eState - An int that is used to specify the state of the flat combo box.
|
|
// Possible values are: NORMAL, RAISED, and PRESSED.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawFlatComboBox(CDC* pDC, CXTFlatComboBox* pCombo, int eState);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function retrieve the dimensions, in pixels, of a
|
|
// 3-D drop down arrow box.
|
|
// Returns:
|
|
// A reference to a CSize object that contains 3-D border dimensions.
|
|
//-----------------------------------------------------------------------
|
|
CSize& GetThumbSize() {
|
|
return m_sizeThumb;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function retrieve the dimensions, in pixels, of a
|
|
// 3-D window border.
|
|
// Returns:
|
|
// A reference to a CSize object that contains 3-D border dimensions.
|
|
//-----------------------------------------------------------------------
|
|
CSize& GetBorderSize() {
|
|
return m_sizeBorder;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function retrieve the dimensions, in pixels, of a
|
|
// 3-D window edge.
|
|
// Returns:
|
|
// A reference to a CSize object that contains 3-D edge dimensions.
|
|
//-----------------------------------------------------------------------
|
|
CSize& GetEdgeSize() {
|
|
return m_sizeEdge;
|
|
}
|
|
|
|
protected:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is called by the Combo Box for drawing the
|
|
// down arrow.
|
|
// Parameters:
|
|
// pDC - Device context for drawing.
|
|
// rcArrow - A rectangle in which to draw.
|
|
// eState - State of the Combo box
|
|
// pCombo - Combo box to draw down arrow for
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawDownArrow(CDC* pDC, const CRect& rcArrow, int eState, CXTFlatComboBox* pCombo);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to get the width of the drop down arrow.
|
|
// Returns:
|
|
// An int that contains the width of the drop down arrow.
|
|
// See Also:
|
|
// DrawDownArrow, DrawArrowBack
|
|
//-----------------------------------------------------------------------
|
|
int GetDropArrowWidth() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw the background for the arrow button.
|
|
// Parameters:
|
|
// pDC - A pointer to a valid device context.
|
|
// rcArrow - A CRect object that contains the location and the dimensions of the background.
|
|
// eState - An int that contains the current state for the arrow button.
|
|
// pCombo - A pointer to a valid CXTFlatComboBox object.
|
|
// See Also:
|
|
// CXTFlatComboBoxThemeOfficeXP::DrawArrowBack, CXTFlatComboBoxThemeOffice2003::DrawArrowBack
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawArrowBack(CDC* pDC, CRect& rcArrow, int eState, CXTFlatComboBox* pCombo);
|
|
|
|
protected:
|
|
int m_cxArrow; // This member variable contains the width of the drop down arrow.
|
|
CSize m_sizeThumb; // Stores dimensions, in pixels, of a 3-D drop down arrow box.
|
|
CSize m_sizeBorder; // Stores dimensions, in pixels, of a 3-D window border.
|
|
CSize m_sizeEdge; // Stores dimensions, in pixels, of a 3-D window edge.
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTFlatComboBoxThemeOfficeXP class is derived from CXTFlatComboBoxTheme.
|
|
// This class is used to create the Office 2000 Theme for flat controls.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTFlatComboBoxThemeOfficeXP : public CXTFlatComboBoxTheme
|
|
{
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTFlatComboBoxThemeOfficeXP object.
|
|
//-----------------------------------------------------------------------
|
|
CXTFlatComboBoxThemeOfficeXP();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw a rectangle around a ComboBox.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// pCombo - A pointer to a CXTFlatComboBox object. Represents a flat combo box.
|
|
// eState - An int that is used to specify the state of the flat combo box.
|
|
// Possible values are: NORMAL, RAISED, and PRESSED.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawFlatComboBox(CDC* pDC, CXTFlatComboBox* pCombo, int eState);
|
|
|
|
protected:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw the background for the arrow button.
|
|
// Parameters:
|
|
// pDC - A pointer to a valid device context.
|
|
// rcArrow - A CRect object that contains the location and the dimensions of the background.
|
|
// eState - An int that contains the current state for the arrow button.
|
|
// pCombo - A pointer to a valid CXTFlatComboBox object.
|
|
// See Also:
|
|
// CXTFlatComboBoxTheme::DrawArrowBack, CXTFlatComboBoxThemeOffice2003::DrawArrowBack
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawArrowBack(CDC* pDC, CRect& rcArrow, int eState, CXTFlatComboBox* pCombo);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is called by the Combo Box for drawing the
|
|
// down arrow.
|
|
// Parameters:
|
|
// pDC - Device context for drawing.
|
|
// rcArrow - A rectangle in which to draw.
|
|
// eState - State of the Combo box
|
|
// pCombo - Combo box to draw down arrow for
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawDownArrow(CDC* pDC, const CRect& rcArrow, int eState, CXTFlatComboBox* pCombo);
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTFlatComboBoxThemeOffice2003 class is derived from CXTFlatComboBoxThemeOfficeXP.
|
|
// This class is used to create the Office 2003 Theme for flat controls.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTFlatComboBoxThemeOffice2003 : public CXTFlatComboBoxThemeOfficeXP
|
|
{
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTFlatComboBoxThemeOffice2003 object.
|
|
//-----------------------------------------------------------------------
|
|
CXTFlatComboBoxThemeOffice2003();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw a rectangle around a ComboBox.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// pCombo - A pointer to a CXTFlatComboBox object. Represents a flat combo box.
|
|
// eState - An int that is used to specify the state of the flat combo box.
|
|
// Possible values are: NORMAL, RAISED, and PRESSED.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawFlatComboBox(CDC* pDC, CXTFlatComboBox* pCombo, int eState);
|
|
|
|
protected:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw the background for the arrow button.
|
|
// Parameters:
|
|
// pDC - A pointer to a valid device context.
|
|
// rcArrow - A CRect object that contains the location and the dimensions of the background.
|
|
// eState - An int that contains the current state for the arrow button.
|
|
// pCombo - A pointer to a valid CXTFlatComboBox object.
|
|
// See Also:
|
|
// CXTFlatComboBoxTheme::DrawArrowBack, CXTFlatComboBoxThemeOfficeXP::DrawArrowBack
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawArrowBack(CDC* pDC, CRect& rcArrow, int eState, CXTFlatComboBox* pCombo);
|
|
};
|
|
|
|
DECLARE_THEME_FACTORY(CXTFlatEditTheme)
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTFlatControlsTheme is used to draw the CXTTabCtrl object. All themes
|
|
// used for CXTTabCtrl should inherit from this base class.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTFlatEditTheme : public CXTThemeManagerStyle
|
|
{
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTFlatEditTheme object.
|
|
//-----------------------------------------------------------------------
|
|
CXTFlatEditTheme();
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// This function refreshes the colors on the flat control.
|
|
//-------------------------------------------------------------------------
|
|
virtual void RefreshMetrics();
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw a rectangle around an EditBox.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// pEdit - A pointer to an edit box control.
|
|
// rWindow - Area to render.
|
|
// eState - An int that is used to specify the state of the flat edit box.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawBorders(CDC* pDC, CXTFlatEdit* pEdit, const CRect& rWindow, int eState);
|
|
|
|
protected:
|
|
|
|
friend class CXTThemeManager; // Make the CXTThemeManager a friend of the CXTFlatEditTheme class.
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTFlatEditThemeOfficeXP class is derived from CXTFlatEditTheme.
|
|
// This class is used to create the Office 2000 Theme for flat controls.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTFlatEditThemeOfficeXP : public CXTFlatEditTheme
|
|
{
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTFlatEditThemeOfficeXP object.
|
|
//-----------------------------------------------------------------------
|
|
CXTFlatEditThemeOfficeXP();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This function is called to refresh the colors of the
|
|
// flat controls Office XP theme.
|
|
//-----------------------------------------------------------------------
|
|
virtual void RefreshMetrics();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is called to render the flat edit control using
|
|
// the specified theme.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// pEdit - A pointer to an edit box control.
|
|
// rWindow - Area to render.
|
|
// eState - An int that is used to specify the state of the flat edit box.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawBorders(CDC* pDC, CXTFlatEdit* pEdit, const CRect& rWindow, int eState);
|
|
|
|
public:
|
|
CXTPPaintManagerColor m_clrHighlightText; // Used to specify the color of highlighted text.
|
|
CXTPPaintManagerColor m_clrPushedText; // Used to specify the color of pushed text.
|
|
CXTPPaintManagerColor m_clrHighlight; // Used to specify the color a highlighted object.
|
|
CXTPPaintManagerColor m_clrPushed; // Used to specify the color a pushed object.
|
|
CXTPPaintManagerColor m_clrFrameNormal; // Used to specify the color a normal frame.
|
|
CXTPPaintManagerColor m_clrFrameHighlight; // Used to specify the color a highlighted frame.
|
|
CXTPPaintManagerColor m_clrFrameEdit; // Used to specify the color an edit frame.
|
|
CXTPPaintManagerColor m_clrNormal; // Used to specify the color a normal object.
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTFlatEditThemeOffice2003 class is derived from CXTFlatEditThemeOfficeXP.
|
|
// This class is used to create the Office 2003 Theme for flat controls.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTFlatEditThemeOffice2003 : public CXTFlatEditThemeOfficeXP
|
|
{
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTFlatEditThemeOffice2003 object.
|
|
//-----------------------------------------------------------------------
|
|
CXTFlatEditThemeOffice2003();
|
|
|
|
//--------------------------------------------------------------------
|
|
// Summary:
|
|
// This function is called to refresh the colors of
|
|
// the flat controls Office 2003 theme.
|
|
//--------------------------------------------------------------------
|
|
virtual void RefreshMetrics();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is called to render the flat edit control using
|
|
// the specified theme.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// pEdit - A pointer to an edit box control.
|
|
// rWindow - Area to render.
|
|
// eState - An int that is used to specify the state of the flat edit box.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawBorders(CDC* pDC, CXTFlatEdit* pEdit, const CRect& rWindow, int eState);
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endif // !defined(__XTFLATCONTROLSTHEME_H__)
|