/** * @file XTPGridThemeExplorer.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(__XTPGridThemeExplorer_H__) # define __XTPGridThemeExplorer_H__ /** @endcond */ # if _MSC_VER > 1000 # pragma once # endif // _MSC_VER > 1000 # include "Common/Base/Diagnostic/XTPDisableNoisyWarnings.h" /** * @brief * CXTPGridThemeExplorer is a CXTPGridPaintManager derived class * that represents an Explorer style theme. */ class _XTP_EXT_CLASS CXTPGridThemeExplorer : public CXTPGridPaintManager { public: /** * @brief * Default paint manager constructor, handles properties initialization. */ CXTPGridThemeExplorer(); /** * @brief * Draws a triangle that shows the sort order of the column. * @param pDC Pointer to the used device context. * @param rcTriangle Triangle area rectangle coordinates. * @param bToDown TRUE to turn the top of the triangle downward, * FALSE to turn the top of the triangle upward. * @param nShadowWidth Size, in pixels, of the shadow to draw under * the triangle image, or 0 to disable the shadow; * the default value for this parameter is 0. * @details * This function is used to draw a triangle image on the header of * the column that is sorted. The triangle represents the direction * of the sort: ascending or descending. The size of the triangle * depends on the rectangle area provided. * * Example: *
	 * // draw ascendant triangle
	 * CRect rcTriangle;
	 * rcTriangle.CopyRect(rcHeader);
	 * rcTriangle.DeflateRect(40, 5, 5, 5);
	 * DrawTriangle(pDC, rcTriangle, TRUE);
	 *
	 * // draw descendant triangle
	 * CRect rcTriangle;
	 * rcTriangle.CopyRect(rcHeader);
	 * rcTriangle.DeflateRect(40, 5, 5, 5);
	 * DrawTriangle(pDC, rcTriangle, FALSE);
	 * 
*/ virtual void DrawTriangle(CDC* pDC, CRect rcTriangle, BOOL bToDown, int nShadowWidth = 0); using CXTPGridPaintManager::DrawTriangle; /** * @brief * Draws the standard glyphs of the Grid control. * @param pDC Pointer to the used device context. * @param rcColumn Bitmap area rectangle coordinates. * @param iImage Image index. * @return * The size of the drawn bitmap. */ virtual CSize DrawGlyph(CDC* pDC, CRect rcColumn, int iImage); /** * @brief * Determines if hot tracking is enabled for the current column style. * @return * TRUE if hot tracking is enabled, otherwise FALSE. * @details * Hot tracking can only be used for the xtpGridColumnOffice2003 * and xtpGridColumnExplorer styles. * @see * m_columnStyle, m_bHotTracking */ virtual BOOL IsColumHotTrackingEnabled() const; /** * @brief * This method is called to draw the background of a column using * the current column style. * @param pDC Pointer to the used device context. * @param pColumn Pointer to the column whose background must be drawn. * @param rcColumn Bounding rectangle of the column. * @param bColumnPressed TRUE if the column is pressed by the user. * @param bDraggingFromHeader TRUE if the column is being dragged from the header area. * @param pHeader Pointer to the header that the column belongs to. */ virtual void DrawColumnBackground(CDC* pDC, CXTPGridColumn* pColumn, CRect rcColumn, BOOL& bColumnPressed, BOOL& bDraggingFromHeader, CXTPGridHeader* pHeader = NULL); /** * @brief * Draws the divider between grid sections * (e.g. dividing header record rows and body rows). * @param pDC Pointer to the used device context. * @param rc Reference to rectangle coordinates. * @param dividerPosition Position of the section divider; must be one of the values * defined by the XTPGridSectionDividerPosition enumeration. * @param dividerStyle Style of the section divider; must be one of the values * defined by the XTPGridSectionDividerStyle enumeration. * @param dividerColor Color of the section divider. */ void DrawSectionDivider(CDC* pDC, const CRect& rc, XTPGridSectionDividerPosition dividerPosition, XTPGridSectionDividerStyle dividerStyle, CXTPPaintManagerColor dividerColor); }; /** @cond */ # include "Common/Base/Diagnostic/XTPEnableNoisyWarnings.h" #endif //#if !defined(__XTPGridThemeExplorer_H__) /** @endcond */