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