wxWidgets/samples/validate/validate.h

117 lines
2.8 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: validate.h
// Purpose: wxWidgets validation sample
// Author: Julian Smart
// Modified by:
// Created: 04/01/98
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/app.h"
#include "wx/combobox.h"
#include "wx/dialog.h"
#include "wx/dynarray.h"
#include "wx/frame.h"
#include "wx/listbox.h"
#include "wx/string.h"
// Define a new application type
class MyApp : public wxApp
{
public:
bool OnInit() wxOVERRIDE;
};
// Define a new frame type
class MyFrame : public wxFrame
{
public:
MyFrame(wxFrame *frame, const wxString&title, int x, int y, int w, int h);
void OnQuit(wxCommandEvent& event);
void OnTestDialog(wxCommandEvent& event);
void OnToggleBell(wxCommandEvent& event);
private:
wxListBox *m_listbox;
bool m_silent;
wxDECLARE_EVENT_TABLE();
};
class MyDialog : public wxDialog
{
public:
MyDialog(wxWindow *parent, const wxString& title,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
const long style = wxDEFAULT_DIALOG_STYLE);
bool TransferDataToWindow() wxOVERRIDE;
wxTextCtrl *m_text;
wxComboBox *m_combobox;
wxTextCtrl *m_numericTextInt;
wxTextCtrl *m_numericTextDouble;
};
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, m_string2;
// Listboxes may permit multiple selections, so their state
// is transferred to an integer-array class.
wxArrayInt m_listbox_choices;
// Comboboxes differ from listboxes--validators transfer
// the string entered in the combobox's text-edit field.
wxString m_combobox_choice;
// variables handled by wxNumericTextValidator
int m_intValue;
double m_doubleValue;
bool m_checkbox_state;
int m_radiobox_choice;
};
class MyComboBoxValidator : public wxValidator
{
public:
MyComboBoxValidator(wxString* var) { m_var=var; }
virtual bool Validate(wxWindow* parent) wxOVERRIDE;
virtual wxObject* Clone() const wxOVERRIDE { return new MyComboBoxValidator(*this); }
// Called to transfer data to the window
virtual bool TransferToWindow() wxOVERRIDE;
// Called to transfer data from the window
virtual bool TransferFromWindow() wxOVERRIDE;
protected:
wxString* m_var;
};
enum
{
VALIDATE_DIALOG_ID = wxID_HIGHEST,
VALIDATE_TEST_DIALOG,
VALIDATE_TOGGLE_BELL,
VALIDATE_TEXT,
VALIDATE_TEXT2,
VALIDATE_LIST,
VALIDATE_CHECK,
VALIDATE_COMBO,
VALIDATE_RADIO
};