This class is used polymorphically and needs a virtual dtor. See https://github.com/wxWidgets/wxWidgets/pull/276
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/msw/private/customdraw.h
 | |
| // Purpose:     Helper for implementing custom drawing support in wxMSW
 | |
| // Author:      Vadim Zeitlin
 | |
| // Created:     2016-04-16
 | |
| // Copyright:   (c) 2016 Vadim Zeitlin <vadim@wxwidgets.org>
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_MSW_CUSTOMDRAW_H_
 | |
| #define _WX_MSW_CUSTOMDRAW_H_
 | |
| 
 | |
| #include "wx/itemattr.h"
 | |
| 
 | |
| #include "wx/msw/wrapcctl.h"
 | |
| 
 | |
| namespace wxMSWImpl
 | |
| {
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // CustomDraw: inherit from this class and forward NM_CUSTOMDRAW to it
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| class CustomDraw
 | |
| {
 | |
| public:
 | |
|     // Trivial default ctor needed for non-copyable class.
 | |
|     CustomDraw()
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     // Virtual dtor for the base class.
 | |
|     virtual ~CustomDraw()
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     // Implementation of NM_CUSTOMDRAW handler, returns one of CDRF_XXX
 | |
|     // constants, possibly CDRF_DODEFAULT if custom drawing is not necessary.
 | |
|     LPARAM HandleCustomDraw(LPARAM lParam);
 | |
| 
 | |
| private:
 | |
|     // Return true if we need custom drawing at all.
 | |
|     virtual bool HasCustomDrawnItems() const = 0;
 | |
| 
 | |
|     // Return the attribute to use for the given item, can return NULL if this
 | |
|     // item doesn't need to be custom-drawn.
 | |
|     virtual const wxItemAttr* GetItemAttr(DWORD_PTR dwItemSpec) const = 0;
 | |
| 
 | |
| 
 | |
|     // Set the colours and font for the specified HDC, return CDRF_NEWFONT if
 | |
|     // the font was changed.
 | |
|     LPARAM HandleItemPrepaint(const wxItemAttr& attr, HDC hdc);
 | |
| 
 | |
|     wxDECLARE_NO_COPY_CLASS(CustomDraw);
 | |
| };
 | |
| 
 | |
| } // namespace wxMSWImpl
 | |
| 
 | |
| #endif // _WX_MSW_CUSTOMDRAW_H_
 |