extracted common code into a single wxfileDialogBase class (patch 758901)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22113 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2003-07-19 17:22:05 +00:00
parent f363e05c6d
commit f74172ab42
18 changed files with 431 additions and 623 deletions

View File

@@ -18,8 +18,10 @@
#pragma interface "filedlg.h"
#endif
#include "wx/dialog.h"
//----------------------------------------------------------------------------
// wxFileDialog data and generic functions
// wxFileDialog data
//----------------------------------------------------------------------------
enum
@@ -36,15 +38,74 @@ enum
WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr;
WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorDefaultWildcardStr;
// Parses the filterStr, returning the number of filters.
// Returns 0 if none or if there's a problem, they arrays will contain an equal
// number of items found before the error.
// filterStr is in the form:
// "All files (*.*)|*.*|Image Files (*.jpeg *.png)|*.jpg;*.png"
extern int wxParseFileFilter(const wxString& filterStr,
//----------------------------------------------------------------------------
// wxFileDialogBase
//----------------------------------------------------------------------------
class WXDLLEXPORT wxFileDialogBase: public wxDialog
{
public:
wxFileDialogBase () {}
wxFileDialogBase(wxWindow *parent,
const wxString& message = wxFileSelectorPromptStr,
const wxString& defaultDir = wxEmptyString,
const wxString& defaultFile = wxEmptyString,
const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
long style = 0,
const wxPoint& pos = wxDefaultPosition);
virtual void SetMessage(const wxString& message) { m_message = message; }
virtual void SetPath(const wxString& path) { m_path = path; }
virtual void SetDirectory(const wxString& dir) { m_dir = dir; }
virtual void SetFilename(const wxString& name) { m_fileName = name; }
virtual void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
virtual void SetStyle(long style) { m_dialogStyle = style; }
virtual void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
virtual wxString GetMessage() const { return m_message; }
virtual wxString GetPath() const { return m_path; }
virtual void GetPaths(wxArrayString& paths) const { paths.Empty(); paths.Add(m_path); }
virtual wxString GetDirectory() const { return m_dir; }
virtual wxString GetFilename() const { return m_fileName; }
virtual void GetFilenames(wxArrayString& files) const { files.Empty(); files.Add(m_fileName); }
virtual wxString GetWildcard() const { return m_wildCard; }
virtual long GetStyle() const { return m_dialogStyle; }
virtual int GetFilterIndex() const { return m_filterIndex; }
// Utility functions
// Parses the wildCard, returning the number of filters.
// Returns 0 if none or if there's a problem,
// The arrays will contain an equal number of items found before the error.
// wildCard is in the form:
// "All files (*)|*|Image Files (*.jpeg *.png)|*.jpg;*.png"
static int ParseWildcard(const wxString& wildCard,
wxArrayString& descriptions,
wxArrayString& filters);
// Append first extension to filePath from a ';' separated extensionList
// if filePath = "path/foo.bar" just return it as is
// if filePath = "foo[.]" and extensionList = "*.jpg;*.png" return "foo.jpg"
// if the extension is "*.j?g" (has wildcards) or "jpg" then return filePath
static wxString AppendExtension(const wxString &filePath,
const wxString &extensionList);
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;
private:
DECLARE_DYNAMIC_CLASS(wxFileDialogBase)
DECLARE_NO_COPY_CLASS(wxFileDialogBase)
};
//----------------------------------------------------------------------------
// wxFileDialog convenience functions
//----------------------------------------------------------------------------

View File

@@ -16,7 +16,6 @@
#pragma interface "filedlgg.h"
#endif
#include "wx/dialog.h"
#include "wx/listctrl.h"
#include "wx/datetime.h"
@@ -43,39 +42,27 @@ class WXDLLEXPORT wxTextCtrl;
// wxGenericFileDialog
//-------------------------------------------------------------------------
class WXDLLEXPORT wxGenericFileDialog: public wxDialog
class WXDLLEXPORT wxGenericFileDialog: public wxFileDialogBase
{
public:
wxGenericFileDialog() { }
wxGenericFileDialog(wxWindow *parent,
const wxString& message = wxFileSelectorPromptStr,
const wxString& defaultDir = _T(""),
const wxString& defaultFile = _T(""),
const wxString& defaultDir = wxEmptyString,
const wxString& defaultFile = wxEmptyString,
const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
long style = 0,
const wxPoint& pos = wxDefaultPosition);
virtual ~wxGenericFileDialog();
void SetMessage(const wxString& message) { SetTitle(message); }
void SetPath(const wxString& path);
void SetDirectory(const wxString& dir) { m_dir = dir; }
void SetFilename(const wxString& name) { m_fileName = name; }
void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
void SetStyle(long style) { m_dialogStyle = style; }
void SetFilterIndex(int filterIndex);
wxString GetMessage() const { return m_message; }
wxString GetPath() const { return m_path; }
wxString GetDirectory() const { return m_dir; }
wxString GetFilename() const { return m_fileName; }
wxString GetWildcard() const { return m_wildCard; }
long GetStyle() const { return m_dialogStyle; }
int GetFilterIndex() const { return m_filterIndex; }
virtual void SetMessage(const wxString& message) { SetTitle(message); }
virtual void SetPath(const wxString& path);
virtual void SetFilterIndex(int filterIndex);
// for multiple file selection
void GetPaths(wxArrayString& paths) const;
void GetFilenames(wxArrayString& files) const;
virtual void GetPaths(wxArrayString& paths) const;
virtual void GetFilenames(wxArrayString& files) const;
// implementation only from now on
// -------------------------------
@@ -103,13 +90,6 @@ protected:
// use the filter with the given index
void DoSetFilterIndex(int filterindex);
wxString m_message;
long m_dialogStyle;
wxString m_dir;
wxString m_path; // Full path
wxString m_fileName;
wxString m_wildCard;
int m_filterIndex;
wxString m_filterExtension;
wxChoice *m_choice;
wxTextCtrl *m_text;

View File

@@ -15,50 +15,24 @@
#pragma interface
#endif
#include "wx/dialog.h"
//-------------------------------------------------------------------------
// File selector
// wxFileDialog
//-------------------------------------------------------------------------
class wxFileDialog: public wxDialog
class wxFileDialog: public wxFileDialogBase
{
public:
wxFileDialog() { }
wxFileDialog(wxWindow *parent,
const wxString& message = wxFileSelectorPromptStr,
const wxString& defaultDir = "",
const wxString& defaultFile = "",
const wxString& defaultDir = wxEmptyString,
const wxString& defaultFile = wxEmptyString,
const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
long style = 0,
const wxPoint& pos = wxDefaultPosition);
void SetMessage(const wxString& message) { m_message = message; }
void SetPath(const wxString& path);
void SetDirectory(const wxString& dir) { m_dir = dir; }
void SetFilename(const wxString& name) { m_fileName = name; }
void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
void SetStyle(long style) { m_dialogStyle = style; }
void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
wxString GetMessage() const { return m_message; }
wxString GetPath() const { return m_path; }
wxString GetDirectory() const { return m_dir; }
wxString GetFilename() const { return m_fileName; }
wxString GetWildcard() const { return m_wildCard; }
long GetStyle() const { return m_dialogStyle; }
int GetFilterIndex() const { return m_filterIndex ; }
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;
virtual void SetPath(const wxString& path);
private:
DECLARE_DYNAMIC_CLASS(wxFileDialog)

View File

@@ -15,50 +15,24 @@
#pragma interface
#endif
#include "wx/dialog.h"
//-------------------------------------------------------------------------
// File selector
// wxFileDialog
//-------------------------------------------------------------------------
class wxFileDialog: public wxDialog
class wxFileDialog: public wxFileDialogBase
{
public:
wxFileDialog() { }
wxFileDialog(wxWindow *parent,
const wxString& message = wxFileSelectorPromptStr,
const wxString& defaultDir = "",
const wxString& defaultFile = "",
const wxString& defaultDir = wxEmptyString,
const wxString& defaultFile = wxEmptyString,
const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
long style = 0,
const wxPoint& pos = wxDefaultPosition);
void SetMessage(const wxString& message) { m_message = message; }
void SetPath(const wxString& path);
void SetDirectory(const wxString& dir) { m_dir = dir; }
void SetFilename(const wxString& name) { m_fileName = name; }
void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
void SetStyle(long style) { m_dialogStyle = style; }
void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
wxString GetMessage() const { return m_message; }
wxString GetPath() const { return m_path; }
wxString GetDirectory() const { return m_dir; }
wxString GetFilename() const { return m_fileName; }
wxString GetWildcard() const { return m_wildCard; }
long GetStyle() const { return m_dialogStyle; }
int GetFilterIndex() const { return m_filterIndex ; }
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;
virtual void SetPath(const wxString& path);
private:
DECLARE_DYNAMIC_CLASS(wxFileDialog)

View File

@@ -16,56 +16,34 @@
#pragma interface "filedlg.h"
#endif
#include "wx/dialog.h"
//-------------------------------------------------------------------------
// wxFileDialog
//-------------------------------------------------------------------------
/*
* File selector
*/
class WXDLLEXPORT wxFileDialog: public wxDialog
class WXDLLEXPORT wxFileDialog: public wxFileDialogBase
{
DECLARE_DYNAMIC_CLASS(wxFileDialog)
protected:
wxString m_message;
long m_dialogStyle;
wxWindow * m_parent;
wxString m_dir;
wxString m_path; // Full path
wxString m_fileName;
wxArrayString m_fileNames;
wxArrayString m_paths;
wxString m_wildCard;
int m_filterIndex;
public:
wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr,
const wxString& defaultDir = wxEmptyString, const wxString& defaultFile = wxEmptyString, const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
long style = 0, const wxPoint& pos = wxDefaultPosition);
wxFileDialog(wxWindow *parent,
const wxString& message = wxFileSelectorPromptStr,
const wxString& defaultDir = wxEmptyString,
const wxString& defaultFile = wxEmptyString,
const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
long style = 0,
const wxPoint& pos = 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; }
virtual void GetPaths(wxArrayString& paths) const { paths = m_paths; }
inline wxString GetMessage() const { return m_message; }
inline wxString GetPath() const { return m_path; }
inline wxString GetDirectory() const { return m_dir; }
inline wxString GetFilename() const { return m_fileName; }
void GetPaths(wxArrayString& paths) const { paths = m_paths; }
void GetFilenames(wxArrayString& files) const { files = m_fileNames; }
inline wxString GetWildcard() const { return m_wildCard; }
inline long GetStyle() const { return m_dialogStyle; }
inline int GetFilterIndex() const { return m_filterIndex ; }
int ShowModal();
virtual int ShowModal();
// not supported for file dialog, RR
virtual void DoSetSize(int WXUNUSED(x), int WXUNUSED(y),
int WXUNUSED(width), int WXUNUSED(height),
int WXUNUSED(sizeFlags) = wxSIZE_AUTO) {}
};
#endif // _WX_FILEDLG_H_

View File

@@ -16,55 +16,29 @@
#pragma interface "filedlg.h"
#endif
#include "wx/dialog.h"
//-------------------------------------------------------------------------
// wxFileDialog
//-------------------------------------------------------------------------
/*
* File selector
*/
class WXDLLEXPORT wxFileDialog: public wxDialog
class WXDLLEXPORT wxFileDialog: public wxFileDialogBase
{
DECLARE_DYNAMIC_CLASS(wxFileDialog)
public:
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;
// For Motif
wxPoint m_pos;
static wxString m_fileSelectorAnswer;
static bool m_fileSelectorReturned;
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 *parent,
const wxString& message = wxFileSelectorPromptStr,
const wxString& defaultDir = wxEmptyString,
const wxString& defaultFile = wxEmptyString,
const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
long style = 0,
const wxPoint& pos = 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 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 ; }
int ShowModal();
virtual int ShowModal();
};
#endif // _WX_FILEDLG_H_

View File

@@ -16,13 +16,11 @@
#pragma interface "filedlg.h"
#endif
#include "wx/dialog.h"
//-------------------------------------------------------------------------
// wxFileDialog
//-------------------------------------------------------------------------
/*
* File selector
*/
class WXDLLEXPORT wxFileDialog: public wxDialog
class WXDLLEXPORT wxFileDialog: public wxFileDialogBase
{
public:
wxFileDialog(wxWindow *parent,
@@ -33,38 +31,14 @@ public:
long style = 0,
const wxPoint& pos = wxDefaultPosition);
void SetMessage(const wxString& message) { m_message = message; }
void SetPath(const wxString& path);
void SetDirectory(const wxString& dir) { m_dir = dir; }
void SetFilename(const wxString& name) { m_fileName = name; }
void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
void SetStyle(long style) { m_dialogStyle = style; }
void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
wxString GetMessage() const { return m_message; }
wxString GetPath() const { return m_path; }
void GetPaths(wxArrayString& paths) const;
wxString GetDirectory() const { return m_dir; }
wxString GetFilename() const { return m_fileName; }
void GetFilenames(wxArrayString& files) const { files = m_fileNames; }
wxString GetWildcard() const { return m_wildCard; }
long GetStyle() const { return m_dialogStyle; }
int GetFilterIndex() const { return m_filterIndex ; }
virtual void SetPath(const wxString& path);
virtual void GetPaths(wxArrayString& paths) const;
virtual int ShowModal();
protected:
wxString m_message;
long m_dialogStyle;
wxWindow * m_parent;
wxString m_dir;
wxString m_path; // Full path
wxString m_fileName;
wxArrayString m_fileNames;
wxString m_wildCard;
int m_filterIndex;
private:
wxArrayString m_fileNames;
DECLARE_DYNAMIC_CLASS(wxFileDialog)
DECLARE_NO_COPY_CLASS(wxFileDialog)
};

View File

@@ -12,56 +12,29 @@
#ifndef _WX_FILEDLG_H_
#define _WX_FILEDLG_H_
#include "wx/dialog.h"
//-------------------------------------------------------------------------
// wxFileDialog
//-------------------------------------------------------------------------
/*
* File selector
*/
class WXDLLEXPORT wxFileDialog: public wxDialog
class WXDLLEXPORT wxFileDialog: public wxFileDialogBase
{
DECLARE_DYNAMIC_CLASS(wxFileDialog)
public:
wxFileDialog( wxWindow* pParent
,const wxString& rsMessage = wxFileSelectorPromptStr
,const wxString& rsDefaultDir = ""
,const wxString& rsDefaultFile = ""
,const wxString& rsDefaultDir = wxEmptyString
,const wxString& rsDefaultFile = wxEmptyString
,const wxString& rsWildCard = wxFileSelectorDefaultWildcardStr
,long lStyle = 0
,const wxPoint& rPos = wxDefaultPosition
);
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(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 = m_asFileNames; }
inline wxString GetWildcard(void) const { return m_sWildCard; }
inline long GetStyle(void) const { return m_lDialogStyle; }
inline int GetFilterIndex() const { return m_nFilterIndex ; }
virtual void GetPaths(wxArrayString& rasPath) const;
int ShowModal();
protected:
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;
wxArrayString m_fileNames;
}; // end of CLASS wxFileDialog
#endif // _WX_FILEDLG_H_