X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b771aa29dd34686cc92ef4675978b1fdc1a47a29..b23e843b99fb99049804faa82714b8828982bbca:/include/wx/generic/treectlg.h diff --git a/include/wx/generic/treectlg.h b/include/wx/generic/treectlg.h index 545ecd90fd..87351c4865 100644 --- a/include/wx/generic/treectlg.h +++ b/include/wx/generic/treectlg.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.h +// Name: wx/generic/treectlg.h // Purpose: wxTreeCtrl class // Author: Robert Roebling // Modified by: @@ -31,6 +31,7 @@ class WXDLLEXPORT wxGenericTreeItem; class WXDLLEXPORT wxTreeItemData; class WXDLLEXPORT wxTreeRenameTimer; +class WXDLLEXPORT wxTreeFindTimer; class WXDLLEXPORT wxTreeTextCtrl; // ----------------------------------------------------------------------------- @@ -222,7 +223,6 @@ public: // Only for internal use right now, but should probably be public wxTreeItemId GetNext(const wxTreeItemId& item) const; - wxTreeItemId GetPrev(const wxTreeItemId& item) const; // operations // ---------- @@ -329,6 +329,10 @@ public: // implementation only from now on + // overridden base class virtuals + virtual bool SetBackgroundColour(const wxColour& colour); + virtual bool SetForegroundColour(const wxColour& colour); + // callbacks void OnPaint( wxPaintEvent &event ); void OnSetFocus( wxFocusEvent &event ); @@ -338,21 +342,18 @@ public: void OnIdle( wxIdleEvent &event ); // implementation helpers - void SendDeleteEvent(wxGenericTreeItem *itemBeingDeleted); - - void DrawBorder(const wxTreeItemId& item); - void DrawLine(const wxTreeItemId& item, bool below); - protected: friend class wxGenericTreeItem; friend class wxTreeRenameTimer; + friend class wxTreeFindTimer; friend class wxTreeTextCtrl; wxFont m_normalFont; wxFont m_boldFont; wxGenericTreeItem *m_anchor; - wxGenericTreeItem *m_current, *m_key_current, *m_currentEdit; + wxGenericTreeItem *m_current, + *m_key_current; unsigned short m_indent; unsigned short m_spacing; int m_lineHeight; @@ -365,7 +366,6 @@ protected: m_ownsImageListState, m_ownsImageListButtons; bool m_isDragging; // true between BEGIN/END drag events - bool m_renameAccept; bool m_lastOnSame; // last click on the same item as prev wxImageList *m_imageListNormal, *m_imageListState, @@ -378,22 +378,37 @@ protected: wxGenericTreeItem *m_oldSelection; wxTimer *m_renameTimer; - wxString m_renameRes; + + wxBitmap *m_arrowRight, + *m_arrowDown; + + // incremental search data + wxString m_findPrefix; + wxTimer *m_findTimer; // the common part of all ctors void Init(); // misc helpers + void SendDeleteEvent(wxGenericTreeItem *itemBeingDeleted); + + void DrawBorder(const wxTreeItemId& item); + void DrawLine(const wxTreeItemId& item, bool below); + void DrawDropEffect(wxGenericTreeItem *item); + wxTreeItemId DoInsertItem(const wxTreeItemId& parent, size_t previous, const wxString& text, int image, int selectedImage, wxTreeItemData *data); + + // find the first item starting with the given prefix after the given item + wxTreeItemId FindItem(const wxTreeItemId& id, const wxString& prefix) const; + bool HasButtons(void) const { return (m_imageListButtons != NULL) || HasFlag(wxTR_TWIST_BUTTONS|wxTR_HAS_BUTTONS); } -protected: void CalculateLineHeight(); int GetLineHeight(wxGenericTreeItem *item) const; void PaintLevel( wxGenericTreeItem *item, wxDC& dc, int level, int &y ); @@ -413,7 +428,7 @@ protected: void RefreshSelectedUnder(wxGenericTreeItem *item); void OnRenameTimer(); - void OnRenameAccept(); + bool OnRenameAccept(wxGenericTreeItem *item, const wxString& value); void FillArray(wxGenericTreeItem*, wxArrayTreeItemIds&) const; void SelectItemRange( wxGenericTreeItem *item1, wxGenericTreeItem *item2 ); @@ -421,8 +436,6 @@ protected: bool TagNextChildren(wxGenericTreeItem *crt_item, wxGenericTreeItem *last_item, bool select); void UnselectAllChildren( wxGenericTreeItem *item ); - void DrawDropEffect(wxGenericTreeItem *item); - private: DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxGenericTreeCtrl)