File: customdraw.h

package info (click to toggle)
wxpython4.0 4.2.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 232,540 kB
  • sloc: cpp: 958,937; python: 233,059; ansic: 150,441; makefile: 51,662; sh: 8,687; perl: 1,563; javascript: 584; php: 326; xml: 200
file content (59 lines) | stat: -rw-r--r-- 1,780 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
///////////////////////////////////////////////////////////////////////////////
// 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_