X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/937013e0fd914d4c42f9f5ec98da665986b93dfa..2c755d9bbf4c786a03cf6193c630fc986a69f802:/src/gtk1/textctrl.cpp diff --git a/src/gtk1/textctrl.cpp b/src/gtk1/textctrl.cpp index 1df0a5b8b1..41caee9f64 100644 --- a/src/gtk1/textctrl.cpp +++ b/src/gtk1/textctrl.cpp @@ -13,6 +13,7 @@ #include "wx/textctrl.h" #ifndef WX_PRECOMP + #include "wx/app.h" #include "wx/intl.h" #include "wx/log.h" #include "wx/utils.h" @@ -23,6 +24,7 @@ #include "wx/strconv.h" #include "wx/fontutil.h" // for wxNativeFontInfo (GetNativeFontInfo()) +#include "wx/evtloop.h" #include #include @@ -100,7 +102,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 // @@ -175,8 +177,6 @@ gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win ) // which implicitly calls wxYield()) so we override GtkText::draw() and simply // don't do anything if we're inside wxYield() -extern bool wxIsInsideYield; - extern "C" { typedef void (*GtkDrawCallback)(GtkWidget *widget, GdkRectangle *rect); } @@ -186,10 +186,11 @@ static GtkDrawCallback gs_gtk_text_draw = NULL; extern "C" { static void wxgtk_text_draw( GtkWidget *widget, GdkRectangle *rect) { - if ( !wxIsInsideYield ) + wxEventLoopBase* loop = wxEventLoopBase::GetActive(); + 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); } @@ -224,7 +225,7 @@ void wxTextCtrl::Init() m_modified = false; SetUpdateFont(false); m_text = - m_vScrollbar = (GtkWidget *)NULL; + m_vScrollbar = NULL; } wxTextCtrl::~wxTextCtrl() @@ -272,7 +273,7 @@ bool wxTextCtrl::Create( wxWindow *parent, if (multi_line) { // create our control ... - m_text = gtk_text_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL ); + m_text = gtk_text_new( NULL, NULL ); // ... and put into the upper left hand corner of the table bool bHasHScrollbar = false; @@ -405,7 +406,7 @@ void wxTextCtrl::CalculateScrollbar() } } -wxString wxTextCtrl::GetValue() const +wxString wxTextCtrl::DoGetValue() const { wxCHECK_MSG( m_text != NULL, wxEmptyString, wxT("invalid text ctrl") ); @@ -817,7 +818,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; } @@ -1072,7 +1073,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() ) @@ -1146,7 +1147,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 ); @@ -1247,7 +1248,7 @@ void wxTextCtrl::OnInternalIdle() if (cursor.Ok()) { - GdkWindow *window = (GdkWindow*) NULL; + GdkWindow *window = NULL; if (HasFlag(wxTE_MULTILINE)) window = GTK_TEXT(m_text)->text_area; else @@ -1290,7 +1291,7 @@ wxSize wxTextCtrl::DoGetBestSize() const // freeze/thaw // ---------------------------------------------------------------------------- -void wxTextCtrl::Freeze() +void wxTextCtrl::DoFreeze() { if ( HasFlag(wxTE_MULTILINE) ) { @@ -1298,7 +1299,7 @@ void wxTextCtrl::Freeze() } } -void wxTextCtrl::Thaw() +void wxTextCtrl::DoThaw() { if ( HasFlag(wxTE_MULTILINE) ) {