| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: treebase.h
- // Purpose: interface of wxTreeItemId
- // Author: wxWidgets team
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- /**
- @class wxTreeItemId
- An opaque reference to a tree item.
- @library{wxcore}
- @category{data}
- @see wxTreeCtrl, wxTreeItemData, @ref overview_treectrl
- */
- class wxTreeItemId
- {
- public:
- /**
- Default constructor. A wxTreeItemId is not meant to be constructed
- explicitly by the user; only those returned by the wxTreeCtrl functions
- should be used.
- */
- wxTreeItemId();
- /**
- Returns @true if this instance is referencing a valid tree item.
- */
- bool IsOk() const;
- void* GetID() const;
- void Unset();
- };
- bool operator==(const wxTreeItemId& left, const wxTreeItemId& right);
- bool operator!=(const wxTreeItemId& left, const wxTreeItemId& right);
- /**
- @class wxTreeItemData
- wxTreeItemData is some (arbitrary) user class associated with some item. The
- main advantage of having this class is that wxTreeItemData objects are
- destroyed automatically by the tree and, as this class has virtual
- destructor, it means that the memory and any other resources associated with
- a tree item will be automatically freed when it is deleted. Note that we
- don't use wxObject as the base class for wxTreeItemData because the size of
- this class is critical: in many applications, each tree leaf will have
- wxTreeItemData associated with it and the number of leaves may be quite big.
- Also please note that because the objects of this class are deleted by the
- tree using the operator @c delete, they must always be allocated on the heap
- using @c new.
- @library{wxcore}
- @category{containers}
- @see wxTreeCtrl
- */
- class wxTreeItemData : public wxClientData
- {
- public:
- /**
- Default constructor.
- @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();
- /**
- Virtual destructor.
- */
- virtual ~wxTreeItemData();
- /**
- Returns the item associated with this node.
- */
- 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
- {
- /**
- To get/set the item image for when the item is
- @b not selected and @b not expanded.
- */
- wxTreeItemIcon_Normal,
- /**
- To get/set the item image for when the item is
- @b selected and @b not expanded.
- */
- wxTreeItemIcon_Selected,
- /**
- To get/set the item image for when the item is
- @b not selected and @b expanded.
- */
- wxTreeItemIcon_Expanded,
- /**
- To get/set the item image for when the item is
- @b selected and @b expanded.
- */
- 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;
|