-// ----------------------------------------------------------------------------
-// "insert_text" for GtkEntry
-// ----------------------------------------------------------------------------
-
-extern "C" {
-static void
-gtk_insert_text_callback(GtkEditable *editable,
- const gchar *new_text,
- gint new_text_length,
- gint *position,
- wxTextCtrl *win)
-{
- if (g_isIdle)
- wxapp_install_idle_handler();
-
- // 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") );
-
- // check that we don't overflow the max length limit
- //
- // FIXME: this doesn't work when we paste a string which is going to be
- // truncated
- if ( entry->text_length == entry->text_max_length )
- {
- // we don't need to run the base class version at all
- g_signal_stop_emission_by_name (editable, "insert_text");
-
- // remember that the next changed signal is to be ignored to avoid
- // generating a dummy wxEVT_COMMAND_TEXT_UPDATED event
- win->IgnoreNextTextUpdate();
-
- // and generate the correct one ourselves
- wxCommandEvent event(wxEVT_COMMAND_TEXT_MAXLEN, win->GetId());
- event.SetEventObject(win);
- event.SetString(win->GetValue());
- win->GetEventHandler()->ProcessEvent( event );
- }
-}
-}
-