http://www.mediamonkey.com/wiki/index.php/SDBTreeNode
Feel free to correct or add more detail. Perhaps later it can be added to the wiki.
- OnCanEditNode: If this Event is not registered, then it appears the node text can not be edited (f2 or mouse click). If for some reason you want to disable editing a particular node, you must have a Function that returns FALSE, otherwise to enable editing the node text this function must return TRUE.
Bug? This event is fired on every single click, instead of only F2 or slow double click so it basically will fire every time the node is clicked (even if the node was already current/active).
Bug? This event is also fired when the focus enters or leaves the node's tracklist (ie clicking from now playing track list, to node track list, or vice versa). - OnExecMenuItem: This Function is executed when clicking a menu item (from OnShowMenuItem) of a custom node, this event lets you over-ride the properties and/or remove functions for the selected node.
- OnExecTrackMenuItem: This Function is similar to OnExecMenuItem, but applies to right clicking a track within a custom node.
- OnFillChildren: This Sub executes when you double click a node or click the "+" to expand it to show sub/child nodes.
- OnFillTracks: This Sub is executed whenever the node is selected to fill the track list. This event will clear the current tracklist, and then populate it based on the results (if any) of your function.
- OnNodeDragDrop: This Function requires Five parameters (Destination Node, Source Node, SongList, The Type of Copy/Move operation, and whether or not its a test).
I don't yet fully understand how this function works. - OnNodeEdited: This Sub is executed when a user completes editing the node text caption (ie presses enter after editing the text).
- OnNodeEditText: This Function allows you to supply the user a different text to edit than actually is shown in the current caption text.
- OnNodeFocused: This Function returns a LONG result when a node gets the focus. This function takes priority over OnFillTracks, if both are registered then OnFillTracks will never be called.
This event does NOT clear the track list, whatever is in the main track window will remain there unless your function updates it.
I don't yet fully understand what this is to be used for. - OnShowMenuItem: This Function returns which items appear on the node context menu.
Not quite sure how to use this one.
Bug? this event executes once on LEFT click (no context menu) and TWICE on RIGHT click (context menu) - OnShowTrackMenuItem: This Function returns which items appear on the Track context menu of a custom node.
Not sure how to use this one either.
1) OnCanEditNode
2) OnShowMenuItem
3) OnNodeFocused (blocks OnFillTracks)
4) OnFillChildren
Event execution (left clicking while already active node)
1)OnCanEditNode
Event execution order (right clicking on node from different node)
1) OnCanEdit
2) OnShowMenuItem
3) OnFillTracks
4) OnCanEdit
5) OnShowMenuItem
6) OnShowMenuItem
Event execution order (right clicking already active node)
1) OnCanEdit
2) OnShowMenuItem
3) OnShowMenuItem
Event execution order (F5/Refresh node)
1) OnCanEdit
2) OnShowMenuItem
3) OnNodeFocus (or) OnFilltracks
As show, some of these events are either fired multiple times and/or fired when logically they should not be (right click vs left click). I don't know if these are bugs or intended for some reasons.