FileDlg updates.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16607 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -25,41 +25,47 @@ class WXDLLEXPORT wxFileDialog: public wxDialog
|
|||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS(wxFileDialog)
|
DECLARE_DYNAMIC_CLASS(wxFileDialog)
|
||||||
public:
|
public:
|
||||||
wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr,
|
wxFileDialog( wxWindow* pParent
|
||||||
const wxString& defaultDir = "", const wxString& defaultFile = "", const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
|
,const wxString& rsMessage = wxFileSelectorPromptStr
|
||||||
long style = 0, const wxPoint& pos = wxDefaultPosition);
|
,const wxString& rsDefaultDir = ""
|
||||||
|
,const wxString& rsDefaultFile = ""
|
||||||
|
,const wxString& rsWildCard = wxFileSelectorDefaultWildcardStr
|
||||||
|
,long lStyle = 0
|
||||||
|
,const wxPoint& rPos = wxDefaultPosition
|
||||||
|
);
|
||||||
|
|
||||||
inline void SetMessage(const wxString& message) { m_message = message; }
|
inline void SetMessage(const wxString& rsMessage) { m_sMessage = rsMessage; }
|
||||||
inline void SetPath(const wxString& path) { m_path = path; }
|
inline void SetPath(const wxString& rsPath) { m_sPath = rsPath; }
|
||||||
inline void SetDirectory(const wxString& dir) { m_dir = dir; }
|
inline void SetDirectory(const wxString& rsDir) { m_sDir = rsDir; }
|
||||||
inline void SetFilename(const wxString& name) { m_fileName = name; }
|
inline void SetFilename(const wxString& rsName) { m_sFileName = rsName; }
|
||||||
inline void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
|
inline void SetWildcard(const wxString& rsWildCard) { m_sWildCard = rsWildCard; }
|
||||||
inline void SetStyle(long style) { m_dialogStyle = style; }
|
inline void SetStyle(long lStyle) { m_lDialogStyle = lStyle; }
|
||||||
inline void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
|
inline void SetFilterIndex(int nFilterIndex) { m_nFilterIndex = nFilterIndex; }
|
||||||
|
|
||||||
inline wxString GetMessage() const { return m_message; }
|
inline wxString GetMessage(void) const { return m_sMessage; }
|
||||||
inline wxString GetPath() const { return m_path; }
|
inline wxString GetPath(void) const { return m_sPath; }
|
||||||
inline void GetPaths(wxArrayString& a) { a.Empty(); a.Add(m_path); }
|
void GetPaths(wxArrayString& rasPath) const;
|
||||||
inline wxString GetDirectory() const { return m_dir; }
|
inline wxString GetDirectory(void) const { return m_sDir; }
|
||||||
inline wxString GetFilename() const { return m_fileName; }
|
inline wxString GetFilename(void) const { return m_sFileName; }
|
||||||
inline void GetFilenames(wxArrayString& a) { a.Empty();
|
inline void GetFilenames(wxArrayString& rasFilenames) { rasFilenames.Empty(); rasFilenames.Add( m_sFileName); }
|
||||||
a.Add( m_fileName); }
|
inline wxString GetWildcard(void) const { return m_sWildCard; }
|
||||||
inline wxString GetWildcard() const { return m_wildCard; }
|
inline long GetStyle(void) const { return m_lDialogStyle; }
|
||||||
inline long GetStyle() const { return m_dialogStyle; }
|
inline int GetFilterIndex() const { return m_nFilterIndex ; }
|
||||||
inline int GetFilterIndex() const { return m_filterIndex ; }
|
|
||||||
|
|
||||||
int ShowModal();
|
int ShowModal();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
wxString m_message;
|
wxString m_sMessage;
|
||||||
long m_dialogStyle;
|
long m_lDialogStyle;
|
||||||
wxWindow * m_parent;
|
wxWindow* m_pParent;
|
||||||
wxString m_dir;
|
wxString m_sDir;
|
||||||
wxString m_path; // Full path
|
wxString m_sPath; // Full path
|
||||||
wxString m_fileName;
|
wxString m_sFileName;
|
||||||
wxString m_wildCard;
|
wxArrayString m_asFileNames;
|
||||||
int m_filterIndex;
|
wxString m_sWildCard;
|
||||||
};
|
int m_nFilterIndex;
|
||||||
|
wxPoint m_vPos;
|
||||||
|
}; // end of CLASS wxFileDialog
|
||||||
|
|
||||||
#define wxOPEN 0x0001
|
#define wxOPEN 0x0001
|
||||||
#define wxSAVE 0x0002
|
#define wxSAVE 0x0002
|
||||||
@@ -67,43 +73,52 @@ protected:
|
|||||||
#define wxHIDE_READONLY 0x0008
|
#define wxHIDE_READONLY 0x0008
|
||||||
#define wxFILE_MUST_EXIST 0x0010
|
#define wxFILE_MUST_EXIST 0x0010
|
||||||
|
|
||||||
|
//
|
||||||
// File selector - backward compatibility
|
// File selector - backward compatibility
|
||||||
WXDLLEXPORT wxString wxFileSelector( const char *message = wxFileSelectorPromptStr
|
//
|
||||||
,const char *default_path = NULL
|
WXDLLEXPORT wxString wxFileSelector( const char* pzMessage = wxFileSelectorPromptStr
|
||||||
,const char *default_filename = NULL
|
,const char* pzDefaultPath = NULL
|
||||||
,const char *default_extension = NULL
|
,const char* pzDefaultFilename = NULL
|
||||||
,const char *wildcard = wxFileSelectorDefaultWildcardStr
|
,const char* pzDefaultExtension = NULL
|
||||||
,int flags = 0
|
,const char* pzWildcard = wxFileSelectorDefaultWildcardStr
|
||||||
,wxWindow *parent = NULL
|
,int nFlags = 0
|
||||||
,int x = -1
|
,wxWindow* pParent = NULL
|
||||||
,int y = -1
|
,int nX = -1
|
||||||
|
,int nY = -1
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
// An extended version of wxFileSelector
|
// An extended version of wxFileSelector
|
||||||
WXDLLEXPORT wxString wxFileSelectorEx( const char *message = wxFileSelectorPromptStr
|
|
||||||
,const char *default_path = NULL
|
WXDLLEXPORT wxString wxFileSelectorEx( const char* pzMessage = wxFileSelectorPromptStr
|
||||||
,const char *default_filename = NULL
|
,const char* pzDefaultPath = NULL
|
||||||
,int *indexDefaultExtension = NULL
|
,const char* pzDefaultFilename = NULL
|
||||||
,const char *wildcard = wxFileSelectorDefaultWildcardStr
|
,int* pnIndexDefaultExtension = NULL
|
||||||
,int flags = 0
|
,const char* pzWildcard = wxFileSelectorDefaultWildcardStr
|
||||||
,wxWindow *parent = NULL
|
,int nFlags = 0
|
||||||
,int x = -1
|
,wxWindow* pParent = NULL
|
||||||
,int y = -1
|
,int nX = -1
|
||||||
|
,int nY = -1
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
// Generic file load dialog
|
// Generic file load dialog
|
||||||
WXDLLEXPORT wxString wxLoadFileSelector( const char *what
|
//
|
||||||
,const char *extension
|
WXDLLEXPORT wxString wxLoadFileSelector( const char* pzWhat
|
||||||
,const char *default_name = NULL
|
,const char* pzExtension
|
||||||
,wxWindow *parent = NULL
|
,const char* pzDefaultName = NULL
|
||||||
|
,wxWindow* pParent = NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
// Generic file save dialog
|
// Generic file save dialog
|
||||||
WXDLLEXPORT wxString wxSaveFileSelector( const char *what
|
//
|
||||||
,const char *extension
|
WXDLLEXPORT wxString wxSaveFileSelector( const char* pzWhat
|
||||||
,const char *default_name = NULL
|
,const char* pzExtension
|
||||||
,wxWindow *parent = NULL
|
,const char* pzDefaultName = NULL
|
||||||
|
,wxWindow* pParent = NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// _WX_FILEDLG_H_
|
|
||||||
|
// _WX_FILEDLG_H_
|
||||||
|
@@ -227,12 +227,14 @@ int wxFileDialog::ShowModal()
|
|||||||
{
|
{
|
||||||
wxString sTheFilter;
|
wxString sTheFilter;
|
||||||
wxString sFilterBuffer;
|
wxString sFilterBuffer;
|
||||||
|
wxChar* pzFilterBuffer;
|
||||||
static wxChar zFileNameBuffer[wxMAXPATH]; // the file-name
|
static wxChar zFileNameBuffer[wxMAXPATH]; // the file-name
|
||||||
HWND hWnd = 0;
|
HWND hWnd = 0;
|
||||||
wxChar zTitleBuffer[wxMAXFILE + 1 + wxMAXEXT]; // the file-name, without path
|
wxChar zTitleBuffer[wxMAXFILE + 1 + wxMAXEXT]; // the file-name, without path
|
||||||
wxString sDir;
|
wxString sDir;
|
||||||
size_t i;
|
size_t i;
|
||||||
size_t nLen = m_sDir.length();
|
size_t nLen = m_sDir.length();
|
||||||
|
int nCount = 0;
|
||||||
FILEDLG vFileDlg;
|
FILEDLG vFileDlg;
|
||||||
ULONG lFlags = 0L;
|
ULONG lFlags = 0L;
|
||||||
|
|
||||||
@@ -246,9 +248,11 @@ int wxFileDialog::ShowModal()
|
|||||||
*zFileNameBuffer = wxT('\0');
|
*zFileNameBuffer = wxT('\0');
|
||||||
*zTitleBuffer = wxT('\0');
|
*zTitleBuffer = wxT('\0');
|
||||||
|
|
||||||
m_lDialogStyle & wxSAVE ? lFlags != FDS_SAVEAS_DIALOG
|
if (m_lDialogStyle & wxSAVE)
|
||||||
: FDS_OPEN_DIALOG
|
lFlags = FDS_SAVEAS_DIALOG;
|
||||||
;
|
else
|
||||||
|
lFlags = FDS_OPEN_DIALOG;
|
||||||
|
|
||||||
if ((m_lDialogStyle & wxHIDE_READONLY) || (m_lDialogStyle & wxSAVE))
|
if ((m_lDialogStyle & wxHIDE_READONLY) || (m_lDialogStyle & wxSAVE))
|
||||||
lFlags |= FDS_SAVEAS_DIALOG;
|
lFlags |= FDS_SAVEAS_DIALOG;
|
||||||
if (m_lDialogStyle & wxMULTIPLE )
|
if (m_lDialogStyle & wxMULTIPLE )
|
||||||
@@ -309,42 +313,27 @@ int wxFileDialog::ShowModal()
|
|||||||
if ( wxStrlen(m_sWildCard) == 0 )
|
if ( wxStrlen(m_sWildCard) == 0 )
|
||||||
sTheFilter = "";
|
sTheFilter = "";
|
||||||
else
|
else
|
||||||
sTheFilter = m_sWildCard ;
|
sTheFilter = m_sWildCard;
|
||||||
|
|
||||||
if (!wxStrchr(sTheFilter, wxT('|') ) )
|
pzFilterBuffer = strtok((char*)sTheFilter.c_str(), "|");
|
||||||
|
while(pzFilterBuffer != NULL)
|
||||||
{
|
{
|
||||||
//
|
if (nCount > 0 && !(nCount % 2))
|
||||||
// Only one filter ==> default text
|
sDir += wxT(";");
|
||||||
//
|
if (nCount % 2)
|
||||||
sFilterBuffer.Printf( _("Files (%s)|%s")
|
|
||||||
,sTheFilter.c_str()
|
|
||||||
,sTheFilter.c_str()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ // more then one filter
|
|
||||||
sFilterBuffer = sTheFilter;
|
|
||||||
}
|
|
||||||
|
|
||||||
sFilterBuffer += wxT("|");
|
|
||||||
|
|
||||||
//
|
|
||||||
// Replace | with \0
|
|
||||||
//
|
|
||||||
for (i = 0; i < sFilterBuffer.Len(); i++ )
|
|
||||||
{
|
|
||||||
if (sFilterBuffer.GetChar(i) == wxT('|'))
|
|
||||||
{
|
{
|
||||||
sFilterBuffer[i] = wxT('\0');
|
sDir += pzFilterBuffer;
|
||||||
}
|
}
|
||||||
|
pzFilterBuffer = strtok(NULL, "|");
|
||||||
|
nCount++;
|
||||||
}
|
}
|
||||||
if (!sTheFilter.IsEmpty())
|
if (nCount == 0)
|
||||||
sDir += sTheFilter;
|
|
||||||
else
|
|
||||||
sDir += m_sFileName;
|
sDir += m_sFileName;
|
||||||
|
if (sDir.IsEmpty())
|
||||||
|
sDir = "*.*";
|
||||||
wxStrcpy(vFileDlg.szFullFile, sDir.c_str());
|
wxStrcpy(vFileDlg.szFullFile, sDir.c_str());
|
||||||
|
|
||||||
hWnd = ::WinFileDlg( GetHwndOf(m_pParent)
|
hWnd = ::WinFileDlg( HWND_DESKTOP
|
||||||
,GetHwndOf(m_pParent)
|
,GetHwndOf(m_pParent)
|
||||||
,&vFileDlg
|
,&vFileDlg
|
||||||
);
|
);
|
||||||
@@ -357,14 +346,15 @@ int wxFileDialog::ShowModal()
|
|||||||
{
|
{
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
{
|
{
|
||||||
m_sDir = wxPathOnly(wxString((const char*)vFileDlg.papszFQFilename[i]));
|
m_sDir = wxPathOnly(wxString((const char*)*vFileDlg.papszFQFilename[0]));
|
||||||
m_sPath = (const char*)vFileDlg.papszFQFilename[i];
|
m_sPath = (const char*)*vFileDlg.papszFQFilename[0];
|
||||||
}
|
}
|
||||||
m_sFileName = wxFileNameFromPath(wxString((const char*)vFileDlg.papszFQFilename[i]));
|
m_sFileName = wxFileNameFromPath(wxString((const char*)*vFileDlg.papszFQFilename[i]));
|
||||||
m_asFileNames.Add(m_sFileName);
|
m_asFileNames.Add(m_sFileName);
|
||||||
}
|
}
|
||||||
|
::WinFreeFileDlgList(vFileDlg.papszFQFilename);
|
||||||
}
|
}
|
||||||
else if (!m_lDialogStyle & wxSAVE)
|
else if (!(m_lDialogStyle & wxSAVE))
|
||||||
{
|
{
|
||||||
m_sPath = vFileDlg.szFullFile;
|
m_sPath = vFileDlg.szFullFile;
|
||||||
m_sFileName = wxFileNameFromPath(vFileDlg.szFullFile);
|
m_sFileName = wxFileNameFromPath(vFileDlg.szFullFile);
|
||||||
|
@@ -12650,6 +12650,8 @@ EXPORTS
|
|||||||
__ct__12wxFileDialogFP8wxWindowRC8wxStringN32lRC7wxPoint
|
__ct__12wxFileDialogFP8wxWindowRC8wxStringN32lRC7wxPoint
|
||||||
;wxFileDialog::ShowModal()
|
;wxFileDialog::ShowModal()
|
||||||
ShowModal__12wxFileDialogFv
|
ShowModal__12wxFileDialogFv
|
||||||
|
;wxFileDialog::GetPaths(wxArrayString&) const
|
||||||
|
GetPaths__12wxFileDialogCFR13wxArrayString
|
||||||
__vft12wxFileDialog8wxObject
|
__vft12wxFileDialog8wxObject
|
||||||
;wxFileDialog::sm_classwxFileDialog
|
;wxFileDialog::sm_classwxFileDialog
|
||||||
sm_classwxFileDialog__12wxFileDialog
|
sm_classwxFileDialog__12wxFileDialog
|
||||||
|
Reference in New Issue
Block a user