X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d2cdad17e38fa530ea9376e1d69c1d2a8df35a08..7d09b97f5321d0accd758eb420c008853ad9ec26:/src/generic/dirdlgg.cpp diff --git a/src/generic/dirdlgg.cpp b/src/generic/dirdlgg.cpp index 72ede7a30c..cca162da5d 100644 --- a/src/generic/dirdlgg.cpp +++ b/src/generic/dirdlgg.cpp @@ -9,11 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "dirdlgg.h" -#endif - - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -47,8 +42,6 @@ static const int ID_DIRCTRL = 1000; static const int ID_TEXTCTRL = 1001; -static const int ID_OK = 1002; -static const int ID_CANCEL = 1003; static const int ID_NEW = 1004; static const int ID_SHOW_HIDDEN = 1005; static const int ID_GO_HOME = 1006; @@ -58,7 +51,7 @@ static const int ID_GO_HOME = 1006; // --------------------------------------------------------------------------- /* Macro for avoiding #ifdefs when value have to be different depending on size of - device we display on + device we display on - take it from something like wxDesktopPolicy in the future */ #if defined(__SMARTPHONE__) @@ -100,7 +93,7 @@ wxGenericDirDialog::wxGenericDirDialog(wxWindow* parent, const wxString& title, wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - // Smartphone does not have buttons + // smart phones does not support or do not waste space for wxButtons #if defined(__SMARTPHONE__) wxMenu *dirMenu = new wxMenu; @@ -152,9 +145,9 @@ wxGenericDirDialog::wxGenericDirDialog(wxWindow* parent, const wxString& title, #endif // __SMARTPHONE__/!__SMARTPHONE__ // 1) dir ctrl - m_dirCtrl = NULL; // this is neccessary, event handler called from + m_dirCtrl = NULL; // this is necessary, event handler called from // wxGenericDirCtrl would crash otherwise! - long dirStyle = wxDIRCTRL_DIR_ONLY|wxSUNKEN_BORDER; + long dirStyle = wxDIRCTRL_DIR_ONLY | wxDEFAULT_CONTROL_BORDER; #ifdef __WXMSW__ if (style & wxDD_NEW_DIR_BUTTON) @@ -190,29 +183,21 @@ wxGenericDirDialog::wxGenericDirDialog(wxWindow* parent, const wxString& title, #endif // 4) Buttons - buttonsizer = new wxBoxSizer( wxHORIZONTAL ); - - // OK and Cancel button should be at the right bottom - wxButton* okButton = new wxButton(this, wxID_OK); - buttonsizer->Add( okButton, 0, wxLEFT|wxRIGHT, 10 ); - wxButton* cancelButton = new wxButton(this, wxID_CANCEL); - buttonsizer->Add( cancelButton, 0, wxLEFT|wxRIGHT, 10 ); - - topsizer->Add( buttonsizer, 0, wxLEFT|wxTOP|wxBOTTOM | wxALIGN_RIGHT, 10 ); - - okButton->SetDefault(); + topsizer->Add( CreateButtonSizer( wxOK|wxCANCEL ), 0, wxEXPAND | wxALL, 10 ); #endif // !__SMARTPHONE__ - m_dirCtrl->SetFocus(); + m_input->SetFocus(); SetAutoLayout( true ); SetSizer( topsizer ); +#if !defined(__SMARTPHONE__) && !defined(__POCKETPC__) topsizer->SetSizeHints( this ); topsizer->Fit( this ); Centre( wxBOTH ); +#endif } void wxGenericDirDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) @@ -224,7 +209,7 @@ void wxGenericDirDialog::OnOK(wxCommandEvent& WXUNUSED(event)) { m_path = m_input->GetValue(); // Does the path exist? (User may have typed anything in m_input) - if (wxPathExists(m_path)) { + if (wxDirExists(m_path)) { // OK, path exists, we're done. EndModal(wxID_OK); return; @@ -278,10 +263,16 @@ void wxGenericDirDialog::OnTreeSelected( wxTreeEvent &event ) if (!m_dirCtrl) return; - wxDirItemData *data = (wxDirItemData*)m_dirCtrl->GetTreeCtrl()->GetItemData(event.GetItem()); + wxTreeItemId item = event.GetItem(); + + wxDirItemData *data = NULL; + + if(item.IsOk()) + data = (wxDirItemData*)m_dirCtrl->GetTreeCtrl()->GetItemData(item); + if (data) m_input->SetValue( data->m_path ); -}; +} void wxGenericDirDialog::OnTreeKeyDown( wxTreeEvent &WXUNUSED(event) ) { @@ -291,7 +282,7 @@ void wxGenericDirDialog::OnTreeKeyDown( wxTreeEvent &WXUNUSED(event) ) wxDirItemData *data = (wxDirItemData*)m_dirCtrl->GetTreeCtrl()->GetItemData(m_dirCtrl->GetTreeCtrl()->GetSelection()); if (data) m_input->SetValue( data->m_path ); -}; +} void wxGenericDirDialog::OnShowHidden( wxCommandEvent& event ) { @@ -322,7 +313,7 @@ void wxGenericDirDialog::OnNew( wxCommandEvent& WXUNUSED(event) ) if (!wxEndsWithPathSeparator(path)) path += wxFILE_SEP_PATH; path += new_name; - if (wxFileExists(path)) + if (wxDirExists(path)) { // try NewName0, NewName1 etc. int i = 0; @@ -337,7 +328,7 @@ void wxGenericDirDialog::OnNew( wxCommandEvent& WXUNUSED(event) ) path += wxFILE_SEP_PATH; path += new_name; i++; - } while (wxFileExists(path)); + } while (wxDirExists(path)); } wxLogNull log;