X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c0c133e13b36a923c65f94499554e432bc3a0daa..a4301b8f14d21b7d28fc4f6a247b740d945ca6dc:/include/wx/generic/dirctrlg.h diff --git a/include/wx/generic/dirctrlg.h b/include/wx/generic/dirctrlg.h index 7c0640be7d..de3e380522 100644 --- a/include/wx/generic/dirctrlg.h +++ b/include/wx/generic/dirctrlg.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: dirctrlg.h +// Name: wx/generic/dirctrlg.h // Purpose: wxGenericDirCtrl class // Builds on wxDirCtrl class written by Robert Roebling for the // wxFile application, modified by Harm van der Heijden. @@ -15,10 +15,6 @@ #ifndef _WX_DIRCTRL_H_ #define _WX_DIRCTRL_H_ -#if wxUSE_DIRDLG || wxUSE_FILEDLG - #include "wx/imaglist.h" -#endif - #if wxUSE_DIRDLG #include "wx/treectrl.h" @@ -31,7 +27,6 @@ //----------------------------------------------------------------------------- class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -class WXDLLIMPEXP_FWD_CORE wxImageList; class WXDLLIMPEXP_FWD_BASE wxHashTable; //----------------------------------------------------------------------------- @@ -44,14 +39,14 @@ enum wxDIRCTRL_DIR_ONLY = 0x0010, // When setting the default path, select the first file in the directory wxDIRCTRL_SELECT_FIRST = 0x0020, -#if WXWIN_COMPATIBILITY_2_8 - // Unused, for compatibility only + // Show the filter list wxDIRCTRL_SHOW_FILTERS = 0x0040, -#endif // WXWIN_COMPATIBILITY_2_8 // Use 3D borders on internal controls wxDIRCTRL_3D_INTERNAL = 0x0080, // Editable labels - wxDIRCTRL_EDIT_LABELS = 0x0100 + wxDIRCTRL_EDIT_LABELS = 0x0100, + // Allow multiple selection + wxDIRCTRL_MULTIPLE = 0x0200 }; //----------------------------------------------------------------------------- @@ -114,6 +109,7 @@ public: void OnCollapseItem(wxTreeEvent &event ); void OnBeginEditItem(wxTreeEvent &event ); void OnEndEditItem(wxTreeEvent &event ); + void OnTreeSelChange(wxTreeEvent &event); void OnSize(wxSizeEvent &event ); // Try to expand as much of the given path as possible. @@ -128,12 +124,17 @@ public: // Get dir or filename virtual wxString GetPath() const; + virtual void GetPaths(wxArrayString& paths) const; // Get selected filename path only (else empty string). // I.e. don't count a directory as a selection virtual wxString GetFilePath() const; + virtual void GetFilePaths(wxArrayString& paths) const; virtual void SetPath(const wxString& path); + virtual void SelectPath(const wxString& path, bool select = true); + virtual void SelectPaths(const wxArrayString& paths); + virtual void ShowHidden( bool show ); virtual bool GetShowHidden() { return m_showHidden; } @@ -148,6 +149,8 @@ public: virtual wxTreeCtrl* GetTreeCtrl() const { return m_treeCtrl; } virtual wxDirFilterListCtrl* GetFilterListCtrl() const { return m_filterListCtrl; } + virtual void UnselectAll(); + // Helper virtual void SetupSections(); @@ -157,6 +160,8 @@ public: // If the path string has been used (we're at the leaf), done is set to true virtual wxTreeItemId FindChild(wxTreeItemId parentId, const wxString& path, bool& done); + wxString GetPath(wxTreeItemId itemId) const; + // Resize the components of the control virtual void DoResize(); @@ -166,7 +171,6 @@ public: // Collapse the entire tree virtual void CollapseTree(); - // overridden base class methods virtual void SetFocus(); @@ -186,6 +190,9 @@ protected: bool ExtractWildcard(const wxString& filterStr, int n, wxString& filter, wxString& description); private: + void PopulateNode(wxTreeItemId node); + wxDirItemData* GetItemData(wxTreeItemId itemId); + bool m_showHidden; wxTreeItemId m_rootId; wxString m_defaultPath; // Starting path @@ -202,6 +209,11 @@ private: wxDECLARE_NO_COPY_CLASS(wxGenericDirCtrl); }; +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_DIRCTRL_CHANGED, wxTreeEvent ); + +#define EVT_DIRCTRL_CHANGED(id, fn) \ + wx__DECLARE_EVT1(wxEVT_DIRCTRL_CHANGED, id, wxTreeEventHandler(fn)) + //----------------------------------------------------------------------------- // wxDirFilterListCtrl //----------------------------------------------------------------------------- @@ -256,7 +268,9 @@ protected: // wxFileIconsTable - use wxTheFileIconsTable which is created as necessary //------------------------------------------------------------------------- -#if wxUSE_DIRDLG || wxUSE_FILEDLG +#if wxUSE_DIRDLG || wxUSE_FILEDLG || wxUSE_FILECTRL + +class WXDLLIMPEXP_FWD_CORE wxImageList; class WXDLLIMPEXP_CORE wxFileIconsTable { @@ -290,7 +304,10 @@ protected: // The global fileicons table extern WXDLLIMPEXP_DATA_CORE(wxFileIconsTable *) wxTheFileIconsTable; -#endif // wxUSE_DIRDLG || wxUSE_FILEDLG +#endif // wxUSE_DIRDLG || wxUSE_FILEDLG || wxUSE_FILECTRL + +// old wxEVT_COMMAND_* constants +#define wxEVT_COMMAND_DIRCTRL_CHANGED wxEVT_DIRCTRL_CHANGED #endif // _WX_DIRCTRLG_H_