// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(__APPLE__)
-# pragma interface
-#endif
-
#include "wx/app.h"
#include "wx/combobox.h"
#include "wx/dialog.h"
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;
+ wxString m_string, m_string2;
+
// 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;
};
-#define VALIDATE_DIALOG_ID 200
+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();
-#define VALIDATE_TEST_DIALOG 2
-#define VALIDATE_TOGGLE_BELL 3
+protected:
+ wxString* m_var;
+};
+
+enum
+{
+ VALIDATE_DIALOG_ID = wxID_HIGHEST,
-#define VALIDATE_TEXT 101
-#define VALIDATE_LIST 102
-#define VALIDATE_CHECK 103
-#define VALIDATE_COMBO 105
-#define VALIDATE_RADIO 106
+ VALIDATE_TEST_DIALOG,
+ VALIDATE_TOGGLE_BELL,
+ VALIDATE_TEXT,
+ VALIDATE_TEXT2,
+ VALIDATE_LIST,
+ VALIDATE_CHECK,
+ VALIDATE_COMBO,
+ VALIDATE_RADIO
+};