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