X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..5a5f305a0f1cdd740d7ca299764755a62108fbda:/include/wx/generic/filedlgg.h diff --git a/include/wx/generic/filedlgg.h b/include/wx/generic/filedlgg.h index 0038969774..2f66fee199 100644 --- a/include/wx/generic/filedlgg.h +++ b/include/wx/generic/filedlgg.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: filedlgg.h +// Name: wx/generic/filedlgg.h // Purpose: wxGenericFileDialog // Author: Robert Roebling // Modified by: @@ -12,57 +12,78 @@ #ifndef _WX_FILEDLGG_H_ #define _WX_FILEDLGG_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "filedlgg.h" -#endif - #include "wx/listctrl.h" #include "wx/datetime.h" +#include "wx/filefn.h" +#include "wx/artprov.h" +#include "wx/filedlg.h" +#include "wx/generic/filectrlg.h" //----------------------------------------------------------------------------- // classes //----------------------------------------------------------------------------- -class WXDLLEXPORT wxBitmapButton; -class WXDLLEXPORT wxCheckBox; -class WXDLLEXPORT wxChoice; -class WXDLLEXPORT wxFileData; -class WXDLLEXPORT wxFileCtrl; -class WXDLLEXPORT wxGenericFileDialog; -class WXDLLEXPORT wxListEvent; -class WXDLLEXPORT wxListItem; -class WXDLLEXPORT wxStaticText; -class WXDLLEXPORT wxTextCtrl; - -#if defined(__WXUNIVERSAL__)||defined(__WXGTK__)||defined(__WXX11__)||defined(__WXMGL__)||defined(__WXCOCOA__) - #define USE_GENERIC_FILEDIALOG -#endif +class WXDLLIMPEXP_FWD_CORE wxBitmapButton; +class WXDLLIMPEXP_FWD_CORE wxGenericFileCtrl; +class WXDLLIMPEXP_FWD_CORE wxGenericFileDialog; +class WXDLLIMPEXP_FWD_CORE wxFileCtrlEvent; //------------------------------------------------------------------------- // wxGenericFileDialog //------------------------------------------------------------------------- -class WXDLLEXPORT wxGenericFileDialog: public wxFileDialogBase +class WXDLLIMPEXP_CORE wxGenericFileDialog: public wxFileDialogBase { public: - wxGenericFileDialog() { } + wxGenericFileDialog() : wxFileDialogBase() { Init(); } wxGenericFileDialog(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, + const wxString& message = wxFileSelectorPromptStr, const wxString& defaultDir = wxEmptyString, const wxString& defaultFile = wxEmptyString, + const wxString& wildCard = wxFileSelectorDefaultWildcardStr, + long style = wxFD_DEFAULT_STYLE, + const wxPoint& pos = wxDefaultPosition, + const wxSize& sz = wxDefaultSize, + const wxString& name = wxFileDialogNameStr, + bool bypassGenericImpl = false ); + + bool Create( 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); + long style = wxFD_DEFAULT_STYLE, + const wxPoint& pos = wxDefaultPosition, + const wxSize& sz = wxDefaultSize, + const wxString& name = wxFileDialogNameStr, + bool bypassGenericImpl = false ); + virtual ~wxGenericFileDialog(); virtual void SetMessage(const wxString& message) { SetTitle(message); } - virtual void SetPath(const wxString& path); - virtual void SetFilterIndex(int filterIndex); - - // for multiple file selection - virtual void GetPaths(wxArrayString& paths) const; - virtual void GetFilenames(wxArrayString& files) const; + virtual void SetPath(const wxString& path) + { m_filectrl->SetPath(path); } + virtual void SetFilterIndex(int filterIndex) + { m_filectrl->SetFilterIndex(filterIndex); } + virtual void SetWildcard(const wxString& wildCard) + { m_filectrl->SetWildcard(wildCard); } + + virtual wxString GetPath() const + { return m_filectrl->GetPath(); } + virtual void GetPaths(wxArrayString& paths) const + { m_filectrl->GetPaths(paths); } + virtual wxString GetDirectory() const + { return m_filectrl->GetDirectory(); } + virtual wxString GetFilename() const + { return m_filectrl->GetFilename(); } + virtual void GetFilenames(wxArrayString& files) const + { m_filectrl->GetFilenames(files); } + virtual wxString GetWildcard() const + { return m_filectrl->GetWildcard(); } + virtual int GetFilterIndex() const + { return m_filectrl->GetFilterIndex(); } + virtual bool SupportsExtraControl() const { return true; } // implementation only from now on // ------------------------------- @@ -70,37 +91,33 @@ public: virtual int ShowModal(); virtual bool Show( bool show = true ); - void OnSelected( wxListEvent &event ); - void OnActivated( wxListEvent &event ); void OnList( wxCommandEvent &event ); void OnReport( wxCommandEvent &event ); void OnUp( wxCommandEvent &event ); void OnHome( wxCommandEvent &event ); - void OnListOk( wxCommandEvent &event ); + void OnOk( wxCommandEvent &event ); void OnNew( wxCommandEvent &event ); - void OnChoiceFilter( wxCommandEvent &event ); - void OnTextEnter( wxCommandEvent &event ); - void OnTextChange( wxCommandEvent &event ); - void OnCheck( wxCommandEvent &event ); + void OnFileActivated( wxFileCtrlEvent &event); - virtual void HandleAction( const wxString &fn ); - - virtual void UpdateControls(); +private: + // if true, don't use this implementation at all + bool m_bypassGenericImpl; protected: - // use the filter with the given index - void DoSetFilterIndex(int filterindex); + // update the state of m_upDirButton and m_newDirButton depending on the + // currently selected directory + void OnUpdateButtonsUI(wxUpdateUIEvent& event); - wxString m_filterExtension; - wxChoice *m_choice; - wxTextCtrl *m_text; - wxFileCtrl *m_list; - wxCheckBox *m_check; - wxStaticText *m_static; - wxBitmapButton *m_upDirButton; - wxBitmapButton *m_newDirButton; + wxString m_filterExtension; + wxGenericFileCtrl *m_filectrl; + wxBitmapButton *m_upDirButton; + wxBitmapButton *m_newDirButton; private: + void Init(); + wxBitmapButton* AddBitmapButton( wxWindowID winId, const wxArtID& artId, + const wxString& tip, wxSizer *sizer ); + DECLARE_DYNAMIC_CLASS(wxGenericFileDialog) DECLARE_EVENT_TABLE() @@ -109,180 +126,32 @@ private: static bool ms_lastShowHidden; // did we show hidden files? }; -#ifdef USE_GENERIC_FILEDIALOG +#ifdef wxHAS_GENERIC_FILEDIALOG -class WXDLLEXPORT wxFileDialog: public wxGenericFileDialog +class WXDLLIMPEXP_CORE wxFileDialog: public wxGenericFileDialog { - DECLARE_DYNAMIC_CLASS(wxFileDialog) - public: - wxFileDialog() {} + 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) + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize) + :wxGenericFileDialog(parent, message, + defaultDir, defaultFile, wildCard, + style, + pos, size) { } -}; - -#endif // USE_GENERIC_FILEDIALOG - -//----------------------------------------------------------------------------- -// wxFileData - a class to hold the file info for the wxFileCtrl -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxFileData -{ -public: - enum fileType - { - is_file = 0x0000, - is_dir = 0x0001, - is_link = 0x0002, - is_exe = 0x0004, - is_drive = 0x0008 - }; - - // 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; } - // 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 - long GetSize() const { return m_size; } - // Get the type of file, either file extension or