/** * @file XTPSplitterWndTheme.h * * @copyright * (c) 1998-2025 Codejock Software, All Rights Reserved. * * This source file is the property of Codejock Software and must not be * redistributed by any means without the explicit written permission of * Codejock Software. * * The use of this source code is governed by the terms and conditions specified * in the Toolkit Pro license agreement. Codejock Software grants you, as a * single software developer, the limited right to use this software on one * computer only. * * Contact Information: * support@codejock.com * http://www.codejock.com * */ /** @cond */ #if !defined(__XTPSPLITTERTHEME_H__) # define __XTPSPLITTERTHEME_H__ /** @endcond */ # if _MSC_VER > 1000 # pragma once # endif // _MSC_VER > 1000 # include "Common/Base/Diagnostic/XTPDisableNoisyWarnings.h" class CXTPSplitterWnd; /** * @brief * Class CXTPSplitterWndTheme is derived from CXTPControlTheme. * This class is used to apply a theme to splitter windows. */ class _XTP_EXT_CLASS CXTPSplitterWndTheme : public CXTPControlTheme { public: /** * @brief * Constructs a CXTPSplitterWndTheme object. */ CXTPSplitterWndTheme(); /** * @brief * Call this function to set the splitter windows face and the * borders to the system default colors. */ virtual void RefreshMetrics(); /** * @brief * Call this member function to draw the splitter window using the * specified theme. * @param pDC Pointer to the device context to draw to. * @param pSplitter Pointer to the owner splitter window. * @param nType Index value representing the splitter type; splitBox (0), * splitBar (1), splitIntersection (2), or splitBorder (3). * @param rectArg Size of the splitter area to draw. */ virtual void DrawSplitter(CDC* pDC, CXTPSplitterWnd* pSplitter, int nType, const CRect& rectArg); /** * @brief * Call this member function to use tab background color from resource. * @param bEnable TRUE to enable tab background color for splitter window. */ void EnableTabColors(BOOL bEnable = TRUE); /** * @brief * Call this function to retrieve a pointer to the brush used by the * split tracker. * @return * A pointer to a CBrush object representing the split tracker. */ virtual CBrush* GetTrackBrush(); public: BOOL m_bTabColors; /**< TRUE to use tab background color from resource. */ CXTPPaintManagerColorGradient m_crBack; /**< Splitter window background color. */ CXTPPaintManagerColorGradient m_crBoxBack; /**< Splitter box window background color. */ CXTPPaintManagerColorGradient m_crOuterBorder; /**< Splitter window outer border color. */ CXTPPaintManagerColorGradient m_crOuterBoxBorder; /**< Splitter box window outer border color. */ CXTPPaintManagerColorGradient m_crInnerBorder; /**< Splitter window inner border color. */ CXTPPaintManagerColorGradient m_crInnerBoxBorder; /**< Splitter box window inner border color. */ }; /** * @brief * Class CXTPSplitterWndThemeOfficeXP is derived from CXTPSplitterWndTheme. This * class is used to implement the Office XP theme for splitter windows. */ class _XTP_EXT_CLASS CXTPSplitterWndThemeOfficeXP : public CXTPSplitterWndTheme { public: /** * @brief * Constructs a CXTPSplitterWndThemeOfficeXP object. */ CXTPSplitterWndThemeOfficeXP(); /** * @brief * Call this function to set the splitter windows face and the * borders to the system default colors. */ virtual void RefreshMetrics(); /** * @brief * Call this function to retrieve a pointer to the brush used by the * split tracker. * @return * A pointer to a CBrush object representing the split tracker. */ virtual CBrush* GetTrackBrush(); }; /** * @brief * Class CXTPSplitterWndThemeOffice2003 is derived from CXTPSplitterWndTheme. This * class is used to implement the Office 2003 theme for splitter windows. */ class _XTP_EXT_CLASS CXTPSplitterWndThemeOffice2003 : public CXTPSplitterWndThemeOfficeXP { public: /** * @brief * Constructs a CXTPSplitterWndThemeOffice2003 object. */ CXTPSplitterWndThemeOffice2003(); /** * @brief * Call this function to set the splitter windows face and the * borders to the system default colors. */ virtual void RefreshMetrics(); /** * @brief * Call this member function to draw the splitter window using the * specified theme. * @param pDC Pointer to the device context to draw to. * @param pSplitter Pointer to the owner splitter window. * @param nType Index value representing the splitter type; splitBox (0), * splitBar (1), splitIntersection (2), or splitBorder (3). * @param rectArg Size of the splitter area to draw. */ virtual void DrawSplitter(CDC* pDC, CXTPSplitterWnd* pSplitter, int nType, const CRect& rectArg); }; /** * @brief * Class CXTPSplitterWndThemeResource is derived from CXTPSplitterWndTheme. This * class is used to implement the Office 2007/2010 theme for splitter windows. */ class _XTP_EXT_CLASS CXTPSplitterWndThemeResource : public CXTPSplitterWndThemeOffice2003 { public: /** * @brief * Constructs a CXTPSplitterWndThemeResource object. */ CXTPSplitterWndThemeResource(); /** * @brief * Call this function to set the splitter windows face and the * borders to the system default colors. */ virtual void RefreshMetrics(); }; /** * @brief * Class CXTPSplitterWndThemeVisualStudio2010 is derived from CXTPSplitterWndTheme. * This class is used to implement the Visual Studio 2010 theme for splitter windows. */ class _XTP_EXT_CLASS CXTPSplitterWndThemeVisualStudio2010 : public CXTPSplitterWndThemeOffice2003 { public: /** * @brief * Constructs a CXTPSplitterWndThemeVisualStudio2010 object. */ CXTPSplitterWndThemeVisualStudio2010(); /** * @brief * Call this function to set the splitter windows face and the * borders to the system default colors. */ virtual void RefreshMetrics(); /** * @brief * Call this member function to draw the splitter window using the * specified theme. * @param pDC Pointer to the device context to draw to. * @param pSplitter Pointer to the owner splitter window. * @param nType Index value representing the splitter type; splitBox (0), * splitBar (1), splitIntersection (2), or splitBorder (3). * @param rectArg Size of the splitter area to draw. */ virtual void DrawSplitter(CDC* pDC, CXTPSplitterWnd* pSplitter, int nType, const CRect& rectArg); }; /** * @brief * Class CXTPSplitterWndThemeOffice2013 is derived from CXTPSplitterWndThemeOfficeXP. * This class is used to implement the Office 2013 theme for splitter windows. */ class _XTP_EXT_CLASS CXTPSplitterWndThemeOffice2013 : public CXTPSplitterWndThemeOfficeXP { public: /** * @brief * Constructs a CXTPSplitterWndThemeOffice2013 object. */ CXTPSplitterWndThemeOffice2013(); /** * @brief * Call this function to set the splitter windows face and the * borders to the system default colors. */ virtual void RefreshMetrics(); }; /** * @brief * Class CXTPSplitterWndThemeVisualStudio2015 is derived from CXTPSplitterWndThemeOffice2013. * This class is used to implement the Visual Studio 2015 theme for splitter windows. */ class _XTP_EXT_CLASS CXTPSplitterWndThemeVisualStudio2015 : public CXTPSplitterWndThemeOffice2013 { public: /** * @brief * Constructs a CXTPSplitterWndThemeVisualStudio2015 object. */ CXTPSplitterWndThemeVisualStudio2015(); }; /** * @brief * Class CXTPSplitterWndThemeVisualStudio2017 is derived from CXTPSplitterWndThemeOffice2013. * This class is used to implement the Visual Studio 2017 theme for splitter windows. */ class _XTP_EXT_CLASS CXTPSplitterWndThemeVisualStudio2017 : public CXTPSplitterWndThemeOffice2013 { public: /** * @brief * Constructs a CXTPSplitterWndThemeVisualStudio2017 object. */ CXTPSplitterWndThemeVisualStudio2017(); }; /** * @brief * Class CXTPSplitterWndThemeVisualStudio2019 is derived from CXTPSplitterWndThemeOffice2013. * This class is used to implement the Visual Studio 2019 theme for splitter windows. */ class _XTP_EXT_CLASS CXTPSplitterWndThemeVisualStudio2019 : public CXTPSplitterWndThemeOffice2013 { public: /** * @brief * Constructs a CXTPSplitterWndThemeVisualStudio2019 object. */ CXTPSplitterWndThemeVisualStudio2019(); }; /** * @brief * Class CXTPSplitterWndThemeVisualStudio2022 is derived from CXTPSplitterWndThemeOffice2013. * This class is used to implement the Visual Studio 2022 theme for splitter windows. */ class _XTP_EXT_CLASS CXTPSplitterWndThemeVisualStudio2022 : public CXTPSplitterWndThemeOffice2013 { public: /** * @brief * Constructs a CXTPSplitterWndThemeVisualStudio2022 object. */ CXTPSplitterWndThemeVisualStudio2022(); }; ///////////////////////////////////////////////////////////////////////////// # include "Common/Base/Diagnostic/XTPEnableNoisyWarnings.h" /** @cond */ #endif // !defined(__XTPSPLITTERTHEME_H__) /** @endcond */