]> git.saurik.com Git - wxWidgets.git/commitdiff
change wxTextValidator to use wxArrayString instead of wxStringList
authorRyan Norton <wxprojects@comcast.net>
Mon, 7 Feb 2005 23:46:42 +0000 (23:46 +0000)
committerRyan Norton <wxprojects@comcast.net>
Mon, 7 Feb 2005 23:46:42 +0000 (23:46 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/valtext.tex
include/wx/valtext.h
src/common/valtext.cpp

index 18deafa423742ca4ed14c6dcbfcbb768fa98b255..7a7d53a83d09465e4a6e1e7c96c8040ef633127b 100644 (file)
@@ -44,16 +44,16 @@ Constructor, taking a style and optional pointer to a wxString variable.
 \twocolitem{{\bf wxFILTER\_NUMERIC}}{Non-numeric characters are filtered out.}
 \twocolitem{{\bf wxFILTER\_INCLUDE\_LIST}}{Use an include list. The validator
 checks if the user input is on the list, complaining if not. See 
 \twocolitem{{\bf wxFILTER\_NUMERIC}}{Non-numeric characters are filtered out.}
 \twocolitem{{\bf wxFILTER\_INCLUDE\_LIST}}{Use an include list. The validator
 checks if the user input is on the list, complaining if not. See 
-\helpref{wxTextValidator::SetIncludeList}{wxtextvalidatorsetincludelist}.}
+\helpref{wxTextValidator::SetIncludes}{wxtextvalidatorsetincludes}.}
 \twocolitem{{\bf wxFILTER\_EXCLUDE\_LIST}}{Use an exclude list. The validator
 checks if the user input is on the list, complaining if it is. See 
 \twocolitem{{\bf wxFILTER\_EXCLUDE\_LIST}}{Use an exclude list. The validator
 checks if the user input is on the list, complaining if it is. See 
-\helpref{wxTextValidator::SetExcludeList}{wxtextvalidatorsetexcludelist}.}
+\helpref{wxTextValidator::SetExcludes}{wxtextvalidatorsetexcludes}.}
 \twocolitem{{\bf wxFILTER\_INCLUDE\_CHAR\_LIST}}{Use an include list. The validator
 checks if each input character is in the list (one character per list element), complaining if not.
 \twocolitem{{\bf wxFILTER\_INCLUDE\_CHAR\_LIST}}{Use an include list. The validator
 checks if each input character is in the list (one character per list element), complaining if not.
-See \helpref{wxTextValidator::SetIncludeList}{wxtextvalidatorsetincludelist}.}
+See \helpref{wxTextValidator::SetIncludes}{wxtextvalidatorsetincludes}.}
 \twocolitem{{\bf wxFILTER\_EXCLUDE\_CHAR\_LIST}}{Use an include list. The validator
 checks if each input character is in the list (one character per list element), complaining if it is.
 \twocolitem{{\bf wxFILTER\_EXCLUDE\_CHAR\_LIST}}{Use an include list. The validator
 checks if each input character is in the list (one character per list element), complaining if it is.
-See \helpref{wxTextValidator::SetExcludeList}{wxtextvalidatorsetexcludelist}.}
+See \helpref{wxTextValidator::SetExcludes}{wxtextvalidatorsetexcludes}.}
 \end{twocollist}
 }
 
 \end{twocollist}
 }
 
@@ -62,27 +62,21 @@ should have a lifetime equal to or longer than the validator lifetime (which is
 determined by the lifetime of the window). % If NULL, the validator uses its own internal storage for the value. NOT true
 }
 
 determined by the lifetime of the window). % If NULL, the validator uses its own internal storage for the value. NOT true
 }
 
-\membersection{wxTextValidator::\destruct{wxTextValidator}}\label{wxtextvalidatordtor}
-
-\func{}{\destruct{wxTextValidator}}{\void}
-
-Destructor.
-
 \membersection{wxTextValidator::Clone}\label{wxtextvalidatorclone}
 
 \constfunc{virtual wxValidator*}{Clone}{\void}
 
 Clones the text validator using the copy constructor.
 
 \membersection{wxTextValidator::Clone}\label{wxtextvalidatorclone}
 
 \constfunc{virtual wxValidator*}{Clone}{\void}
 
 Clones the text validator using the copy constructor.
 
-\membersection{wxTextValidator::GetExcludeList}\label{wxtextvalidatorgetexcludelist}
+\membersection{wxTextValidator::GetExcludes}\label{wxtextvalidatorgetexcludes}
 
 
-\constfunc{wxStringList\&}{GetExcludeList}{\void}
+\constfunc{wxArrayString\&}{GetExcludes}{\void}
 
 Returns a reference to the exclude list (the list of invalid values).
 
 
 Returns a reference to the exclude list (the list of invalid values).
 
-\membersection{wxTextValidator::GetIncludeList}\label{wxtextvalidatorgetincludelist}
+\membersection{wxTextValidator::GetIncludes}\label{wxtextvalidatorgetincludes}
 
 
-\constfunc{wxStringList\&}{GetIncludeList}{\void}
+\constfunc{wxArrayString\&}{GetIncludes}{\void}
 
 Returns a reference to the include list (the list of valid values).
 
 
 Returns a reference to the include list (the list of valid values).
 
@@ -99,15 +93,15 @@ Returns the validator style.
 Receives character input from the window and filters it according to the
 current validator style.
 
 Receives character input from the window and filters it according to the
 current validator style.
 
-\membersection{wxTextValidator::SetExcludeList}\label{wxtextvalidatorsetexcludelist}
+\membersection{wxTextValidator::SetExcludes}\label{wxtextvalidatorsetexcludes}
 
 
-\func{void}{SetExcludeList}{\param{const wxStringList\&}{ stringList}}
+\func{void}{SetExcludes}{\param{const wxArrayString\&}{ stringList}}
 
 Sets the exclude list (invalid values for the user input).
 
 
 Sets the exclude list (invalid values for the user input).
 
-\membersection{wxTextValidator::SetIncludeList}\label{wxtextvalidatorsetincludelist}
+\membersection{wxTextValidator::SetIncludes}\label{wxtextvalidatorsetincludes}
 
 
-\func{void}{SetIncludeList}{\param{const wxStringList\&}{ stringList}}
+\func{void}{SetIncludes}{\param{const wxArrayString\&}{ stringList}}
 
 Sets the include list (valid values for the user input).
 
 
 Sets the include list (valid values for the user input).
 
index 84afe2601e2178ba28a89f690a221e4a4ae248fa..0a047e199a9a364e975979530a3e34f9cc172f17 100644 (file)
@@ -64,25 +64,41 @@ public:
     inline long GetStyle() const { return m_validatorStyle; }
     inline void SetStyle(long style) { m_validatorStyle = style; }
 
     inline long GetStyle() const { return m_validatorStyle; }
     inline void SetStyle(long style) { m_validatorStyle = style; }
 
-    void SetIncludeList(const wxStringList& list);
-    inline wxStringList& GetIncludeList() { return m_includeList; }
+#if WXWIN_COMPATIBILITY_2_4
+    wxDEPRECATED( void SetIncludeList(const wxStringList& list) );
+    wxDEPRECATED( inline wxStringList& GetIncludeList() );
 
 
-    void SetExcludeList(const wxStringList& list);
-    inline wxStringList& GetExcludeList() { return m_excludeList; }
+    wxDEPRECATED( void SetExcludeList(const wxStringList& list) );
+    wxDEPRECATED( inline wxStringList& GetExcludeList() );
+
+    wxDEPRECATED( bool IsInCharIncludeList(const wxString& val) );
+    wxDEPRECATED( bool IsNotInCharExcludeList(const wxString& val) );
+#endif
+
+    void SetIncludes(const wxArrayString& includes) { m_includes = includes; }
+    inline wxArrayString& GetIncludes() { return m_includes; }
+
+    void SetExcludes(const wxArrayString& excludes) { m_excludes = excludes; }
+    inline wxArrayString& GetExcludes() { return m_excludes; }
+
+    bool IsInCharIncludes(const wxString& val);
+    bool IsNotInCharExcludes(const wxString& val);
 
     // Filter keystrokes
     void OnChar(wxKeyEvent& event);
 
 
     // Filter keystrokes
     void OnChar(wxKeyEvent& event);
 
-    bool IsInCharIncludeList(const wxString& val);
-    bool IsNotInCharExcludeList(const wxString& val);
 
 DECLARE_EVENT_TABLE()
 
 protected:
     long            m_validatorStyle;
     wxString *      m_stringValue;
 
 DECLARE_EVENT_TABLE()
 
 protected:
     long            m_validatorStyle;
     wxString *      m_stringValue;
+#if WXWIN_COMPATIBILITY_2_4
     wxStringList    m_includeList;
     wxStringList    m_excludeList;
     wxStringList    m_includeList;
     wxStringList    m_excludeList;
+#endif
+    wxArrayString   m_includes;
+    wxArrayString   m_excludes;
 
     bool CheckValidator() const
     {
 
     bool CheckValidator() const
     {
index bd3d8a0c7524ace20e0c2f1129206a7ffbd51fe2..86211d84348ee9359e9680f674f7e522f32fcbbf 100644 (file)
@@ -73,8 +73,8 @@ bool wxTextValidator::Copy(const wxTextValidator& val)
     m_validatorStyle = val.m_validatorStyle;
     m_stringValue = val.m_stringValue;
 
     m_validatorStyle = val.m_validatorStyle;
     m_stringValue = val.m_stringValue;
 
-    m_includeList = val.m_includeList;
-    m_excludeList = val.m_excludeList;
+    m_includes    = val.m_includes;
+    m_excludes    = val.m_excludes;
 
     return true;
 }
 
     return true;
 }
@@ -121,12 +121,12 @@ bool wxTextValidator::Validate(wxWindow *parent)
     // NB: this format string should contian exactly one '%s'
     wxString errormsg;
 
     // NB: this format string should contian exactly one '%s'
     wxString errormsg;
 
-    bool includeList = (m_validatorStyle & wxFILTER_INCLUDE_LIST) != 0;
-    if ( includeList || (m_validatorStyle & wxFILTER_EXCLUDE_LIST) )
+    bool includes = (m_validatorStyle & wxFILTER_INCLUDE_LIST) != 0;
+    if ( includes || (m_validatorStyle & wxFILTER_EXCLUDE_LIST) )
     {
     {
-        // if includeList, it's only ok to have the members of the list,
+        // if includes, it's only ok to have the members of the list,
         // otherwise it's only ok to have non-members
         // otherwise it's only ok to have non-members
-        ok = includeList == m_includeList.Member(val);
+        ok = includes == (m_includes.Index(val) != wxNOT_FOUND);
         if ( !ok )
         {
             errormsg = _("'%s' is invalid");
         if ( !ok )
         {
             errormsg = _("'%s' is invalid");
@@ -156,13 +156,13 @@ bool wxTextValidator::Validate(wxWindow *parent)
 
         errormsg = _("'%s' should be numeric.");
     }
 
         errormsg = _("'%s' should be numeric.");
     }
-    else if ( (m_validatorStyle & wxFILTER_INCLUDE_CHAR_LIST) && !IsInCharIncludeList(val))
+    else if ( (m_validatorStyle & wxFILTER_INCLUDE_CHAR_LIST) && !IsInCharIncludes(val))
     {
         //it's only ok to have the members of the list
         errormsg = _("'%s' is invalid");
         ok = false;
     }
     {
         //it's only ok to have the members of the list
         errormsg = _("'%s' is invalid");
         ok = false;
     }
-    else if ( (m_validatorStyle & wxFILTER_EXCLUDE_CHAR_LIST) && !IsNotInCharExcludeList(val))
+    else if ( (m_validatorStyle & wxFILTER_EXCLUDE_CHAR_LIST) && !IsNotInCharExcludes(val))
     {
         // it's only ok to have non-members of the list
         errormsg = _("'%s' is invalid");
     {
         // it's only ok to have non-members of the list
         errormsg = _("'%s' is invalid");
@@ -215,14 +215,79 @@ bool wxTextValidator::TransferFromWindow(void)
     return true;
 }
 
     return true;
 }
 
+#if WXWIN_COMPATIBILITY_2_4
+
+inline void wxCopyStringListToArrayString(wxArrayString& to, const wxStringList& from)
+{
+    to.Clear();
+
+    for(wxStringList::Node* pNode = from.GetFirst(); pNode; pNode = pNode->GetNext())
+        to.Add(pNode->GetData());
+}
+
+inline void wxCopyArrayStringToStringList(wxStringList& to, const wxArrayString& from)
+{
+    to.Clear();
+
+    for(size_t i = 0; i < from.GetCount(); ++i)
+        to.Add(from[i]);
+}
+
+wxStringList& wxTextValidator::GetIncludeList()
+{
+    wxCopyArrayStringToStringList(m_includeList, m_includes);
+    return m_includeList;
+}
+
+wxStringList& wxTextValidator::GetExcludeList()
+{
+    wxCopyArrayStringToStringList(m_excludeList, m_excludes);
+    return m_excludeList;
+}
+
 void wxTextValidator::SetIncludeList(const wxStringList& list)
 {
 void wxTextValidator::SetIncludeList(const wxStringList& list)
 {
-    m_includeList = list;
+    wxCopyStringListToArrayString(m_includes, list);
 }
 
 void wxTextValidator::SetExcludeList(const wxStringList& list)
 {
 }
 
 void wxTextValidator::SetExcludeList(const wxStringList& list)
 {
-    m_excludeList = list;
+    wxCopyStringListToArrayString(m_excludes, list);
+}
+
+bool wxTextValidator::IsInCharIncludeList(const wxString& val)
+{
+    return IsInCharIncludes(val);
+}
+
+bool wxTextValidator::IsNotInCharExcludeList(const wxString& val)
+{
+    return IsNotInCharExcludes(val);
+}
+
+#endif //compat 2.4
+
+
+bool wxTextValidator::IsInCharIncludes(const wxString& val)
+{
+    size_t i;
+    for ( i = 0; i < val.Length(); i++)
+    {
+        if (m_includes.Index((wxString) val[i]) == wxNOT_FOUND)
+            return false;
+    }
+    return true;
+}
+
+bool wxTextValidator::IsNotInCharExcludes(const wxString& val)
+{
+    size_t i;
+    for ( i = 0; i < val.Length(); i++)
+    {
+       if (m_excludes.Index((wxString) val[i]) != wxNOT_FOUND)
+            return false;
+    }
+    return true;
 }
 
 void wxTextValidator::OnChar(wxKeyEvent& event)
 }
 
 void wxTextValidator::OnChar(wxKeyEvent& event)
@@ -240,8 +305,8 @@ void wxTextValidator::OnChar(wxKeyEvent& event)
         if (
              !(keyCode < WXK_SPACE || keyCode == WXK_DELETE || keyCode > WXK_START) &&
              (
         if (
              !(keyCode < WXK_SPACE || keyCode == WXK_DELETE || keyCode > WXK_START) &&
              (
-              ((m_validatorStyle & wxFILTER_INCLUDE_CHAR_LIST) && !IsInCharIncludeList(wxString((wxChar) keyCode, 1))) ||
-              ((m_validatorStyle & wxFILTER_EXCLUDE_CHAR_LIST) && !IsNotInCharExcludeList(wxString((wxChar) keyCode, 1))) ||
+              ((m_validatorStyle & wxFILTER_INCLUDE_CHAR_LIST) && !IsInCharIncludes(wxString((wxChar) keyCode, 1))) ||
+              ((m_validatorStyle & wxFILTER_EXCLUDE_CHAR_LIST) && !IsNotInCharExcludes(wxString((wxChar) keyCode, 1))) ||
               ((m_validatorStyle & wxFILTER_ASCII) && !isascii(keyCode)) ||
               ((m_validatorStyle & wxFILTER_ALPHA) && !wxIsalpha(keyCode)) ||
               ((m_validatorStyle & wxFILTER_ALPHANUMERIC) && !wxIsalnum(keyCode)) ||
               ((m_validatorStyle & wxFILTER_ASCII) && !isascii(keyCode)) ||
               ((m_validatorStyle & wxFILTER_ALPHA) && !wxIsalpha(keyCode)) ||
               ((m_validatorStyle & wxFILTER_ALPHANUMERIC) && !wxIsalnum(keyCode)) ||
@@ -274,27 +339,6 @@ static bool wxIsNumeric(const wxString& val)
     return true;
 }
 
     return true;
 }
 
-bool wxTextValidator::IsInCharIncludeList(const wxString& val)
-{
-    size_t i;
-    for ( i = 0; i < val.Length(); i++)
-    {
-        if (!m_includeList.Member((wxString) val[i]))
-            return false;
-    }
-    return true;
-}
-
-bool wxTextValidator::IsNotInCharExcludeList(const wxString& val)
-{
-    size_t i;
-    for ( i = 0; i < val.Length(); i++)
-    {
-       if (m_excludeList.Member((wxString) val[i]))
-       return false;
-    }
-    return true;
-}
 
 #endif
   // wxUSE_VALIDATORS && wxUSE_TEXTCTRL
 
 #endif
   // wxUSE_VALIDATORS && wxUSE_TEXTCTRL