]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/treectrl.h
Added script to help make wxMotif via configure; nativdlg sample works again;
[wxWidgets.git] / include / wx / generic / treectrl.h
index 7b79534513aea68c9d75fe60b422ab626ccb88e7..49e3e4fb3f959d3630829a84631e60cb11bef060 100644 (file)
@@ -56,10 +56,10 @@ public:
     wxTreeItemId(long itemId) { m_pItem = (wxGenericTreeItem *)itemId; }
     operator long() const { return (long)m_pItem; }
 
-//protected:
+//protected: // not for gcc
     // for wxTreeCtrl usage only
     wxTreeItemId(wxGenericTreeItem *pItem) { m_pItem = pItem; }
-    
+
     wxGenericTreeItem *m_pItem;
 };
 
@@ -91,7 +91,7 @@ protected:
 // -----------------------------------------------------------------------------
 // wxTreeEvent - the event generated by the tree control
 // -----------------------------------------------------------------------------
-class WXDLLEXPORT wxTreeEvent : public wxCommandEvent
+class WXDLLEXPORT wxTreeEvent : public wxNotifyEvent
 {
 friend class wxTreeCtrl;
 public:
@@ -148,7 +148,7 @@ typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&);
 #define EVT_TREE_GET_INFO(id, fn) { wxEVT_COMMAND_TREE_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
 #define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
 
-// GetItem() is the item being expanded/collapsed, the "ING" versions can use 
+// GetItem() is the item being expanded/collapsed, the "ING" versions can use
 #define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
 #define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
 #define EVT_TREE_ITEM_COLLAPSED(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
@@ -256,17 +256,31 @@ public:
         // usage and loading time.
     void SetItemHasChildren(const wxTreeItemId& item, bool has = TRUE);
 
+        // the item will be shown in bold
+    void SetItemBold(const wxTreeItemId& item, bool bold = TRUE);
+
     // item status inquiries
     // ---------------------
 
         // is the item visible (it might be outside the view or not expanded)?
     bool IsVisible(const wxTreeItemId& item) const;
         // does the item has any children?
+    bool HasChildren(const wxTreeItemId& item) const
+      { return ItemHasChildren(item); }
     bool ItemHasChildren(const wxTreeItemId& item) const;
         // is the item expanded (only makes sense if HasChildren())?
     bool IsExpanded(const wxTreeItemId& item) const;
         // is this item currently selected (the same as has focus)?
     bool IsSelected(const wxTreeItemId& item) const;
+        // is item text in bold font?
+    bool IsBold(const wxTreeItemId& item) const;
+
+    // number of children
+    // ------------------
+
+        // if 'recursively' is FALSE, only immediate children count, otherwise
+        // the returned number is the number of all items in this branch
+    size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = TRUE);
 
     // navigation
     // ----------
@@ -379,19 +393,18 @@ public:
     void SortChildren(const wxTreeItemId& item,
                       wxTreeItemCmpFunc *cmpFunction = NULL);
 
-    // implementation
-    // --------------
-        // wxWindows callbacks
-    void OnPaint( const wxPaintEvent &event );
-    void OnSetFocus( const wxFocusEvent &event );
-    void OnKillFocus( const wxFocusEvent &event );
+    void OnPaint( wxPaintEvent &event );
+    void OnSetFocus( wxFocusEvent &event );
+    void OnKillFocus( wxFocusEvent &event );
     void OnChar( wxKeyEvent &event );
-    void OnMouse( const wxMouseEvent &event );
+    void OnMouse( wxMouseEvent &event );
+    void OnIdle( wxIdleEvent &event );
 
 protected:
     wxGenericTreeItem   *m_anchor;
     wxGenericTreeItem   *m_current;
     bool                 m_hasFocus;
+    bool                 m_dirty;
     int                  m_xScroll,m_yScroll;
     unsigned int         m_indent;
     int                  m_lineHeight;
@@ -411,7 +424,8 @@ protected:
                               wxTreeItemData *data);
 
     void AdjustMyScrollbars();
-    void PaintLevel( wxGenericTreeItem *item, wxDC &dc, int level, int &y );
+    void PaintLevel( wxGenericTreeItem *item, wxDC& dc, int level, int &y );
+    void PaintItem( wxGenericTreeItem *item, wxDC& dc);
 
     void CalculateLevel( wxGenericTreeItem *item, wxDC &dc, int level, int &y );
     void CalculatePositions();