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_
 |