]> git.saurik.com Git - wxWidgets.git/commitdiff
adapting TextUpdateEvents, using wxTextEntry API
authorStefan Csomor <csomor@advancedconcepts.ch>
Tue, 14 Apr 2009 20:09:39 +0000 (20:09 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Tue, 14 Apr 2009 20:09:39 +0000 (20:09 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/osx/combobox.h
include/wx/osx/textctrl.h
src/osx/carbon/combobox.cpp
src/osx/textctrl_osx.cpp

index 9f9602903c9d2ce7d1c1bd76259bb1140942d8f3..92ff947afe010df40082324195271728f585b1ef 100644 (file)
@@ -158,6 +158,8 @@ protected:
 
     virtual void SetClientDataType(wxClientDataType clientDataItemsType);
 
+    virtual void EnableTextChangedEvents(bool enable);
+
     // the subcontrols
     wxComboBoxText*     m_text;
     wxComboBoxChoice*   m_choice;
index 749220e843245e4982a7308a83b421cf80ef8614..569227838349d4ea3f0865fe6c7ea744adaa5e49 100644 (file)
@@ -79,7 +79,6 @@ public:
 
     // editing
     virtual void Clear();
-    virtual void Replace(long from, long to, const wxString& value);
     virtual void Remove(long from, long to);
 
     // sets/clears the dirty flag
@@ -100,7 +99,6 @@ public:
     // writing text inserts it at the current position;
     // appending always inserts it at the end
     virtual void WriteText(const wxString& text);
-    virtual void AppendText(const wxString& text);
 
     // translate between the position (which is just an index into the textctrl
     // considering all its contents as a single strings) and (x, y) coordinates
@@ -176,7 +174,6 @@ protected:
 
     virtual wxSize DoGetBestSize() const;
 
-    virtual void DoSetValue(const wxString& value, int flags = 0);
     virtual wxString DoGetValue() const;
 
     bool  m_editable;
@@ -187,17 +184,12 @@ protected:
   // need to make this public because of the current implementation via callbacks
     unsigned long  m_maxLength;
 
-    bool GetTriggerOnSetValue() const
-    {
-        return m_triggerOnSetValue;
+    virtual void EnableTextChangedEvents(bool enable)
+    { 
+        m_triggerUpdateEvents = enable;
     }
-
-    void SetTriggerOnSetValue(bool trigger)
-    {
-        m_triggerOnSetValue = trigger;
-    }
-
-    bool m_triggerOnSetValue ;
+    
+    bool m_triggerUpdateEvents ;
 
 private :
   wxMenu  *m_privateContextMenu;
index 53b729485e8be4e7274973a2f6856ccc49ca0ef6..79564de842a115a100021dd0784117ceb5f717a0 100644 (file)
@@ -57,9 +57,12 @@ public:
         : wxTextCtrl( cb , 1 )
     {
         m_cb = cb;
-        SetTriggerOnSetValue( false );
     }
 
+    void ForwardEnableTextChangedEvents(bool enable)
+    {
+        EnableTextChangedEvents(enable);
+    }
 protected:
     void OnChar( wxKeyEvent& event )
     {
@@ -147,6 +150,7 @@ protected:
 
         event.Skip();
     }
+    
 private:
     wxComboBox *m_cb;
 
@@ -394,6 +398,12 @@ bool wxComboBox::Create(wxWindow *parent,
     return true;
 }
 
+void wxComboBox::EnableTextChangedEvents(bool enable)
+{ 
+    if ( m_text )
+        m_text->ForwardEnableTextChangedEvents(enable);
+}
+
 wxString wxComboBox::DoGetValue() const
 {
     wxCHECK_MSG( m_text, wxString(), "can't be called for read-only combobox" );
index cc5ac72d189f85c754627fef4fed97e02b395435..1059c4b6c676e09581150e2882afc3b70deaa3af 100644 (file)
@@ -80,7 +80,7 @@ void wxTextCtrl::Init()
 
     m_maxLength = 0;
     m_privateContextMenu = NULL;
-    m_triggerOnSetValue = true ;
+    m_triggerUpdateEvents = true ;
 }
 
 wxTextCtrl::~wxTextCtrl()
@@ -167,20 +167,6 @@ void wxTextCtrl::GetSelection(long* from, long* to) const
     GetTextPeer()->GetSelection( from , to ) ;
 }
 
-void wxTextCtrl::DoSetValue(const wxString& str, int flags)
-{
-    // optimize redraws
-    if ( GetValue() == str )
-        return;
-
-    GetTextPeer()->SetStringValue( str ) ;
-
-    if ( (flags & SetValue_SendEvent) && m_triggerOnSetValue )
-    {
-        SendTextUpdatedEvent();
-    }
-}
-
 void wxTextCtrl::SetMaxLength(unsigned long len)
 {
     m_maxLength = len ;
@@ -225,10 +211,8 @@ void wxTextCtrl::Cut()
     {
         GetTextPeer()->Cut() ;
 
-        wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, m_windowId );
-        event.SetEventObject( this );
-        HandleWindowEvent( event );
-      }
+        SendTextUpdatedEvent();
+    }
 }
 
 void wxTextCtrl::Paste()
@@ -238,10 +222,7 @@ void wxTextCtrl::Paste()
         GetTextPeer()->Paste() ;
 
         // TODO: eventually we should add setting the default style again
-
-        wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, m_windowId );
-        event.SetEventObject( this );
-        HandleWindowEvent( event );
+        SendTextUpdatedEvent();
     }
 }
 
@@ -307,14 +288,11 @@ wxTextPos wxTextCtrl::GetLastPosition() const
     return GetTextPeer()->GetLastPosition() ;
 }
 
-void wxTextCtrl::Replace(long from, long to, const wxString& str)
-{
-    GetTextPeer()->Replace( from , to , str ) ;
-}
-
 void wxTextCtrl::Remove(long from, long to)
 {
     GetTextPeer()->Remove( from , to ) ;
+    if ( m_triggerUpdateEvents )
+        SendTextUpdatedEvent();
 }
 
 void wxTextCtrl::SetSelection(long from, long to)
@@ -325,17 +303,14 @@ void wxTextCtrl::SetSelection(long from, long to)
 void wxTextCtrl::WriteText(const wxString& str)
 {
     GetTextPeer()->WriteText( str ) ;
-}
-
-void wxTextCtrl::AppendText(const wxString& text)
-{
-    SetInsertionPointEnd();
-    WriteText( text );
+    if ( m_triggerUpdateEvents )
+        SendTextUpdatedEvent();
 }
 
 void wxTextCtrl::Clear()
 {
     GetTextPeer()->Clear() ;
+    SendTextUpdatedEvent();
 }
 
 bool wxTextCtrl::IsModified() const