On Sat, May 31, 2014 at 09:16:10PM +0200, Benjamin Drung wrote: > There are discussions about supporting wx3.0 (and making it the > default), but no code changes has landed in SVN so far. I do not know > the current status and why there isn't any progress. Lack of > manpower/time or bugs? That's why I CCed audacity-devel to get some > feedback. > > It's probably safe to say that help is appreciated and we are happy for > patches that add wx3.0 support (without removing wx2.8 support).
The attached is a simple start I made, and should work with both 2.8 and 3.0, though I didn't manage to actually test it compiles due to the generic file dialog issue. But I guess it's still useful to you. BTW, I'd suggest there's no point keeping WXWIN_COMPATIBILITY_2_4 (only used in one place, and wx2.4 is long long dead). Also WXWIN_COMPATIBILITY_2_6 seems to be defined but never used (and wx2.6 is also long dead). Cheers, Olly
--- a/audacity-2.0.5/lib-src/FileDialog/generic/FileDialogPrivate.cpp 2013-10-19 20:31:33.000000000 +1300 +++ b/audacity-2.0.5/lib-src/FileDialog/generic/FileDialogPrivate.cpp 2014-06-01 20:38:47.890251794 +1200 @@ -40,7 +40,7 @@ #include "wx/settings.h" #include "wx/filefn.h" #include "wx/file.h" // for wxS_IXXX constants only -#include "wx/filedlg.h" // wxOPEN, wxSAVE... +#include "wx/filedlg.h" // wxFD_OPEN, wxFD_SAVE... #include "wx/generic/filedlgg.h" #include "wx/generic/dirctrlg.h" // for wxFileIconsTable @@ -991,9 +991,9 @@ } if (m_dialogStyle == 0) - m_dialogStyle = wxOPEN; - if ((m_dialogStyle & wxMULTIPLE ) && !(m_dialogStyle & wxOPEN)) - m_dialogStyle |= wxOPEN; + m_dialogStyle = wxFD_OPEN; + if ((m_dialogStyle & wxMULTIPLE ) && !(m_dialogStyle & wxFD_OPEN)) + m_dialogStyle |= wxFD_OPEN; if ((m_dir.empty()) || (m_dir == wxT("."))) { @@ -1368,7 +1368,7 @@ } #endif // __UNIX__ - if (!(m_dialogStyle & wxSAVE)) + if (!(m_dialogStyle & wxFD_SAVE)) { if ((filename.Find(wxT('*')) != wxNOT_FOUND) || (filename.Find(wxT('?')) != wxNOT_FOUND)) @@ -1413,14 +1413,14 @@ // VZ: the logic of testing for !wxFileExists() only for the open file // dialog is not entirely clear to me, why don't we allow saving to a // file without extension as well? - if ( !(m_dialogStyle & wxOPEN) || !wxFileExists(filename) ) + if ( !(m_dialogStyle & wxFD_OPEN) || !wxFileExists(filename) ) { filename = AppendExtension(filename, m_filterExtension); } // check that the file [doesn't] exist if necessary - if ( (m_dialogStyle & wxSAVE) && - (m_dialogStyle & wxOVERWRITE_PROMPT) && + if ( (m_dialogStyle & wxFD_SAVE) && + (m_dialogStyle & wxFD_OVERWRITE_PROMPT) && wxFileExists( filename ) ) { wxString msg; @@ -1429,8 +1429,8 @@ if (wxMessageBox(msg, _("Confirm"), wxYES_NO) != wxYES) return; } - else if ( (m_dialogStyle & wxOPEN) && - (m_dialogStyle & wxFILE_MUST_EXIST) && + else if ( (m_dialogStyle & wxFD_OPEN) && + (m_dialogStyle & wxFD_FILE_MUST_EXIST) && !wxFileExists(filename) ) { wxMessageBox(_("Please choose an existing file."), _("Error"), --- a/audacity-2.0.5/lib-src/FileDialog/win/FileDialogPrivate.cpp 2013-10-19 20:31:33.000000000 +1300 +++ b/audacity-2.0.5/lib-src/FileDialog/win/FileDialogPrivate.cpp 2014-06-01 20:36:58.222264699 +1200 @@ -731,7 +731,7 @@ of.nMaxFile = wxMAXPATH; // we must set the default extension because otherwise Windows would check - // for the existing of a wrong file with wxOVERWRITE_PROMPT (i.e. if the + // for the existing of a wrong file with wxFD_OVERWRITE_PROMPT (i.e. if the // user types "foo" and the default extension is ".bar" we should force it // to check for "foo.bar" existence and not "foo") wxString defextBuffer; // we need it to be alive until GetSaveFileName()!