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.
249 lines
11 KiB
C++
249 lines
11 KiB
C++
// XTOutBarCtrlTheme.h: interface for the CXTOutBarCtrlTheme 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(__XTOUTBARCTRLTHEME_H__)
|
|
#define __XTOUTBARCTRLTHEME_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
|
|
class CXTOutBarCtrl;
|
|
class CXTOutBarItem;
|
|
class CXTOutBarFolder;
|
|
|
|
DECLARE_THEME_FACTORY(CXTOutBarCtrlTheme)
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTOutBarCtrlTheme is used to draw the CXTOutBarCtrl object. All themes
|
|
// used for CXTOutBarCtrl should inherit from this base class.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTOutBarCtrlTheme : public CXTThemeManagerStyle
|
|
{
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTOutBarCtrlTheme object.
|
|
//-----------------------------------------------------------------------
|
|
CXTOutBarCtrlTheme();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Destroys a CXTOutBarCtrlTheme object, handles cleanup and deallocation.
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTOutBarCtrlTheme();
|
|
|
|
public:
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// Refresh the colors on the OutBar. Also, set the default colors
|
|
// for the background and the text on the OutBar.
|
|
//-------------------------------------------------------------------------
|
|
virtual void RefreshMetrics();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Set the font used by the OutBar.
|
|
// Parameters:
|
|
// pFont - A pointer to a CFont object.
|
|
//-----------------------------------------------------------------------
|
|
void SetFont(CFont* pFont);
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw the icon associated with the pBarItem.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// pt - A CPoint object that specifies the XY location of the icon.
|
|
// pBarItem - A pointer to a CXTOutBarItem object. Used to maintain information
|
|
// about the folder item.
|
|
// pImageList - A pointer to a CImageList object. Used to store the icons
|
|
// that are displayed in the folder.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawItemIcon(CDC* pDC, CPoint pt, CXTOutBarItem* pBarItem, CImageList* pImageList);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw text associated with the item in the OutBar.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// rc - A CRect object. Used to specify the XY position of where
|
|
// the text is drawn.
|
|
// pBarItem - A pointer to a CXTOutBarItem object. Used to maintain information
|
|
// about the folder item. Contains the text to draw.
|
|
// nFormat - The method of formatting the text. Can be any valid formatting
|
|
// used for the MFC CDC::DrawText function.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawItemText(CDC* pDC, CRect rc, CXTOutBarItem* pBarItem, UINT nFormat);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw a filled rectangle specified at position rc.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// rc - A CRect object. Used to specify the XY position of where
|
|
// the rectangle is drawn.
|
|
//-----------------------------------------------------------------------
|
|
virtual void FillInsideRect(CDC* pDC, CRect rc);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw the folder on the OutBar. The folder can be drawn
|
|
// in any one of three states, normal, selected, and highlighted.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// rect - A CRect object that specifies the XY location of the folder.
|
|
// pBarFolder - A CXTOutBarFolder object that maintains information about the folder.
|
|
// eHilight - An int that specifies the height of the folder. The possible
|
|
// values are: xtMouseNormal, xtMouseSelect, and xtMouseHover.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawFolder(CDC* pDC, CRect rect, CXTOutBarFolder* pBarFolder, const XTMouseState eHilight);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw a 3D rectangle around an icon.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// rcIcon - A CRect object that specifies the XY location of the icon.
|
|
// bSelected - TRUE if the icon is currently selected. FALSE otherwise.
|
|
// bPressed - TRUE if the icon is pressed. FALSE otherwise.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawIconFrame(CDC* pDC, CRect rcIcon, BOOL bSelected, BOOL bPressed);
|
|
|
|
|
|
protected:
|
|
BOOL m_bFlatIcon; // Set this to TRUE to draw flat icons.
|
|
BOOL m_bPlainText; // Set to TRUE to draw plain text. Uses the system default font and font attributes.
|
|
|
|
public:
|
|
CXTPPaintManagerColor m_clrBack; // The color used to draw the background of the OutBar.
|
|
CXTPPaintManagerColor m_clrText; // The color used to draw the text on the OutBar.
|
|
};
|
|
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// Class CXTOutBarCtrlThemeOfficeXP is derived form CXTOutBarCtrlTheme.
|
|
// This class is used to draw an OutBar with the Office XP theme.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTOutBarCtrlThemeOfficeXP : public CXTOutBarCtrlTheme
|
|
{
|
|
public:
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTOutBarCtrlThemeOfficeXP object.
|
|
//-------------------------------------------------------------------------
|
|
CXTOutBarCtrlThemeOfficeXP();
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// Refresh the colors on the OutBar. Also, set the default colors
|
|
// for the background and the text on the OutBar.
|
|
//-------------------------------------------------------------------------
|
|
void RefreshMetrics();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw a 3D rectangle around an icon.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// rcIcon - A CRect object that specifies the XY location of the icon.
|
|
// bSelected - TRUE if the icon is currently selected. FALSE otherwise.
|
|
// bPressed - TRUE if the icon is pressed. FALSE otherwise.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawIconFrame(CDC* pDC, CRect rcIcon, BOOL bSelected, BOOL bPressed);
|
|
|
|
};
|
|
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// Class CXTOutBarCtrlThemeOffice2003 is derived form CXTOutBarCtrlThemeXP.
|
|
// This class is used to draw an OutBar with the Office XP theme.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTOutBarCtrlThemeOffice2003 : public CXTOutBarCtrlThemeOfficeXP
|
|
{
|
|
public:
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTOutBarCtrlThemeOffice2003 object.
|
|
//-------------------------------------------------------------------------
|
|
CXTOutBarCtrlThemeOffice2003();
|
|
|
|
//-------------------------------------------------------------------------
|
|
// Summary:
|
|
// Refresh the colors on the OutBar. Also, set the default colors
|
|
// for the background and the text on the OutBar.
|
|
//-------------------------------------------------------------------------
|
|
virtual void RefreshMetrics();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw the folder on the OutBar. The folder can be drawn
|
|
// in any one of three states, normal, selected, or highlighted.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// rect - A CRect object that specifies the XY location of the folder.
|
|
// pBarFolder - A CXTOutBarFolder object that maintains information about the folder.
|
|
// eHilight - An int that specifies the height of the folder. The possible
|
|
// values are: xtMouseNormal, xtMouseSelect, and xtMouseHover.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawFolder(CDC* pDC, CRect rect, CXTOutBarFolder* pBarFolder, const XTMouseState eHilight);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this function to draw a 3D rectangle around an icon.
|
|
// Parameters:
|
|
// pDC - A CDC pointer that represents the current device
|
|
// context.
|
|
// rcIcon - A CRect object that specifies the XY location of the icon.
|
|
// bSelected - TRUE if the icon is currently selected. FALSE otherwise.
|
|
// bPressed - TRUE if the icon is pressed. FALSE otherwise.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DrawIconFrame(CDC* pDC, CRect rcIcon, BOOL bSelected, BOOL bPressed);
|
|
|
|
protected:
|
|
CXTPPaintManagerColorGradient m_grcSelected; // The selected gradient color.
|
|
CXTPPaintManagerColorGradient m_grcHot; // The hot gradient color.
|
|
CXTPPaintManagerColorGradient m_grcPushed; // The pushed gradient color.
|
|
BOOL m_bLunaTheme; // TRUE if the current theme is a Luna Theme.
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endif // !defined(__XTOUTBARCTRLTHEME_H__)
|