]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/treebase.h
Add some missing wxGraphicsContext methods
[wxWidgets.git] / interface / wx / treebase.h
index 6debc4fae1b9d816249375272294ceb166ea0639..35cabc155da1f982fa20b30fa107f23951998e23 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     interface of wxTreeItemId
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
@@ -12,7 +12,7 @@
     An opaque reference to a tree item.
 
     @library{wxcore}
-    @category{misc}
+    @category{data}
 
     @see wxTreeCtrl, wxTreeItemData, @ref overview_treectrl
 */
@@ -31,20 +31,15 @@ public:
     */
     bool IsOk() const;
 
-    //@{
-    /**
-         Operators for comparison between wxTreeItemId objects.
-    */
-    bool operator ==(const wxTreeItemId& item) const;
-    bool operator !=(const wxTreeItemId& item) const;
-    //@}
-
-    /**
-        Antonym of IsOk(), i.e. returns @true only if the item is not valid.
-    */
-    bool operator !() const;
+    void* GetID() const;
+    void Unset();
 };
 
+bool operator==(const wxTreeItemId& left, const wxTreeItemId& right);
+bool operator!=(const wxTreeItemId& left, const wxTreeItemId& right);
+
+
+
 /**
     @class wxTreeItemData
 
@@ -72,11 +67,12 @@ public:
     /**
         Default constructor.
 
-        @beginWxPythonOnly
-        The following methods are added in wxPython for accessing the object:
-        - GetData(): Returns a reference to the Python Object.
-        - SetData(obj): Associates a new Python Object with the wxTreeItemData.
-        @endWxPythonOnly
+        @beginWxPerlOnly
+        In wxPerl the constructor accepts a scalar as an optional parameter
+        and stores it as client data; use
+        - GetData() to retrieve the value.
+        - SetData(data) to set it.
+        @endWxPerlOnly
     */
     wxTreeItemData();
 
@@ -88,17 +84,23 @@ public:
     /**
         Returns the item associated with this node.
     */
-    const wxTreeItemId GetId();
+    const wxTreeItemId& GetId() const;
 
     /**
         Sets the item associated with this node.
+
+        Notice that this function is automatically called by wxTreeCtrl methods
+        associating an object of this class with a tree control item such as
+        wxTreeCtrl::AppendItem(), wxTreeCtrl::InsertItem() and
+        wxTreeCtrl::SetItemData() so there is usually no need to call it
+        yourself.
     */
     void SetId(const wxTreeItemId& id);
 };
 
 /**
     Indicates which type to associate an image with a wxTreeCtrl item.
-    
+
     @see wxTreeCtrl::GetItemImage(), wxTreeCtrl::SetItemImage()
 */
 enum wxTreeItemIcon
@@ -125,3 +127,64 @@ enum wxTreeItemIcon
     wxTreeItemIcon_SelectedExpanded,
     wxTreeItemIcon_Max
 };
+
+
+/// special values for the 'state' parameter of wxTreeCtrl::SetItemState()
+static const int wxTREE_ITEMSTATE_NONE  = -1;   // not state (no display state image)
+static const int wxTREE_ITEMSTATE_NEXT  = -2;   // cycle to the next state
+static const int wxTREE_ITEMSTATE_PREV  = -3;   // cycle to the previous state
+
+#define wxTR_NO_BUTTONS              0x0000     // for convenience
+#define wxTR_HAS_BUTTONS             0x0001     // draw collapsed/expanded btns
+#define wxTR_NO_LINES                0x0004     // don't draw lines at all
+#define wxTR_LINES_AT_ROOT           0x0008     // connect top-level nodes
+#define wxTR_TWIST_BUTTONS           0x0010     // still used by wxTreeListCtrl
+
+#define wxTR_SINGLE                  0x0000     // for convenience
+#define wxTR_MULTIPLE                0x0020     // can select multiple items
+
+#define wxTR_HAS_VARIABLE_ROW_HEIGHT 0x0080     // what it says
+
+#define wxTR_EDIT_LABELS             0x0200     // can edit item labels
+#define wxTR_ROW_LINES               0x0400     // put border around items
+#define wxTR_HIDE_ROOT               0x0800     // don't display root node
+
+#define wxTR_FULL_ROW_HIGHLIGHT      0x2000     // highlight full horz space
+
+// make the default control appearance look more native-like depending on the
+// platform
+#define wxTR_DEFAULT_STYLE       (wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT)
+
+
+// values for the `flags' parameter of wxTreeCtrl::HitTest() which determine
+// where exactly the specified point is situated:
+
+static const int wxTREE_HITTEST_ABOVE            = 0x0001;
+static const int wxTREE_HITTEST_BELOW            = 0x0002;
+static const int wxTREE_HITTEST_NOWHERE          = 0x0004;
+    // on the button associated with an item.
+static const int wxTREE_HITTEST_ONITEMBUTTON     = 0x0008;
+    // on the bitmap associated with an item.
+static const int wxTREE_HITTEST_ONITEMICON       = 0x0010;
+    // on the indent associated with an item.
+static const int wxTREE_HITTEST_ONITEMINDENT     = 0x0020;
+    // on the label (string) associated with an item.
+static const int wxTREE_HITTEST_ONITEMLABEL      = 0x0040;
+    // on the right of the label associated with an item.
+static const int wxTREE_HITTEST_ONITEMRIGHT      = 0x0080;
+    // on the label (string) associated with an item.
+static const int wxTREE_HITTEST_ONITEMSTATEICON  = 0x0100;
+    // on the left of the wxTreeCtrl.
+static const int wxTREE_HITTEST_TOLEFT           = 0x0200;
+    // on the right of the wxTreeCtrl.
+static const int wxTREE_HITTEST_TORIGHT          = 0x0400;
+    // on the upper part (first half) of the item.
+static const int wxTREE_HITTEST_ONITEMUPPERPART  = 0x0800;
+    // on the lower part (second half) of the item.
+static const int wxTREE_HITTEST_ONITEMLOWERPART  = 0x1000;
+
+    // anywhere on the item
+static const int wxTREE_HITTEST_ONITEM  = wxTREE_HITTEST_ONITEMICON |
+                                          wxTREE_HITTEST_ONITEMLABEL;
+
+