wxTreeItemId m_pItem;
};
-//-----------------------------------------------------------------------------
-// wxTreeRenameTimer (internal)
-//-----------------------------------------------------------------------------
-
-class WXDLLEXPORT wxTreeRenameTimer: public wxTimer
-{
- private:
- wxTreeCtrl *m_owner;
-
- public:
- wxTreeRenameTimer( wxTreeCtrl *owner );
- void Notify();
-};
-
-//-----------------------------------------------------------------------------
-// wxTreeTextCtrl (internal)
-//-----------------------------------------------------------------------------
-
-class WXDLLEXPORT wxTreeTextCtrl: public wxTextCtrl
-{
- DECLARE_DYNAMIC_CLASS(wxTreeTextCtrl);
-
- private:
- bool *m_accept;
- wxString *m_res;
- wxTreeCtrl *m_owner;
- wxString m_startValue;
-
- public:
- wxTreeTextCtrl(void) {};
- wxTreeTextCtrl( wxWindow *parent, const wxWindowID id,
- bool *accept, wxString *res, wxTreeCtrl *owner,
- const wxString &value = wxEmptyString,
- const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
- int style = 0,
- const wxValidator& validator = wxDefaultValidator,
- const wxString &name = wxTextCtrlNameStr );
- void OnChar( wxKeyEvent &event );
- void OnKillFocus( wxFocusEvent &event );
-
- DECLARE_EVENT_TABLE()
-};
-
// -----------------------------------------------------------------------------
// wxTreeCtrl - the tree control
// -----------------------------------------------------------------------------
// expand this item
void Expand(const wxTreeItemId& item);
+ // expand this item and all subitems recursively
+ void ExpandAll(const wxTreeItemId& item);
// collapse the item without removing its children
void Collapse(const wxTreeItemId& item);
// collapse the item and remove all children
void SetItemSelectedImage(const wxTreeItemId& item, int image)
{ SetItemImage(item, image, wxTreeItemIcon_Selected); }
- // implementation
+ // implementation only from now on
// callbacks
void OnPaint( wxPaintEvent &event );
void OnMouse( wxMouseEvent &event );
void OnIdle( wxIdleEvent &event );
- // implementation
+ // implementation helpers
void SendDeleteEvent(wxGenericTreeItem *itemBeingDeleted);
- // Draw Special Information
- void DrawBorder(wxTreeItemId& item);
- void DrawLine(wxTreeItemId& item, bool below);
+ void DrawBorder(const wxTreeItemId& item);
+ void DrawLine(const wxTreeItemId& item, bool below);
protected:
friend class wxGenericTreeItem;
int m_lineHeight;
wxPen m_dottedPen;
wxBrush *m_hilightBrush;
- wxBrush *m_normalBrush;
wxImageList *m_imageListNormal,
*m_imageListState;
+
int m_dragCount;
wxPoint m_dragStart;
+ bool m_isDragging; // true between BEGIN/END drag events
+ wxGenericTreeItem *m_dropTarget;
+ wxCursor m_oldCursor; // cursor is changed while dragging
+ wxGenericTreeItem *m_oldSelection;
+
wxTimer *m_renameTimer;
bool m_renameAccept;
+ bool m_lastOnSame; // last click on the same item as prev
wxString m_renameRes;
// the common part of all ctors
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(wxTreeCtrl)