]> git.saurik.com Git - wxWidgets.git/blame - samples/validate/validate.h
Make wxMSW wxSpinCtrl "not enough space" messages more helpful.
[wxWidgets.git] / samples / validate / validate.h
CommitLineData
457814b5
JS
1/////////////////////////////////////////////////////////////////////////////
2// Name: validate.h
be5a51fb 3// Purpose: wxWidgets validation sample
457814b5
JS
4// Author: Julian Smart
5// Modified by:
6// Created: 04/01/98
7// RCS-ID: $Id$
6aa89a22 8// Copyright: (c) Julian Smart
526954c5 9// Licence: wxWindows licence
457814b5
JS
10/////////////////////////////////////////////////////////////////////////////
11
2b61c41b
VZ
12#include "wx/app.h"
13#include "wx/combobox.h"
14#include "wx/dialog.h"
15#include "wx/dynarray.h"
16#include "wx/frame.h"
17#include "wx/listbox.h"
18#include "wx/string.h"
19
457814b5 20// Define a new application type
a994f81b
VZ
21class MyApp : public wxApp
22{
23public:
24 bool OnInit();
457814b5
JS
25};
26
27// Define a new frame type
a994f81b
VZ
28class MyFrame : public wxFrame
29{
30public:
7df07b10 31 MyFrame(wxFrame *frame, const wxString&title, int x, int y, int w, int h);
a994f81b 32
457814b5
JS
33 void OnQuit(wxCommandEvent& event);
34 void OnTestDialog(wxCommandEvent& event);
2b61c41b
VZ
35 void OnToggleBell(wxCommandEvent& event);
36
37private:
38 wxListBox *m_listbox;
39 bool m_silent;
457814b5 40
a994f81b 41 DECLARE_EVENT_TABLE()
457814b5
JS
42};
43
a994f81b 44class MyDialog : public wxDialog
457814b5
JS
45{
46public:
2b61c41b
VZ
47 MyDialog(wxWindow *parent, const wxString& title,
48 const wxPoint& pos = wxDefaultPosition,
49 const wxSize& size = wxDefaultSize,
a994f81b 50 const long style = wxDEFAULT_DIALOG_STYLE);
2e7a6b03 51
2b61c41b 52 bool TransferDataToWindow();
2e7a6b03
FM
53 wxTextCtrl *m_text;
54 wxComboBox *m_combobox;
a54cf371
VZ
55
56 wxTextCtrl *m_numericTextInt;
57 wxTextCtrl *m_numericTextDouble;
457814b5
JS
58};
59
60class MyData
61{
a994f81b 62public:
2b61c41b 63 MyData();
2e7a6b03 64
2b61c41b
VZ
65 // These data members are designed for transfer to and from
66 // controls, via validators. For instance, a text control's
67 // transferred value is a string:
fcd209b6 68 wxString m_string, m_string2;
2e7a6b03 69
2b61c41b
VZ
70 // Listboxes may permit multiple selections, so their state
71 // is transferred to an integer-array class.
72 wxArrayInt m_listbox_choices;
2e7a6b03 73
2b61c41b
VZ
74 // Comboboxes differ from listboxes--validators transfer
75 // the string entered in the combobox's text-edit field.
76 wxString m_combobox_choice;
2e7a6b03 77
a54cf371
VZ
78 // variables handled by wxNumericTextValidator
79 int m_intValue;
80 double m_doubleValue;
81
2e7a6b03 82 bool m_checkbox_state;
2b61c41b 83 int m_radiobox_choice;
457814b5
JS
84};
85
2e7a6b03
FM
86class MyComboBoxValidator : public wxValidator
87{
88public:
89 MyComboBoxValidator(const MyComboBoxValidator& tocopy) { m_var=tocopy.m_var; }
90 MyComboBoxValidator(wxString* var) { m_var=var; }
91
92 virtual bool Validate(wxWindow* parent);
93 virtual wxObject* Clone() const { return new MyComboBoxValidator(*this); }
94
95 // Called to transfer data to the window
96 virtual bool TransferToWindow();
97
98 // Called to transfer data from the window
99 virtual bool TransferFromWindow();
100
101protected:
102 wxString* m_var;
103};
104
105enum
106{
0bcd4039 107 VALIDATE_DIALOG_ID = wxID_HIGHEST,
457814b5 108
0bcd4039
WS
109 VALIDATE_TEST_DIALOG,
110 VALIDATE_TOGGLE_BELL,
457814b5 111
0bcd4039 112 VALIDATE_TEXT,
fcd209b6 113 VALIDATE_TEXT2,
0bcd4039
WS
114 VALIDATE_LIST,
115 VALIDATE_CHECK,
116 VALIDATE_COMBO,
117 VALIDATE_RADIO
118};