topic "TreeCtrl"; [i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] [l288;2 $$2,0#27521748481378242620020725143825:desc] [0 $$3,0#96390100711032703541132217272105:end] [H6;0 $$4,0#05600065144404261032431302351956:begin] [i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] [l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] [l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [2 $$0,0#00000000000000000000000000000000:Default] [{_} [ {{10000@3 [s0; [*@(229)4 TreeCtrl]]}}&] [s3;%% &] [s1;:TreeCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 TreeCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C trl]&] [s2;%% &] [s2;%% @@image:1212&1156 (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) &] [s0;%% &] [s9;%% TreeCtrl hierarchy management is based on integer id numbers. Each node in tree (item) has associated integer id unique for the tree. Child nodes of item are organized as an array. TreeCtrl provides operation to insert child nodes at specified array position and to query child and parent nodes. Root item has fixed id 0.&] [s3;%% &] [s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] [s3; &] [s5;:TreeCtrl`:`:WhenOpen: [_^Callback1^ Callback1][@(0.0.255) ]_[* WhenOpen]&] [s2;%% Tree item was opened, parameter is the item id. &] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenClose: [_^Callback1^ Callback1][@(0.0.255) ]_[* WhenClose]&] [s2;%% Tree item was closed, parameter is the item id. &] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenLeftClick: [_^Callback^ Callback]_[* WhenLeftClick]&] [s2;%% Tree item was clicked. Cursor identifies clicked item. You can get the click position within the item using GetItemClickPos method.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenLeftDouble: [_^Callback^ Callback]_[* WhenLeftDouble]&] [s2;%% Tree item was double`-clicked. Cursor identifies clicked item. You can get the click position within the item using GetItemClickPos method.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenBar: [_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[* WhenBa r]&] [s2;%% Use to supply context menu.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenSel: [_^Callback^ Callback]_[* WhenSel]&] [s2;%% Cursor or selection has changed (including KillCursor).&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenDrag: [_^Callback^ Callback]_[* WhenDrag]&] [s2;%% Triggered when user attempts dragging an item.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenDropItem: [_^Callback2^ Callback2][@(0.0.255) ]_[* WhenDropItem]&] [s2;%% This callback manages drag`&drop into TreeCtrl items. The first parameter is an id of item. See [^PasteClip^ PasteClip] for more details.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenDropInsert: [_^Callback3^ Callback3][@(0.0.255) ]_[* WhenDropInsert]&] [s2;%% This callback manages drag`&drop into insert positions between TreeCtrl items. The first parameter is an id of parent item, the second parameter is insert index within parent`'s child list. See [^PasteClip^ PasteClip] for more details.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenDrop: [_^Callback1^ Callback1][@(0.0.255) <]PasteClip[@(0.0.255) `&>]_ [* WhenDrop]&] [s2;%% This callback manages drag`&drop when WhenDropItem and WhenDropInsert do not apply `- drop into empty area. See [^PasteClip^ PasteClip] for more details.&] [s3; &] [s4; &] [s5;:Upp`:`:TreeCtrl`:`:WhenStartEdit: [_^Upp`:`:Event^ Event]<[@(0.0.255) int]>_[* WhenSta rtEdit]&] [s2;%% Called before TreeCtrl starts editing the node. The first parameter is the cursor of edited element.&] [s3; &] [s4; &] [s5;:Upp`:`:TreeCtrl`:`:WhenEdited: [_^Upp`:`:Event^ Event]<[@(0.0.255) int][%% ,][@(0.0.255) const]_Value[@(0.0.255) `&]>_[* WhenEdited]&] [s2;%% When defined TreeCtrl will start editing the node value when clicked on already select one (after a while) in a way similar to e.g. FileSel file renaming. When the value is accepted, WhenEdit is called with a new value. Value is not changed in TreeCtrl, if that is desired, it is a responsibility of code that is assigned to the WhenEdited. Default editor is EditString and can be changed with Editor modifier method. The first parameter is the cursor of edited element.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenCursor: [_^Callback^ Callback]_[* WhenCursor]&] [s2;%% Cursor has changed (including KillCursor). Deprecated.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:WhenSelection: [_^Callback^ Callback]_[* WhenSelection]&] [s2;%% Selection has changed. Deprecated.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SetRoot`(const TreeCtrl`:`:Node`&`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) c onst]_[_^TreeCtrl`:`:Node^ TreeCtrl`::Node][@(0.0.255) `&]_[*@3 n])&] [s2;%% Sets the content of root item to [%-*@3 n]. Full deep copy of [%-*@3 n] is performed.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SetRoot`(const Image`&`,Value`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) c onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 v])&] [s2;%% Sets image, key and value of root item. [%-*@3 v] is used both for key and value.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SetRoot`(const Image`&`,Value`,Value`): [@(0.0.255) void]_[* SetRoot]([@(0.0.255) c onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], [_^Value^ Value]_[*@3 text])&] [s2;%% Sets the image, key and value of root item.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:SetRoot`(const Image`&`,Ctrl`&`,int`,int`): [@(0.0.255) void]_[* SetRoot ]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Ctrl^ Ctrl][@(0.0.255) `&]_ [*@3 ctrl], [@(0.0.255) int]_[*@3 cx]_`=_[@3 0], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] [s2;%% Sets widget to be at root item. Only reference to [%-*@3 ctrl] is stored `-> widget object lifetime must exceed TreeCtrl`'s lifetime. Dimensions of widget should be [%-*@3 cx], [%-*@3 cy]. If either [%-*@3 cx] or [%-*@3 cy] are zero, GetMinSize dimension is used.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Insert`(int`,int`,const TreeCtrl`:`:Node`&`): [@(0.0.255) int]_[* Insert ]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^TreeCtrl`:`:Node^ T reeCtrl`::Node][@(0.0.255) `&]_[*@3 n])&] [s5;:TreeCtrl`:`:Insert`(int`,int`): [@(0.0.255) int]_[* Insert]([@(0.0.255) int]_[*@3 parent id], [@(0.0.255) int]_[*@3 i])&] [s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,bool`): [@(0.0.255) int]_[* Inse rt]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ I mage][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen ]_`=_[@(0.0.255) false])&] [s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,Value`,bool`): [@(0.0.255) int ]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], [_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] [s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Ctrl`&`,int`,int`,bool`): [@(0.0.255) i nt]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c ], [@(0.0.255) int]_[*@3 cx]_`=_[@3 0], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0], [@(0.0.255) bool]_[*@3 wo]_`=_[@(0.0.255) false])&] [s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,const String`&`,bool`): [@(0.0.255) i nt]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 value], [@(0.0.255) bool]_[*@3 with open]_`=_[@(0.0.255) false])&] [s5;:TreeCtrl`:`:Insert`(int`,int`,const Image`&`,Value`,const char`*`,bool`): [@(0.0.255) i nt]_[* Insert]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) f alse])&] [s2; Inserts child item to parent specified by id. Distinct variants set various attributes to TreeCtrl`::Node of insterted item. Returns id of new item. Note: Last two overloads are to avoid overloading ambiguity.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:Add`(int`,const TreeCtrl`:`:Node`&`): [@(0.0.255) int]_[* Add]([@(0.0.255) i nt]_[*@3 parentid], [@(0.0.255) const]_[_^TreeCtrl`:`:Node^ TreeCtrl`::Node][@(0.0.255) `& ]_[*@3 n])&] [s5;:TreeCtrl`:`:Add`(int`): [@(0.0.255) int]_[* Add]([@(0.0.255) int]_[*@3 parentid])&] [s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,bool`): [@(0.0.255) int]_[* Add]([@(0.0.255) i nt]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] [s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,Value`,bool`): [@(0.0.255) int]_[* Add]( [@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Value^ Value]_[*@3 key], [_^Value^ Value]_[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`= _[@(0.0.255) false])&] [s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Ctrl`&`,int`,int`,bool`): [@(0.0.255) int]_[* A dd]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 i mg], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx]_`=_[@3 0], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] [s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,const String`&`,bool`): [@(0.0.255) in t]_[* Add]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `& ]_[*@3 img], [_^Value^ Value]_[*@3 key], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_ [*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] [s5;:TreeCtrl`:`:Add`(int`,const Image`&`,Value`,const char`*`,bool`): [@(0.0.255) int]_ [* Add]([@(0.0.255) int]_[*@3 parentid], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 i mg], [_^Value^ Value]_[*@3 key], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 value], [@(0.0.255) bool]_[*@3 withopen]_`=_[@(0.0.255) false])&] [s2; Inserts child item at the end of list of parent`'s child items. Parent is specified by id. Distinct variants set various attributes to TreeCtrl`::Node of insterted item. Returns id of new item. Note: Last two overloads are to avoid overloading ambiguity.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 id])&] [s2;%% Removes item with [%-*@3 id] from the tree.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:RemoveChildren`(int`): [@(0.0.255) void]_[* RemoveChildren]([@(0.0.255) in t]_[*@3 id])&] [s2;%% Removes all child items from parent item with [%-*@3 id].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Swap`(int`,int`): [@(0.0.255) void]_[* Swap]([@(0.0.255) int]_[*@3 id1], [@(0.0.255) int]_[*@3 id2])&] [s2;%% Swaps two tree items.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:SwapChildren`(int`,int`,int`): [@(0.0.255) void]_[* SwapChildren]([@(0.0.255) i nt]_[*@3 parentid], [@(0.0.255) int]_[*@3 i1], [@(0.0.255) int]_[*@3 i2])&] [s2;%% Swaps [%-*@3 parentid] children with indices [%-*@3 i1] and [%-*@3 i2].&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:GetChildCount`(int`)const: [@(0.0.255) int]_[* GetChildCount]([@(0.0.255) i nt]_[*@3 id])_[@(0.0.255) const]&] [s2;%% Returns the number of child items of parent item with [%-*@3 id].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetChild`(int`,int`)const: [@(0.0.255) int]_[* GetChild]([@(0.0.255) int]_ [*@3 id], [@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] [s2;%% Returns the identifier of child at index [%-*@3 i] of parent item with [%-*@3 id].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetChildIndex`(int`,int`)const: [@(0.0.255) int]_[* GetChildIndex]([@(0.0.255) i nt]_[*@3 parentid], [@(0.0.255) int]_[*@3 childid])_[@(0.0.255) const]&] [s2;%% Returns an index of child item of [%-*@3 parentid] with id [%-*@3 childid].&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:GetParent`(int`)const: [@(0.0.255) int]_[* GetParent]([@(0.0.255) int]_[*@3 i d])_[@(0.0.255) const]&] [s2;%% Returns the parent identifier of child with [%-*@3 id].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Get`(int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 id])_[@(0.0.255) c onst]&] [s3;^Value^ &] [s4;^Value^ &] [s5;:TreeCtrl`:`:GetValue`(int`)const: [_^Value^ Value]_[* GetValue]([@(0.0.255) int]_[*@3 id ])_[@(0.0.255) const]&] [s2;%% Returns the value of item with [%-*@3 id].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:operator`[`]`(int`)const: [_^Value^ Value]_[* operator`[`]]([@(0.0.255) in t]_[*@3 id])_[@(0.0.255) const]&] [s2;%% Returns the key of item with [%-*@3 id].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Set`(int`,Value`): [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 id], [_^Value^ Value]_[*@3 v])&] [s2;%% Sets the value [/ and] key of item with [%-*@3 id].&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:Set`(int`,Value`,Value`): [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 id ], [_^Value^ Value]_[*@3 key], [_^Value^ Value]_[*@3 value])&] [s2;%% Sets the value and key of item with [%-*@3 id].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SetValue`(const Value`&`): [@(0.0.255) void]_[* SetValue]([@(0.0.255) cons t]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] [s2;%% Sets the value of item with cursor, key is unchanged.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:SetDisplay`(int`,const Display`&`): [@(0.0.255) void]_[* SetDisplay]([@(0.0.255) i nt]_[*@3 id], [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 display])&] [s2;%% Sets the display of [%-*@3 id] item.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:RefreshItem`(int`): [@(0.0.255) void]_[* RefreshItem]([@(0.0.255) int]_[*@3 i d])&] [s2;%% Forces the repainting of item (e.g. when its appearance changes in a way that cannot be detected by TreeCtrl widget).&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:GetLineCount`(`): [@(0.0.255) int]_[* GetLineCount]()&] [s2;%% Gets the current number of lines `- visible items `- in TreeCtrl.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetItemAtLine`(int`): [@(0.0.255) int]_[* GetItemAtLine]([@(0.0.255) int]_ [*@3 i])&] [s2;%% Gets the id of item at line i.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetLineAtItem`(int`): [@(0.0.255) int]_[* GetLineAtItem]([@(0.0.255) int]_ [*@3 id])&] [s2;%% Gets the line of item with [%-*@3 id]. If item is not visible, returns negative value.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetNode`(int`)const: [_^TreeCtrl`:`:Node^ Node]_[* GetNode]([@(0.0.255) in t]_[*@3 id])_[@(0.0.255) const]&] [s2;%% Returns attributes of item with [%-*@3 id].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SetNode`(int`,const TreeCtrl`:`:Node`&`): [@(0.0.255) void]_[* SetNode]( [@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^TreeCtrl`:`:Node^ TreeCtrl`::Node][@(0.0.255) `& ]_[*@3 n])&] [s2;%% Sets attributes.&] [s3; &] [s4; &] [s5;:Upp`:`:TreeCtrl`:`:IsValid`(int`)const: [@(0.0.255) bool]_[* IsValid]([@(0.0.255) int]_ [*@3 id])_[@(0.0.255) const]&] [s2;%% Returns true if [%-*@3 id] represents a valid node id.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:IsOpen`(int`)const: [@(0.0.255) bool]_[* IsOpen]([@(0.0.255) int]_[*@3 id])_ [@(0.0.255) const]&] [s2;%% Tests whether item is opened.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Open`(int`,bool`): [@(0.0.255) void]_[* Open]([@(0.0.255) int]_[*@3 id], [@(0.0.255) bool]_[*@3 open]_`=_[@(0.0.255) true])&] [s2;%% Opens or closes (if [%-*@3 open] is false) item with id `- makes all child items visible.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Close`(int`): [@(0.0.255) void]_[* Close]([@(0.0.255) int]_[*@3 id])&] [s2;%% Same as Open(id, false).&] [s3; &] [s4; &] [s5;:Upp`:`:TreeCtrl`:`:GetOpenIds`(`)const: [_^Upp`:`:Vector^ Vector]<[@(0.0.255) int]>_ [* GetOpenIds]()_[@(0.0.255) const]&] [s2;%% Returns all open node ids.&] [s3; &] [s4; &] [s5;:Upp`:`:TreeCtrl`:`:OpenIds`(const Upp`:`:Vector``&`): [@(0.0.255) void]_[* Ope nIds]([@(0.0.255) const]_[_^Upp`:`:Vector^ Vector]<[@(0.0.255) int]>`&_[*@3 ids])&] [s2;%% Opens all valid [%-*@3 ids].&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:OpenDeep`(int`,bool`): [@(0.0.255) void]_[* OpenDeep]([@(0.0.255) int]_[*@3 i d], [@(0.0.255) bool]_[*@3 open]_`=_[@(0.0.255) true])&] [s2;%% Opens/closes item with [%-*@3 id] and all of its child items.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:CloseDeep`(int`): [@(0.0.255) void]_[* CloseDeep]([@(0.0.255) int]_[*@3 id]) &] [s2;%% Same as OpenDeep([%-*@3 id], false).&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:MakeVisible`(int`): [@(0.0.255) void]_[* MakeVisible]([@(0.0.255) int]_[*@3 i d])&] [s2;%% Opens all parent items of item with [%-*@3 id] to make it visible.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SetCursorLine`(int`): [@(0.0.255) void]_[* SetCursorLine]([@(0.0.255) int]_ [*@3 i])&] [s2;%% Sets cursor in the tree to be at visible item line [%-*@3 i].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetCursorLine`(`)const: [@(0.0.255) int]_[* GetCursorLine]()_[@(0.0.255) c onst]&] [s2;%% Returns visible item line.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:KillCursor`(`): [@(0.0.255) void]_[* KillCursor]()&] [s2;%% Removes cursor from tree.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SetCursor`(int`): [@(0.0.255) void]_[* SetCursor]([@(0.0.255) int]_[*@3 id]) &] [s2;%% Sets cursor to item with [%-*@3 id]. If item is not visible, MakeVisible(id) is called first.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] [s2;%% Returns id of item that currently has cursor or negative value if there is none.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:IsCursor`(`)const: [@(0.0.255) bool]_[* IsCursor]()_[@(0.0.255) const]&] [s2;%% Returns true if there is cursor in the tree.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetItemClickPos`(`)const: [_^Point^ Point]_[* GetItemClickPos]()_[@(0.0.255) c onst]&] [s2;%% Returns current mouse position within item Display rectangle when clicked.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetScroll`(`)const: [_^Point^ Point]_[* GetScroll]()_[@(0.0.255) const]&] [s2;%% Returns the scroll position of tree.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:ScrollTo`(Point`): [@(0.0.255) void]_[* ScrollTo]([_^Point^ Point]_[*@3 sc]) &] [s2;%% Scrolls tree back to value previously returned by GetScroll.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Get`(`)const: [_^Value^ Value]_[* Get]()_[@(0.0.255) const]&] [s2;%% Returns key of item with cursor or Null if there is none.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetValue`(`)const: [_^Value^ Value]_[* GetValue]()_[@(0.0.255) const]&] [s2;%% Returns value of item with cursor or Null if there is none.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Find`(Value`): [@(0.0.255) int]_[* Find]([_^Value^ Value]_[*@3 key])&] [s2;%% Returns id of item with [%-*@3 key] or negative value if not found.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:FindSetCursor`(Value`): [@(0.0.255) bool]_[* FindSetCursor]([_^Value^ Valu e]_[*@3 key])&] [s2;%% Places cursor to first item with [%-*@3 key], returns true if found.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Sort`(int`,const ValueOrder`&`,bool`): [@(0.0.255) void]_[* Sort]([@(0.0.255) i nt]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_[*@3 order], [@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] [s2;%% Sorts child items of item with [%-*@3 id] using [%-*@3 order] sorting predicate. If [%-*@3 byvalue] is false, items are sorted by keys, if true, by values.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SortDeep`(int`,const ValueOrder`&`,bool`): [@(0.0.255) void]_[* SortDeep ]([@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_[*@3 o rder], [@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] [s2;%% Sorts child items of item with [%-*@3 id] using [%-*@3 order] sorting predicate. If [%-*@3 byvalue] is false, items are sorted by keys, if true, by values. After sorting, it recursively calls SortDeep for all child items.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Sort`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`,bool`): [@(0.0.255) v oid]_[* Sort]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const ]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueCompa re, [@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] [s2;%% Sort with simplified predicate [%-*@3 compare].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SortDeep`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`,bool`): [@(0.0.255) v oid]_[* SortDeep]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC ompare, [@(0.0.255) bool]_[*@3 byvalue]_`=_[@(0.0.255) false])&] [s2;%% SortDeep with simplified predicate [%-*@3 compare].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SortByValue`(int`,const ValueOrder`&`): [@(0.0.255) void]_[* SortByValue ]([@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_[*@3 o rder])&] [s5;:TreeCtrl`:`:SortDeepByValue`(int`,const ValueOrder`&`): [@(0.0.255) void]_[* SortDee pByValue]([@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `& ]_[*@3 order])&] [s5;:TreeCtrl`:`:SortByValue`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v oid]_[* SortByValue]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC ompare)&] [s5;:TreeCtrl`:`:SortDeepByValue`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v oid]_[* SortDeepByValue]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC ompare)&] [s2;%% Convenience variants call their basic counterparts with byvalue equal to true.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Sort`(int`,const ValuePairOrder`&`): [@(0.0.255) void]_[* Sort]([@(0.0.255) i nt]_[*@3 id], [@(0.0.255) const]_[_^ValuePairOrder^ ValuePairOrder][@(0.0.255) `&]_[*@3 ord er])&] [s5;:TreeCtrl`:`:Sort`(int`,int`(`*`)`(const Value`&k1`,const Value`&v1`,const Value`&k2`,const Value`&v2`)`): [@(0.0.255) v oid]_[* Sort]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const ]_Value[@(0.0.255) `&]_k1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_k2, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2))&] [s2;%% Sorts the children list of parent [%-*@3 id]. Note that if [%-*@3 id] is 0, the whole tree is sorted. The grandchildren are left intact.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:SortDeep`(int`,const ValuePairOrder`&`): [@(0.0.255) void]_[* SortDeep]( [@(0.0.255) int]_[*@3 id], [@(0.0.255) const]_[_^ValuePairOrder^ ValuePairOrder][@(0.0.255) `& ]_[*@3 order])&] [s5;:TreeCtrl`:`:SortDeep`(int`,int`(`*`)`(const Value`&k1`,const Value`&v1`,const Value`&k2`,const Value`&v2`)`): [@(0.0.255) v oid]_[* SortDeep]([@(0.0.255) int]_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c onst]_Value[@(0.0.255) `&]_k1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_k2, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2))&] [s2;%% Sorts the subtree of parent [%-*@3 id]. Note that if [%-*@3 id] is 0, the whole tree is sorted. The grandchildren are sorted as well.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] [s2;%% Removes all items from the tree.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:ClearSelection`(`): [@(0.0.255) void]_[* ClearSelection]()&] [s2;%% Clears any selection.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:SelectOne`(int`,bool`): [@(0.0.255) void]_[* SelectOne]([@(0.0.255) int]_[*@3 i d], [@(0.0.255) bool]_[*@3 sel])&] [s2;%% Selects/unselects single item with id.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:IsSelected`(int`)const: [@(0.0.255) bool]_[* IsSelected]([@(0.0.255) int]_ [*@3 id])_[@(0.0.255) const]&] [s2;%% Returns true if item with [%-*@3 id] is selected.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:IsSel`(int`)const: [@(0.0.255) bool]_[* IsSel]([@(0.0.255) int]_[*@3 id])_[@(0.0.255) c onst]&] [s2;%% Returns true if item with [%-*@3 id] is selected [*/ or has cursor][/ .]&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:GetSelectCount`(`)const: [@(0.0.255) int]_[* GetSelectCount]()_[@(0.0.255) c onst]&] [s2;%% The number of selected items.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:IsSelDeep`(int`)const: [@(0.0.255) bool]_[* IsSelDeep]([@(0.0.255) int]_[*@3 i d])_[@(0.0.255) const]&] [s2;%% True, if IsSel is true for the item or if IsSelDeep is true for its parent (if any item in parenthood chain is selected).&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:GetSel`(`)const: [_^Vector^ Vector][@(0.0.255) ]_[* GetSel]()_[@(0.0.255) c onst]&] [s2;%% Returns ids of all items with IsSel is true (note that it includes cursor item if there is no selection).&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Remove`(const Vector``&`): [@(0.0.255) void]_[* Remove]([@(0.0.255) c onst]_[_^Vector^ Vector][@(0.0.255) `&]_[*@3 id])&] [s2;%% Removes a set of items, [%-*@3 id ]is a list of item ids to remove.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:RemoveSelection`(`): [@(0.0.255) void]_[* RemoveSelection]()&] [s2;%% Same as Remove(GetSel()) `- removes all selected items.&] [s3; &] [s4; &] [s5;:Upp`:`:TreeCtrl`:`:OkEdit`(`): [@(0.0.255) void]_[* OkEdit]()&] [s2;%% If in`-place editor is active (see WhenEdited, WhenStartEdit and Editor), accepts the new value and ends the mode.&] [s3; &] [s4; &] [s5;:Upp`:`:TreeCtrl`:`:EndEdit`(`): [@(0.0.255) void]_[* EndEdit]()&] [s2;%% If in`-place editor is active (see WhenEdited, WhenStartEdit and Editor), ends the mode without accepting the value.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Dump`(`): [@(0.0.255) void]_[* Dump]()&] [s2;%% Diagnostic dump of tree content to standard log. Exists in debug mode only.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:NoCursor`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoCursor]([@(0.0.255) b ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2;%% Tree does not allow cursor.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:NoRoot`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoRoot]([@(0.0.255) b ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2;%% Root item is not shown.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:LevelCx`(int`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* LevelCx]([@(0.0.255) i nt]_[*@3 cx])&] [s2;%% Indentation per single hierarchy level. Default value is 16 pixels.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:MultiSelect`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* MultiSelect]( [@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2;%% Allows selection of items.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:NoBackground`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoBackgroun d]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2;%% White background of tree is not painted.&] [s0;%% &] [s4; &] [s5;:TreeCtrl`:`:PopUpEx`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* PopUpEx]([@(0.0.255) b ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2;%% In case that the display size of node value is greater than currently available area, attempts to show the complete value when cursor hovers over the node.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:NoPopUpEx`(`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* NoPopUpEx]()&] [s2;%% Same as PopUpEx(false).&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:MouseMoveCursor`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* MouseMov eCursor]([@(0.0.255) bool]_[*@3 m]_`=_[@(0.0.255) true])&] [s2;%% Mouse cursor moves tree cursor without clicking, just by moving the mouse over the tree.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:Accel`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* Accel]([@(0.0.255) b ool]_[*@3 a]_`=_[@(0.0.255) true])&] [s2;%% Activates simple keyboard accelerator. Node values are converted using StdFormat to text and then the first letter is used to find the appropriate item.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:SetDisplay`(const Display`&`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* Se tDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] [s2;%% Sets the universal Display used for all node values. This can be overridden for particular node by assigning node specific Display.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:HighlightCtrl`(bool`): [_^TreeCtrl^ TreeCtrl][@(0.0.255) `&]_[* HighlightC trl]([@(0.0.255) bool]_[*@3 a]_`=_[@(0.0.255) true])&] [s2;%% Paints the background area of embedded widgets with the same color as that used to paint regular values `- respects selection, cursor position etc.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TreeCtrl`:`:RenderMultiRoot`(bool`): [_^Upp`:`:TreeCtrl^ TreeCtrl][@(0.0.255) `& ]_[* RenderMultiRoot]([@(0.0.255) bool]_[*@3 a]_`=_[@(0.0.255) true])&] [s2;%% When active, no lines are drawn connecting zero level nodes (so it looks like there are multiple roots).&] [s3;%% &] [s4; &] [s5;:Upp`:`:TreeCtrl`:`:EmptyNodeIcon`(const Upp`:`:Image`&`): [_^Upp`:`:TreeCtrl^ Tree Ctrl][@(0.0.255) `&]_[* EmptyNodeIcon]([@(0.0.255) const]_[_^Upp`:`:Image^ Image][@(0.0.255) `& ]_[*@3 a])&] [s2;%% When RenderMultiRoot is active and there the node is zero level and has not elements, [%-*@3 a] is drawn on the left side to indicate it is empty.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TreeCtrl`:`:Editor`(Upp`:`:Ctrl`&`): [_^Upp`:`:TreeCtrl^ TreeCtrl][@(0.0.255) `& ]_[* Editor]([_^Upp`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 e])&] [s2;%% Assigns alternative editor for WhenEdited functionality.&] [s3;%% &] [s4; &] [s5;:TreeCtrl`:`:SetScrollBarStyle`(const ScrollBar`:`:Style`&`): [_^TreeCtrl^ TreeCtrl ][@(0.0.255) `&]_[* SetScrollBarStyle]([@(0.0.255) const]_[_^ScrollBar`:`:Style^ ScrollBa r`::Style][@(0.0.255) `&]_[*@3 s])&] [s2;%% Assigns a chameleon visual style of scrollbar of TreeCtrl.&] [s3;%% &] [s0;%% &] [s0; &] [s0; &] [ {{10000@3 [s0; [*@(229)4 TreeCtrl`::Node]]}}&] [s3; &] [s1;:TreeCtrl`:`:Node`:`:class: [@(0.0.255)3 class][3 _][*3 Node]&] [s9;%% This class represents the content and appearance of single TreeCtrl node`-item.&] [s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] [s3; &] [s5;:TreeCtrl`:`:Node`:`:Node`(`): [* Node]()&] [s2;%% Default constructor.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:Node`(const Image`&`,const Value`&`): [* Node]([@(0.0.255) const ]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& ]_[*@3 v])&] [s2;%% Assigns icon, key and value.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:Node`(const Image`&`,const Value`&`,const Value`&`): [* Node]( [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[_^Value^ Va lue][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 t])&] [s2;%% Assigns icon, key and value.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:Node`(const Value`&`): [* Node]([@(0.0.255) const]_[_^Value^ Value ][@(0.0.255) `&]_[*@3 v])&] [s2;%% Assigns key and value.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:Node`(const Value`&`,const Value`&`): [* Node]([@(0.0.255) const ]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_ [*@3 t])&] [s2;%% Assigns key and value.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:Node`(Ctrl`&`): [* Node]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] [s2;%% Assigns widget.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:Node`(const Image`&`,Ctrl`&`,int`,int`): [* Node]([@(0.0.255) co nst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [@(0.0.255) int]_[*@3 cx]_`=_[@3 0], [@(0.0.255) int]_[*@3 cy]_`=_[@3 0])&] [s2;%% Assigns icon, widget and its dimensions.&] [s3;%% &] [s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] [s3; &] [s5;:TreeCtrl`:`:Node`:`:image: [_^Image^ Image]_[* image]&] [s2;%% Node icon.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:margin: [@(0.0.255) int]_[* margin]&] [s2;%% Space between icon and value of the item, or item`'s widget. Defaults to 2.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:key: [_^Value^ Value]_[* key]&] [s2;%% Item key. This is not displayed.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:value: [_^Value^ Value]_[* value]&] [s2;%% Item value.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:display: [@(0.0.255) const]_[_^Display^ Display]_`*[* display]&] [s2;%% Display used to render value. Defaults to NULL, which means StdDisplay is to be used.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:size: [_^Size^ Size]_[* size]&] [s2;%% Size of value area. Defaults to Null `- in that case, value area size is determined by display`->GetStdSize(value) or ctrl`->GetMinSize() if widget for item is used.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:ctrl: [_^Ptr^ Ptr][@(0.0.255) <][_^Ctrl^ Ctrl][@(0.0.255) >]_[* ctrl]&] [s2;%% Widget associated with item.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:canopen: [@(0.0.255) bool]_[* canopen]&] [s2;%% Item can be opened.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:canselect: [@(0.0.255) bool]_[* canselect]&] [s2;%% Item can be selected.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:SetImage`(const Image`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `& ]_[* SetImage]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] [s2;%% Sets image.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:Set`(const Value`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_ [* Set]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] [s2;%% Sets both key and value to [%-*@3 v].&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:Set`(const Value`&`,const Value`&`): [_^TreeCtrl`:`:Node^ Node ][@(0.0.255) `&]_[* Set]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 t])&] [s2;%% Sets key and value.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:SetDisplay`(const Display`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `& ]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d])&] [s2;%% Sets display.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:SetSize`(Size`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* SetS ize]([_^Size^ Size]_[*@3 sz])&] [s2;%% Sets size.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:SetCtrl`(Ctrl`&`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* Se tCtrl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 `_ctrl])&] [s2;%% Sets widget.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:CanOpen`(bool`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* CanO pen]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2;%% Sets canopen flag.&] [s3; &] [s4; &] [s5;:TreeCtrl`:`:Node`:`:CanSelect`(bool`): [_^TreeCtrl`:`:Node^ Node][@(0.0.255) `&]_[* Ca nSelect]([@(0.0.255) bool]_[*@3 b])&] [s2;%% Sets canselect flag.&] [s3; &] [s0; ]]