X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b07d7130880c63b7f7908606a10f885e2719efc..232806507ba60bd768605f0d7e8ae8e27dc17e8b:/src/gtk1/choice.cpp diff --git a/src/gtk1/choice.cpp b/src/gtk1/choice.cpp index ba049f6447..bd63c5e3f8 100644 --- a/src/gtk1/choice.cpp +++ b/src/gtk1/choice.cpp @@ -14,9 +14,18 @@ #include "wx/choice.h" +#if wxUSE_CHOICE + #include "gdk/gdk.h" #include "gtk/gtk.h" +//----------------------------------------------------------------------------- +// idle system +//----------------------------------------------------------------------------- + +extern void wxapp_install_idle_handler(); +extern bool g_isIdle; + //----------------------------------------------------------------------------- // data //----------------------------------------------------------------------------- @@ -29,17 +38,17 @@ extern bool g_blockEventsOnDrag; static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice ) { - if (!choice->HasVMT()) - return; + if (g_isIdle) wxapp_install_idle_handler(); - if (g_blockEventsOnDrag) - return; + if (!choice->m_hasVMT) return; - wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, choice->GetId() ); - event.SetInt( choice->GetSelection() ); - event.SetString( choice->GetStringSelection() ); - event.SetEventObject(choice); - choice->GetEventHandler()->ProcessEvent(event); + if (g_blockEventsOnDrag) return; + + wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, choice->GetId() ); + event.SetInt( choice->GetSelection() ); + event.SetString( choice->GetStringSelection() ); + event.SetEventObject(choice); + choice->GetEventHandler()->ProcessEvent(event); } //----------------------------------------------------------------------------- @@ -64,7 +73,9 @@ bool wxChoice::Create( wxWindow *parent, wxWindowID id, PreCreation( parent, id, pos, size, style, name ); +#if wxUSE_VALIDATORS SetValidator( validator ); +#endif m_widget = gtk_option_menu_new(); @@ -92,9 +103,7 @@ bool wxChoice::Create( wxWindow *parent, wxWindowID id, } gtk_option_menu_set_menu( GTK_OPTION_MENU(m_widget), menu ); - m_parent->AddChild( this ); - - (m_parent->m_insertCallback)( m_parent, this ); + m_parent->DoAddChild( this ); PostCreation(); @@ -246,7 +255,7 @@ int wxChoice::FindString( const wxString &string ) const wxASSERT_MSG( label != NULL , _T("wxChoice: invalid label") ); - if (string == label->label) + if (string == wxString(label->label,*wxConvCurrent)) return count; child = child->next; @@ -299,7 +308,7 @@ wxString wxChoice::GetString( int n ) const wxASSERT_MSG( label != NULL , _T("wxChoice: invalid label") ); - return label->label; + return wxString(label->label,*wxConvCurrent); } child = child->next; count++; @@ -307,7 +316,7 @@ wxString wxChoice::GetString( int n ) const wxFAIL_MSG( _T("wxChoice: invalid index in GetString()") ); - return ""; + return _T(""); } wxString wxChoice::GetStringSelection() const @@ -318,7 +327,7 @@ wxString wxChoice::GetStringSelection() const wxASSERT_MSG( label != NULL , _T("wxChoice: invalid label") ); - return label->label; + return wxString(label->label,*wxConvCurrent); } int wxChoice::Number() const @@ -383,3 +392,4 @@ void wxChoice::ApplyWidgetStyle() } } +#endif