void wxGenericFileCtrl::OnSelected( wxListEvent &event ) { if ( m_ignoreChanges ) return; if ( m_inSelected ) return; m_inSelected = true; const wxString filename( event.m_item.m_text ); #ifdef __WXWINCE__ // No double-click on most WinCE devices, so do action immediately. HandleAction( filename ); #else if ( filename == wxT( ".." ) ) { m_inSelected = false; return; } wxString dir = m_list->GetDir(); if ( !IsTopMostDir( dir ) ) dir += wxFILE_SEP_PATH; dir += filename; if ( wxDirExists( dir ) ) { m_inSelected = false; return; } m_ignoreChanges = true; m_text->SetValue( filename ); if ( m_list->GetSelectedItemCount() > 1 ) { m_text->Clear(); } if ( !m_noSelChgEvent ) GenerateSelectionChangedEvent( this, this ); m_ignoreChanges = false; #endif m_inSelected = false; }
static void gtkfilechooserwidget_selection_changed_callback( GtkWidget *WXUNUSED( widget ), wxGtkFileCtrl *fileCtrl ) { // check next selection event and ignore it if it has 0 files // because such events are redundantly generated by gtk. if ( fileCtrl->m_checkNextSelEvent ) { wxArrayString filenames; fileCtrl->GetFilenames( filenames ); if ( filenames.Count() != 0 ) fileCtrl->m_checkNextSelEvent = false; } if ( !fileCtrl->m_checkNextSelEvent ) GenerateSelectionChangedEvent( fileCtrl, fileCtrl ); }
void wxGenericFileCtrl::OnSelected( wxListEvent &event ) { if ( m_ignoreChanges ) return; if ( m_inSelected ) return; m_inSelected = true; const wxString filename( event.m_item.m_text ); if ( filename == wxT( ".." ) ) { m_inSelected = false; return; } wxString dir = m_list->GetDir(); if ( !IsTopMostDir( dir ) ) dir += wxFILE_SEP_PATH; dir += filename; if ( wxDirExists( dir ) ) { m_inSelected = false; return; } m_ignoreChanges = true; m_text->SetValue( filename ); if ( m_list->GetSelectedItemCount() > 1 ) { m_text->Clear(); } if ( !m_noSelChgEvent ) GenerateSelectionChangedEvent( this, this ); m_ignoreChanges = false; m_inSelected = false; }