]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxTextCtrl::IsEmpty()
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 8 Oct 2006 17:52:39 +0000 (17:52 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 8 Oct 2006 17:52:39 +0000 (17:52 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
include/wx/gtk/textctrl.h
include/wx/msw/textctrl.h
include/wx/textctrl.h
src/gtk/textctrl.cpp
src/msw/textctrl.cpp

index 856405f603761ac00662a7d777661a9213854e62..8637c9deee2e71a16f3f630803f5827456e02fe5 100644 (file)
@@ -69,6 +69,7 @@ All (GUI):
 - Added wxAboutBox() function for displaying the standard about dialog
 - Added wxID_PAGE_SETUP standard id.
 - Added wxSize::IncBy() and DecBy() methods.
+- Added wxTextCtrl::IsEmpty()
 - Added file type parameter to wxTextCtrl::LoadFile, wxTextCtrl::SaveFile for
   consistency with wxRichTextCtrl.
 - wxRichTextCtrl: fixed range out-by-one bug to be consistent with wxTextCtrl API,
index 8cde769c6b4a49b6c6abbf803c0f2cd25bd43467..017116609f8a3e85057132d63bc880e53913b6ee 100644 (file)
@@ -43,9 +43,9 @@ public:
     // ----------------------------------
 
     virtual wxString GetValue() const;
+    virtual bool IsEmpty() const;
     virtual void SetValue(const wxString& value) { DoSetValue(value, SetValue_SendEvent); }
-
-    virtual void ChangeValue(const wxString &value) { DoSetValue(value); }
+    virtual void ChangeValue(const wxString& value) { DoSetValue(value); }
 
     virtual int GetLineLength(long lineNo) const;
     virtual wxString GetLineText(long lineNo) const;
index dee8fd0bbe4b24ad4f55e24136a08cc78289abc4..8649f1491e05f20879c628026cd48a9e6e59ec21 100644 (file)
@@ -45,8 +45,9 @@ public:
     // ----------------------------------
 
     virtual wxString GetValue() const;
+    virtual bool IsEmpty() const;
     virtual void SetValue(const wxString& value) { DoSetValue(value, SetValue_SendEvent); }
-    virtual void ChangeValue(const wxString &value) { DoSetValue(value); }
+    virtual void ChangeValue(const wxStringvalue) { DoSetValue(value); }
 
     virtual wxString GetRange(long from, long to) const;
 
index 172301b6adeadfbe66a3159e54143977421588c3..39908a03bf3fb287002d3d9d7f9a8bff5e8f31ad 100644 (file)
@@ -300,6 +300,8 @@ public:
     virtual wxString GetValue() const = 0;
     virtual void SetValue(const wxString& value) = 0;
 
+    virtual bool IsEmpty() const { return GetValue().empty(); }
+
     virtual void ChangeValue(const wxString &value) = 0;
 
     virtual wxString GetRange(long from, long to) const;
index f10fd64e01a96af2e971b5251ed13c71f94f538b..cf14bf7797c23fe43825ff76cc3b1aafdde83425 100644 (file)
@@ -821,6 +821,14 @@ wxFontEncoding wxTextCtrl::GetTextEncoding() const
     return enc;
 }
 
+bool wxTextCtrl::IsEmpty() const
+{
+    if ( IsMultiLine() )
+        return gtk_text_buffer_get_char_count(m_buffer) != 0;
+
+    return wxTextCtrlBase::IsEmpty();
+}
+
 void wxTextCtrl::DoSetValue( const wxString &value, int flags )
 {
     wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
index a71654a1ecf4c42e3334deab5fa793d7410b8dad..53ec9740c7dcd70f1e2ebb391ebbdb78a5897ff3 100644 (file)
@@ -662,6 +662,15 @@ void wxTextCtrl::SetWindowStyleFlag(long style)
 // set/get the controls text
 // ----------------------------------------------------------------------------
 
+bool wxTextCtrl::IsEmpty() const
+{
+    // this is an optimization for multiline controls containing a lot of text
+    if ( IsMultiLine() && GetNumberOfLines() != 1 )
+        return false;
+
+    return wxTextCtrlBase::IsEmpty();
+}
+
 wxString wxTextCtrl::GetValue() const
 {
     // range 0..-1 is special for GetRange() and means to retrieve all text