]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/validate/validate.h
add an example of a custom wxValidator-derived class; cleanup a bit the dialog layout
[wxWidgets.git] / samples / validate / validate.h
index 09f7db7bda32065356495637774b4ef765dc710d..dde69217e4888f3c040711e2ab7b87f2aca0d3e6 100644 (file)
@@ -48,30 +48,55 @@ public:
             const wxPoint& pos = wxDefaultPosition,
             const wxSize& size = wxDefaultSize,
             const long style = wxDEFAULT_DIALOG_STYLE);
+
     bool TransferDataToWindow();
-    wxTextCtrl *text;
-    wxComboBox *combobox;
+    wxTextCtrl *m_text;
+    wxComboBox *m_combobox;
 };
 
 class MyData
 {
 public:
     MyData();
+
     // These data members are designed for transfer to and from
     // controls, via validators. For instance, a text control's
     // transferred value is a string:
     wxString m_string;
+
     // Listboxes may permit multiple selections, so their state
     // is transferred to an integer-array class.
     wxArrayInt m_listbox_choices;
-    bool m_checkbox_state;
+
     // Comboboxes differ from listboxes--validators transfer
     // the string entered in the combobox's text-edit field.
     wxString m_combobox_choice;
+
+    bool m_checkbox_state;
     int m_radiobox_choice;
 };
 
-enum {
+class MyComboBoxValidator : public wxValidator
+{
+public:
+    MyComboBoxValidator(const MyComboBoxValidator& tocopy) { m_var=tocopy.m_var; }
+    MyComboBoxValidator(wxString* var) { m_var=var; }
+
+    virtual bool Validate(wxWindow* parent);
+    virtual wxObject* Clone() const { return new MyComboBoxValidator(*this); }
+
+    // Called to transfer data to the window
+    virtual bool TransferToWindow();
+
+    // Called to transfer data from the window
+    virtual bool TransferFromWindow();
+
+protected:
+    wxString* m_var;
+};
+
+enum
+{
     VALIDATE_DIALOG_ID = wxID_HIGHEST,
 
     VALIDATE_TEST_DIALOG,