]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/tvalidat.tex
added and documented wxKeyEvent::GetUnicodeKey(); made it work for MSW; added test...
[wxWidgets.git] / docs / latex / wx / tvalidat.tex
index 2709a704c69549f5cab34689c6f25706021fc7c4..93105606a59b76f5b71f455bc425fad8212fb7a9 100644 (file)
@@ -1,6 +1,7 @@
-\section{Validator overview}\label{validatoroverview}
+\section{wxValidator overview}\label{validatoroverview}
 
-Classes: \helpref{wxValidator}{wxvalidator}, \helpref{wxTextValidator}{wxtextvalidator}
+Classes: \helpref{wxValidator}{wxvalidator}, \helpref{wxTextValidator}{wxtextvalidator}, 
+\helpref{wxGenericValidator}{wxgenericvalidator}
 
 The aim of the validator concept is to make dialogs very much easier to write.
 A validator is an object that can be plugged into a control (such as a wxTextCtrl), and
@@ -8,15 +9,17 @@ mediates between C++ data and the control, transferring the data in either direc
 and validating it. It also is able to intercept events generated
 by the control, providing filtering behaviour without the need to derive a new control class.
 
-You can use a stock validator, such as \helpref{wxTextValidator}{wxtextvalidator}; or
-you can write your own.
+You can use a stock validator, such as \helpref{wxTextValidator}{wxtextvalidator} (which does text
+control data transfer, validation and filtering) and 
+\helpref{wxGenericValidator}{wxgenericvalidator} (which does data transfer for a range of controls);
+or you can write your own.
 
 \wxheading{Example}
 
 Here is an example of wxTextValidator usage.
 
 \begin{verbatim}
-  wxTextCtrl *txt1 = new wxTextCtrl(this, VALIDATE_TEXT, "",
+  wxTextCtrl *txt1 = new wxTextCtrl(this, -1, wxT(""),
     wxPoint(10, 10), wxSize(100, 80), 0,
     wxTextValidator(wxFILTER_ALPHA, &g_data.m_string));
 \end{verbatim}
@@ -47,7 +50,7 @@ data for the control. If such a variable address is not supplied by the user, th
 the validator should store the data internally.
 
 The \helpref{wxValidator::Validate}{wxvalidatorvalidate} member function should return
-TRUE if the data in the control (not the C++ variable) is valid. It should also show
+true if the data in the control (not the C++ variable) is valid. It should also show
 an appropriate message if data was not valid.
 
 The \helpref{wxValidator::TransferToWindow}{wxvalidatortransfertowindow} member function should
@@ -63,7 +66,7 @@ are passed by reference to window constructors, and must therefore be cloned int
 You can optionally define event handlers for the validator, to implement filtering. These handlers
 will capture events before the control itself does.
 
-For an example implementation, see the valtext.h and valtext.cpp files in the wxWindows library.
+For an example implementation, see the valtext.h and valtext.cpp files in the wxWidgets library.
 
 \wxheading{How validators interact with dialogs}
 
@@ -85,7 +88,7 @@ call \helpref{wxWindow::InitDialog}{wxwindowinitdialog} explicitly before showin
 window.}
 
 When the user clicks on a button, for example the OK button, the application should
-first call \helpref{wxWindow::Validate}{wxwindowvalidate}, which returns FALSE if
+first call \helpref{wxWindow::Validate}{wxwindowvalidate}, which returns false if
 any of the child window validators failed to validate the window data. The button handler
 should return immediately if validation failed. Secondly, the application should
 call \helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow} and
@@ -98,19 +101,22 @@ this:
 \begin{verbatim}
 void wxDialog::OnOK(wxCommandEvent& event)
 {
-       if ( Validate() && TransferDataFromWindow() )
-       {
+    if ( Validate() && TransferDataFromWindow() )
+    {
         if ( IsModal() )
             EndModal(wxID_OK);
         else
         {
-                   SetReturnCode(wxID_OK);
-                   this->Show(FALSE);
+            SetReturnCode(wxID_OK);
+            this->Show(false);
         }
-       }
+    }
 }
 \end{verbatim}
 
 So if using validators and a normal OK button, you may not even need to write any
 code for handling dialog dismissal.
 
+If you load your dialog from a resource file, you will need to iterate through the controls
+setting validators, since validators can't be specified in a dialog resource.
+