]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/proplist/classes.tex
*** empty log message ***
[wxWidgets.git] / docs / latex / proplist / classes.tex
CommitLineData
e3a43801
JS
1\chapter{Alphabetical class reference}\label{classref}
2\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
3\setfooter{\thepage}{}{}{}{}{\thepage}%
4
5\overview{Property classes overview}{propertyoverview}
6
7
8\section{\class{wxBoolFormValidator}: wxPropertyFormValidator}\label{wxboolformvalidator}
9
10\overview{Validator classes}{validatorclasses}
11
12This class validates a boolean value for a form view. The associated panel item must be a wxCheckBox.
13
14\membersection{wxBoolFormValidator::wxBoolFormValidator}
15
16\func{void}{wxBoolFormValidator}{\param{long }{flags=0}}
17
18Constructor.
19
20\section{\class{wxBoolListValidator}: wxPropertyListValidator}\label{wxboollistvalidator}
21
22\overview{Validator classes}{validatorclasses}
23
24This class validates a boolean value for a list view.
25
26\membersection{wxBoolListValidator::wxBoolListValidator}
27
28\func{void}{wxBoolListValidator}{\param{long }{flags=0}}
29
30Constructor.
31
32\section{\class{wxIntegerFormValidator}: wxPropertyFormValidator}\label{wxintegerformvalidator}
33
34\overview{Validator classes}{validatorclasses}
35
36This class validates a range of integer values for a form view. The associated panel item must be a wxText
37or wxSlider.
38
39\membersection{wxIntegerFormValidator::wxIntegerFormValidator}
40
41\func{void}{wxIntegerFormValidator}{\param{long }{min=0}, \param{long }{max=0},
42 \param{long}{ flags=0}}
43
44Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.
45
46
47\section{\class{wxIntegerListValidator}: wxPropertyListValidator}\label{wxintegerlistvalidator}
48
49\overview{Validator classes}{validatorclasses}
50
51This class validates a range of integer values for a list view.
52
53\membersection{wxIntegerListValidator::wxIntegerListValidator}
54
55\func{void}{wxIntegerListValidator}{\param{long }{min=0}, \param{long }{max=0},
56 \param{long}{ flags=wxPROP\_ALLOW\_TEXT\_EDITING}}
57
58Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.
59
60\section{\class{wxFilenameListValidator}: wxPropertyListValidator}\label{wxfilenamelistvalidator}
61
62\overview{Validator classes}{validatorclasses}
63
64This class validates a filename for a list view, allowing the user to edit it textually and also popping up
65a file selector in ``detailed editing" mode.
66
67\membersection{wxFilenameListValidator::wxFilenameListValidator}
68
69\func{void}{wxFilenameListValidator}{\param{wxString }{message = ``Select a file"}, \param{wxString }{wildcard = ``*.*"},
70 \param{long}{ flags=0}}
71
72Constructor. Supply an optional message and wildcard.
73
74\section{\class{wxListOfStringsListValidator}: wxPropertyListValidator}\label{wxlistofstringslistvalidator}
75
76\overview{Validator classes}{validatorclasses}
77
78This class validates a list of strings for a list view. When editing the property,
79a dialog box is presented for adding, deleting or editing entries in the list.
80At present no constraints may be supplied.
81
82You can construct a string list property value by constructing a wxStringList object.
83
84For example:
85
86\begin{verbatim}
87 myListValidatorRegistry.RegisterValidator((wxString)"stringlist",
88 new wxListOfStringsListValidator);
89
90 wxStringList *strings = new wxStringList("earth", "fire", "wind", "water", NULL);
91
92 sheet->AddProperty(new wxProperty("fred", strings, "stringlist"));
93\end{verbatim}
94
95\membersection{wxListOfStringsListValidator::wxListofStringsListValidator}
96
97\func{void}{wxListOfStringsListValidator}{\param{long}{ flags=0}}
98
99Constructor.
100
101\section{\class{wxProperty}: wxObject}\label{wxproperty}
102
103The {\bf wxProperty} class represents a property, with a \helpref{wxPropertyValue}{wxpropertyvalue}\rtfsp
104containing the actual value, a name a role, an optional validator, and
105an optional associated window.
106
107A property might correspond to an actual C++ data member, or it
108might correspond to a conceptual property, such as the width of a window.
109There is no explicit data member {\it wxWindow::width}, but it may be convenient
110to invent such a property for the purposes of editing attributes of the window.
111The properties in the property sheet can be mapped to ``reality" by
112whatever means (in this case by calling wxWindow::SetSize when the user has
113finished editing the property sheet).
114
115A validator may be associated with the property in order to ensure that this and
116only this validator will be used for editing and validating the property.
117An alternative method is to use the {\it role} parameter to specify what kind
118of validator would be appropriate; for example, specifying ``filename" for the role
119would allow the property view to find an appropriate validator at edit time.
120
121
122\membersection{wxProperty::wxProperty}
123
124\func{void}{wxProperty}{\void}
125
126\func{void}{wxProperty}{\param{wxProperty\& }{prop}}
127
128\func{void}{wxProperty}{\param{wxString}{ name}, \param{wxString}{ role}, \param{wxPropertyValidator *}{validator=NULL}}
129
130\func{void}{wxProperty}{\param{wxString}{ name}, \param{const wxPropertyValue\&}{ val}, \param{wxString}{ role}, \param{wxPropertyValidator *}{validator=NULL}}
131
132Constructors.
133
134\membersection{wxProperty::\destruct{wxProperty}}
135
136\func{void}{\destruct{wxProperty}}{\void}
137
138Destructor. Destroys the wxPropertyValue, and the property validator if there is one. However, if the
139actual C++ value in the wxPropertyValue is a pointer, the data in that variable is not destroyed.
140
141\membersection{wxProperty::GetValue}
142
143\func{wxPropertyValue\&}{GetValue}{\void}
144
145Returns a reference to the property value.
146
147\membersection{wxProperty::GetValidator}
148
149\func{wxPropertyValidator *}{GetValidator}{\void}
150
151Returns a pointer to the associated property validator (if any).
152
153\membersection{wxProperty::GetName}
154
155\func{wxString\&}{GetName}{\void}
156
157Returns the name of the property.
158
159\membersection{wxProperty::GetRole}
160
161\func{wxRole\&}{GetRole}{\void}
162
163Returns the role of the property, to be used when choosing an appropriate validator.
164
165\membersection{wxProperty::GetWindow}
166
167\func{wxWindow *}{GetWindow}{\void}
168
169Returns the window associated with the property (if any).
170
171\membersection{wxProperty::SetValue}
172
173\func{void}{SetValue}{\param{wxPropertyValue\&}{ val}}
174
175Sets the value of the property.
176
177\membersection{wxProperty::SetName}
178
179\func{void}{SetName}{\param{wxString\&}{ name}}
180
181Sets the name of the property.
182
183\membersection{wxProperty::SetRole}
184
185\func{void}{SetRole}{\param{wxString\&}{ role}}
186
187Sets the role of the property.
188
189\membersection{wxProperty::SetValidator}
190
191\func{void}{SetValidator}{\param{wxPropertyValidator *}{validator}}
192
193Sets the validator: this will be deleted when the property is deleted.
194
195\membersection{wxProperty::SetWindow}
196
197\func{void}{SetWindow}{\param{wxWindow *}{win}}
198
199Sets the window associated with the property.
200
201\membersection{wxProperty::operator $=$}
202
203\func{void}{operator $=$}{\param{const wxPropertyValue\&}{ val}}
204
205Assignment operator.
206
207\section{\class{wxPropertyFormValidator}: wxPropertyValidator}\label{wxpropertyformvalidator}
208
209The {\bf wxPropertyFormValidator} abstract class is the root of classes that define validation
210for a wxPropertyFormView.
211
212
213\section{\class{wxPropertyFormDialog}: wxDialogBox}\label{wxpropertyformdialog}
214
215The {\bf wxPropertyFormDialog} class is a prepackaged dialog which can
216be used for viewing a form property sheet. Pass a property form view object, and the dialog
217will pass OnClose and OnDefaultAction listbox messages to the view class for
218processing.
219
220\membersection{wxPropertyFormDialog::wxPropertyFormDialog}
221
222\func{void}{wxPropertyFormDialog}{\param{wxPropertyFormView *}{view}, \param{wxWindow *}{parent}, \param{char *}{title},
223 \param{Bool}{ modal=FALSE}, \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
224 \param{long}{ style=wxDEFAULT\_DIALOG\_STYLE}, \param{char *}{name=``dialogBox"}}
225
226Constructor.
227
228\membersection{wxPropertyFormDialog::\destruct{wxPropertyFormDialog}}
229
230\func{void}{\destruct{wxPropertyFormDialog}}{\void}
231
232Destructor.
233
234
235\section{\class{wxPropertyFormFrame}: wxFrame}\label{wxpropertyformframe}
236
237The {\bf wxPropertyFormFrame} class is a prepackaged frame which can
238be used for viewing a property form. Pass a property form view object, and the frame
239will pass OnClose messages to the view class for processing.
240
241Call Initialize to create the panel and associate the view; override OnCreatePanel
242if you wish to use a panel class other than the default wxPropertyFormPanel.
243
244\membersection{wxPropertyFormFrame::wxPropertyFormFrame}
245
246\func{void}{wxPropertyFormFrame}{\param{wxPropertyFormView *}{view}, \param{wxFrame *}{parent}, \param{char *}{title},
247 \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
248 \param{long}{ style=wxSDI $\|$ wxDEFAULT\_FRAME}, \param{char *}{name=``frame"}}
249
250Constructor.
251
252\membersection{wxPropertyFormFrame::\destruct{wxPropertyFormFrame}}
253
254\func{void}{\destruct{wxPropertyFormFrame}}{\void}
255
256Destructor.
257
258\membersection{wxPropertyFormFrame::GetPropertyPanel}
259
260\func{wxPanel *}{GetPropertyPanel}{\void}
261
262Returns the panel associated with the frame.
263
264\membersection{wxPropertyFormFrame::Initialize}
265
266\func{Bool}{Initialize}{\void}
267
268Must be called to create the panel and associate the view with the panel and frame.
269
270\membersection{wxPropertyFormFrame::OnCreatePanel}
271
272\func{wxPanel *}{OnCreatePanel}{\param{wxFrame *}{parent}, \param{wxPropertyFormView *}{view}}
273
274Creates a panel. Override this to create a panel type other than wxPropertyFormPanel.
275
276
277\section{\class{wxPropertyFormPanel}: wxPanel}\label{wxpropertyformpanel}
278
279The {\bf wxPropertyFormPanel} class is a prepackaged panel which can
280be used for viewing a property form. Pass a property form view object, and the panel
281will pass OnDefaultAction listbox messages to the view class for
282processing.
283
284\membersection{wxPropertyFormPanel::wxPropertyFormPanel}
285
286\func{void}{wxPropertyFormPanel}{\param{wxPropertyFormView *}{view}, \param{wxWindow *}{parent},
287 \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
288 \param{long}{ style=0}, \param{char *}{name=``panel"}}
289
290Constructor.
291
292\membersection{wxPropertyFormPanel::\destruct{wxPropertyFormPanel}}
293
294\func{void}{\destruct{wxPropertyFormPanel}}{\void}
295
296Destructor.
297
298
299
300\section{\class{wxPropertyFormValidator}: wxPropertyValidator}\label{wxpropertyformvalidatir}
301
302\overview{wxPropertyFormValidator overview}{wxpropertyformvalidatoroverview}
303
304The {\bf wxPropertyFormValidator} class defines a base class for form validators. By overriding virtual functions,
305the programmer can create custom behaviour for kinds of property.
306
307\membersection{wxPropertyFormValidator::wxPropertyFormValidator}
308
309\func{void}{wxPropertyFormValidator}{\param{long}{ flags = 0}}
310
311Constructor.
312
313\membersection{wxPropertyFormValidator::\destruct{wxPropertyFormValidator}}
314
315\func{void}{\destruct{wxPropertyFormValidator}}{\void}
316
317Destructor.
318
319\membersection{wxPropertyFormValidator::OnCommand}
320
321\func{Bool}{OnCommand}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
322 \param{wxWindow *}{parentWindow}, \param{wxCommandEvent\& }{event}}
323
324Called when the control corresponding to the property receives a command (if not intercepted
325by a callback associated with the actual control).
326
327\membersection{wxPropertyFormValidator::OnCheckValue}
328
329\func{Bool}{OnCheckValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
330 \param{wxWindow *}{parentWindow}}
331
332Called when the view checks the property value. The value checked by this validator should be taken from the
333panel item corresponding to the property.
334
335\membersection{wxPropertyFormValidator::OnDisplayValue}
336
337\func{Bool}{OnDisplayValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
338 \param{wxWindow *}{parentWindow}}
339
340Should display the property value in the appropriate control.
341
342\membersection{wxPropertyFormValidator::OnDoubleClick}
343
344\func{Bool}{OnDoubleClick}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
345 \param{wxWindow *}{parentWindow}}
346
347Called when the control corresponding to the property is double clicked (listboxes only).
348
349\membersection{wxPropertyFormValidator::OnRetrieveValue}
350
351\func{Bool}{OnRetrieveValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
352 \param{wxWindow *}{parentWindow}}
353
354Should do the transfer from the property editing area to the property itself.
355
356
357\section{\class{wxPropertyFormView}: wxPropertyView}\label{wxpropertyformview}
358
359\overview{wxPropertyFormView overview}{wxpropertyformviewoverview}
360
361The {\bf wxPropertyFormView} class shows a wxPropertySheet as a view onto a panel or dialog
362box which has already been created.
363
364\membersection{wxPropertyFormView::wxPropertyFormView}
365
366\func{void}{wxPropertyFormView}{\param{long}{ flags = 0}}
367
368Constructor.
369
370\membersection{wxPropertyFormView::\destruct{wxPropertyFormView}}
371
372\func{void}{\destruct{wxPropertyFormView}}{\void}
373
374Destructor.
375
376\membersection{wxPropertyFormView::AssociateNames}\label{wxpropertyformviewassociatenames}
377
378\func{void}{AssociateNames}{\void}
379
380Associates the properties with the controls on the panel. For each panel item, if the
381panel item name is the same as a property name, the two objects will be associated.
382This function should be called manually since the programmer may wish to do the
383association manually.
384
385\membersection{wxPropertyFormView::Check}\label{wxpropertyformviewcheck}
386
387\func{Bool}{Check}{\void}
388
389Checks all properties by calling the appropriate validators; returns FALSE if a validation failed.
390
391\membersection{wxPropertyFormView::GetPanel}\label{wxpropertyformviewgetpanel}
392
393\func{wxPanel *}{GetPanel}{\void}
394
395Returns the panel associated with the view.
396
397\membersection{wxPropertyFormView::GetManagedWindow}\label{wxpropertyformviewgetmanagedwindow}
398
399\func{wxWindow *}{GetManagedWindow}{\void}
400
401Returns the managed window (a frame or dialog) associated with the view.
402
403\membersection{wxPropertyFormView::OnOk}\label{wxpropertyformviewonok}
404
405\func{void}{OnOk}{\void}
406
407Virtual function that will be called when the OK button on the physical window is pressed.
408By default, checks and updates the form values, closes and deletes the frame or dialog, then deletes the view.
409
410\membersection{wxPropertyFormView::OnCancel}\label{wxpropertyformviewoncancel}
411
412\func{void}{OnCancel}{\void}
413
414Virtual function that will be called when the Cancel button on the physical window is pressed.
415By default, closes and deletes the frame or dialog, then deletes the view.
416
417\membersection{wxPropertyFormView::OnHelp}\label{wxpropertyformviewonhelp}
418
419\func{void}{OnHelp}{\void}
420
421Virtual function that will be called when the Help button on the physical window is pressed.
422This needs to be overridden by the application for anything interesting to happen.
423
424\membersection{wxPropertyFormView::OnRevert}\label{wxpropertyformviewonrevert}
425
426\func{void}{OnRevert}{\void}
427
428Virtual function that will be called when the Revert button on the physical window is pressed.
429By default transfers the wxProperty values to the panel items (in effect
430undoing any unsaved changes in the items).
431
432\membersection{wxPropertyFormView::OnUpdate}\label{wxpropertyformviewonupdate}
433
434\func{void}{OnUpdate}{\void}
435
436Virtual function that will be called when the Update button on the physical window is pressed.
437By defaults transfers the displayed values to the wxProperty objects.
438
439\membersection{wxPropertyFormView::SetManagedWindow}\label{wxpropertyformviewsetmanagedwindow}
440
441\func{void}{SetManagedWindow}{\param{wxWindow *}{win}}
442
443Sets the managed window (a frame or dialog) associated with the view.
444
445\membersection{wxPropertyFormView::TransferToDialog}\label{wxpropertyformviewtransfertodialog}
446
447\func{Bool}{TransferToDialog}{\void}
448
449Transfers property values to the controls in the dialog.
450
451\membersection{wxPropertyFormView::TransferToPropertySheet}\label{wxpropertyformviewtransfertopropertysheet}
452
453\func{Bool}{TransferToPropertySheet}{\void}
454
455Transfers property values from the controls in the dialog to the property sheet.
456
457
458\section{\class{wxPropertyListDialog}: wxDialogBox}\label{wxpropertylistdialog}
459
460The {\bf wxPropertyListDialog} class is a prepackaged dialog which can
461be used for viewing a property list. Pass a property list view object, and the dialog
462will pass OnClose and OnDefaultAction listbox messages to the view class for
463processing.
464
465\membersection{wxPropertyListDialog::wxPropertyListDialog}
466
467\func{void}{wxPropertyListDialog}{\param{wxPropertyListView *}{view}, \param{wxWindow *}{parent}, \param{char *}{title},
468 \param{Bool}{ modal=FALSE}, \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
469 \param{long}{ style=wxDEFAULT\_DIALOG\_STYLE}, \param{char *}{name=``dialogBox"}}
470
471Constructor.
472
473\membersection{wxPropertyListDialog::\destruct{wxPropertyListDialog}}
474
475\func{void}{\destruct{wxPropertyListDialog}}{\void}
476
477Destructor.
478
479
480\section{\class{wxPropertyListFrame}: wxFrame}\label{wxpropertylistframe}
481
482The {\bf wxPropertyListFrame} class is a prepackaged frame which can
483be used for viewing a property list. Pass a property list view object, and the frame
484will pass OnClose messages to the view class for processing.
485
486Call Initialize to create the panel and associate the view; override OnCreatePanel
487if you wish to use a panel class other than the default wxPropertyListPanel.
488
489\membersection{wxPropertyListFrame::wxPropertyListFrame}
490
491\func{void}{wxPropertyListFrame}{\param{wxPropertyListView *}{view}, \param{wxFrame *}{parent}, \param{char *}{title},
492 \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
493 \param{long}{ style=wxSDI $\|$ wxDEFAULT\_FRAME}, \param{char *}{name=``frame"}}
494
495Constructor.
496
497\membersection{wxPropertyListFrame::\destruct{wxPropertyListFrame}}
498
499\func{void}{\destruct{wxPropertyListFrame}}{\void}
500
501Destructor.
502
503\membersection{wxPropertyListFrame::GetPropertyPanel}
504
505\func{wxPanel *}{GetPropertyPanel}{\void}
506
507Returns the panel associated with the frame.
508
509\membersection{wxPropertyListFrame::Initialize}
510
511\func{Bool}{Initialize}{\void}
512
513Must be called to create the panel and associate the view with the panel and frame.
514
515\membersection{wxPropertyListFrame::OnCreatePanel}
516
517\func{wxPanel *}{OnCreatePanel}{\param{wxFrame *}{parent}, \param{wxPropertyListView *}{view}}
518
519Creates a panel. Override this to create a panel type other than wxPropertyListPanel.
520
521
522\section{\class{wxPropertyListPanel}: wxPanel}\label{wxpropertylistpanel}
523
524The {\bf wxPropertyListPanel} class is a prepackaged panel which can
525be used for viewing a property list. Pass a property list view object, and the panel
526will pass OnDefaultAction listbox messages to the view class for
527processing.
528
529\membersection{wxPropertyListPanel::wxPropertyListPanel}
530
531\func{void}{wxPropertyListPanel}{\param{wxPropertyListView *}{view}, \param{wxWindow *}{parent},
532 \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
533 \param{long}{ style=0}, \param{char *}{name=``panel"}}
534
535Constructor.
536
537\membersection{wxPropertyListPanel::\destruct{wxPropertyListPanel}}
538
539\func{void}{\destruct{wxPropertyListPanel}}{\void}
540
541Destructor.
542
543
544
545
546\section{\class{wxPropertyListValidator}: wxPropertyValidator}\label{wxpropertylistvalidator}
547
548\overview{wxPropertyListValidator overview}{wxpropertylistvalidatoroverview}
549
550The {\bf wxPropertyListValidator} abstract class is the base class for
551deriving validators for property lists.
552
553\membersection{wxPropertyListValidator::wxPropertyListValidator}
554
555\func{void}{wxPropertyListValidator}{\param{long}{ flags = wxPROP\_ALLOW\_TEXT\_EDITING}}
556
557Constructor.
558
559\membersection{wxPropertyListValidator::\destruct{wxPropertyListValidator}}
560
561\func{void}{\destruct{wxPropertyListValidator}}{\void}
562
563Destructor.
564
565\membersection{wxPropertyListValidator::OnCheckValue}
566
567\func{Bool}{OnCheckValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
568 \param{wxWindow *}{parentWindow}}
569
570Called when the Tick (Confirm) button is pressed or focus is list. Return FALSE if the value
571was invalid, which is a signal restores the old value. Return TRUE if the value was valid.
572
573\membersection{wxPropertyListValidator::OnClearControls}
574
575\func{Bool}{OnClearControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
576 \param{wxWindow *}{parentWindow}}
577
578Allows the clearing (enabling, disabling) of property list controls, when the focus leaves the current property.
579
580\membersection{wxPropertyListValidator::OnClearDetailControls}
581
582\func{Bool}{OnClearDetailControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
583 \param{wxWindow *}{parentWindow}}
584
585Called when the focus is lost, if the validator is in detailed editing mode.
586
587\membersection{wxPropertyListValidator::OnDisplayValue}
588
589\func{Bool}{OnDisplayValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
590 \param{wxWindow *}{parentWindow}}
591
592Should display the value in the appropriate controls. The default implementation gets the
593textual value from the property and inserts it into the text edit control.
594
595\membersection{wxPropertyListValidator::OnDoubleClick}
596
597\func{Bool}{OnDoubleClick}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
598 \param{wxWindow *}{parentWindow}}
599
600Called when the property is double clicked. Extra functionality can be provided,
601such as cycling through possible values.
602
603\membersection{wxPropertyListValidator::OnEdit}
604
605\func{Bool}{OnEdit}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
606 \param{wxWindow *}{parentWindow}}
607
608Called when the Edit (detailed editing) button is pressed. The default implementation
609calls wxPropertyListView::BeginDetailedEditing; a filename validator (for example) overrides
610this function to show the file selector.
611
612\membersection{wxPropertyListValidator::OnPrepareControls}
613
614\func{Bool}{OnPrepareControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
615 \param{wxWindow *}{parentWindow}}
616
617Called to allow the validator to setup the display, such enabling or disabling buttons, and
618setting the values and selection in the standard listbox control (the one optionally used for displaying
619value options).
620
621\membersection{wxPropertyListValidator::OnPrepareDetailControls}
622
623\func{Bool}{OnPrepareDetailControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
624 \param{wxWindow *}{parentWindow}}
625
626Called when the property is edited `in detail', i.e. when the Edit button is pressed.
627
628\membersection{wxPropertyListValidator::OnRetrieveValue}
629
630\func{Bool}{OnRetrieveValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
631 \param{wxWindow *}{parentWindow}}
632
633Called when Tick (Confirm) is pressed or focus is lost or view wants to update
634the property list. Should do the transfer from the property editing area to the property itself
635
636\membersection{wxPropertyListValidator::OnSelect}
637
638\func{Bool}{OnSelect}{\param{Bool}{ select}, \param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
639 \param{wxWindow *}{parentWindow}}
640
641Called when the property is selected or deselected: typically displays the value
642in the edit control (having chosen a suitable control to display: (non)editable text or listbox).
643
644\membersection{wxPropertyListValidator::OnValueListSelect}
645
646\func{Bool}{OnValueListSelect}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
647 \param{wxWindow *}{parentWindow}}
648
649Called when the value listbox is selected. The default behaviour is to copy
650string to text control, and retrieve the value into the property.
651
652
653
654\section{\class{wxPropertyListView}: wxPropertyView}\label{wxpropertylistview}
655
656\overview{wxPropertyListView overview}{wxpropertylistviewoverview}
657
658The {\bf wxPropertyListView} class shows a wxPropertySheet as a Visual Basic-style property list.
659
660\membersection{wxPropertyListView::wxPropertyListView}
661
662\func{void}{wxPropertyListView}{\param{long}{ flags = wxPROP\_BUTTON\_DEFAULT}}
663
664Constructor.
665
666The {\it flags} argument can be a bit list of the following:
667
668\begin{itemize}\itemsep=0pt
669\item wxPROP\_BUTTON\_CLOSE
670\item wxPROP\_BUTTON\_OK
671\item wxPROP\_BUTTON\_CANCEL
672\item wxPROP\_BUTTON\_CHECK\_CROSS
673\item wxPROP\_BUTTON\_HELP
674\item wxPROP\_DYNAMIC\_VALUE\_FIELD
675\item wxPROP\_PULLDOWN
676\end{itemize}
677
678\membersection{wxPropertyListView::\destruct{wxPropertyListView}}
679
680\func{void}{\destruct{wxPropertyListView}}{\void}
681
682Destructor.
683
684\membersection{wxPropertyListView::AssociatePanel}\label{wxpropertylistviewassociatepanel}
685
686\func{void}{AssociatePanel}{\param{wxPanel *}{panel}}
687
688Associates the window on which the controls will be displayed, with the view (sets an internal pointer to the window).
689
690\membersection{wxPropertyListView::BeginShowingProperty}\label{wxpropertylistviewbeginshowingproperty}
691
692\func{Bool}{BeginShowingProperty}{\param{wxProperty *}{property}}
693
694Finds the appropriate validator and loads the property into the controls, by calling
695wxPropertyValidator::OnPrepareControls and then wxPropertyListView::DisplayProperty.
696
697\membersection{wxPropertyListView::DisplayProperty}\label{wxpropertylistviewdisplayproperty}
698
699\func{Bool}{DisplayProperty}{\param{wxProperty *}{property}}
700
701Calls wxPropertyValidator::OnDisplayValue for the current property's validator. This function
702gets called by wxPropertyListView::BeginShowingProperty, which is in turn called
703from ShowProperty, called by OnPropertySelect, called by the listbox callback when selected.
704
705\membersection{wxPropertyListView::EndShowingProperty}\label{wxpropertylistviewendshowingproperty}
706
707\func{Bool}{EndShowingProperty}{\param{wxProperty *}{property}}
708
709Finds the appropriate validator and unloads the property from the controls, by calling
710wxPropertyListView::RetrieveProperty, wxPropertyValidator::OnClearControls and (if we're in
711detailed editing mdoe) wxPropertyValidator::OnClearDetailControls.
712
713\membersection{wxPropertyListView::GetPanel}\label{wxpropertylistviewgetpanel}
714
715\func{wxPanel *}{GetPanel}{\void}
716
717Returns the panel associated with the view.
718
719\membersection{wxPropertyListView::GetManagedWindow}\label{wxpropertylistviewgetmanagedwindow}
720
721\func{wxWindow *}{GetManagedWindow}{\void}
722
723Returns the managed window (a frame or dialog) associated with the view.
724
725\membersection{wxPropertyListView::GetWindowCancelButton}\label{wxpropertylistviewgetwindowcancelbutton}
726
727\func{wxButton *}{GetWindowCancelButton}{\void}
728
729Returns the window cancel button, if any.
730
731\membersection{wxPropertyListView::GetWindowCloseButton}\label{wxpropertylistviewgetwindowclosebutton}
732
733\func{wxButton *}{GetWindowCloseButton}{\void}
734
735Returns the window close or OK button, if any.
736
737\membersection{wxPropertyListView::GetWindowHelpButton}\label{wxpropertylistviewgetwindowhelpbutton}
738
739\func{wxButton *}{GetWindowHelpButton}{\void}
740
741Returns the window help button, if any.
742
743\membersection{wxPropertyListView::SetManagedWindow}\label{wxpropertylistviewsetmanagedwindow}
744
745\func{void}{SetManagedWindow}{\param{wxWindow *}{win}}
746
747Sets the managed window (a frame or dialog) associated with the view.
748
749\membersection{wxPropertyListView::UpdatePropertyDisplayInList}\label{wxpropertylistviewupdatepropdisplay}
750
751\func{Bool}{UpdatePropertyDisplayInList}{\param{wxProperty *}{property}}
752
753Updates the display for the given changed property.
754
755\membersection{wxPropertyListView::UpdatePropertyList}\label{wxpropertylistviewupdateproplist}
756
757\func{Bool}{UpdatePropertyList}{\param{Bool }{clearEditArea = TRUE}}
758
759Updates the whole property list display.
760
761
762\section{\class{wxPropertySheet}: wxObject}\label{wxpropertysheet}
763
764\overview{wxPropertySheet overview}{wxpropertysheetoverview}
765
766The {\bf wxPropertySheet} class is used for storing a number of
767wxProperty objects (essentially names and values).
768
769\membersection{wxPropertySheet::wxPropertySheet}
770
f3a65071 771\func{void}{wxPropertySheet}{\param{const wxString}{ name = ""}}
e3a43801 772
f3a65071 773Constructor. Sets property sheet's name to name if present.
e3a43801
JS
774
775\membersection{wxPropertySheet::\destruct{wxPropertySheet}}
776
777\func{void}{\destruct{wxPropertySheet}}{\void}
778
779Destructor. Destroys all contained properties.
780
781\membersection{wxPropertySheet::AddProperty}\label{wxpropertysheetaddproperty}
782
783\func{void}{AddProperty}{\param{wxProperty *}{property}}
784
785Adds a property to the sheet.
786
787\membersection{wxPropertySheet::Clear}\label{wxpropertysheetclear}
788
789\func{void}{Clear}{\void}
790
791Clears all the properties from the sheet (deleting them).
792
f3a65071
JS
793\membersection{wxPropertySheet::GetName}\label{wxpropertysheetgetname}
794
795\func{wxString}{GetName}{\void}
796
797Gets the sheet's name.
798
799\membersection{wxPropertySheet::GetProperty}\label{wxpropertysheetgetproperty}
800
801\func{wxProperty *}{GetProperty}{\param{wxString}{ name}}
802
803Gets a property by name.
804
e3a43801
JS
805\membersection{wxPropertySheet::GetProperties}\label{wxpropertysheetgetproperties}
806
807\func{wxList\&}{GetProperties}{\void}
808
809Returns a reference to the internal list of properties.
810
f3a65071 811\membersection{wxPropertySheet::HasProperty}\label{wxpropertysheethasproperty}
e3a43801 812
f3a65071 813\func{bool}{HasProperty}{\param{wxString}{ propname}}
e3a43801 814
f3a65071
JS
815Returns true if sheet contains property propname.
816
817\membersection{wxPropertySheet::RemoveProperty}\label{wxpropertysheetremoveproperty}
818
819\func{void}{RemoveProperty}{\param{wxString}{ propname}}
820
821Removes property propname from sheet, deleting it.
822
823\membersection{wxPropertySheet::SetName}\label{wxpropertysheetsetname}
824
825\func{void}{SetName}{\param{wxString}{ sheetname}}
826
827Set the sheet's name to sheetname
828
829\membersection{wxPropertySheet::SetProperty}\label{wxpropertysheetsetproperty}
830
831\func{bool}{SetProperty}{\param{wxString}{ propname}, \param{wxPropertyValue}{ value}}
832
833Sets property propname to value. Returns false if property is not a member of sheet.
e3a43801
JS
834
835\membersection{wxPropertySheet::SetAllModified}
836
837\func{void}{SetAllModified}{\param{Bool}{ flag}}
838
839Sets the `modified' flag of each property value.
840
841
842
843\section{\class{wxPropertyValidator}: wxEvtHandler}\label{wxpropertyvalidator}
844
845\overview{wxPropertyValidator overview}{wxpropertyvalidatoroverview}
846
847The {\bf wxPropertyValidator} abstract class is the base class for deriving
848validators for properties.
849
850\membersection{wxPropertyValidator::wxPropertyValidator}
851
852\func{void}{wxPropertyValidator}{\param{long}{ flags = 0}}
853
854Constructor.
855
856\membersection{wxPropertyValidator::\destruct{wxPropertyValidator}}
857
858\func{void}{\destruct{wxPropertyValidator}}{\void}
859
860Destructor.
861
862\membersection{wxPropertyValidator::GetFlags}
863
864\func{long}{GetFlags}{\void}
865
866Returns the flags for the validator.
867
868\membersection{wxPropertyValidator::GetValidatorProperty}
869
870\func{wxProperty *}{GetValidatorProperty}{\void}
871
872Gets the property for the validator.
873
874\membersection{wxPropertyValidator::SetValidatorProperty}
875
876\func{void}{SetValidatorProperty}{\param{wxProperty *}{property}}
877
878Sets the property for the validator.
879
880
881\section{\class{wxPropertyValidatorRegistry}: wxHashTable}\label{wxpropertyvalidatorregistry}
882
883The {\bf wxPropertyValidatorRegistry} class is used for storing validators,
884indexed by the `role name' of the property, by which groups of property
885can be identified for the purpose of validation and editing.
886
887\membersection{wxPropertyValidatorRegistry::wxPropertyValidatorRegistry}
888
889\func{void}{wxPropertyValidatorRegistry}{\void}
890
891Constructor.
892
893\membersection{wxPropertyValidatorRegistry::\destruct{wxPropertyValidatorRegistry}}
894
895\func{void}{\destruct{wxPropertyValidatorRegistry}}{\void}
896
897Destructor.
898
899\membersection{wxPropertyValidatorRegistry::Clear}
900
901\func{void}{ClearRegistry}{\void}
902
903Clears the registry, deleting the validators.
904
905\membersection{wxPropertyValidatorRegistry::GetValidator}
906
907\func{wxPropertyValidator *}{GetValidator}{\param{wxString\& }{roleName}}
908
909Retrieve a validator by the property role name.
910
911\membersection{wxPropertyValidatorRegistry::RegisterValidator}\label{wxpropertyvalidatorregistervalidator}
912
913\func{void}{RegisterValidator}{\param{wxString\& }{roleName}, \param{wxPropertyValidator *}{validator}}
914
915Register a validator with the registry. {\it roleName} is a name indicating the
916role of the property, such as ``filename''. Later, when a validator is chosen for
917editing a property, this role name is matched against the class names of the property,
918if the property does not already have a validator explicitly associated with it.
919
920
921\section{\class{wxPropertyValue}: wxObject}\label{wxpropertyvalue}
922
923The {\bf wxPropertyValue} class represents the value of a property,
924and is normally associated with a wxProperty object.
925
926A wxPropertyValue has one of the following types:
927
928\begin{itemize}\itemsep=0pt
929\item wxPropertyValueNull
930\item wxPropertyValueInteger
931\item wxPropertyValueReal
932\item wxPropertyValueBool
933\item wxPropertyValueString
934\item wxPropertyValueList
935\item wxPropertyValueIntegerPtr
936\item wxPropertyValueRealPtr
937\item wxPropertyValueBoolPtr
938\item wxPropertyValueStringPtr
939\end{itemize}
940
941\membersection{wxPropertyValue::wxPropertyValue}
942
943\func{void}{wxPropertyValue}{\void}
944
945Default constructor.
946
947\func{void}{wxPropertyValue}{\param{const wxPropertyValue\& }{copyFrom}}
948
949Copy constructor.
950
951\func{void}{wxPropertyValue}{\param{char *}{val}}
952
953Construction from a string value.
954
955\func{void}{wxPropertyValue}{\param{long}{ val}}
956
957Construction from an integer value. You may need to cast to (long) to
958avoid confusion with other constructors (such as the Bool constructor).
959
960\func{void}{wxPropertyValue}{\param{Bool}{ val}}
961
962Construction from a boolean value.
963
964\func{void}{wxPropertyValue}{\param{float}{ val}}
965
966Construction from a floating point value.
967
968\func{void}{wxPropertyValue}{\param{double}{ val}}
969
970Construction from a floating point value.
971
972\func{void}{wxPropertyValue}{\param{wxList *}{ val}}
973
974Construction from a list of wxPropertyValue objects. The
975list, but not each contained wxPropertyValue, will be deleted
976by the constructor. The wxPropertyValues will be assigned to
977this wxPropertyValue list. In other words, so do not delete wxList or
978its data after calling this constructor.
979
980\func{void}{wxPropertyValue}{\param{wxStringList *}{ val}}
981
982Construction from a list of strings. The list (including the strings
983contained in it) will be deleted by the constructor, so do not
984destroy {\it val} explicitly.
985
986\func{void}{wxPropertyValue}{\param{char **}{val}}
987
988Construction from a string pointer.
989
990\func{void}{wxPropertyValue}{\param{long *}{val}}
991
992Construction from an integer pointer.
993
994\func{void}{wxPropertyValue}{\param{Bool *}{val}}
995
996Construction from an boolean pointer.
997
998\func{void}{wxPropertyValue}{\param{float *}{val}}
999
1000Construction from a floating point pointer.
1001
1002The last four constructors use pointers to various C++ types, and do not
1003store the types themselves; this allows the values to stand in for actual
1004data values defined elsewhere.
1005
1006\membersection{wxPropertyValue::\destruct{wxPropertyValue}}
1007
1008\func{void}{\destruct{wxPropertyValue}}{\void}
1009
1010Destructor.
1011
1012\membersection{wxPropertyValue::Append}
1013
1014\func{void}{Append}{\param{wxPropertyValue *}{expr}}
1015
1016Appends a property value to the list.
1017
1018\membersection{wxPropertyValue::BoolValue}
1019
1020\func{Bool}{BoolValue}{\void}
1021
1022Returns the boolean value.
1023
1024\membersection{wxPropertyValue::BoolValuePtr}
1025
1026\func{Bool *}{BoolValuePtr}{\void}
1027
1028Returns the pointer to the boolean value.
1029
1030\membersection{wxPropertyValue::ClearList}
1031
1032\func{void}{ClearList}{\void}
1033
1034Deletes the contents of the list.
1035
1036\membersection{wxPropertyValue::Delete}
1037
1038\func{void}{Delete}{\param{wxPropertyValue *}{expr}}
1039
1040Deletes {\it expr} from this list.
1041
1042\membersection{wxPropertyValue::GetFirst}
1043
1044\func{wxPropertyValue *}{GetFirst}{\void}
1045
1046Gets the first value in the list.
1047
1048\membersection{wxPropertyValue::GetLast}
1049
1050\func{wxPropertyValue *}{GetFirst}{\void}
1051
1052Gets the last value in the list.
1053
1054\membersection{wxPropertyValue::GetModified}
1055
1056\func{Bool}{GetModified}{\void}
1057
1058Returns TRUE if the value was modified since being created
1059(or since SetModified was called).
1060
1061\membersection{wxPropertyValue::GetNext}
1062
1063\func{wxPropertyValue *}{GetNext}{\void}
1064
1065Gets the next value in the list (the one after `this').
1066
1067\membersection{wxPropertyValue::GetStringRepresentation}
1068
1069\func{wxString}{GetStringRepresentation}{\void}
1070
1071Gets a string representation of the value.
1072
1073\membersection{wxPropertyValue::IntegerValue}
1074
1075\func{long}{IntegerValue}{\void}
1076
1077Returns the integer value.
1078
1079\membersection{wxPropertyValue::Insert}
1080
1081\func{void}{Insert}{\param{wxPropertyValue *}{expr}}
1082
1083Inserts a property value at the front of a list.
1084
1085\membersection{wxPropertyValue::IntegerValuePtr}
1086
1087\func{long *}{IntegerValuePtr}{\void}
1088
1089Returns the pointer to the integer value.
1090
1091\membersection{wxPropertyValue::Nth}
1092
1093\func{wxPropertyValue *}{Nth}{\param{int}{ n}}
1094
1095Returns the nth value of a list expression (starting from zero).
1096
1097\membersection{wxPropertyValue::Number}
1098
1099\func{int}{Number}{\void}
1100
1101Returns the number of elements in a list expression.
1102
1103\membersection{wxPropertyValue::RealValue}
1104
1105\func{float}{RealValue}{\void}
1106
1107Returns the floating point value.
1108
1109\membersection{wxPropertyValue::RealValuePtr}
1110
1111\func{float *}{RealValuePtr}{\void}
1112
1113Returns the pointer to the floating point value.
1114
1115\membersection{wxPropertyValue::SetModified}
1116
1117\func{void}{SetModified}{\param{Bool}{ flag}}
1118
1119Sets the `modified' flag.
1120
1121\membersection{wxPropertyValue::StringValue}
1122
1123\func{char *}{StringValue}{\void}
1124
1125Returns the string value.
1126
1127\membersection{wxPropertyValue::StringValuePtr}
1128
1129\func{char **}{StringValuePtr}{\void}
1130
1131Returns the pointer to the string value.
1132
1133\membersection{wxPropertyValue::Type}
1134
1135\func{wxPropertyValueType}{Type}{\void}
1136
1137Returns the value type.
1138
1139\membersection{wxPropertyValue::operator $=$}
1140
1141\func{void}{operator $=$}{\param{const wxPropertyValue\& }{val}}
1142
1143\func{void}{operator $=$}{\param{const char *}{val}}
1144
1145\func{void}{operator $=$}{\param{const long }{val}}
1146
1147\func{void}{operator $=$}{\param{const Bool }{val}}
1148
1149\func{void}{operator $=$}{\param{const float }{val}}
1150
1151\func{void}{operator $=$}{\param{const char **}{val}}
1152
1153\func{void}{operator $=$}{\param{const long *}{val}}
1154
1155\func{void}{operator $=$}{\param{const Bool *}{val}}
1156
1157\func{void}{operator $=$}{\param{const float *}{val}}
1158
1159Assignment operators.
1160
1161
1162
1163\section{\class{wxPropertyView}: wxEvtHandler}\label{wxpropertyview}
1164
1165\overview{wxPropertyView overview}{wxpropertyviewoverview}
1166
1167The {\bf wxPropertyView} abstract class is the base class for views
1168of property sheets, acting as intermediaries between properties and
1169actual windows.
1170
1171\membersection{wxPropertyView::wxPropertyView}
1172
1173\func{void}{wxPropertyView}{\param{long}{ flags = wxPROP\_BUTTON\_DEFAULT}}
1174
1175Constructor.
1176
1177The {\it flags} argument can be a bit list of the following:
1178
1179\begin{itemize}\itemsep=0pt
1180\item wxPROP\_BUTTON\_CLOSE
1181\item wxPROP\_BUTTON\_OK
1182\item wxPROP\_BUTTON\_CANCEL
1183\item wxPROP\_BUTTON\_CHECK\_CROSS
1184\item wxPROP\_BUTTON\_HELP
1185\item wxPROP\_DYNAMIC\_VALUE\_FIELD
1186\item wxPROP\_PULLDOWN
1187\end{itemize}
1188
1189\membersection{wxPropertyView::\destruct{wxPropertyView}}
1190
1191\func{void}{\destruct{wxPropertyView}}{\void}
1192
1193Destructor.
1194
1195\membersection{wxPropertyView::AddRegistry}\label{wxpropertyviewaddregistry}
1196
1197\func{void}{AddRegistry}{\param{wxPropertyValidatorRegistry *}{registry}}
1198
1199Adds a registry (list of property validators) the view's list of registries, which is initially empty.
1200
1201\membersection{wxPropertyView::FindPropertyValidator}\label{wxpropertyviewfindpropertyvalidator}
1202
1203\func{wxPropertyValidator *}{FindPropertyValidator}{\param{wxProperty *}{property}}
1204
1205Finds the property validator that is most appropriate to this property.
1206
1207\membersection{wxPropertyView::GetPropertySheet}\label{wxpropertyviewgetpropertysheet}
1208
1209\func{wxPropertySheet *}{GetPropertySheet}{\void}
1210
1211Gets the property sheet for this view.
1212
1213\membersection{wxPropertyView::GetRegistryList}\label{wxpropertyviewgetregistrylist}
1214
1215\func{wxList\&}{GetRegistryList}{\void}
1216
1217Returns a reference to the list of property validator registries.
1218
1219\membersection{wxPropertyView::OnOk}\label{wxpropertyviewonok}
1220
1221\func{void}{OnOk}{\void}
1222
1223Virtual function that will be called when the OK button on the physical window is pressed (if it exists).
1224
1225\membersection{wxPropertyView::OnCancel}\label{wxpropertyviewoncancel}
1226
1227\func{void}{OnCancel}{\void}
1228
1229Virtual function that will be called when the Cancel button on the physical window is pressed (if it exists).
1230
1231\membersection{wxPropertyView::OnClose}\label{wxpropertyviewonclose}
1232
1233\func{Bool}{OnClose}{\void}
1234
1235Virtual function that will be called when the physical window is closed. The default implementation returns FALSE.
1236
1237\membersection{wxPropertyView::OnHelp}\label{wxpropertyviewonhelp}
1238
1239\func{void}{OnHelp}{\void}
1240
1241Virtual function that will be called when the Help button on the physical window is pressed (if it exists).
1242
1243\membersection{wxPropertyView::OnPropertyChanged}\label{wxpropertyviewonpropertychanged}
1244
1245\func{void}{OnPropertyChanged}{\param{wxProperty *}{property}}
1246
1247Virtual function called by a view or validator when a property's value changed. Validators
1248must be written correctly for this to be called. You can override this function
1249to respond immediately to property value changes.
1250
1251\membersection{wxPropertyView::OnUpdateView}\label{wxpropertyviewonupdateview}
1252
1253\func{Bool}{OnUpdateView}{\void}
1254
1255Called by the viewed object to update the view. The default implementation just returns
1256FALSE.
1257
1258\membersection{wxPropertyView::SetPropertySheet}\label{wxpropertyviewsetpropertysheet}
1259
1260\func{void}{SetPropertySheet}{\param{wxPropertySheet *}{sheet}}
1261
1262Sets the property sheet for this view.
1263
1264\membersection{wxPropertyView::ShowView}\label{wxpropertyviewshowview}
1265
1266\func{void}{ShowView}{\param{wxPropertySheet *}{sheet}, \param{wxPanel *}{panel}}
1267
1268Associates this view with the given panel, and shows the view.
1269
1270\section{\class{wxRealFormValidator}: wxPropertyFormValidator}\label{wxrealformvalidator}
1271
1272\overview{Validator classes}{validatorclasses}
1273
1274This class validates a range of real values for form views. The associated panel item must be a wxText.
1275
1276\membersection{wxRealFormValidator::wxRealFormValidator}
1277
1278\func{void}{wxRealFormValidator}{\param{float }{min=0.0}, \param{float }{max=0.0},
1279 \param{long}{ flags=0}}
1280
1281Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.
1282
1283
1284\section{\class{wxStringFormValidator}: wxPropertyFormValidator}\label{wxstringformvalidator}
1285
1286\overview{Validator classes}{validatorclasses}
1287
1288This class validates a string value for a form view, with an optional choice of possible values.
1289The associated panel item must be a wxText, wxListBox or wxChoice. For wxListBox and wxChoice items,
1290if the item is empty, the validator attempts to initialize the item from the strings in
1291the validator. Note that this does not happen for XView wxChoice items since XView cannot reinitialize a wxChoice.
1292
1293\membersection{wxStringFormValidator::wxStringFormValidator}
1294
1295\func{void}{wxStringFormValidator}{\param{wxStringList *}{list=NULL}, \param{long}{ flags=0}}
1296
1297Constructor. Supply a list of strings to indicate a choice, or no strings to allow the
1298user to freely edit the string. The string list will be deleted when the validator is deleted.
1299
1300
1301\section{\class{wxRealListValidator}: wxPropertyListValidator}\label{wxreallistvalidator}
1302
1303\overview{Validator classes}{validatorclasses}
1304
1305This class validates a range of real values for property lists.
1306
1307\membersection{wxRealListValidator::wxreallistvalidator}
1308
1309\func{void}{wxRealListValidator}{\param{float }{min=0.0}, \param{float }{max=0.0},
1310 \param{long}{ flags=wxPROP\_ALLOW\_TEXT\_EDITING}}
1311
1312Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.
1313
1314
1315\section{\class{wxStringListValidator}: wxPropertyListValidator}\label{wxstringlistvalidator}
1316
1317\overview{Validator classes}{validatorclasses}
1318
1319This class validates a string value, with an optional choice of possible values.
1320
1321\membersection{wxStringListValidator::wxStringListValidator}
1322
1323\func{void}{wxStringListValidator}{\param{wxStringList *}{list=NULL}, \param{long}{ flags=0}}
1324
1325Constructor. Supply a list of strings to indicate a choice, or no strings to allow the
1326user to freely edit the string. The string list will be deleted when the validator is deleted.
1327
1328
1329\chapter{Classes by category}\label{classesbycat}
1330
1331A classification of property sheet classes by category.
1332
1333\section{Data classes}
1334
1335\begin{itemize}\itemsep=0pt
1336\item \helpref{wxProperty}{wxproperty}
1337\item \helpref{wxPropertyValue}{wxpropertyvalue}
1338\item \helpref{wxPropertySheet}{wxpropertysheet}
1339\end{itemize}
1340
1341
1342\section{Validator classes}\label{validatorclasses}
1343
1344Validators check that the values the user has entered for a property are
1345valid. They can also define specific ways of entering data, such as a
1346file selector for a filename, and they are responsible for transferring
1347values between the wxProperty and the physical display.
1348
1349Base classes:
1350
1351\begin{itemize}\itemsep=0pt
1352\item \helpref{wxPropertyValidator}{wxproperty}
1353\item \helpref{wxPropertyListValidator}{wxpropertylistvalidator}
1354\item \helpref{wxPropertyFormValidator}{wxpropertyformvalidator}
1355\end{itemize}
1356
1357List view validators:
1358
1359\begin{itemize}\itemsep=0pt
1360\item \helpref{wxBoolListValidator}{wxboollistvalidator}
1361\item \helpref{wxFilenameListValidator}{wxfilenamelistvalidator}
1362\item \helpref{wxIntegerListValidator}{wxintegerlistvalidator}
1363\item \helpref{wxListOfStringsListValidator}{wxlistofstringslistvalidator}
1364\item \helpref{wxRealListValidator}{wxreallistvalidator}
1365\item \helpref{wxStringListValidator}{wxstringlistvalidator}
1366\end{itemize}
1367
1368Form view validators:
1369
1370\begin{itemize}\itemsep=0pt
1371\item \helpref{wxBoolFormValidator}{wxboolformvalidator}
1372\item \helpref{wxIntegerFormValidator}{wxintegerformvalidator}
1373\item \helpref{wxRealFormValidator}{wxrealformvalidator}
1374\item \helpref{wxStringFormValidator}{wxstringformvalidator}
1375\end{itemize}
1376
1377\section{View classes}\label{viewclasses}
1378
1379View classes mediate between a property sheet and a physical window.
1380
1381\begin{itemize}\itemsep=0pt
1382\item \helpref{wxPropertyView}{wxpropertyview}
1383\item \helpref{wxPropertyListView}{wxpropertylistview}
1384\item \helpref{wxPropertyFormView}{wxpropertyformview}
1385\end{itemize}
1386
1387\section{Window classes}\label{windowclasses}
1388
1389The class library defines some window classes that can be used as-is with a suitable
1390view class and property sheet.
1391
1392\begin{itemize}\itemsep=0pt
1393\item \helpref{wxPropertyFormFrame}{wxpropertyformframe}
1394\item \helpref{wxPropertyFormDialog}{wxpropertyformdialog}
1395\item \helpref{wxPropertyFormPanel}{wxpropertyformpanel}
1396\item \helpref{wxPropertyListFrame}{wxpropertylistframe}
1397\item \helpref{wxPropertyListDialog}{wxpropertylistdialog}
1398\item \helpref{wxPropertyListPanel}{wxpropertylistpanel}
1399\end{itemize}
1400
1401\section{Registry classes}
1402
1403A validator registry is a list of validators that can be applied to properties in a property sheet.
1404There may be one or more registries per property view.
1405
1406\begin{itemize}\itemsep=0pt
1407\item \helpref{wxPropertyValidatorRegistry}{wxpropertyvalidatorregistry}
1408\end{itemize}
1409
1410
1411\chapter{Topic overviews}\label{overviews}
1412
1413This chapter contains a selection of topic overviews.
1414
1415\section{Property classes overview}\label{propertyoverview}
1416
1417The property classes help a programmer to express relationships between
1418data and physical windows, in particular:
1419
1420\begin{itemize}\itemsep=0pt
1421\item the transfer of data to and from the physical controls;
1422\item the behaviour of various controls and custom windows for particular
1423types of data;
1424\item the validation of data, notifying the user when incorrect data is entered,
1425or even better, constraining the input so only valid data can be entered.
1426\end{itemize}
1427
1428With a consistent framework, the programmer should be able to use existing
1429components and design new ones in a principled manner, to solve many data entry
1430requirements.
1431
1432Each datum is represented in a \helpref{wxProperty}{wxproperty}, which has a name and a value.
1433Various C++ types are permitted in the value of a property, and the property can store a pointer
1434to the data instead of a copy of the data. A \helpref{wxPropertySheet}{wxpropertysheet} represents a number of these properties.
1435
1436These two classes are independent from the way in which the data is visually manipulated. To
1437mediate between property sheets and windows, the abstract class \helpref{wxPropertyView}{wxpropertyview} is
1438available for programmers to derive new kinds of view. One kind of view that is available is the \helpref{wxPropertyListView}{wxpropertylistview},
1439which displays the data in a Visual Basic-style list, with a small number of controls for editing
1440the currently selected property. Another is \helpref{wxPropertyFormView}{wxpropertyformview} which
1441mediates between an existing dialog or panel and the property sheet.
1442
1443The hard work of mediation is actually performed by validators, which are instances of classes
1444derived from \helpref{wxPropertyValidator}{wxpropertyvalidator}. A validator is associated with
1445a particular property and is responsible for
1446responding to user interface events, and displaying, updating and checking the property value.
1447Because a validator's behaviour depends largely on the kind of view being used, there has to be
1448a separate hierarchy of validators for each class of view. So for wxPropertyListView, there is
1449an abstract class \helpref{wxPropertyListValidator}{wxpropertylistvalidator} from which concrete
1450classes are derived, such as \helpref{wxRealListValidator}{wxreallistvalidator} and
1451\rtfsp\helpref{wxStringListValidator}{wxstringlistvalidator}.
1452
1453A validator can be explicitly set for a property, so there is no doubt which validator
1454should be used to edit that property. However, it is also possible to define a registry
1455of validators, and have the validator chosen on the basis of the {\it role} of the property.
1456So a property with a ``filename" role would match the ``filename" validator, which pops
1457up a file selector when the user double clicks on the property.
1458
1459You don't have to define your own frame or window classes: there are some predefined
1460that will work with the property list view. See \helpref{Window classes}{windowclasses} for
1461further details.
1462
1463\subsection{Example 1: Property list view}
1464
1465The following code fragment shows the essentials of creating a registry of
1466standard validators, a property sheet containing some properties, and
1467a property list view and dialog or frame. RegisterValidators will be
1468called on program start, and PropertySheetTest is called in response to a
1469menu command.
1470
1471Note how some properties are created with an explicit reference to
1472a validator, and others are provided with a ``role'' which can be matched
1473against a validator in the registry.
1474
1475The interface generated by this test program is shown in the section \helpref{Appearance and
1476behaviour of a property list view}{appearance}.
1477
1478\begin{verbatim}
1479void RegisterValidators(void)
1480{
1481 myListValidatorRegistry.RegisterValidator((wxString)"real", new wxRealListValidator);
1482 myListValidatorRegistry.RegisterValidator((wxString)"string", new wxStringListValidator);
1483 myListValidatorRegistry.RegisterValidator((wxString)"integer", new wxIntegerListValidator);
1484 myListValidatorRegistry.RegisterValidator((wxString)"bool", new wxBoolListValidator);
1485}
1486
1487void PropertyListTest(Bool useDialog)
1488{
1489 wxPropertySheet *sheet = new wxPropertySheet;
1490
1491 sheet->AddProperty(new wxProperty("fred", 1.0, "real"));
1492 sheet->AddProperty(new wxProperty("tough choice", (Bool)TRUE, "bool"));
1493 sheet->AddProperty(new wxProperty("ian", (long)45, "integer", new wxIntegerListValidator(-50, 50)));
1494 sheet->AddProperty(new wxProperty("bill", 25.0, "real", new wxRealListValidator(0.0, 100.0)));
1495 sheet->AddProperty(new wxProperty("julian", "one", "string"));
1496 sheet->AddProperty(new wxProperty("bitmap", "none", "string", new wxFilenameListValidator("Select a bitmap file", "*.bmp")));
1497 wxStringList *strings = new wxStringList("one", "two", "three", NULL);
1498 sheet->AddProperty(new wxProperty("constrained", "one", "string", new wxStringListValidator(strings)));
1499
1500 wxPropertyListView *view =
1501 new wxPropertyListView(NULL,
1502 wxPROP_BUTTON_CHECK_CROSS|wxPROP_DYNAMIC_VALUE_FIELD|wxPROP_PULLDOWN);
1503
1504 wxDialogBox *propDialog = NULL;
1505 wxPropertyListFrame *propFrame = NULL;
1506 if (useDialog)
1507 {
1508 propDialog = new wxPropertyListDialog(view, NULL, "Property Sheet Test", TRUE, -1, -1, 400, 500);
1509 }
1510 else
1511 {
1512 propFrame = new wxPropertyListFrame(view, NULL, "Property Sheet Test", -1, -1, 400, 500);
1513 }
1514
1515 view->AddRegistry(&myListValidatorRegistry);
1516
1517 if (useDialog)
1518 {
1519 view->ShowView(sheet, propDialog);
1520 propDialog->Centre(wxBOTH);
1521 propDialog->Show(TRUE);
1522 }
1523 else
1524 {
1525 propFrame->Initialize();
1526 view->ShowView(sheet, propFrame->GetPropertyPanel());
1527 propFrame->Centre(wxBOTH);
1528 propFrame->Show(TRUE);
1529 }
1530}
1531\end{verbatim}
1532
1533\subsection{Example 2: Property form view}
1534
1535This example is similar to Example 1, but uses a property form view to
1536edit a property sheet using a predefined dialog box.
1537
1538\begin{verbatim}
1539void RegisterValidators(void)
1540{
1541 myFormValidatorRegistry.RegisterValidator((wxString)"real", new wxRealFormValidator);
1542 myFormValidatorRegistry.RegisterValidator((wxString)"string", new wxStringFormValidator);
1543 myFormValidatorRegistry.RegisterValidator((wxString)"integer", new wxIntegerFormValidator);
1544 myFormValidatorRegistry.RegisterValidator((wxString)"bool", new wxBoolFormValidator);
1545}
1546
1547void PropertyFormTest(Bool useDialog)
1548{
1549 wxPropertySheet *sheet = new wxPropertySheet;
1550
1551 sheet->AddProperty(new wxProperty("fred", 25.0, "real", new wxRealFormValidator(0.0, 100.0)));
1552 sheet->AddProperty(new wxProperty("tough choice", (Bool)TRUE, "bool"));
1553 sheet->AddProperty(new wxProperty("ian", (long)45, "integer", new wxIntegerFormValidator(-50, 50)));
1554 sheet->AddProperty(new wxProperty("julian", "one", "string"));
1555 wxStringList *strings = new wxStringList("one", "two", "three", NULL);
1556 sheet->AddProperty(new wxProperty("constrained", "one", "string", new wxStringFormValidator(strings)));
1557
1558 wxPropertyFormView *view = new wxPropertyFormView(NULL);
1559
1560 wxDialogBox *propDialog = NULL;
1561 wxPropertyFormFrame *propFrame = NULL;
1562 if (useDialog)
1563 {
1564 propDialog = new wxPropertyFormDialog(view, NULL, "Property Form Test", TRUE, -1, -1, 400, 300);
1565 }
1566 else
1567 {
1568 propFrame = new wxPropertyFormFrame(view, NULL, "Property Form Test", -1, -1, 400, 300);
1569 propFrame->Initialize();
1570 }
1571
1572 wxPanel *panel = propDialog ? propDialog : propFrame->GetPropertyPanel();
1573 panel->SetLabelPosition(wxVERTICAL);
1574
1575 // Add items to the panel
1576
1577 (void) new wxButton(panel, (wxFunction)NULL, "OK", -1, -1, -1, -1, 0, "ok");
1578 (void) new wxButton(panel, (wxFunction)NULL, "Cancel", -1, -1, 80, -1, 0, "cancel");
1579 (void) new wxButton(panel, (wxFunction)NULL, "Update", -1, -1, 80, -1, 0, "update");
1580 (void) new wxButton(panel, (wxFunction)NULL, "Revert", -1, -1, -1, -1, 0, "revert");
1581 panel->NewLine();
1582
1583 // The name of this text item matches the "fred" property
1584 (void) new wxText(panel, (wxFunction)NULL, "Fred", "", -1, -1, 90, -1, 0, "fred");
1585 (void) new wxCheckBox(panel, (wxFunction)NULL, "Yes or no", -1, -1, -1, -1, 0, "tough choice");
1586 (void) new wxSlider(panel, (wxFunction)NULL, "Sliding scale", 0, -50, 50, 100, -1, -1, wxHORIZONTAL, "ian");
1587 panel->NewLine();
1588 (void) new wxListBox(panel, (wxFunction)NULL, "Constrained", wxSINGLE, -1, -1, 100, 90, 0, NULL, 0, "constrained");
1589
1590 view->AddRegistry(&myFormValidatorRegistry);
1591
1592 if (useDialog)
1593 {
1594 view->ShowView(sheet, propDialog);
1595 view->AssociateNames();
1596 view->TransferToDialog();
1597 propDialog->Centre(wxBOTH);
1598 propDialog->Show(TRUE);
1599 }
1600 else
1601 {
1602 view->ShowView(sheet, propFrame->GetPropertyPanel());
1603 view->AssociateNames();
1604 view->TransferToDialog();
1605 propFrame->Centre(wxBOTH);
1606 propFrame->Show(TRUE);
1607 }
1608}
1609\end{verbatim}
1610
1611\section{Validator classes overview}\label{validatoroverview}
1612
1613Classes: \helpref{Validator classes}{validatorclasses}
1614
1615The validator classes provide functionality for mediating between a wxProperty and
1616the actual display. There is a separate family of validator classes for each
1617class of view, since the differences in user interface for these views implies
1618that little common functionality can be shared amongst validators.
1619
1620\subsection{wxPropertyValidator overview}\label{wxpropertyvalidatoroverview}
1621
1622Class: \helpref{wxPropertyValidator}{wxpropertyvalidator}
1623
1624This class is the root of all property validator classes. It contains a small
1625amount of common functionality, including functions to convert between
1626strings and C++ values.
1627
1628A validator is notionally an object which sits between a property and its displayed
1629value, and checks that the value the user enters is correct, giving an error message
1630if the validation fails. In fact, the validator does more than that, and is akin to
1631a view class but at a finer level of detail. It is also responsible for
1632loading the dialog box control with the value from the property, putting it back
1633into the property, preparing special controls for editing the value, and
1634may even invoke special dialogs for editing the value in a convenient way.
1635
1636In a property list dialog, there is quite a lot of scope for supplying custom dialogs,
1637such as file or colour selectors. For a form dialog, there is less scope because
1638there is no concept of `detailed editing' of a value: one control is associated with
1639one property, and there is no provision for invoking further dialogs. The reader
1640may like to work out how the form view could be extended to provide some of the
1641functionality of the property list!
1642
1643Validator objects may be associated explictly with a wxProperty, or they may be
1644indirectly associated by virtue of a property `kind' that matches validators having
1645that kind. In the latter case, such validators are stored in a validator registry
1646which is passed to the view before the dialog is shown. If the validator takes
1647arguments, such as minimum and maximum values in the case of a wxIntegerListValidator,
1648then the validator must be associated explicitly with the property. The validator
1649will be deleted when the property is deleted.
1650
1651\subsection{wxPropertyListValidator overview}\label{wxpropertylistvalidatoroverview}
1652
1653Class: \helpref{wxPropertyListValidator}{wxpropertylistvalidator}
1654
1655This class is the abstract base class for property list view validators.
1656The list view acts upon a user interface containing a list of properties,
1657a text item for direct property value editing, confirm/cancel buttons for the value,
1658a pulldown list for making a choice between values, and OK/Cancel/Help buttons
1659for the dialog (see \helpref{property list appearance}{appearance}).
1660
1661By overriding virtual functions, the programmer can create custom
1662behaviour for different kinds of property. Custom behaviour can use just the
1663available controls on the property list dialog, or the validator can
1664invoke custom editors with quite different controls, which pop up in
1665`detailed editing' mode.
1666
1667See the detailed class documentation for the members you should override
1668to give your validator appropriate behaviour.
1669
1670\subsection{wxPropertyFormValidator overview}\label{wxpropertyformvalidatoroverview}
1671
1672This class is the abstract base class for property form view validators.
1673The form view acts upon an existing dialog box or panel, where either the
1674panel item names correspond to property names, or the programmer has explicitly
1675associated the panel item with the property.
1676
1677By overriding virtual functions, the programmer determines how
1678values are displayed or retrieved, and the checking that the validator does.
1679
1680See the detailed class documentation for the members you should override
1681to give your validator appropriate behaviour.
1682
1683\section{View classes overview}\label{viewoverview}
1684
1685Classes: \helpref{View classes}{viewclasses}
1686
1687An instance of a view class relates a property sheet with an actual window.
1688Currently, there are two classes of view: wxPropertyListView and wxPropertyFormView.
1689
1690\subsection{wxPropertyView overview}\label{wxpropertyviewoverview}
1691
1692Class: \helpref{wxPropertyView}{wxpropertyview}
1693
1694This is the abstract base class for property views.
1695
1696\subsection{wxPropertyListView overview}\label{wxpropertylistviewoverview}
1697
1698Class: \helpref{wxPropertyListView}{wxpropertylistview}
1699
1700The property list view defines the relationship between a property sheet and
1701a property list dialog or panel. It manages user interface events such as
1702clicking on a property, pressing return in the text edit field, and clicking
1703on Confirm or Cancel. These events cause member functions of the
1704class to be called, and these in turn may call member functions of
1705the appropriate validator to be called, to prepare controls, check the property value,
1706invoke detailed editing, etc.
1707
1708\subsection{wxPropertyFormView overview}\label{wxpropertyformviewoverview}
1709
1710Class: \helpref{wxPropertyFormView}{wxpropertyformview}
1711
1712The property form view manages the relationship between a property sheet
1713and an existing dialog or panel.
1714
1715You must first create a panel or dialog box for the view to work on.
1716The panel should contain panel items with names that correspond to
1717properties in your property sheet; or you can explicitly set the
1718panel item for each property.
1719
1720Apart from any custom panel items that you wish to control independently
1721of the property-editing items, wxPropertyFormView takes over the
1722processing of item events. It can also control normal dialog behaviour such
1723as OK, Cancel, so you should also create some standard buttons that the property view
1724can recognise. Just create the buttons with standard names and the view
1725will do the rest. The following button names are recognised:
1726
1727\begin{itemize}\itemsep=0pt
1728\item {\bf ok}: indicates the OK button. Calls wxPropertyFormView::OnOk. By default,
1729checks and updates the form values, closes and deletes the frame or dialog, then deletes the view.
1730\item {\bf cancel}: indicates the Cancel button. Calls wxPropertyFormView::OnCancel. By default,
1731closes and deletes the frame or dialog, then deletes the view.
1732\item {\bf help}: indicates the Help button. Calls wxPropertyFormView::OnHelp. This needs
1733to be overridden by the application for anything interesting to happen.
1734\item {\bf revert}: indicates the Revert button. Calls wxPropertyFormView::OnRevert,
1735which by default transfers the wxProperty values to the panel items (in effect
1736undoing any unsaved changes in the items).
1737\item {\bf update}: indicates the Revert button. Calls wxPropertyFormView::OnUpdate, which
1738by defaults transfers the displayed values to the wxProperty objects.
1739\end{itemize}
1740
1741\section{wxPropertySheet overview}\label{wxpropertysheetoverview}
1742
1743Classes: \helpref{wxPropertySheet}{wxpropertysheet}, \helpref{wxProperty}{wxproperty}, \helpref{wxPropertyValue}{wxpropertyvalue}
1744
1745A property sheet defines zero or more properties. This is a bit like an explicit representation of
1746a C++ object. wxProperty objects can have values which are pointers to C++ values, or they
1747can allocate their own storage for values.
1748
1749Because the property sheet representation is explicit and can be manipulated by
1750a program, it is a convenient form to be used for a variety of
1751editing purposes. wxPropertyListView and wxPropertyFormView are two classes that
1752specify the relationship between a property sheet and a user interface. You could imagine
1753other uses for wxPropertySheet, for example to generate a form-like user interface without
1754the need for GUI programming. Or for storing the names and values of command-line switches, with the
1755option to subsequently edit these values using a wxPropertyListView.
1756
1757A typical use for a property sheet is to represent values of an object
1758which are only implicit in the current representation of it. For
1759example, in Visual Basic and similar programming environments, you can
1760`edit a button', or rather, edit the button's properties. One of the
1761properties you can edit is {\it width} - but there is no explicit
1762representation of width in a wxWindows button; instead, you call SetSize
1763and GetSize members. To translate this into a consisent,
1764property-oriented scheme, we could derive a new class
1765wxButtonWithProperties, which has two new functions: SetProperty and
1766GetProperty. SetProperty accepts a property name and a value, and calls
1767an appropriate function for the property that is being passed.
1768GetProperty accepts a property name, returning a property value. So
1769instead of having to use the usual arbitrary set of C++ member functions
1770to set or access attributes of a window, programmer deals merely with
1771SetValue/GetValue, and property names and values.
1772We now have a single point at which we can modify or query an object by specifying
1773names and values at run-time. (The implementation of SetProperty and GetProperty
1774is probably quite messy and involves a large if-then-else statement to
1775test the property name and act accordingly.)
1776
1777When the user invokes the property editor for a wxButtonWithProperties, the system
1778creates a wxPropertySheet with `imaginary' properties such as width, height, font size
1779and so on. For each property, wxButtonWithProperties::GetProperty is called, and the result is
1780passed to the corresponding wxProperty. The wxPropertySheet is passed to a wxPropertyListView
1781as described elsewhere, and the user edits away. When the user has finished editing, the system calls
1782wxButtonWithProperties::SetProperty to transfer the wxProperty value back into the button
1783by way of an appropriate call, wxWindow::SetSize in the case of width and height properties.
1784
1785
1786