X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/484523cf522b02385cd47c432d50d117940b46b9..aba4387c4c71fb812c6a07a7abb495606c5ef4af:/include/wx/generic/treectlg.h diff --git a/include/wx/generic/treectlg.h b/include/wx/generic/treectlg.h index 4d48f81cde..7958708b1e 100644 --- a/include/wx/generic/treectlg.h +++ b/include/wx/generic/treectlg.h @@ -13,9 +13,11 @@ #define _GENERIC_TREECTRL_H_ #ifdef __GNUG__ - #pragma interface "treectrg.h" + #pragma interface "treectlg.h" #endif +#if wxUSE_TREECTRL + #include "wx/defs.h" #include "wx/string.h" #include "wx/object.h" @@ -53,10 +55,15 @@ public: wxGenericTreeCtrl(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, +#ifdef __WXMAC__ + long style = wxTR_MAC_BUTTONS | wxTR_NO_LINES | wxTR_ROW_LINES, +#else long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, +#endif const wxValidator &validator = wxDefaultValidator, const wxString& name = wxTreeCtrlNameStr) { + Init(); Create(parent, id, pos, size, style, validator, name); } @@ -65,7 +72,11 @@ public: bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, +#ifdef __WXMAC__ + long style = wxTR_MAC_BUTTONS | wxTR_NO_LINES | wxTR_ROW_LINES, +#else + long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, +#endif const wxValidator &validator = wxDefaultValidator, const wxString& name = wxTreeCtrlNameStr); @@ -86,9 +97,11 @@ public: void SetSpacing(unsigned int spacing); // image list: these functions allow to associate an image list with - // the control and retrieve it. Note that the control does _not_ delete + // the control and retrieve it. Note that when assigned with + // SetImageList, the control does _not_ delete // the associated image list when it's deleted in order to allow image - // lists to be shared between different controls. + // lists to be shared between different controls. If you use + // AssignImageList, the control _does_ delete the image list. // // The normal image list is for the icons which correspond to the // normal tree item state (whether it is selected or not). @@ -100,6 +113,8 @@ public: void SetImageList(wxImageList *imageList); void SetStateImageList(wxImageList *imageList); + void AssignImageList(wxImageList *imageList); + void AssignStateImageList(wxImageList *imageList); // Functions to work with tree ctrl items. @@ -143,6 +158,9 @@ public: // set the items font (should be of the same height for all items) void SetItemFont(const wxTreeItemId& item, const wxFont& font); + // set the window font + virtual bool SetFont( const wxFont &font ); + // item status inquiries // --------------------- @@ -210,6 +228,10 @@ public: // get the previous visible item: item must be visible itself! wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const; + // Only for internal use right now, but should probably be public + wxTreeItemId GetNext(const wxTreeItemId& item) const; + wxTreeItemId GetPrev(const wxTreeItemId& item) const; + // operations // ---------- @@ -281,6 +303,11 @@ public: { int dummy; return HitTest(point, dummy); } wxTreeItemId HitTest(const wxPoint& point, int& flags); + // get the bounding rectangle of the item (or of its label only) + bool GetBoundingRect(const wxTreeItemId& item, + wxRect& rect, + bool textOnly = FALSE) const; + // Start editing the item label: this (temporarily) replaces the item // with a one line edit control. The item will be selected if it hadn't // been before. @@ -343,6 +370,8 @@ protected: wxBrush *m_hilightBrush; wxImageList *m_imageListNormal, *m_imageListState; + bool m_ownsImageListNormal, + m_ownsImageListState; int m_dragCount; wxPoint m_dragStart; @@ -366,7 +395,9 @@ protected: int image, int selectedImage, wxTreeItemData *data); +public: void AdjustMyScrollbars(); +protected: int GetLineHeight(wxGenericTreeItem *item) const; void PaintLevel( wxGenericTreeItem *item, wxDC& dc, int level, int &y ); void PaintItem( wxGenericTreeItem *item, wxDC& dc); @@ -394,5 +425,34 @@ private: DECLARE_DYNAMIC_CLASS(wxGenericTreeCtrl) }; +#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__) +/* + * wxTreeCtrl has to be a real class or we have problems with + * the run-time information. + */ + +class WXDLLEXPORT wxTreeCtrl: public wxGenericTreeCtrl +{ +public: + DECLARE_DYNAMIC_CLASS(wxTreeCtrl) + + wxTreeCtrl() {} + + wxTreeCtrl(wxWindow *parent, wxWindowID id = -1, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, + const wxValidator &validator = wxDefaultValidator, + const wxString& name = wxTreeCtrlNameStr) + { + Create(parent, id, pos, size, style, validator, name); + } + +}; + +#endif + +#endif // wxUSE_TREECTRL + #endif // _GENERIC_TREECTRL_H_