/** * @file XTPScrollBarThemeVisualStudio2012.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(__XTPSCROLLBARTHEMEVISUALSTUDIO2012_H__) # define __XTPSCROLLBARTHEMEVISUALSTUDIO2012_H__ /** @endcond */ # if _MSC_VER >= 1000 # pragma once # endif // _MSC_VER >= 1000 # include "Common/Base/Diagnostic/XTPDisableNoisyWarnings.h" /** * @brief * Scrollbar paint manager used to draw Visual Studio 2012 like scrollbars. * @see CXTPPaintManager::SetTheme */ class _XTP_EXT_CLASS CXTPScrollBarThemeVisualStudio2012 : public CXTPScrollBarPaintManager { protected: /** * @brief * This method is called to draw all scrollbar parts. * @param pDC Pointer to device context * @param pScrollBar ScrollBar to draw */ virtual void DrawScrollBar(CDC* pDC, CXTPScrollBase* pScrollBar); /** * @brief * Draws verical scrollbar background only. * @param pDC Target device context pointer * @param pScroll Scroll bar object pointer * @param pMetrics Precomputed scrollbar metrics */ virtual void DrawBackground(CDC* pDC, CXTPScrollBase* pScroll, XTPScrollMetricsV* pMetrics); /** * @brief * Draws vertical scrollbar buttons only. * @param pDC Target device context pointer * @param pScroll Scroll bar object pointer * @param pMetrics Precomputed scrollbar metrics */ virtual void DrawButtons(CDC* pDC, CXTPScrollBase* pScroll, XTPScrollMetricsV* pMetrics); /** * @brief * Draws vertical scrollbar button arrows only. * @param pDC Target device context pointer * @param pScroll Scroll bar object pointer * @param pMetrics Precomputed scrollbar metrics */ virtual void DrawArrows(CDC* pDC, CXTPScrollBase* pScroll, XTPScrollMetricsV* pMetrics); /** * @brief * Draws vertical scrollbar thumb button only. * @param pDC Target device context pointer * @param pScroll Scroll bar object pointer * @param pMetrics Precomputed scrollbar metrics */ virtual void DrawThumbButton(CDC* pDC, CXTPScrollBase* pScroll, XTPScrollMetricsV* pMetrics); /** * @brief * Draws horizontal scrollbar background only. * @param pDC Target device context pointer * @param pScroll Scroll bar object pointer * @param pMetrics Precomputed scrollbar metrics */ virtual void DrawBackground(CDC* pDC, CXTPScrollBase* pScroll, XTPScrollMetricsH* pMetrics); /** * @brief * Draws horizontal scrollbar buttons only. * @param pDC Target device context pointer * @param pScroll Scroll bar object pointer * @param pMetrics Precomputed scrollbar metrics */ virtual void DrawButtons(CDC* pDC, CXTPScrollBase* pScroll, XTPScrollMetricsH* pMetrics); /** * @brief * Draws horizontal scrollbar button arrows only. * @param pDC Target device context pointer * @param pScroll Scroll bar object pointer * @param pMetrics Precomputed scrollbar metrics */ virtual void DrawArrows(CDC* pDC, CXTPScrollBase* pScroll, XTPScrollMetricsH* pMetrics); /** * @brief * Draws horizontal scrollbar thumb button only. * @param pDC Target device context pointer * @param pScroll Scroll bar object pointer * @param pMetrics Precomputed scrollbar metrics */ virtual void DrawThumbButton(CDC* pDC, CXTPScrollBase* pScroll, XTPScrollMetricsH* pMetrics); /** * @brief * Draws scrollbar gripper only. * @param pDC Target device context pointer * @param pScroll Scroll bar object pointer */ virtual void DrawGripper(CDC* pDC, CXTPScrollBase* pScroll); struct DRAWING_STATE { BOOL nPressedHt; BOOL nHotHt; BOOL bEnabled; int nBtnTrackSize; int nBtnTrackPos; COLORREF clrBackground; COLORREF clrArrowDisabled; COLORREF clrArrowEnabled; COLORREF clrArrowHot; COLORREF clrArrowPressed; COLORREF clrBtnTrackEnabled; COLORREF clrBtnTrackHot; COLORREF clrBtnTrackPressed; }; DRAWING_STATE m_State; }; # include "Common/Base/Diagnostic/XTPEnableNoisyWarnings.h" /** @cond */ #endif /*__XTPSCROLLBARTHEMEVISUALSTUDIO2012_H__*/ /** @endcond */