X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8226a05440208e9276970b37ecead9e794bd5379..c2a738e372126950e5c70f72a3e8876f1ac89bf5:/include/wx/generic/filedlgg.h diff --git a/include/wx/generic/filedlgg.h b/include/wx/generic/filedlgg.h index bc6ee53637..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: @@ -15,31 +15,24 @@ #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(__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() : wxFileDialogBase() { Init(); } @@ -49,8 +42,10 @@ public: const wxString& defaultDir = wxEmptyString, const wxString& defaultFile = wxEmptyString, const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = 0, + long style = wxFD_DEFAULT_STYLE, const wxPoint& pos = wxDefaultPosition, + const wxSize& sz = wxDefaultSize, + const wxString& name = wxFileDialogNameStr, bool bypassGenericImpl = false ); bool Create( wxWindow *parent, @@ -58,20 +53,37 @@ public: const wxString& defaultDir = wxEmptyString, const wxString& defaultFile = wxEmptyString, const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = 0, + 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); - virtual void SetWildcard(const wxString& wildCard); - - // 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 // ------------------------------- @@ -79,42 +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 ); - - virtual void HandleAction( const wxString &fn ); - - virtual void UpdateControls(); + void OnFileActivated( wxFileCtrlEvent &event); private: - // Don't use this implementation at all :-) + // 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() @@ -123,12 +126,12 @@ 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 { public: - wxFileDialog() {} + wxFileDialog() {} wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, @@ -136,8 +139,12 @@ public: 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) { } @@ -145,163 +152,6 @@ private: DECLARE_DYNAMIC_CLASS(wxFileDialog) }; -#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 - }; - - 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; } - // 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