X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/526954c5968baa29218c994ec48e476ae2bd4b9f..b0134e31e676ec59ac708195d25803d730000530:/samples/widgets/dirpicker.cpp diff --git a/samples/widgets/dirpicker.cpp b/samples/widgets/dirpicker.cpp index 13a664bc8a..f7f96fb37b 100644 --- a/samples/widgets/dirpicker.cpp +++ b/samples/widgets/dirpicker.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" @@ -52,7 +53,8 @@ enum { PickerPage_Reset = wxID_HIGHEST, - PickerPage_Dir + PickerPage_Dir, + PickerPage_SetDir }; @@ -90,6 +92,8 @@ protected: void OnDirChange(wxFileDirPickerEvent &ev); void OnCheckBox(wxCommandEvent &ev); void OnButtonReset(wxCommandEvent &ev); + void OnButtonSetDir(wxCommandEvent &ev); + // the picker wxDirPickerCtrl *m_dirPicker; @@ -100,7 +104,10 @@ protected: wxCheckBox *m_chkDirTextCtrl, *m_chkDirChangeDir, - *m_chkDirMustExist; + *m_chkDirMustExist, + *m_chkSmall; + wxTextCtrl *m_textInitialDir; + wxBoxSizer *m_sizer; private: @@ -114,6 +121,7 @@ private: BEGIN_EVENT_TABLE(DirPickerWidgetsPage, WidgetsPage) EVT_BUTTON(PickerPage_Reset, DirPickerWidgetsPage::OnButtonReset) + EVT_BUTTON(PickerPage_SetDir, DirPickerWidgetsPage::OnButtonSetDir) EVT_DIRPICKER_CHANGED(PickerPage_Dir, DirPickerWidgetsPage::OnDirChange) @@ -148,8 +156,19 @@ void DirPickerWidgetsPage::CreateContent() m_chkDirTextCtrl = CreateCheckBoxAndAddToSizer(dirbox, wxT("With textctrl"), false); m_chkDirMustExist = CreateCheckBoxAndAddToSizer(dirbox, wxT("Dir must exist"), false); m_chkDirChangeDir = CreateCheckBoxAndAddToSizer(dirbox, wxT("Change working dir"), false); + m_chkSmall = CreateCheckBoxAndAddToSizer(dirbox, "&Small version", false); boxleft->Add(dirbox, 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); @@ -162,7 +181,7 @@ void DirPickerWidgetsPage::CreateContent() // right pane m_sizer = new wxBoxSizer(wxVERTICAL); m_sizer->Add(1, 1, 1, wxGROW | wxALL, 5); // spacer - m_sizer->Add(m_dirPicker, 0, wxALIGN_CENTER|wxALL, 5); + m_sizer->Add(m_dirPicker, 0, wxEXPAND|wxALL, 5); m_sizer->Add(1, 1, 1, wxGROW | wxALL, 5); // spacer // global pane @@ -196,6 +215,9 @@ long DirPickerWidgetsPage::GetPickerStyle() if ( m_chkDirChangeDir->GetValue() ) style |= wxDIRP_CHANGE_DIR; + if ( m_chkSmall->GetValue() ) + style |= wxDIRP_SMALL; + return style; } @@ -203,7 +225,7 @@ void DirPickerWidgetsPage::RecreatePicker() { m_sizer->Remove(1); CreatePicker(); - m_sizer->Insert(1, m_dirPicker, 0, wxALIGN_CENTER|wxALL, 5); + m_sizer->Insert(1, m_dirPicker, 0, wxEXPAND|wxALL, 5); m_sizer->Layout(); } @@ -213,6 +235,7 @@ void DirPickerWidgetsPage::Reset() m_chkDirTextCtrl->SetValue((wxDIRP_DEFAULT_STYLE & wxDIRP_USE_TEXTCTRL) != 0); m_chkDirMustExist->SetValue((wxDIRP_DEFAULT_STYLE & wxDIRP_DIR_MUST_EXIST) != 0); m_chkDirChangeDir->SetValue((wxDIRP_DEFAULT_STYLE & wxDIRP_CHANGE_DIR) != 0); + m_chkSmall->SetValue((wxFLP_DEFAULT_STYLE & wxDIRP_SMALL) != 0); } @@ -220,6 +243,11 @@ void DirPickerWidgetsPage::Reset() // event handlers // ---------------------------------------------------------------------------- +void DirPickerWidgetsPage::OnButtonSetDir(wxCommandEvent& WXUNUSED(event)) +{ + m_dirPicker->SetInitialDirectory(m_textInitialDir->GetValue()); +} + void DirPickerWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event)) { Reset(); @@ -236,7 +264,8 @@ void DirPickerWidgetsPage::OnCheckBox(wxCommandEvent &event) { if (event.GetEventObject() == m_chkDirTextCtrl || event.GetEventObject() == m_chkDirChangeDir || - event.GetEventObject() == m_chkDirMustExist) + event.GetEventObject() == m_chkDirMustExist || + event.GetEventObject() == m_chkSmall) RecreatePicker(); }