]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/treectrl.h
1) APPCONF_ constants renamed to wxCONFIG_
[wxWidgets.git] / include / wx / generic / treectrl.h
index e6e3df723e0be59616da04e8f1487589c9dbc30e..3ad6295af4bef0a86374ea0940e7313e2b38d1e9 100644 (file)
@@ -194,6 +194,8 @@ typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&);
 #define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
 #define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
 #define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
+#define EVT_TREE_ITEM_COLLAPSED(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
+#define EVT_TREE_ITEM_COLLAPSING(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
 #define EVT_TREE_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
 #define EVT_TREE_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
 #define EVT_TREE_KEY_DOWN(id, fn) { wxEVT_COMMAND_TREE_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
@@ -272,8 +274,20 @@ public:
   long InsertItem( long parent, wxTreeItem &info,
                    long insertAfter = wxTREE_INSERT_LAST );
   void DeleteItem( long item );
+  void DeleteChildren( long item );
   bool DeleteAllItems();
+  bool ExpandItem(long item)   { return ExpandItem(item, wxTREE_EXPAND_EXPAND);   }
+  bool CollapseItem(long item) { return ExpandItem(item, wxTREE_EXPAND_COLLAPSE); }
+  bool ToggleItem(long item)   { return ExpandItem(item, wxTREE_EXPAND_TOGGLE);   }
   bool ExpandItem( long item, int action );
+
+    // is the item expanded now?
+  bool IsItemExpanded(long item)
+  {
+    wxGenericTreeItem *pItem = FindItem(item);
+    return pItem && (pItem->GetState() & wxTREE_STATE_EXPANDED);
+  }
+
   bool GetItem( wxTreeItem &info ) const;
   long GetItemData( long item ) const;
   wxString GetItemText( long item ) const;
@@ -281,7 +295,7 @@ public:
   long GetParent( long item ) const;
   long GetRootItem() const;
   long GetSelection() const;
-  bool SelectItem( long item ) const;
+  bool SelectItem( long item );
   bool ItemHasChildren( long item ) const;
   void SetIndent( int indent );
   int GetIndent() const;
@@ -299,10 +313,14 @@ public:
   void OnChar( wxKeyEvent &event );
   void OnMouse( const wxMouseEvent &event );
 
-  void SetImageList(wxImageList *imageList) { m_imageList = imageList; }
-  wxImageList *GetImageList() const { return m_imageList; }
+  wxImageList *GetImageList(int which = wxIMAGE_LIST_NORMAL) const;
+  void SetImageList(wxImageList *imageList, int which = wxIMAGE_LIST_NORMAL);
 
 private:
+  // set the selection to the specified item generating appropriate event(s) if
+  // not disabled
+  void SelectItem(wxGenericTreeItem *item, bool bDoEvents = TRUE);
+
   wxGenericTreeItem   *m_anchor;
   wxGenericTreeItem   *m_current;
   bool                 m_hasFocus;
@@ -315,6 +333,7 @@ private:
   wxPaintDC           *m_dc;
   wxBrush             *m_hilightBrush;
   wxImageList         *m_imageList;
+  wxImageList         *m_smallImageList;
 
   void CalculateLevel( wxGenericTreeItem *item, wxPaintDC &dc, int level, int &y );
   void CalculatePositions();