]> git.saurik.com Git - wxWidgets.git/blame - src/palmos/notebook.cpp
1. Derive wxMessageDialogBase from wxDialog (why did we use multiple
[wxWidgets.git] / src / palmos / notebook.cpp
CommitLineData
ffecfa5a 1///////////////////////////////////////////////////////////////////////////////
e2731512 2// Name: src/palmos/notebook.cpp
ffecfa5a 3// Purpose: implementation of wxNotebook
e2731512 4// Author: William Osborne - minimal working wxPalmOS port
ffecfa5a
JS
5// Modified by:
6// Created: 10/13/04
e2731512 7// RCS-ID: $Id$
ffecfa5a
JS
8// Copyright: (c) William Osborne
9// Licence: wxWindows licence
10///////////////////////////////////////////////////////////////////////////////
11
ffecfa5a
JS
12// For compilers that support precompilation, includes "wx.h".
13#include "wx/wxprec.h"
14
15#ifdef __BORLANDC__
16 #pragma hdrstop
17#endif
18
19#if wxUSE_NOTEBOOK
20
21// wxWidgets
22#ifndef WX_PRECOMP
23 #include "wx/string.h"
24#endif // WX_PRECOMP
25
ffecfa5a
JS
26// ----------------------------------------------------------------------------
27// macros
28// ----------------------------------------------------------------------------
29
30// check that the page index is valid
31#define IS_VALID_PAGE(nPage) ((nPage) < GetPageCount())
32
ffecfa5a
JS
33// ----------------------------------------------------------------------------
34// event table
35// ----------------------------------------------------------------------------
36
7ec69821 37#include "wx/listimpl.cpp"
ffecfa5a 38
412e0d47 39WX_DEFINE_LIST( wxNotebookPageInfoList )
ffecfa5a
JS
40
41DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED)
42DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING)
43
44BEGIN_EVENT_TABLE(wxNotebook, wxControl)
90c0f5a9 45 EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, wxNotebook::OnSelChange)
ffecfa5a
JS
46
47 EVT_SIZE(wxNotebook::OnSize)
48
49 EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey)
50END_EVENT_TABLE()
51
52#if wxUSE_EXTENDED_RTTI
53WX_DEFINE_FLAGS( wxNotebookStyle )
54
55wxBEGIN_FLAGS( wxNotebookStyle )
56 // new style border flags, we put them first to
57 // use them for streaming out
58 wxFLAGS_MEMBER(wxBORDER_SIMPLE)
59 wxFLAGS_MEMBER(wxBORDER_SUNKEN)
60 wxFLAGS_MEMBER(wxBORDER_DOUBLE)
61 wxFLAGS_MEMBER(wxBORDER_RAISED)
62 wxFLAGS_MEMBER(wxBORDER_STATIC)
63 wxFLAGS_MEMBER(wxBORDER_NONE)
e2731512 64
ffecfa5a
JS
65 // old style border flags
66 wxFLAGS_MEMBER(wxSIMPLE_BORDER)
67 wxFLAGS_MEMBER(wxSUNKEN_BORDER)
68 wxFLAGS_MEMBER(wxDOUBLE_BORDER)
69 wxFLAGS_MEMBER(wxRAISED_BORDER)
70 wxFLAGS_MEMBER(wxSTATIC_BORDER)
71 wxFLAGS_MEMBER(wxBORDER)
72
73 // standard window styles
74 wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
75 wxFLAGS_MEMBER(wxCLIP_CHILDREN)
76 wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
77 wxFLAGS_MEMBER(wxWANTS_CHARS)
78 wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
79 wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
80 wxFLAGS_MEMBER(wxVSCROLL)
81 wxFLAGS_MEMBER(wxHSCROLL)
82
83 wxFLAGS_MEMBER(wxNB_FIXEDWIDTH)
90c0f5a9
WS
84 wxFLAGS_MEMBER(wxBK_LEFT)
85 wxFLAGS_MEMBER(wxBK_RIGHT)
86 wxFLAGS_MEMBER(wxBK_BOTTOM)
ffecfa5a
JS
87
88wxEND_FLAGS( wxNotebookStyle )
89
90IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebook, wxControl,"wx/notebook.h")
91IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebookPageInfo, wxObject , "wx/notebook.h" )
92
93wxCOLLECTION_TYPE_INFO( wxNotebookPageInfo * , wxNotebookPageInfoList ) ;
94
95template<> void wxCollectionToVariantArray( wxNotebookPageInfoList const &theList, wxxVariantArray &value)
96{
97 wxListCollectionToVariantArray<wxNotebookPageInfoList::compatibility_iterator>( theList , value ) ;
98}
99
100wxBEGIN_PROPERTIES_TABLE(wxNotebook)
101 wxEVENT_PROPERTY( PageChanging , wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING , wxNotebookEvent )
102 wxEVENT_PROPERTY( PageChanged , wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED , wxNotebookEvent )
103
104 wxPROPERTY_COLLECTION( PageInfos , wxNotebookPageInfoList , wxNotebookPageInfo* , AddPageInfo , GetPageInfos , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
105 wxPROPERTY_FLAGS( WindowStyle , wxNotebookStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
106wxEND_PROPERTIES_TABLE()
107
108wxBEGIN_HANDLERS_TABLE(wxNotebook)
109wxEND_HANDLERS_TABLE()
110
e2731512 111wxCONSTRUCTOR_5( wxNotebook , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size , long , WindowStyle)
ffecfa5a
JS
112
113
114wxBEGIN_PROPERTIES_TABLE(wxNotebookPageInfo)
115 wxREADONLY_PROPERTY( Page , wxNotebookPage* , GetPage , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
116 wxREADONLY_PROPERTY( Text , wxString , GetText , wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
117 wxREADONLY_PROPERTY( Selected , bool , GetSelected , false, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
118 wxREADONLY_PROPERTY( ImageId , int , GetImageId , -1 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
119wxEND_PROPERTIES_TABLE()
120
121wxBEGIN_HANDLERS_TABLE(wxNotebookPageInfo)
122wxEND_HANDLERS_TABLE()
123
e2731512 124wxCONSTRUCTOR_4( wxNotebookPageInfo , wxNotebookPage* , Page , wxString , Text , bool , Selected , int , ImageId )
ffecfa5a
JS
125
126#else
127IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl)
128IMPLEMENT_DYNAMIC_CLASS(wxNotebookPageInfo, wxObject )
129#endif
130IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent)
131
132// ============================================================================
133// implementation
134// ============================================================================
135
136// ----------------------------------------------------------------------------
137// wxNotebook construction
138// ----------------------------------------------------------------------------
139
140const wxNotebookPageInfoList& wxNotebook::GetPageInfos() const
141{
142 wxNotebookPageInfoList* list;
143
144 return m_pageInfos ;
145}
146
147// common part of all ctors
148void wxNotebook::Init()
149{
150}
151
152// default for dynamic class
153wxNotebook::wxNotebook()
154{
155}
156
157// the same arguments as for wxControl
158wxNotebook::wxNotebook(wxWindow *parent,
159 wxWindowID id,
160 const wxPoint& pos,
161 const wxSize& size,
162 long style,
163 const wxString& name)
164{
165}
166
167// Create() function
168bool wxNotebook::Create(wxWindow *parent,
169 wxWindowID id,
170 const wxPoint& pos,
171 const wxSize& size,
172 long style,
173 const wxString& name)
174{
175 return false;
176}
177
ffecfa5a
JS
178// ----------------------------------------------------------------------------
179// wxNotebook accessors
180// ----------------------------------------------------------------------------
181
182size_t wxNotebook::GetPageCount() const
183{
630ad6c6 184 return 0;
ffecfa5a
JS
185}
186
187int wxNotebook::GetRowCount() const
188{
630ad6c6 189 return 0;
ffecfa5a
JS
190}
191
192int wxNotebook::SetSelection(size_t nPage)
193{
194 return 0;
195}
196
1d6fcbcc
VZ
197int wxNotebook::ChangeSelection(size_t nPage)
198{
199 return 0;
200}
201
ffecfa5a
JS
202bool wxNotebook::SetPageText(size_t nPage, const wxString& strText)
203{
204 return false;
205}
206
207wxString wxNotebook::GetPageText(size_t nPage) const
208{
630ad6c6 209 return wxEmptyString;
ffecfa5a
JS
210}
211
212int wxNotebook::GetPageImage(size_t nPage) const
213{
630ad6c6 214 return -1;
ffecfa5a
JS
215}
216
217bool wxNotebook::SetPageImage(size_t nPage, int nImage)
218{
219 return false;
220}
221
222void wxNotebook::SetImageList(wxImageList* imageList)
223{
224}
225
226// ----------------------------------------------------------------------------
227// wxNotebook size settings
228// ----------------------------------------------------------------------------
229
230void wxNotebook::SetPageSize(const wxSize& size)
231{
232}
233
234void wxNotebook::SetPadding(const wxSize& padding)
235{
236}
237
238void wxNotebook::SetTabSize(const wxSize& sz)
239{
240}
241
242wxSize wxNotebook::CalcSizeFromPage(const wxSize& sizePage) const
243{
244 return wxSize(0,0);
245}
246
247void wxNotebook::AdjustPageSize(wxNotebookPage *page)
248{
249}
250
251// ----------------------------------------------------------------------------
252// wxNotebook operations
253// ----------------------------------------------------------------------------
254
255// remove one page from the notebook, without deleting
256wxNotebookPage *wxNotebook::DoRemovePage(size_t nPage)
257{
258 return NULL;
259}
260
261// remove all pages
262bool wxNotebook::DeleteAllPages()
263{
630ad6c6 264 return true;
ffecfa5a
JS
265}
266
267// same as AddPage() but does it at given position
268bool wxNotebook::InsertPage(size_t nPage,
269 wxNotebookPage *pPage,
270 const wxString& strText,
271 bool bSelect,
272 int imageId)
273{
274 return false;
275}
276
277int wxNotebook::HitTest(const wxPoint& pt, long *flags) const
278{
279 return 0;
280}
281
282
283// ----------------------------------------------------------------------------
284// wxNotebook callbacks
285// ----------------------------------------------------------------------------
286
287void wxNotebook::OnSize(wxSizeEvent& event)
288{
289}
290
291void wxNotebook::OnSelChange(wxNotebookEvent& event)
292{
293}
294
ffecfa5a
JS
295void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event)
296{
297}
298
299// ----------------------------------------------------------------------------
300// wxNotebook base class virtuals
301// ----------------------------------------------------------------------------
302
303#if wxUSE_CONSTRAINTS
304
305// override these 2 functions to do nothing: everything is done in OnSize
306
307void wxNotebook::SetConstraintSizes(bool WXUNUSED(recurse))
308{
309}
310
311bool wxNotebook::DoPhase(int WXUNUSED(nPhase))
312{
313 return true;
314}
315
316#endif // wxUSE_CONSTRAINTS
317
ffecfa5a 318#endif // wxUSE_NOTEBOOK