X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b600ed13625645eb985acf49eecd06fd111eb061..046d682f0f684977b7ba933a128f5c84e06ded0e:/src/os2/filedlg.cpp diff --git a/src/os2/filedlg.cpp b/src/os2/filedlg.cpp index 6c3135b1b5..efaec2a6c9 100644 --- a/src/os2/filedlg.cpp +++ b/src/os2/filedlg.cpp @@ -19,11 +19,11 @@ #ifndef WX_PRECOMP #include "wx/utils.h" #include "wx/msgdlg.h" - #include "wx/dialog.h" #include "wx/filedlg.h" #include "wx/intl.h" #include "wx/log.h" #include "wx/app.h" + #include "wx/math.h" #endif #define INCL_PM @@ -31,7 +31,6 @@ #include "wx/os2/private.h" -#include #include #include @@ -56,7 +55,7 @@ #ifndef MAXEXT # define MAXEXT 5 #endif -IMPLEMENT_CLASS(wxFileDialog, wxDialog) +IMPLEMENT_CLASS(wxFileDialog, wxFileDialogBase) // ---------------------------------------------------------------------------- // CLASS wxFileDialog @@ -71,34 +70,29 @@ wxFileDialog::wxFileDialog ( , long lStyle , const wxPoint& rPos ) + :wxFileDialogBase(pParent, rsMessage, rsDefaultDir, rsDefaultFileName, rsWildCard, lStyle, rPos) + { - m_sMessage = rsMessage; - m_lDialogStyle = lStyle; - if ((m_lDialogStyle & wxMULTIPLE) && (m_lDialogStyle & wxSAVE)) - m_lDialogStyle &= ~wxMULTIPLE; - m_pParent = pParent; - m_sPath = ""; - m_sFileName = rsDefaultFileName; - m_sDir = rsDefaultDir; - m_sWildCard = rsWildCard; - m_nFilterIndex = 1; - m_vPos = rPos; + if ((m_dialogStyle & wxMULTIPLE) && (m_dialogStyle & wxSAVE)) + m_dialogStyle &= ~wxMULTIPLE; + + m_filterIndex = 1; } // end of wxFileDialog::wxFileDialog void wxFileDialog::GetPaths ( wxArrayString& rasPaths ) const { - wxString sDir(m_sDir); - size_t nCount = m_asFileNames.GetCount(); + wxString sDir(m_dir); + size_t nCount = m_fileNames.GetCount(); rasPaths.Empty(); - if (m_sDir.Last() != _T('\\')) + if (m_dir.Last() != _T('\\')) sDir += _T('\\'); for ( size_t n = 0; n < nCount; n++ ) { - rasPaths.Add(sDir + m_asFileNames[n]); + rasPaths.Add(sDir + m_fileNames[n]); } } // end of wxFileDialog::GetPaths @@ -112,14 +106,14 @@ int wxFileDialog::ShowModal() wxChar zTitleBuffer[wxMAXFILE + 1 + wxMAXEXT]; // the file-name, without path wxString sDir; size_t i; - size_t nLen = m_sDir.length(); + size_t nLen = m_dir.length(); int nCount = 0; FILEDLG vFileDlg; ULONG lFlags = 0L; memset(&vFileDlg, '\0', sizeof(FILEDLG)); - if (m_pParent) - hWnd = (HWND) m_pParent->GetHWND(); + if (m_parent) + hWnd = (HWND) m_parent->GetHWND(); if (!hWnd && wxTheApp->GetTopWindow()) hWnd = (HWND) wxTheApp->GetTopWindow()->GetHWND(); @@ -127,14 +121,19 @@ int wxFileDialog::ShowModal() *zFileNameBuffer = wxT('\0'); *zTitleBuffer = wxT('\0'); - if (m_lDialogStyle & wxSAVE) + if (m_dialogStyle & wxSAVE) lFlags = FDS_SAVEAS_DIALOG; else lFlags = FDS_OPEN_DIALOG; - if ((m_lDialogStyle & wxHIDE_READONLY) || (m_lDialogStyle & wxSAVE)) +#if WXWIN_COMPATIBILITY_2_4 + if (m_dialogStyle & wxHIDE_READONLY) + lFlags |= FDS_SAVEAS_DIALOG; +#endif + + if (m_dialogStyle & wxSAVE) lFlags |= FDS_SAVEAS_DIALOG; - if (m_lDialogStyle & wxMULTIPLE ) + if (m_dialogStyle & wxMULTIPLE ) lFlags |= FDS_OPEN_DIALOG | FDS_MULTIPLESEL; vFileDlg.cbSize = sizeof(FILEDLG); @@ -149,7 +148,7 @@ int wxFileDialog::ShowModal() sDir.reserve(nLen); for ( i = 0; i < nLen; i++ ) { - wxChar ch = m_sDir[i]; + wxChar ch = m_dir[i]; switch (ch) { @@ -165,7 +164,7 @@ int wxFileDialog::ShowModal() case _T('\\'): while (i < nLen - 1) { - wxChar chNext = m_sDir[i + 1]; + wxChar chNext = m_dir[i + 1]; if (chNext != _T('\\') && chNext != _T('/')) break; @@ -189,10 +188,10 @@ int wxFileDialog::ShowModal() sDir += ch; } } - if ( wxStrlen(m_sWildCard) == 0 ) + if ( wxStrlen(m_wildCard) == 0 ) sTheFilter = ""; else - sTheFilter = m_sWildCard; + sTheFilter = m_wildCard; pzFilterBuffer = strtok((char*)sTheFilter.c_str(), "|"); while(pzFilterBuffer != NULL) @@ -207,38 +206,38 @@ int wxFileDialog::ShowModal() nCount++; } if (nCount == 0) - sDir += m_sFileName; + sDir += m_fileName; if (sDir.IsEmpty()) sDir = "*.*"; wxStrcpy(vFileDlg.szFullFile, sDir.c_str()); sFilterBuffer = sDir; hWnd = ::WinFileDlg( HWND_DESKTOP - ,GetHwndOf(m_pParent) + ,GetHwndOf(m_parent) ,&vFileDlg ); if (hWnd && vFileDlg.lReturn == DID_OK) { - m_asFileNames.Empty(); - if ((m_lDialogStyle & wxMULTIPLE ) && vFileDlg.ulFQFCount > 1) + m_fileNames.Empty(); + if ((m_dialogStyle & 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_sDir = wxPathOnly(wxString((const char*)*vFileDlg.papszFQFilename[0])); - m_sPath = (const char*)*vFileDlg.papszFQFilename[0]; + m_dir = wxPathOnly(wxString((const char*)*vFileDlg.papszFQFilename[0])); + m_path = (const char*)*vFileDlg.papszFQFilename[0]; } - m_sFileName = wxFileNameFromPath(wxString((const char*)*vFileDlg.papszFQFilename[i])); - m_asFileNames.Add(m_sFileName); + m_fileName = wxFileNameFromPath(wxString((const char*)*vFileDlg.papszFQFilename[i])); + m_fileNames.Add(m_fileName); } ::WinFreeFileDlgList(vFileDlg.papszFQFilename); } - else if (!(m_lDialogStyle & wxSAVE)) + else if (!(m_dialogStyle & wxSAVE)) { - m_sPath = vFileDlg.szFullFile; - m_sFileName = wxFileNameFromPath(vFileDlg.szFullFile); - m_sDir = wxPathOnly(vFileDlg.szFullFile); + m_path = vFileDlg.szFullFile; + m_fileName = wxFileNameFromPath(vFileDlg.szFullFile); + m_dir = wxPathOnly(vFileDlg.szFullFile); } else // save file { @@ -250,8 +249,8 @@ int wxFileDialog::ShowModal() wxString sExt; wxSplitPath( zFileNameBuffer - ,&m_sPath - ,&m_sFileName + ,&m_path + ,&m_fileName ,&sExt ); if (zFileNameBuffer[nIdx] == wxT('.') || sExt.IsEmpty()) @@ -269,7 +268,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,28 +284,28 @@ int wxFileDialog::ShowModal() // // Now concat extension to the fileName: // - m_sPath = wxString(zFileNameBuffer) + pzExtension; + m_path = wxString(zFileNameBuffer) + pzExtension; } } } else { - m_sPath = vFileDlg.szFullFile; + m_path = vFileDlg.szFullFile; } - m_sFileName = wxFileNameFromPath(vFileDlg.szFullFile); - m_sDir = wxPathOnly(vFileDlg.szFullFile); + m_fileName = wxFileNameFromPath(vFileDlg.szFullFile); + m_dir = wxPathOnly(vFileDlg.szFullFile); // // === Simulating the wxOVERWRITE_PROMPT >>============================ // - if ((m_lDialogStyle & wxOVERWRITE_PROMPT) && - (m_lDialogStyle & wxSAVE) && - (wxFileExists(m_sPath.c_str()))) + if ((m_dialogStyle & wxOVERWRITE_PROMPT) && + (m_dialogStyle & wxSAVE) && + (wxFileExists(m_path.c_str()))) { wxString sMessageText; sMessageText.Printf( _("File '%s' already exists.\nDo you want to replace it?") - ,m_sPath.c_str() + ,m_path.c_str() ); if (wxMessageBox( sMessageText ,wxT("Save File As")