X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/06cc1fb991aa0b6ec8966627d3c6d6bd0ade04be..533544f2ea53be44a511dfd795db61c15a596e85:/include/wx/generic/filedlgg.h diff --git a/include/wx/generic/filedlgg.h b/include/wx/generic/filedlgg.h index 95e196c06c..bc6ee53637 100644 --- a/include/wx/generic/filedlgg.h +++ b/include/wx/generic/filedlgg.h @@ -12,13 +12,9 @@ #ifndef _WX_FILEDLGG_H_ #define _WX_FILEDLGG_H_ -#if defined(__GNUG__) && !defined(__APPLE__) -#pragma interface "filedlgg.h" -#endif - -#include "wx/dialog.h" #include "wx/listctrl.h" #include "wx/datetime.h" +#include "wx/filefn.h" //----------------------------------------------------------------------------- // classes @@ -35,63 +31,53 @@ class WXDLLEXPORT wxListItem; class WXDLLEXPORT wxStaticText; class WXDLLEXPORT wxTextCtrl; -#if defined(__WXUNIVERSAL__)||defined(__WXGTK__)||defined(__WXX11__)||defined(__WXMGL__)||defined(__WXCOCOA__) +#if defined(__WXUNIVERSAL__)||defined(__WXX11__)||defined(__WXMGL__)||defined(__WXCOCOA__) #define USE_GENERIC_FILEDIALOG #endif -#ifdef USE_GENERIC_FILEDIALOG - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorPromptStr; -WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorDefaultWildcardStr; - -#endif // USE_GENERIC_FILEDIALOG - //------------------------------------------------------------------------- -// File selector +// wxGenericFileDialog //------------------------------------------------------------------------- -class WXDLLEXPORT wxGenericFileDialog: public wxDialog +class WXDLLEXPORT wxGenericFileDialog: public wxFileDialogBase { public: - wxGenericFileDialog() { } + wxGenericFileDialog() : wxFileDialogBase() { Init(); } wxGenericFileDialog(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, + bool bypassGenericImpl = false ); + + bool Create( 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); + const wxPoint& pos = wxDefaultPosition, + bool bypassGenericImpl = false ); + 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); + virtual void SetWildcard(const wxString& wildCard); // 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 // ------------------------------- virtual int ShowModal(); + virtual bool Show( bool show = true ); void OnSelected( wxListEvent &event ); void OnActivated( wxListEvent &event ); @@ -110,17 +96,14 @@ public: virtual void UpdateControls(); +private: + // Don't use this implementation at all :-) + bool m_bypassGenericImpl; + 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; @@ -131,6 +114,7 @@ protected: wxBitmapButton *m_newDirButton; private: + void Init(); DECLARE_DYNAMIC_CLASS(wxGenericFileDialog) DECLARE_EVENT_TABLE() @@ -143,63 +127,28 @@ private: class WXDLLEXPORT wxFileDialog: public wxGenericFileDialog { - DECLARE_DYNAMIC_CLASS(wxFileDialog) - public: wxFileDialog() {} wxFileDialog(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) :wxGenericFileDialog(parent, message, defaultDir, defaultFile, wildCard, style, pos) { } -}; -// File selector - backward compatibility -WXDLLEXPORT wxString -wxFileSelector(const wxChar *message = wxFileSelectorPromptStr, - const wxChar *default_path = NULL, - const wxChar *default_filename = NULL, - const wxChar *default_extension = NULL, - const wxChar *wildcard = wxFileSelectorDefaultWildcardStr, - int flags = 0, - wxWindow *parent = NULL, - int x = -1, int y = -1); - -// An extended version of wxFileSelector -WXDLLEXPORT wxString -wxFileSelectorEx(const wxChar *message = wxFileSelectorPromptStr, - const wxChar *default_path = NULL, - const wxChar *default_filename = NULL, - int *indexDefaultExtension = NULL, - const wxChar *wildcard = wxFileSelectorDefaultWildcardStr, - int flags = 0, - wxWindow *parent = NULL, - int x = -1, int y = -1); - -// Ask for filename to load -WXDLLEXPORT wxString -wxLoadFileSelector(const wxChar *what, - const wxChar *extension, - const wxChar *default_name = (const wxChar *)NULL, - wxWindow *parent = (wxWindow *) NULL); - -// Ask for filename to save -WXDLLEXPORT wxString -wxSaveFileSelector(const wxChar *what, - const wxChar *extension, - const wxChar *default_name = (const wxChar *) NULL, - wxWindow *parent = (wxWindow *) NULL); +private: + DECLARE_DYNAMIC_CLASS(wxFileDialog) +}; #endif // USE_GENERIC_FILEDIALOG //----------------------------------------------------------------------------- -// wxFileData +// wxFileData - a class to hold the file info for the wxFileCtrl //----------------------------------------------------------------------------- class WXDLLEXPORT wxFileData @@ -214,29 +163,47 @@ public: is_drive = 0x0008 }; + wxFileData() { Init(); } + // Full copy constructor + wxFileData( const wxFileData& fileData ) { Copy(fileData); } + // Create a filedata from this information wxFileData( const wxString &filePath, const wxString &fileName, fileType type, int image_id ); + // make a full copy of the other wxFileData + void Copy( const wxFileData &other ); + + // (re)read the extra data about the file from the system + void ReadData(); + // get the name of the file, dir, drive wxString GetFileName() const { return m_fileName; } // get the full path + name of the file, dir, path wxString GetFilePath() const { return m_filePath; } - long GetSize() const { return m_size; } + // Set the path + name and name of the item + void SetNewName( const wxString &filePath, const wxString &fileName ); + + // Get the size of the file in bytes + wxFileOffset GetSize() const { return m_size; } // Get the type of file, either file extension or , , - wxString GetType() const; + wxString GetFileType() const; // get the last modification time - wxDateTime GetTime() const { return m_dateTime; } + wxDateTime GetDateTime() const { return m_dateTime; } + // Get the time as a formatted string wxString GetModificationTime() const; // in UNIX get rwx for file, in MSW get attributes ARHS wxString GetPermissions() const { return m_permissions; } + // Get the id of the image used in a wxImageList int GetImageId() const { return m_image; } + bool IsFile() const { return !IsDir() && !IsLink() && !IsDrive(); } bool IsDir() const { return (m_type & is_dir ) != 0; } bool IsLink() const { return (m_type & is_link ) != 0; } bool IsExe() const { return (m_type & is_exe ) != 0; } bool IsDrive() const { return (m_type & is_drive) != 0; } - int GetFileType() const { return m_type; } + // Get/Set the type of file, file/dir/drive/link + int GetType() const { return m_type; } // the wxFileCtrl fields in report view enum fileListFieldType @@ -251,21 +218,28 @@ public: FileList_Max }; + // Get the entry for report view of wxFileCtrl wxString GetEntry( fileListFieldType num ) const; // Get a string representation of the file info wxString GetHint() const; + // initialize a wxListItem attributes void MakeItem( wxListItem &item ); - void SetNewName( const wxString &filePath, const wxString &fileName ); -private: + // operators + wxFileData& operator = (const wxFileData& fd) { Copy(fd); return *this; } + +protected: wxString m_fileName; wxString m_filePath; - long m_size; + wxFileOffset m_size; wxDateTime m_dateTime; wxString m_permissions; int m_type; - int m_image; + int m_image; + +private: + void Init(); }; //----------------------------------------------------------------------------- @@ -290,10 +264,11 @@ public: virtual void ChangeToListMode(); virtual void ChangeToReportMode(); virtual void ChangeToSmallIconMode(); - virtual void ShowHidden( bool show = TRUE ); + virtual void ShowHidden( bool show = true ); bool GetShowHidden() const { return m_showHidden; } virtual long Add( wxFileData *fd, wxListItem &item ); + virtual void UpdateItem(const wxListItem &item); virtual void UpdateFiles(); virtual void MakeDir(); virtual void GoToParentDir(); @@ -304,6 +279,7 @@ public: wxString GetDir() const { return m_dirName; } void OnListDeleteItem( wxListEvent &event ); + void OnListDeleteAllItems( wxListEvent &event ); void OnListEndLabelEdit( wxListEvent &event ); void OnListColClick( wxListEvent &event ); @@ -312,7 +288,7 @@ public: wxFileData::fileListFieldType GetSortField() const { return m_sort_field; } protected: - void FreeItemData(const wxListItem& item); + void FreeItemData(wxListItem& item); void FreeAllItemsData(); wxString m_dirName; @@ -323,11 +299,9 @@ protected: wxFileData::fileListFieldType m_sort_field; private: - DECLARE_DYNAMIC_CLASS(wxFileCtrl); + DECLARE_DYNAMIC_CLASS(wxFileCtrl) DECLARE_EVENT_TABLE() }; -#endif - // _WX_FILEDLGG_H_ - +#endif // _WX_FILEDLGG_H_