diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp index c5c1cc1da7..8298c7f172 100644 --- a/samples/dialogs/dialogs.cpp +++ b/samples/dialogs/dialogs.cpp @@ -202,6 +202,7 @@ wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) #if wxUSE_DIRDLG EVT_MENU(DIALOGS_DIR_CHOOSE, MyFrame::DirChoose) EVT_MENU(DIALOGS_DIRNEW_CHOOSE, MyFrame::DirChooseNew) + EVT_MENU(DIALOGS_DIRMULTIPLE_CHOOSE, MyFrame::DirChooseMultiple) #endif // wxUSE_DIRDLG #if USE_MODAL_PRESENTATION @@ -488,6 +489,7 @@ bool MyApp::OnInit() dir_menu->Append(DIALOGS_DIR_CHOOSE, "&Choose a directory\tCtrl-D"); dir_menu->Append(DIALOGS_DIRNEW_CHOOSE, "Choose a directory (with \"Ne&w\" button)\tShift-Ctrl-D"); + dir_menu->Append(DIALOGS_DIRMULTIPLE_CHOOSE, "Choose multiple directories\tAlt-Ctrl-D"); menuDlg->Append(wxID_ANY,"&Directory operations",dir_menu); #if USE_DIRDLG_GENERIC @@ -1803,6 +1805,36 @@ void MyFrame::DirChooseNew(wxCommandEvent& WXUNUSED(event) ) { DoDirChoose(wxDD_DEFAULT_STYLE & ~wxDD_DIR_MUST_EXIST); } + +void MyFrame::DirChooseMultiple(wxCommandEvent& WXUNUSED(event)) +{ + // pass some initial dir and the style to wxDirDialog + int style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST | wxDD_MULTIPLE; + wxString dirHome; + wxGetHomeDir(&dirHome); + + wxDirDialog dialog(this, "Testing multiple directory picker", dirHome, style); + + if ( dialog.ShowModal() == wxID_OK ) + { + wxArrayString paths; + + dialog.GetPaths(paths); + + wxString msg, s; + size_t count = paths.GetCount(); + for ( size_t n = 0; n < count; n++ ) + { + s.Printf("Directory %d: %s\n", + (int)n, paths[n]); + + msg += s; + } + + wxMessageDialog dialog2(this, msg, "Selected directories"); + dialog2.ShowModal(); + } +} #endif // wxUSE_DIRDLG #if USE_DIRDLG_GENERIC diff --git a/samples/dialogs/dialogs.h b/samples/dialogs/dialogs.h index 085e9eaeba..4bde46e3c6 100644 --- a/samples/dialogs/dialogs.h +++ b/samples/dialogs/dialogs.h @@ -434,6 +434,7 @@ public: #if wxUSE_DIRDLG void DirChoose(wxCommandEvent& event); void DirChooseNew(wxCommandEvent& event); + void DirChooseMultiple(wxCommandEvent& event); #endif // wxUSE_DIRDLG #if USE_DIRDLG_GENERIC @@ -594,6 +595,7 @@ enum DIALOGS_FILE_SAVE_GENERIC, DIALOGS_DIR_CHOOSE, DIALOGS_DIRNEW_CHOOSE, + DIALOGS_DIRMULTIPLE_CHOOSE, DIALOGS_GENERIC_DIR_CHOOSE, DIALOGS_TIP, DIALOGS_NUM_ENTRY,