X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f74172ab4256c9e7c665e44e2f94ce12bf84a37f..8ad31f9dfdb85a54cd080aac6957883f2f3e38e3:/src/os2/filedlg.cpp diff --git a/src/os2/filedlg.cpp b/src/os2/filedlg.cpp index 7e126680c3..96c26f14ca 100644 --- a/src/os2/filedlg.cpp +++ b/src/os2/filedlg.cpp @@ -16,6 +16,8 @@ #pragma hdrstop #endif +#if wxUSE_FILEDLG + #ifndef WX_PRECOMP #include "wx/utils.h" #include "wx/msgdlg.h" @@ -23,6 +25,7 @@ #include "wx/intl.h" #include "wx/log.h" #include "wx/app.h" + #include "wx/math.h" #endif #define INCL_PM @@ -30,7 +33,6 @@ #include "wx/os2/private.h" -#include #include #include @@ -55,6 +57,7 @@ #ifndef MAXEXT # define MAXEXT 5 #endif + IMPLEMENT_CLASS(wxFileDialog, wxFileDialogBase) // ---------------------------------------------------------------------------- @@ -68,13 +71,15 @@ wxFileDialog::wxFileDialog ( , const wxString& rsDefaultFileName , const wxString& rsWildCard , long lStyle -, const wxPoint& rPos +, const wxPoint& rPos, + const wxSize& sz, + const wxString& name ) - :wxFileDialogBase(pParent, rsMessage, rsDefaultDir, rsDefaultFileName, rsWildCard, lStyle, rPos) + :wxFileDialogBase(pParent, rsMessage, rsDefaultDir, rsDefaultFileName, rsWildCard, lStyle, rPos, sz, name) { - if ((m_dialogStyle & wxMULTIPLE) && (m_dialogStyle & wxSAVE)) - m_dialogStyle &= ~wxMULTIPLE; + if ((m_windowStyle & wxMULTIPLE) && (m_windowStyle & wxSAVE)) + m_windowStyle &= ~wxMULTIPLE; m_filterIndex = 1; } // end of wxFileDialog::wxFileDialog @@ -121,19 +126,24 @@ int wxFileDialog::ShowModal() *zFileNameBuffer = wxT('\0'); *zTitleBuffer = wxT('\0'); - if (m_dialogStyle & wxSAVE) + if (m_windowStyle & wxSAVE) lFlags = FDS_SAVEAS_DIALOG; else lFlags = FDS_OPEN_DIALOG; - if ((m_dialogStyle & wxHIDE_READONLY) || (m_dialogStyle & wxSAVE)) +#if WXWIN_COMPATIBILITY_2_4 + if (m_windowStyle & wxHIDE_READONLY) + lFlags |= FDS_SAVEAS_DIALOG; +#endif + + if (m_windowStyle & wxSAVE) lFlags |= FDS_SAVEAS_DIALOG; - if (m_dialogStyle & wxMULTIPLE ) + if (m_windowStyle & wxMULTIPLE ) lFlags |= FDS_OPEN_DIALOG | FDS_MULTIPLESEL; vFileDlg.cbSize = sizeof(FILEDLG); vFileDlg.fl = lFlags; - vFileDlg.pszTitle = zTitleBuffer; + vFileDlg.pszTitle = (PSZ)zTitleBuffer; // // Convert forward slashes to backslashes (file selector doesn't like @@ -184,11 +194,11 @@ int wxFileDialog::ShowModal() } } if ( wxStrlen(m_wildCard) == 0 ) - sTheFilter = ""; + sTheFilter = wxEmptyString; else sTheFilter = m_wildCard; - pzFilterBuffer = strtok((char*)sTheFilter.c_str(), "|"); + wxStrtok((wxChar*)sTheFilter.c_str(), wxT("|"), &pzFilterBuffer); while(pzFilterBuffer != NULL) { if (nCount > 0 && !(nCount % 2)) @@ -197,14 +207,14 @@ int wxFileDialog::ShowModal() { sDir += pzFilterBuffer; } - pzFilterBuffer = strtok(NULL, "|"); + wxStrtok(NULL, wxT("|"), &pzFilterBuffer); nCount++; } if (nCount == 0) sDir += m_fileName; - if (sDir.IsEmpty()) - sDir = "*.*"; - wxStrcpy(vFileDlg.szFullFile, sDir.c_str()); + if (sDir.empty()) + sDir = wxT("*.*"); + wxStrcpy((wxChar*)vFileDlg.szFullFile, sDir); sFilterBuffer = sDir; hWnd = ::WinFileDlg( HWND_DESKTOP @@ -214,31 +224,31 @@ int wxFileDialog::ShowModal() if (hWnd && vFileDlg.lReturn == DID_OK) { m_fileNames.Empty(); - if ((m_dialogStyle & wxMULTIPLE ) && vFileDlg.ulFQFCount > 1) + if ((m_windowStyle & wxMULTIPLE ) && vFileDlg.ulFQFCount > 1) { - for (int i = 0; i < vFileDlg.ulFQFCount; i++) + for (int i = 0; i < (int)vFileDlg.ulFQFCount; i++) { if (i == 0) { - m_dir = wxPathOnly(wxString((const char*)*vFileDlg.papszFQFilename[0])); - m_path = (const char*)*vFileDlg.papszFQFilename[0]; + m_dir = wxPathOnly(wxString((const wxChar*)*vFileDlg.papszFQFilename[0])); + m_path = (const wxChar*)*vFileDlg.papszFQFilename[0]; } - m_fileName = wxFileNameFromPath(wxString((const char*)*vFileDlg.papszFQFilename[i])); + m_fileName = wxFileNameFromPath(wxString((const wxChar*)*vFileDlg.papszFQFilename[i])); m_fileNames.Add(m_fileName); } ::WinFreeFileDlgList(vFileDlg.papszFQFilename); } - else if (!(m_dialogStyle & wxSAVE)) + else if (!(m_windowStyle & wxSAVE)) { - m_path = vFileDlg.szFullFile; - m_fileName = wxFileNameFromPath(vFileDlg.szFullFile); - m_dir = wxPathOnly(vFileDlg.szFullFile); + m_path = (wxChar*)vFileDlg.szFullFile; + m_fileName = wxFileNameFromPath(wxString((const wxChar*)vFileDlg.szFullFile)); + m_dir = wxPathOnly((const wxChar*)vFileDlg.szFullFile); } else // save file { const wxChar* pzExtension = NULL; - wxStrcpy(zFileNameBuffer, vFileDlg.szFullFile); + wxStrcpy(zFileNameBuffer, (const wxChar*)vFileDlg.szFullFile); int nIdx = wxStrlen(zFileNameBuffer) - 1; wxString sExt; @@ -248,7 +258,7 @@ int wxFileDialog::ShowModal() ,&m_fileName ,&sExt ); - if (zFileNameBuffer[nIdx] == wxT('.') || sExt.IsEmpty()) + if (zFileNameBuffer[nIdx] == wxT('.') || sExt.empty()) { zFileNameBuffer[nIdx] = wxT('\0'); @@ -263,7 +273,7 @@ int wxFileDialog::ShowModal() // pzExtension = sFilterBuffer.c_str(); - for( int i = 0; i < sFilterBuffer.length(); i++ ) + for( int i = 0; i < (int)sFilterBuffer.length(); i++ ) { // // Get extension @@ -285,16 +295,16 @@ int wxFileDialog::ShowModal() } else { - m_path = vFileDlg.szFullFile; + m_path = (wxChar*)vFileDlg.szFullFile; } - m_fileName = wxFileNameFromPath(vFileDlg.szFullFile); - m_dir = wxPathOnly(vFileDlg.szFullFile); + m_fileName = wxFileNameFromPath((const wxChar*)vFileDlg.szFullFile); + m_dir = wxPathOnly((const wxChar*)vFileDlg.szFullFile); // // === Simulating the wxOVERWRITE_PROMPT >>============================ // - if ((m_dialogStyle & wxOVERWRITE_PROMPT) && - (m_dialogStyle & wxSAVE) && + if ((m_windowStyle & wxOVERWRITE_PROMPT) && + (m_windowStyle & wxSAVE) && (wxFileExists(m_path.c_str()))) { wxString sMessageText; @@ -316,3 +326,4 @@ int wxFileDialog::ShowModal() return wxID_CANCEL; } // end of wxFileDialog::ShowModal +#endif // wxUSE_FILEDLG