]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/headerctrl.h
define I_IMAGENONE now that we use it, at least VC6 doesn't have it (thanks buildbot)
[wxWidgets.git] / include / wx / msw / headerctrl.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/headerctrl.h
3 // Purpose: wxMSW native wxHeaderCtrl
4 // Author: Vadim Zeitlin
5 // Created: 2008-12-01
6 // RCS-ID: $Id$
7 // Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
10
11 #ifndef _WX_MSW_HEADERCTRL_H_
12 #define _WX_MSW_HEADERCTRL_H_
13
14 class WXDLLIMPEXP_FWD_CORE wxImageList;
15
16 // ----------------------------------------------------------------------------
17 // wxHeaderCtrl
18 // ----------------------------------------------------------------------------
19
20 class WXDLLIMPEXP_CORE wxHeaderCtrl : public wxHeaderCtrlBase
21 {
22 public:
23 wxHeaderCtrl()
24 {
25 Init();
26 }
27
28 wxHeaderCtrl(wxWindow *parent,
29 wxWindowID id = wxID_ANY,
30 const wxPoint& pos = wxDefaultPosition,
31 const wxSize& size = wxDefaultSize,
32 long style = wxHD_DEFAULT_STYLE,
33 const wxString& name = wxHeaderCtrlNameStr)
34 {
35 Init();
36
37 Create(parent, id, pos, size, style, name);
38 }
39
40 bool Create(wxWindow *parent,
41 wxWindowID id = wxID_ANY,
42 const wxPoint& pos = wxDefaultPosition,
43 const wxSize& size = wxDefaultSize,
44 long style = wxHD_DEFAULT_STYLE,
45 const wxString& name = wxHeaderCtrlNameStr);
46
47 virtual ~wxHeaderCtrl();
48
49
50 private:
51 // implement base class pure virtuals
52 virtual void DoSetCount(unsigned int count);
53 virtual unsigned int DoGetCount() const;
54 virtual void DoUpdate(unsigned int idx);
55
56 virtual void DoScrollHorz(int dx);
57
58 // override wxWindow methods which must be implemented by a new control
59 virtual wxSize DoGetBestSize() const;
60
61 // override MSW-specific methods needed for new control
62 virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
63 virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
64
65 // common part of all ctors
66 void Init();
67
68 // wrapper around Header_InsertItem(): insert the item by using information
69 // from GetColumn(idx)
70 void DoInsertItem(unsigned int idx);
71
72 // get the event type corresponding to a click or double click event
73 // (depending on dblclk value) with the specified (using MSW convention)
74 // mouse button
75 wxEventType GetClickEventType(bool dblclk, int button);
76
77
78 // the image list: initially NULL, created on demand
79 wxImageList *m_imageList;
80
81 DECLARE_NO_COPY_CLASS(wxHeaderCtrl)
82 };
83
84 #endif // _WX_MSW_HEADERCTRL_H_
85