X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/75bc8b3454bd2adda5bf3dc0e60984a275ea7ac3..14619f10b0bdb630206607abd0ce0319d45e095a:/samples/widgets/filepicker.cpp diff --git a/samples/widgets/filepicker.cpp b/samples/widgets/filepicker.cpp index 8e39578158..77a0427b6e 100644 --- a/samples/widgets/filepicker.cpp +++ b/samples/widgets/filepicker.cpp @@ -31,6 +31,7 @@ #include "wx/app.h" #include "wx/log.h" #include "wx/radiobox.h" + #include "wx/textctrl.h" #endif #include "wx/artprov.h" @@ -58,7 +59,9 @@ enum enum { PickerPage_Reset = wxID_HIGHEST, - PickerPage_File + PickerPage_File, + PickerPage_SetDir, + PickerPage_CurrentPath }; @@ -99,6 +102,8 @@ protected: void OnFileChange(wxFileDirPickerEvent &ev); void OnCheckBox(wxCommandEvent &ev); void OnButtonReset(wxCommandEvent &ev); + void OnButtonSetDir(wxCommandEvent &ev); + void OnUpdatePath(wxUpdateUIEvent &ev); // the picker @@ -114,6 +119,8 @@ protected: *m_chkFileChangeDir, *m_chkSmall; wxRadioBox *m_radioFilePickerMode; + wxStaticText *m_labelPath; + wxTextCtrl *m_textInitialDir; wxBoxSizer *m_sizer; @@ -128,11 +135,14 @@ private: BEGIN_EVENT_TABLE(FilePickerWidgetsPage, WidgetsPage) EVT_BUTTON(PickerPage_Reset, FilePickerWidgetsPage::OnButtonReset) + EVT_BUTTON(PickerPage_SetDir, FilePickerWidgetsPage::OnButtonSetDir) EVT_FILEPICKER_CHANGED(PickerPage_File, FilePickerWidgetsPage::OnFileChange) EVT_CHECKBOX(wxID_ANY, FilePickerWidgetsPage::OnCheckBox) EVT_RADIOBOX(wxID_ANY, FilePickerWidgetsPage::OnCheckBox) + + EVT_UPDATE_UI(PickerPage_CurrentPath, FilePickerWidgetsPage::OnUpdatePath) END_EVENT_TABLE() // ============================================================================ @@ -174,20 +184,34 @@ void FilePickerWidgetsPage::CreateContent() boxleft->Add(filebox, 0, wxALL|wxGROW, 5); + boxleft->Add(CreateSizerWithTextAndButton + ( + PickerPage_SetDir, + "&Initial directory", + wxID_ANY, + &m_textInitialDir + ), wxSizerFlags().Expand().Border()); + + boxleft->AddSpacer(10); + boxleft->Add(new wxButton(this, PickerPage_Reset, wxT("&Reset")), 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15); Reset(); // set checkboxes state - // create pickers + // create the picker and the static text displaying its current value + m_labelPath = new wxStaticText(this, PickerPage_CurrentPath, ""); + m_filePicker = NULL; CreatePicker(); // right pane m_sizer = new wxBoxSizer(wxVERTICAL); - m_sizer->Add(1, 1, 1, wxGROW | wxALL, 5); // spacer - m_sizer->Add(m_filePicker, 0, wxEXPAND|wxALL, 5); - m_sizer->Add(1, 1, 1, wxGROW | wxALL, 5); // spacer + m_sizer->AddStretchSpacer(); + m_sizer->Add(m_filePicker, wxSizerFlags().Expand().Border()); + m_sizer->AddStretchSpacer(); + m_sizer->Add(m_labelPath, wxSizerFlags().Expand().Border()); + m_sizer->AddStretchSpacer(); // global pane wxSizer *sz = new wxBoxSizer(wxHORIZONTAL); @@ -280,6 +304,13 @@ void FilePickerWidgetsPage::UpdateFilePickerMode() // event handlers // ---------------------------------------------------------------------------- +void FilePickerWidgetsPage::OnButtonSetDir(wxCommandEvent& WXUNUSED(event)) +{ + const wxString& dir = m_textInitialDir->GetValue(); + m_filePicker->SetInitialDirectory(dir); + wxLogMessage("Initial directory set to \"%s\"", dir); +} + void FilePickerWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event)) { Reset(); @@ -309,4 +340,9 @@ void FilePickerWidgetsPage::OnCheckBox(wxCommandEvent &event) } } +void FilePickerWidgetsPage::OnUpdatePath(wxUpdateUIEvent& ev) +{ + ev.SetText( "Current path: " + m_filePicker->GetPath() ); +} + #endif // wxUSE_FILEPICKERCTRL