]> git.saurik.com Git - wxWidgets.git/blame - include/wx/listbook.h
Applied patch [ 1381895 ] remove circular include dependendcy in wxchar.h
[wxWidgets.git] / include / wx / listbook.h
CommitLineData
e9c0df38
VZ
1///////////////////////////////////////////////////////////////////////////////
2// Name: wx/listbook.h
3// Purpose: wxListbook: wxListCtrl and wxNotebook combination
4// Author: Vadim Zeitlin
5// Modified by:
6// Created: 19.08.03
7// RCS-ID: $Id$
77ffb593 8// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
65571936 9// Licence: wxWindows licence
e9c0df38
VZ
10///////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_LISTBOOK_H_
13#define _WX_LISTBOOK_H_
14
e9c0df38
VZ
15#include "wx/defs.h"
16
17#if wxUSE_LISTBOOK
18
19#include "wx/bookctrl.h"
20
21class WXDLLEXPORT wxListView;
22class WXDLLEXPORT wxListEvent;
ef0120c1 23
e9c0df38
VZ
24// ----------------------------------------------------------------------------
25// wxListbook
26// ----------------------------------------------------------------------------
27
61c083e7 28class WXDLLEXPORT wxListbook : public wxBookCtrlBase
e9c0df38
VZ
29{
30public:
31 wxListbook()
32 {
33 Init();
34 }
35
36 wxListbook(wxWindow *parent,
37 wxWindowID id,
38 const wxPoint& pos = wxDefaultPosition,
39 const wxSize& size = wxDefaultSize,
40 long style = 0,
41 const wxString& name = wxEmptyString)
42 {
43 Init();
44
45 (void)Create(parent, id, pos, size, style, name);
46 }
47
48 // quasi ctor
49 bool Create(wxWindow *parent,
50 wxWindowID id,
51 const wxPoint& pos = wxDefaultPosition,
52 const wxSize& size = wxDefaultSize,
53 long style = 0,
54 const wxString& name = wxEmptyString);
55
56
57 virtual int GetSelection() const;
58 virtual bool SetPageText(size_t n, const wxString& strText);
59 virtual wxString GetPageText(size_t n) const;
60 virtual int GetPageImage(size_t n) const;
61 virtual bool SetPageImage(size_t n, int imageId);
62 virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const;
63 virtual bool InsertPage(size_t n,
64 wxWindow *page,
65 const wxString& text,
66 bool bSelect = false,
67 int imageId = -1);
68 virtual int SetSelection(size_t n);
69 virtual void SetImageList(wxImageList *imageList);
70
fbd11d30
RD
71 virtual bool DeleteAllPages();
72
d8fd7acb 73 wxListView* GetListView() const { return (wxListView*)m_bookctrl; }
e572631f 74
e9c0df38
VZ
75protected:
76 virtual wxWindow *DoRemovePage(size_t page);
77
e9c0df38 78 // get the size which the list control should have
d8fd7acb 79 virtual wxSize GetControllerSize() const;
e9c0df38
VZ
80
81 // event handlers
e9c0df38 82 void OnListSelected(wxListEvent& event);
d8fd7acb 83 void OnSize(wxSizeEvent& event);
e9c0df38
VZ
84
85 // the currently selected page or wxNOT_FOUND if none
86 int m_selection;
87
33ebfc3b
VZ
88private:
89 // common part of all constructors
90 void Init();
e9c0df38
VZ
91
92 DECLARE_EVENT_TABLE()
93 DECLARE_DYNAMIC_CLASS_NO_COPY(wxListbook)
94};
95
96// ----------------------------------------------------------------------------
97// listbook event class and related stuff
98// ----------------------------------------------------------------------------
99
61c083e7 100class WXDLLEXPORT wxListbookEvent : public wxBookCtrlBaseEvent
e9c0df38
VZ
101{
102public:
103 wxListbookEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
bb08a4a1 104 int nSel = wxNOT_FOUND, int nOldSel = wxNOT_FOUND)
61c083e7 105 : wxBookCtrlBaseEvent(commandType, id, nSel, nOldSel)
e9c0df38
VZ
106 {
107 }
108
75865c8d
VZ
109 wxListbookEvent(const wxListbookEvent& event)
110 : wxBookCtrlBaseEvent(event)
111 {
112 }
113
114 virtual wxEvent *Clone() const { return new wxListbookEvent(*this); }
115
e9c0df38 116private:
75865c8d 117 DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxListbookEvent)
e9c0df38
VZ
118};
119
120extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED;
121extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING;
122
123typedef void (wxEvtHandler::*wxListbookEventFunction)(wxListbookEvent&);
124
8bc3ec1f
WS
125#define wxListbookEventHandler(func) \
126 (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxListbookEventFunction, &func)
127
128#define EVT_LISTBOOK_PAGE_CHANGED(winid, fn) \
129 wx__DECLARE_EVT1(wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED, winid, wxListbookEventHandler(fn))
130
131#define EVT_LISTBOOK_PAGE_CHANGING(winid, fn) \
132 wx__DECLARE_EVT1(wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, winid, wxListbookEventHandler(fn))
e9c0df38
VZ
133
134#endif // wxUSE_LISTBOOK
135
136#endif // _WX_LISTBOOK_H_