]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/treectrl.h
don't allocate backbuffer for dummy surfaces
[wxWidgets.git] / include / wx / treectrl.h
index 07396e1f67fd4fa01137658419825d293571d51e..e964012a4f4ae4a68017f9c593f7d413116a3e16 100644 (file)
 #ifndef _WX_TREECTRL_H_BASE_
 #define _WX_TREECTRL_H_BASE_
 
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "wx/defs.h"
+
+#if wxUSE_TREECTRL
+
+#include "wx/control.h"
 #include "wx/treebase.h"
+#include "wx/textctrl.h" // wxTextCtrl::ms_classinfo used through CLASSINFO macro
 
 class WXDLLEXPORT wxImageList;
 
@@ -32,6 +42,9 @@ public:
 
         // arbitrary default
         m_spacing = 18;
+
+        // quick DoGetBestSize calculation
+        m_quickBestSize = true;
     }
 
     virtual ~wxTreeCtrlBase();
@@ -40,7 +53,7 @@ public:
     // ---------
 
         // get the total number of items in the control
-    virtual size_t GetCount() const = 0;
+    virtual unsigned int GetCount() const = 0;
 
         // indent is the number of pixels the children are indented relative to
         // the parents position. SetIndent() also redraws the control
@@ -274,6 +287,10 @@ public:
 
         // expand this item
     virtual void Expand(const wxTreeItemId& item) = 0;
+        // expand the item and all its childs and thats childs
+    void ExpandAllChildren(const wxTreeItemId& item);
+        // expand all items
+    void ExpandAll();
         // collapse the item without removing its children
     virtual void Collapse(const wxTreeItemId& item) = 0;
         // collapse the item and remove all children
@@ -340,10 +357,10 @@ public:
         // coordinates specified are relative to the client area of tree ctrl)
         // and, in the second variant, fill the flags parameter with a bitmask
         // of wxTREE_HITTEST_xxx constants.
-    wxTreeItemId HitTest(const wxPoint& point)
-        { int dummy; return DoHitTest(point, dummy); }
-    wxTreeItemId HitTest(const wxPoint& point, int& flags)
-        { return DoHitTest(point, flags); }
+    wxTreeItemId HitTest(const wxPoint& point) const
+        { int dummy; return DoTreeHitTest(point, dummy); }
+    wxTreeItemId HitTest(const wxPoint& point, int& flags) const
+        { return DoTreeHitTest(point, flags); }
 
         // get the bounding rectangle of the item (or of its label only)
     virtual bool GetBoundingRect(const wxTreeItemId& item,
@@ -356,6 +373,10 @@ public:
 
     virtual bool ShouldInheritColours() const { return false; }
 
+    // hint whether to calculate best size quickly or accurately
+    void SetQuickBestSize(bool q) { m_quickBestSize = q; }
+    bool GetQuickBestSize() const { return m_quickBestSize; }
+
 protected:
     virtual wxSize DoGetBestSize() const;
 
@@ -380,7 +401,9 @@ protected:
 
     // real HitTest() implementation: again, can't be called just HitTest()
     // because it's overloaded and so the non-virtual overload would be hidden
-    virtual wxTreeItemId DoHitTest(const wxPoint& point, int& flags) = 0;
+    // (and can't be called DoHitTest() because this is already in wxWindow)
+    virtual wxTreeItemId DoTreeHitTest(const wxPoint& point,
+                                        int& flags) const = 0;
 
 
     wxImageList *m_imageListNormal, // images for tree elements
@@ -389,7 +412,10 @@ protected:
                  m_ownsImageListState;
 
     // spacing between left border and the text
-    unsigned short m_spacing;
+    unsigned int m_spacing;
+
+    // whether full or quick calculation is done in DoGetBestSize
+    bool        m_quickBestSize;
 
 
     DECLARE_NO_COPY_CLASS(wxTreeCtrlBase)
@@ -402,9 +428,9 @@ protected:
 #if defined(__WXUNIVERSAL__)
     #include "wx/generic/treectlg.h"
 #elif defined(__WXPALMOS__)
-        #include "wx/palmos/treectrl.h"
+    #include "wx/palmos/treectrl.h"
 #elif defined(__WXMSW__)
-        #include "wx/msw/treectrl.h"
+    #include "wx/msw/treectrl.h"
 #elif defined(__WXMOTIF__)
     #include "wx/generic/treectlg.h"
 #elif defined(__WXGTK__)
@@ -417,5 +443,6 @@ protected:
     #include "wx/generic/treectlg.h"
 #endif
 
-#endif // _WX_TREECTRL_H_BASE_
+#endif // wxUSE_TREECTRL
 
+#endif // _WX_TREECTRL_H_BASE_