#include "wx/app.h"
#include "wx/log.h"
#include "wx/radiobox.h"
+ #include "wx/textctrl.h"
#endif
#include "wx/artprov.h"
enum
{
PickerPage_Reset = wxID_HIGHEST,
- PickerPage_File
+ PickerPage_File,
+ PickerPage_SetDir,
+ PickerPage_CurrentPath
};
void OnFileChange(wxFileDirPickerEvent &ev);
void OnCheckBox(wxCommandEvent &ev);
void OnButtonReset(wxCommandEvent &ev);
+ void OnButtonSetDir(wxCommandEvent &ev);
+ void OnUpdatePath(wxUpdateUIEvent &ev);
// the picker
*m_chkFileChangeDir,
*m_chkSmall;
wxRadioBox *m_radioFilePickerMode;
+ wxStaticText *m_labelPath;
+ wxTextCtrl *m_textInitialDir;
wxBoxSizer *m_sizer;
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()
// ============================================================================
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);
// 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();
}
}
+void FilePickerWidgetsPage::OnUpdatePath(wxUpdateUIEvent& ev)
+{
+ ev.SetText( "Current path: " + m_filePicker->GetPath() );
+}
+
#endif // wxUSE_FILEPICKERCTRL