1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/headerctrl.h
3 // Purpose: wxMSW native wxHeaderCtrl
4 // Author: Vadim Zeitlin
7 // Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
11 #ifndef _WX_MSW_HEADERCTRL_H_
12 #define _WX_MSW_HEADERCTRL_H_
14 class WXDLLIMPEXP_FWD_CORE wxImageList
;
16 // ----------------------------------------------------------------------------
18 // ----------------------------------------------------------------------------
20 class WXDLLIMPEXP_CORE wxHeaderCtrl
: public wxHeaderCtrlBase
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
)
37 Create(parent
, id
, pos
, size
, style
, name
);
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
);
47 virtual ~wxHeaderCtrl();
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
);
56 virtual void DoScrollHorz(int dx
);
58 virtual void DoSetColumnsOrder(const wxArrayInt
& order
);
59 virtual wxArrayInt
DoGetColumnsOrder() const;
61 // override wxWindow methods which must be implemented by a new control
62 virtual wxSize
DoGetBestSize() const;
63 virtual void DoSetSize(int x
, int y
,
64 int width
, int height
,
65 int sizeFlags
= wxSIZE_AUTO
);
67 // override MSW-specific methods needed for new control
68 virtual WXDWORD
MSWGetStyle(long style
, WXDWORD
*exstyle
) const;
69 virtual bool MSWOnNotify(int idCtrl
, WXLPARAM lParam
, WXLPARAM
*result
);
71 // common part of all ctors
74 // wrapper around Header_InsertItem(): insert the item by using information
75 // from GetColumn(idx) and at the given display position if order != -1
76 void DoInsertItem(unsigned int idx
, int order
);
78 // get the event type corresponding to a click or double click event
79 // (depending on dblclk value) with the specified (using MSW convention)
81 wxEventType
GetClickEventType(bool dblclk
, int button
);
84 // the image list: initially NULL, created on demand
85 wxImageList
*m_imageList
;
87 // the offset of the window used to emulate scrolling it
90 DECLARE_NO_COPY_CLASS(wxHeaderCtrl
)
93 #endif // _WX_MSW_HEADERCTRL_H_