]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/textctrl.cpp
Fix for #15520: wxRichTextCtrl: Drawing the selection doesn't respect its container...
[wxWidgets.git] / src / gtk1 / textctrl.cpp
index 0d410a73d80a04b20808d05ce073ffb23931dbde..01886811547d8f8f90fd86a6be701532fa00632b 100644 (file)
@@ -2,7 +2,6 @@
 // Name:        src/gtk1/textctrl.cpp
 // Purpose:
 // Author:      Robert Roebling
-// Id:          $Id$
 // Copyright:   (c) 1998 Robert Roebling, Vadim Zeitlin
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -102,7 +101,7 @@ gtk_insert_text_callback(GtkEditable *editable,
     // we should only be called if we have a max len limit at all
     GtkEntry *entry = GTK_ENTRY (editable);
 
-    wxCHECK_RET( entry->text_max_length, _T("shouldn't be called") );
+    wxCHECK_RET( entry->text_max_length, wxT("shouldn't be called") );
 
     // check that we don't overflow the max length limit
     //
@@ -114,11 +113,11 @@ gtk_insert_text_callback(GtkEditable *editable,
         gtk_signal_emit_stop_by_name(GTK_OBJECT(editable), "insert_text");
 
         // remember that the next changed signal is to be ignored to avoid
-        // generating a dummy wxEVT_COMMAND_TEXT_UPDATED event
+        // generating a dummy wxEVT_TEXT event
         win->IgnoreNextTextUpdate();
 
         // and generate the correct one ourselves
-        wxCommandEvent event(wxEVT_COMMAND_TEXT_MAXLEN, win->GetId());
+        wxCommandEvent event(wxEVT_TEXT_MAXLEN, win->GetId());
         event.SetEventObject(win);
         event.SetString(win->GetValue());
         win->HandleWindowEvent( event );
@@ -145,7 +144,7 @@ gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win )
     win->SetModified();
     win->UpdateFontIfNeeded();
 
-    wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, win->GetId() );
+    wxCommandEvent event( wxEVT_TEXT, win->GetId() );
     event.SetEventObject( win );
     win->HandleWindowEvent( event );
 }
@@ -187,10 +186,10 @@ extern "C" {
 static void wxgtk_text_draw( GtkWidget *widget, GdkRectangle *rect)
 {
     wxEventLoopBase* loop = wxEventLoopBase::GetActive();
-    if ( loop && loop->IsYielding() )
+    if ( loop && !loop->IsYielding() )
     {
         wxCHECK_RET( gs_gtk_text_draw != wxgtk_text_draw,
-                     _T("infinite recursion in wxgtk_text_draw aborted") );
+                     wxT("infinite recursion in wxgtk_text_draw aborted") );
 
         gs_gtk_text_draw(widget, rect);
     }
@@ -201,8 +200,6 @@ static void wxgtk_text_draw( GtkWidget *widget, GdkRectangle *rect)
 //  wxTextCtrl
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxTextCtrlBase)
-
 BEGIN_EVENT_TABLE(wxTextCtrl, wxTextCtrlBase)
     EVT_CHAR(wxTextCtrl::OnChar)
 
@@ -406,7 +403,7 @@ void wxTextCtrl::CalculateScrollbar()
     }
 }
 
-wxString wxTextCtrl::GetValue() const
+wxString wxTextCtrl::DoGetValue() const
 {
     wxCHECK_MSG( m_text != NULL, wxEmptyString, wxT("invalid text ctrl") );
 
@@ -716,29 +713,6 @@ void wxTextCtrl::DoEnable( bool enable )
     }
 }
 
-// wxGTK-specific: called recursively by Enable,
-// to give widgets an oppprtunity to correct their colours after they
-// have been changed by Enable
-void wxTextCtrl::OnEnabled( bool WXUNUSED(enable) )
-{
-    if ( IsSingleLine() )
-        return;
-
-    // If we have a custom background colour, we use this colour in both
-    // disabled and enabled mode, or we end up with a different colour under the
-    // text.
-    wxColour oldColour = GetBackgroundColour();
-    if (oldColour.Ok())
-    {
-        // Need to set twice or it'll optimize the useful stuff out
-        if (oldColour == * wxWHITE)
-            SetBackgroundColour(*wxBLACK);
-        else
-            SetBackgroundColour(*wxWHITE);
-        SetBackgroundColour(oldColour);
-    }
-}
-
 void wxTextCtrl::MarkDirty()
 {
     m_modified = true;
@@ -818,7 +792,7 @@ void wxTextCtrl::SetSelection( long from, long to )
          !GTK_TEXT(m_text)->line_start_cache )
     {
         // tell the programmer that it didn't work
-        wxLogDebug(_T("Can't call SetSelection() before realizing the control"));
+        wxLogDebug(wxT("Can't call SetSelection() before realizing the control"));
         return;
     }
 
@@ -997,7 +971,7 @@ void wxTextCtrl::OnChar( wxKeyEvent &key_event )
 
     if ((key_event.GetKeyCode() == WXK_RETURN) && (m_windowStyle & wxTE_PROCESS_ENTER))
     {
-        wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId);
+        wxCommandEvent event(wxEVT_TEXT_ENTER, m_windowId);
         event.SetEventObject(this);
         event.SetString(GetValue());
         if (HandleWindowEvent(event)) return;
@@ -1073,7 +1047,7 @@ void wxTextCtrl::ChangeFontGlobally()
     // possible!
     wxASSERT_MSG( (m_windowStyle & wxTE_MULTILINE) && m_updateFont,
 
-                  _T("shouldn't be called for single line controls") );
+                  wxT("shouldn't be called for single line controls") );
 
     wxString value = GetValue();
     if ( !value.empty() )
@@ -1112,7 +1086,7 @@ bool wxTextCtrl::SetBackgroundColour( const wxColour &colour )
     if (!m_widget->window)
         return false;
 
-    if (!m_backgroundColour.Ok())
+    if (!m_backgroundColour.IsOk())
         return false;
 
     if (m_windowStyle & wxTE_MULTILINE)
@@ -1147,7 +1121,7 @@ bool wxTextCtrl::SetStyle( long start, long end, const wxTextAttr& style )
         gint l = gtk_text_get_length( GTK_TEXT(m_text) );
 
         wxCHECK_MSG( start >= 0 && end <= l, false,
-                     _T("invalid range in wxTextCtrl::SetStyle") );
+                     wxT("invalid range in wxTextCtrl::SetStyle") );
 
         gint old_pos = gtk_editable_get_position( GTK_EDITABLE(m_text) );
         char *text = gtk_editable_get_chars( GTK_EDITABLE(m_text), start, end );
@@ -1244,9 +1218,9 @@ void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event)
 void wxTextCtrl::OnInternalIdle()
 {
     wxCursor cursor = m_cursor;
-    if (g_globalCursor.Ok()) cursor = g_globalCursor;
+    if (g_globalCursor.IsOk()) cursor = g_globalCursor;
 
-    if (cursor.Ok())
+    if (cursor.IsOk())
     {
         GdkWindow *window = NULL;
         if (HasFlag(wxTE_MULTILINE))
@@ -1257,7 +1231,7 @@ void wxTextCtrl::OnInternalIdle()
         if (window)
             gdk_window_set_cursor( window, cursor.GetCursor() );
 
-        if (!g_globalCursor.Ok())
+        if (!g_globalCursor.IsOk())
             cursor = *wxSTANDARD_CURSOR;
 
         window = m_widget->window;