winamp/Src/Wasabi/api/skin/widgets/xuitree.cpp
2024-09-24 14:54:57 +02:00

2645 lines
77 KiB
C++

#include <precomp.h>
#include "xuitree.h"
#include <api/service/svc_enum.h>
#include <bfc/parse/hierarchyparser.h>
#include <api/script/scriptguid.h>
#include <api/skin/feeds/TextFeedEnum.h>
// The temporary memory buffer to hold our string returns.
StringW GuiTreeScriptController::staticStr;
class ScriptTreeItem;
// -----------------------------------------------------------------------
// class TreeItemScript -- This is the tree item type inserted into
// the tree if a script or XML piece is inserting items into the tree.
class TreeItemScript : public TreeItem
{
public:
TreeItemScript(const wchar_t *label = NULL, ScriptTreeItem *_scriptitem = NULL) : scriptitem(_scriptitem), TreeItem(label)
{}
virtual ~TreeItemScript()
{}
virtual void onTreeAdd()
{
if (scriptitem) TreeItemScriptController::treeitem_onTreeAdd(SCRIPT_CALL, scriptitem->getScriptObject());
}
virtual void onTreeRemove()
{
if (scriptitem) TreeItemScriptController::treeitem_onTreeRemove(SCRIPT_CALL, scriptitem->getScriptObject());
}
virtual void onSelect()
{
if (scriptitem) TreeItemScriptController::treeitem_onSelect(SCRIPT_CALL, scriptitem->getScriptObject());
}
virtual void onDeselect()
{
if (scriptitem) TreeItemScriptController::treeitem_onDeselect(SCRIPT_CALL, scriptitem->getScriptObject());
}
virtual int onLeftDoubleClick()
{
scriptVar retval;
if (scriptitem)
retval = TreeItemScriptController::treeitem_onLeftDoubleClick(SCRIPT_CALL, scriptitem->getScriptObject());
if ((retval.type == SCRIPT_VOID)
|| (retval.type == SCRIPT_OBJECT)
|| (retval.type == SCRIPT_STRING))
return 0;
return GET_SCRIPT_INT(retval);
}
virtual int onRightDoubleClick()
{
scriptVar retval;
if (scriptitem) retval = TreeItemScriptController::treeitem_onRightDoubleClick(SCRIPT_CALL, scriptitem->getScriptObject());
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING)) return 0;
return GET_SCRIPT_INT(retval);
}
// return 1 if you eat the key
virtual int onChar(UINT key)
{
scriptVar retval;
if (scriptitem) retval = TreeItemScriptController::treeitem_onChar(SCRIPT_CALL, scriptitem->getScriptObject(), MAKE_SCRIPT_INT(key));
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING)) return 0;
return GET_SCRIPT_INT(retval);
}
// these are called after the expand/collapse happens
virtual void onExpand()
{
if (scriptitem) TreeItemScriptController::treeitem_onExpand(SCRIPT_CALL, scriptitem->getScriptObject());
}
virtual void onCollapse()
{
if (scriptitem) TreeItemScriptController::treeitem_onCollapse(SCRIPT_CALL, scriptitem->getScriptObject());
}
virtual int onBeginLabelEdit()
{
scriptVar retval;
if (scriptitem) retval = TreeItemScriptController::treeitem_onBeginLabelEdit(SCRIPT_CALL, scriptitem->getScriptObject());
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = TreeItem::onBeginLabelEdit();
}
return retv;
}
virtual int onEndLabelEdit(const wchar_t *newlabel)
{
scriptVar retval;
if (scriptitem)
retval = TreeItemScriptController::treeitem_onEndLabelEdit(SCRIPT_CALL, scriptitem->getScriptObject(), MAKE_SCRIPT_STRING(newlabel));
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = TreeItem::onEndLabelEdit(newlabel);
}
return retv;
}
virtual int onContextMenu(int x, int y)
{
scriptVar retval;
if (scriptitem) retval = TreeItemScriptController::treeitem_onContextMenu(SCRIPT_CALL, scriptitem->getScriptObject(), MAKE_SCRIPT_INT(x), MAKE_SCRIPT_INT(y) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = TreeItem::onContextMenu(x, y);
}
return retv;
}
protected:
ScriptTreeItem *scriptitem;
};
// -----------------------------------------------------------------------
const wchar_t ScriptTreeXuiObjectStr[] = L"Tree"; // This is the xml tag
char ScriptTreeXuiSvcName[] = "Tree xui object";
XMLParamPair ScriptTree::params[] = {
{SCRIPTTREE_CHILDTABS, L"CHILDTABS"},
{SCRIPTTREE_EXPANDROOT, L"EXPANDROOT"},
{SCRIPTTREE_FEED, L"FEED"},
{SCRIPTTREE_SETITEMS, L"ITEMS"},
{SCRIPTTREE_SORTED, L"SORTED"},
};
// -----------------------------------------------------------------------
ScriptTree::ScriptTree()
{
getScriptObject()->vcpu_setInterface(guitreeGuid, (void *)static_cast<ScriptTree *>(this));
getScriptObject()->vcpu_setClassName(L"GuiTree"); // this is the script class name
getScriptObject()->vcpu_setController(guiTreeController);
myxuihandle = newXuiHandle();
CreateXMLParameters(myxuihandle);
feed = NULL;
childtabs = 1;
expandroot = 1;
}
void ScriptTree::CreateXMLParameters(int master_handle)
{
//SCRIPTTREE_PARENT::CreateXMLParameters(master_handle);
int numParams = sizeof(params) / sizeof(params[0]);
hintNumberOfParams(myxuihandle, numParams);
for (int i = 0;i < numParams;i++)
addParam(myxuihandle, params[i], XUI_ATTRIBUTE_IMPLIED);
}
// -----------------------------------------------------------------------
ScriptTree::~ScriptTree()
{
closeFeed();
// Clean up the ScriptTreeItems owned by this guy.
TreeItem *item = enumRootItem(0);
while (item != NULL)
{
// Delete this item.
ScriptTreeItem *dead = NULL;
//if (TISC::g_scriptitems.getItem(item, &dead) && (dead != NULL))
//{ // true if it found something.
// TISC::g_scriptitems.delItem(item);
// delete dead;
// // DebugString(" === deleting tree item (%08X, %08X, %08X)\n", item, dead, this);
// continue;
//}
auto it = TISC::g_scriptitems.find(item);
if (TISC::g_scriptitems.end() != it)
{
dead = it->second;
delete dead;
TISC::g_scriptitems.erase(it);
continue;
}
else
{
// DebugString(" !!! ORPHAN TREE ITEM (%08X, %08X, %08X)\n", item, 0, this);
}
// Figure out who the next item to process should be.
// 1) Children first.
TreeItem *child = item->getChild();
if (child != NULL)
{
item = child;
}
else
{
// 2) Siblings next.
TreeItem *sibling = item->getSibling();
if (sibling != NULL)
{
item = sibling;
}
else
{
// 3) Zip up parent chain last.
TreeItem *item_parent, *parent_sibling;
item_parent = item->getParent();
item = NULL; // at this point if we do not assign, we are NULL.
while (item_parent != NULL)
{
parent_sibling = item_parent->getSibling();
if (parent_sibling != NULL)
{
item = parent_sibling;
break;
}
item_parent = item_parent->getParent();
}
// 4) Uhhh.... you're null. All done. Go home.
}
}
}
/*
// delete all of our script items from g_scriptitems
int i = 0;
TreeItem *next = enumRootItem(0);
while (next) { // go through all of our items
ScriptTreeItem *dead = NULL;
if (TISC::g_scriptitems.getItem(next, &dead) && (dead != NULL)) { // true if it found something.
TISC::g_scriptitems.delItem(next);
delete dead;
// DebugString(" === deleting tree item (%08X, %08X)\n", next, dead);
} else {
// DebugString(" !!! ORPHAN TREE ITEM (%08X, %08X)\n", next, i);
}
TreeItem *next = enumAllItems(i++);
}
*/
// some items will wind up leaked into g_scriptitems, most likely.
}
// -----------------------------------------------------------------------
int ScriptTree::setXuiParam(int xuihandle, int xmlattributeid, const wchar_t *xmlattributename, const wchar_t *value)
{
if (xuihandle != myxuihandle)
return SCRIPTTREE_PARENT::setXuiParam(xuihandle, xmlattributeid, xmlattributename, value);
switch (xmlattributeid)
{
case SCRIPTTREE_SETITEMS:
items = value;
fillFromParams();
#ifdef WASABI_COMPILE_CONFIG
if (getGuiObject()->guiobject_hasCfgAttrib())
selectFromConfig();
#endif
break;
case SCRIPTTREE_FEED:
{
closeFeed();
openFeed(value);
break;
}
case SCRIPTTREE_SORTED:
{
setSorted(WTOB(value));
break;
}
case SCRIPTTREE_CHILDTABS:
{
childtabs = WTOI(value);
break;
}
case SCRIPTTREE_EXPANDROOT:
{
expandRoot(WTOI(value));
break;
}
default:
return 0;
}
return 1;
}
// -----------------------------------------------------------------------
int ScriptTree::onInit()
{
SCRIPTTREE_PARENT::onInit();
fillFromParams();
return 1;
}
// -----------------------------------------------------------------------
int ScriptTree::onAction(const wchar_t *action, const wchar_t *param, int x, int y, intptr_t p1, intptr_t p2, void *data, size_t datalen, ifc_window *source)
{
SCRIPTTREE_PARENT::onAction(action, param, x, y, p1, p2, data, datalen, source);
if (!WCSICMP(action, L"get_selection"))
{
if (source != NULL)
{
StringW res(L"");
// Hmmmmm..... multiselection trees?
sendAction(source, L"set_selection", res);
}
}
return 1;
}
// -----------------------------------------------------------------------
ScriptTreeItem *ScriptTree::bindScriptTreeItem(TreeItem *item)
{
ASSERT(item != NULL);
// find this tree item in our map of tree items.
ScriptTreeItem *si = NULL;
//TISC::g_scriptitems.getItem(item, &si);
auto it = TISC::g_scriptitems.find(item);
if (TISC::g_scriptitems.end() == it)
{
// if there was no scriptobject in our map already, make one
// for this tree item and place it in our map.
si = new ScriptTreeItem(item, this);
TISC::g_scriptitems.insert({ item, si });
}
else
{
si = it->second;
}
return si;
}
// -----------------------------------------------------------------------
int ScriptTree::destroyScriptTreeItem(ScriptTreeItem *item)
{
ASSERT(item != NULL);
// find this tree item in our map of tree items.
TreeItem *ti = item->getItem();
if (ti)
{
ScriptTreeItem *check = NULL;
//TISC::g_scriptitems.getItem(ti, &check); // this is a doublecheck on who owns who.
auto it = TISC::g_scriptitems.find(ti);
if (TISC::g_scriptitems.end() != it)
{
// remove the treeitem from the tree
this->removeTreeItem(ti); // (removes without deleting)
// remove the scripttreeitem from the map
TISC::g_scriptitems.erase(it);
// and delete.(phew! bomb disposal!)
delete ti;
delete item;
return 1; // yes, we deleted it.
}
}
return 0; // Not ours, don't wanna delete it. Someone else can Deal With It.
}
// -----------------------------------------------------------------------
void ScriptTree::onSetVisible(int i)
{
SCRIPTTREE_PARENT::onSetVisible(i);
}
#ifdef WASABI_COMPILE_CONFIG
// -----------------------------------------------------------------------
int ScriptTree::onReloadConfig()
{
SCRIPTTREE_PARENT::onReloadConfig();
selectFromConfig();
return 1;
}
// -----------------------------------------------------------------------
void ScriptTree::saveToConfig()
{}
// -----------------------------------------------------------------------
void ScriptTree::selectFromConfig()
{}
#endif
// -----------------------------------------------------------------------
int ScriptTree::selectEntry(const wchar_t *e, int cb)
{
return -1;
}
// -----------------------------------------------------------------------
void ScriptTree::expandRoot(int val)
{
if (val)
{
expandroot = 1;
int count;
TreeItem *rootitem;
for (count = 0, rootitem = enumRootItem(count); rootitem; rootitem = enumRootItem(++count))
{
rootitem->expand();
}
}
else
{
expandroot = 0;
}
}
// -----------------------------------------------------------------------
void ScriptTree::fillFromHPNode(HPNode *node, TreeItem *parent)
{
// Go through the given node's children and add items for them
// to the corresponding parent item.
int i, n = node->getNumChildren();
for (i = 0; i < n; i++)
{
// Here's a child node
HPNode *child_node = static_cast<HPNode *>(node->enumChild(i));
// Make a script-aware tree item and script item to correspond to it, labelled with the child_node's name
ScriptTreeItem *si = new ScriptTreeItem;
TreeItem *child_item = new TreeItemScript((*child_node)(), si);
si->setItem(child_item);
si->setScriptTree(this);
// Add the script and tree items to the scriptitems map
TISC::g_scriptitems.insert({ child_item, si });
// DebugString(StringPrintf(" === NEW NODE ITEM (%08X, %08X, %08X)\n", child_item, si, this);
// Add the child item to either ourselves or the given parent.
addTreeItem(child_item, parent, getSorted(), childtabs);
// And then continue to fill from that node.
fillFromHPNode(child_node, child_item);
}
}
// -----------------------------------------------------------------------
void ScriptTree::fillFromParams()
{
deleteAllItems();
if (!items.isempty())
{
HierarchyParser hierarchy(items);
fillFromHPNode(hierarchy.rootNode());
}
// If we want our roots opened, do so now.
expandRoot(expandroot);
}
// -----------------------------------------------------------------------
void ScriptTree::selectEntries(const wchar_t *entries, int cb)
{}
// -----------------------------------------------------------------------
void ScriptTree::openFeed(const wchar_t *feedid)
{
if (!_wcsicmp(feedid, last_feed)) return ;
feed = TextFeedEnum(feedid).getFirst();
if (feed != NULL)
{
viewer_addViewItem(feed->getDependencyPtr());
setXuiParam(myxuihandle, SCRIPTTREE_SETITEMS, L"items", feed->getFeedText(feedid));
}
last_feed = feedid;
}
// -----------------------------------------------------------------------
void ScriptTree::closeFeed()
{
if (feed)
{
viewer_delViewItem(feed->getDependencyPtr());
SvcEnum::release(feed);
}
feed = NULL;
last_feed = L"";
}
// -----------------------------------------------------------------------
int ScriptTree::viewer_onEvent(api_dependent *item, const GUID *classguid, int event, intptr_t param, void *ptr, size_t ptrlen)
{
if (feed == dynamic_guid_cast<svc_textFeed>(item, classguid))
{
if (event == svc_textFeed::Event_TEXTCHANGE)
{
setXuiParam(myxuihandle, SCRIPTTREE_SETITEMS, L"items", (const wchar_t *)ptr);
return 1;
}
}
return 0;
}
// -----------------------------------------------------------------------
// Callback methods that send hooks into the Script system
int ScriptTree::onLeftButtonDown(int x, int y)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onLeftButtonDown(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(x), MAKE_SCRIPT_INT(y) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onLeftButtonDown(x, y);
}
return retv;
}
int ScriptTree::onLeftButtonUp(int x, int y)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onLeftButtonUp(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(x), MAKE_SCRIPT_INT(y) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onLeftButtonUp(x, y);
}
return retv;
}
int ScriptTree::onRightButtonUp(int x, int y)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onRightButtonUp(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(x), MAKE_SCRIPT_INT(y) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onRightButtonUp(x, y);
}
return retv;
}
int ScriptTree::onMouseMove(int x, int y)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onMouseMove(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(x), MAKE_SCRIPT_INT(y) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onMouseMove(x, y);
}
return retv;
}
int ScriptTree::wantAutoContextMenu()
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_wantAutoContextMenu(SCRIPT_CALL, getScriptObject() );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::wantAutoContextMenu();
}
return retv;
}
int ScriptTree::onLeftButtonDblClk(int x, int y)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onLeftButtonDblClk(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(x), MAKE_SCRIPT_INT(y) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onLeftButtonDblClk(x, y);
}
return retv;
}
int ScriptTree::onRightButtonDblClk(int x, int y)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onRightButtonDblClk(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(x), MAKE_SCRIPT_INT(y) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onRightButtonDblClk(x, y);
}
return retv;
}
int ScriptTree::onMouseWheelUp(int clicked, int lines)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onMouseWheelUp(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(clicked), MAKE_SCRIPT_INT(lines) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onMouseWheelUp(clicked, lines);
}
return retv;
}
int ScriptTree::onMouseWheelDown(int clicked, int lines)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onMouseWheelDown(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(clicked), MAKE_SCRIPT_INT(lines) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onMouseWheelDown(clicked, lines);
}
return retv;
}
int ScriptTree::onContextMenu(int x, int y)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onContextMenu(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(x), MAKE_SCRIPT_INT(y) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onContextMenu(x, y);
}
return retv;
}
int ScriptTree::onChar(wchar_t c)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onChar(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(c));
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onChar(c);
}
return retv;
}
int ScriptTree::onKeyDown(int keycode)
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onKeyDown(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_INT(keycode) );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onKeyDown(keycode);
}
return retv;
}
void ScriptTree::onItemRecvDrop(TreeItem *item)
{
ScriptTreeItem *sti_item = bindScriptTreeItem(item);
GuiTreeScriptController::guitree_onItemRecvDrop(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_OBJECT(sti_item->getScriptObject()) );
}
void ScriptTree::onLabelChange(TreeItem *item)
{
ScriptTreeItem *sti_item = bindScriptTreeItem(item);
GuiTreeScriptController::guitree_onLabelChange(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_OBJECT(sti_item->getScriptObject()) );
}
void ScriptTree::onItemSelected(TreeItem *item)
{
ScriptTreeItem *sti_item = bindScriptTreeItem(item);
GuiTreeScriptController::guitree_onItemSelected(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_OBJECT(sti_item->getScriptObject()) );
}
void ScriptTree::onItemDeselected(TreeItem *item)
{
ScriptTreeItem *sti_item = bindScriptTreeItem(item);
GuiTreeScriptController::guitree_onItemDeselected(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_OBJECT(sti_item->getScriptObject()) );
}
int ScriptTree::onKillFocus()
{
scriptVar retval;
retval = GuiTreeScriptController::guitree_onKillFocus(SCRIPT_CALL, getScriptObject() );
int retv = 0;
if ((retval.type == SCRIPT_VOID) || (retval.type == SCRIPT_OBJECT) || (retval.type == SCRIPT_STRING))
{
retv = -1;
}
if (!retv)
{
retv = GET_SCRIPT_INT(retval);
}
if (retv < 1)
{
retv = SCRIPTTREE_PARENT::onKillFocus();
}
return retv;
}
// -----------------------------------------------------------------------
// Script Object
GuiTreeScriptController _guiTreeController;
GuiTreeScriptController *guiTreeController = &_guiTreeController;
// -- Functions table -------------------------------------
function_descriptor_struct GuiTreeScriptController::exportedFunction[] = {
{L"getNumRootItems", 0, (void*)GuiTreeScriptController::guitree_getNumRootItems },
{L"enumRootItem", 1, (void*)GuiTreeScriptController::guitree_enumRootItem },
{L"onLeftButtonDown", 2, (void*)GuiTreeScriptController::guitree_onLeftButtonDown }, // , /*Int*/ scriptVar x, /*Int*/ scriptVar y);
{L"onLeftButtonUp", 2, (void*)GuiTreeScriptController::guitree_onLeftButtonUp }, // , /*Int*/ scriptVar x, /*Int*/ scriptVar y);
{L"onRightButtonUp", 2, (void*)GuiTreeScriptController::guitree_onRightButtonUp }, // , /*Int*/ scriptVar x, /*Int*/ scriptVar y);
{L"onMouseMove", 2, (void*)GuiTreeScriptController::guitree_onMouseMove }, // , /*Int*/ scriptVar x, /*Int*/ scriptVar y);
{L"onWantAutoContextMenu", 0, (void*)GuiTreeScriptController::guitree_wantAutoContextMenu }, // );
{L"onLeftButtonDblClk", 2, (void*)GuiTreeScriptController::guitree_onLeftButtonDblClk }, // , /*Int*/ scriptVar x, /*Int*/ scriptVar y);
{L"onRightButtonDblClk", 2, (void*)GuiTreeScriptController::guitree_onRightButtonDblClk }, // , /*Int*/ scriptVar x, /*Int*/ scriptVar y);
{L"onMouseWheelUp", 2, (void*)GuiTreeScriptController::guitree_onMouseWheelUp }, // , /*Int*/ scriptVar clicked, /*Int*/ scriptVar lines);
{L"onMouseWheelDown", 2, (void*)GuiTreeScriptController::guitree_onMouseWheelDown }, // , /*Int*/ scriptVar clicked, /*Int*/ scriptVar lines);
{L"onContextMenu", 2, (void*)GuiTreeScriptController::guitree_onContextMenu }, // , /*Int*/ scriptVar x, /*Int*/ scriptVar y);
{L"onChar", 1, (void*)GuiTreeScriptController::guitree_onChar }, // , /*Int*/ scriptVar c);
{L"onKeyDown", 1, (void*)GuiTreeScriptController::guitree_onKeyDown }, // , /*Int*/ scriptVar keycode);
{L"onItemRecvDrop", 1, (void*)GuiTreeScriptController::guitree_onItemRecvDrop }, // , /*TreeItem*/ scriptVar item);
{L"onLabelChange", 1, (void*)GuiTreeScriptController::guitree_onLabelChange }, // , /*TreeItem*/ scriptVar item);
{L"onItemSelected", 1, (void*)GuiTreeScriptController::guitree_onItemSelected }, // , /*TreeItem*/ scriptVar item);
{L"onItemDeselected", 1, (void*)GuiTreeScriptController::guitree_onItemDeselected }, // , /*TreeItem*/ scriptVar item);
{L"onKillFocus", 0, (void*)GuiTreeScriptController::guitree_onKillFocus }, // );
{L"jumpToNext", 1, (void*)GuiTreeScriptController::guitree_jumpToNext }, // , /*Int*/ scriptVar c);
{L"ensureItemVisible", 1, (void*)GuiTreeScriptController::guitree_ensureItemVisible }, // , /*TreeItem*/ scriptVar item);
{L"getContentsWidth", 0, (void*)GuiTreeScriptController::guitree_getContentsWidth }, // );
{L"getContentsHeight", 0, (void*)GuiTreeScriptController::guitree_getContentsHeight }, // );
{L"addTreeItem", 4, (void*)GuiTreeScriptController::guitree_addTreeItem }, // , /*TreeItem*/ scriptVar item, /*TreeItem*/ scriptVar par, /*Int*/ scriptVar sorted, /*Int*/ scriptVar haschildtab);
{L"removeTreeItem", 1, (void*)GuiTreeScriptController::guitree_removeTreeItem }, // , /*TreeItem*/ scriptVar item);
{L"moveTreeItem", 2, (void*)GuiTreeScriptController::guitree_moveTreeItem }, // , /*TreeItem*/ scriptVar item, /*TreeItem*/ scriptVar newparent);
{L"deleteAllItems", 0, (void*)GuiTreeScriptController::guitree_deleteAllItems }, // );
{L"expandItem", 1, (void*)GuiTreeScriptController::guitree_expandItem }, // , /*TreeItem*/ scriptVar item);
{L"expandItemDeferred", 1, (void*)GuiTreeScriptController::guitree_expandItemDeferred }, // , /*TreeItem*/ scriptVar item);
{L"collapseItem", 1, (void*)GuiTreeScriptController::guitree_collapseItem }, // , /*TreeItem*/ scriptVar item);
{L"collapseItemDeferred", 1, (void*)GuiTreeScriptController::guitree_collapseItemDeferred }, // , /*TreeItem*/ scriptVar item);
{L"selectItem", 1, (void*)GuiTreeScriptController::guitree_selectItem }, // , /*TreeItem*/ scriptVar item);
{L"selectItemDeferred", 1, (void*)GuiTreeScriptController::guitree_selectItemDeferred }, // , /*TreeItem*/ scriptVar item);
{L"delItemDeferred", 1, (void*)GuiTreeScriptController::guitree_delItemDeferred }, // , /*TreeItem*/ scriptVar item);
{L"hiliteItem", 1, (void*)GuiTreeScriptController::guitree_hiliteItem }, // , /*TreeItem*/ scriptVar item);
{L"unhiliteItem", 1, (void*)GuiTreeScriptController::guitree_unhiliteItem }, // , /*TreeItem*/ scriptVar item);
{L"getCurItem", 0, (void*)GuiTreeScriptController::guitree_getCurItem }, // );
{L"hitTest", 2, (void*)GuiTreeScriptController::guitree_hitTest }, // , /*Int*/ scriptVar x, /*Int*/ scriptVar y);
{L"editItemLabel", 1, (void*)GuiTreeScriptController::guitree_editItemLabel }, // , /*TreeItem*/ scriptVar item);
{L"cancelEditLabel", 1, (void*)GuiTreeScriptController::guitree_cancelEditLabel }, // , /*Int*/ scriptVar destroyit);
{L"setAutoEdit", 1, (void*)GuiTreeScriptController::guitree_setAutoEdit }, // , /*Int*/ scriptVar ae);
{L"getAutoEdit", 0, (void*)GuiTreeScriptController::guitree_getAutoEdit }, // );
{L"getByLabel", 2, (void*)GuiTreeScriptController::guitree_getByLabel }, // , /*TreeItem*/ scriptVar item, /*String*/ scriptVar name);
{L"setSorted", 1, (void*)GuiTreeScriptController::guitree_setSorted }, // , /*Int*/ scriptVar dosort);
{L"getSorted", 0, (void*)GuiTreeScriptController::guitree_getSorted }, // );
{L"sortTreeItems", 0, (void*)GuiTreeScriptController::guitree_sortTreeItems }, // );
{L"getSibling", 1, (void*)GuiTreeScriptController::guitree_getSibling }, // , /*TreeItem*/ scriptVar item);
{L"setAutoCollapse", 1, (void*)GuiTreeScriptController::guitree_setAutoCollapse }, // , /*Int*/ scriptVar doautocollapse);
{L"setFontSize", 1, (void*)GuiTreeScriptController::guitree_setFontSize }, // , /*Int*/ scriptVar newsize);
{L"getFontSize", 0, (void*)GuiTreeScriptController::guitree_getFontSize }, // );
{L"getNumVisibleChildItems", 1, (void*)GuiTreeScriptController::guitree_getNumVisibleChildItems }, // , /*TreeItem*/ scriptVar c);
{L"getNumVisibleItems", 0, (void*)GuiTreeScriptController::guitree_getNumVisibleItems }, // );
{L"enumVisibleItems", 1, (void*)GuiTreeScriptController::guitree_enumVisibleItems }, // , /*Int*/ scriptVar n);
{L"enumVisibleChildItems", 2, (void*)GuiTreeScriptController::guitree_enumVisibleChildItems }, // , /*TreeItem*/ scriptVar c, /*Int*/ scriptVar n);
{L"enumAllItems", 1, (void*)GuiTreeScriptController::guitree_enumAllItems }, // , /*Int*/ scriptVar n);
{L"getItemRectX", 1, (void*)GuiTreeScriptController::guitree_getItemRectX }, // , /*TreeItem*/ scriptVar item);
{L"getItemRectY", 1, (void*)GuiTreeScriptController::guitree_getItemRectY }, // , /*TreeItem*/ scriptVar item);
{L"getItemRectW", 1, (void*)GuiTreeScriptController::guitree_getItemRectW }, // , /*TreeItem*/ scriptVar item);
{L"getItemRectH", 1, (void*)GuiTreeScriptController::guitree_getItemRectH }, // , /*TreeItem*/ scriptVar item);
// {L"getItemFromPoint", 2, (void*)GuiTreeScriptController::guitree_getItemFromPoint }, // , /*Int*/ scriptVar x, /*Int*/ scriptVar y);
};
ScriptObject *GuiTreeScriptController::instantiate()
{
ScriptTree *sp = new ScriptTree;
ASSERT(sp != NULL);
return sp->getScriptObject();
}
void GuiTreeScriptController::destroy(ScriptObject *o)
{
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
ASSERT(sp != NULL);
delete sp;
}
void *GuiTreeScriptController::encapsulate(ScriptObject *o)
{
return NULL; // no encapsulation for guitrees yet
}
void GuiTreeScriptController::deencapsulate(void *o)
{}
int GuiTreeScriptController::getNumFunctions()
{
return sizeof(exportedFunction) / sizeof(function_descriptor_struct);
}
const function_descriptor_struct *GuiTreeScriptController::getExportedFunctions()
{
return exportedFunction;
}
/*int*/ scriptVar GuiTreeScriptController::guitree_getNumRootItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree*>(o->vcpu_getInterface(guitreeGuid));
int a = 0;
if (sp != NULL)
{
a = sp->getNumRootItems();
}
return MAKE_SCRIPT_INT(a);
}
/*TreeItem*/ scriptVar GuiTreeScriptController::guitree_enumRootItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*int*/ scriptVar which)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree*>(o->vcpu_getInterface(guitreeGuid));
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
TreeItem *a = NULL;
int _which = GET_SCRIPT_INT(which);
a = sp->enumRootItem(_which);
if (a != NULL)
{
ScriptTreeItem *item = sp->bindScriptTreeItem(a);
if (item != NULL)
{
retval = MAKE_SCRIPT_OBJECT(item->getScriptObject());
}
}
}
return retval;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onLeftButtonDown(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar x, /*Int*/ scriptVar y)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS2(o, guiTreeController, x, y);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT2(o, x, y);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onLeftButtonUp(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar x, /*Int*/ scriptVar y)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS2(o, guiTreeController, x, y);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT2(o, x, y);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onRightButtonUp(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar x, /*Int*/ scriptVar y)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS2(o, guiTreeController, x, y);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT2(o, x, y);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onMouseMove(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar x, /*Int*/ scriptVar y)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS2(o, guiTreeController, x, y);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT2(o, x, y);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_wantAutoContextMenu(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onLeftButtonDblClk(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar x, /*Int*/ scriptVar y)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS2(o, guiTreeController, x, y);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT2(o, x, y);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onRightButtonDblClk(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar x, /*Int*/ scriptVar y)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS2(o, guiTreeController, x, y);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT2(o, x, y);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onMouseWheelUp(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar clicked, /*Int*/ scriptVar lines)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS2(o, guiTreeController, clicked, lines);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT2(o, clicked, lines);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onMouseWheelDown(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar clicked, /*Int*/ scriptVar lines)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS2(o, guiTreeController, clicked, lines);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT2(o, clicked, lines);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onContextMenu(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar x, /*Int*/ scriptVar y)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS2(o, guiTreeController, x, y);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT2(o, x, y);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onChar(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar c)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS1(o, guiTreeController, c);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT1(o, c);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onKeyDown(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*Int*/ scriptVar keycode)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS1(o, guiTreeController, keycode);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT1(o, keycode);
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_onItemRecvDrop(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*TreeItem*/ scriptVar item)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS1(o, guiTreeController, item);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT1(o, item);
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_onLabelChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*TreeItem*/ scriptVar item)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS1(o, guiTreeController, item);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT1(o, item);
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_onItemSelected(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*TreeItem*/ scriptVar item)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS1(o, guiTreeController, item);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT1(o, item);
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_onItemDeselected(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*TreeItem*/ scriptVar item)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS1(o, guiTreeController, item);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT1(o, item);
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_onKillFocus(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
// -------------------------------------------------------------------------
/*Void*/ scriptVar GuiTreeScriptController::guitree_jumpToNext(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar c)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
int _c = GET_SCRIPT_INT(c);
if (sp != NULL)
{
sp->jumpToNext(_c);
}
RETURN_SCRIPT_VOID;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_ensureItemVisible(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
if (sp != NULL)
{
sp->ensureItemVisible(_item);
}
RETURN_SCRIPT_VOID;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getContentsWidth(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
a = sp->getContentsWidth();
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getContentsHeight(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
a = sp->getContentsHeight();
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*TreeItem*/ scriptVar GuiTreeScriptController::guitree_addTreeItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item, scriptVar par, scriptVar sorted, scriptVar haschildtab)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_par = NULL;
ScriptObject *so_par = GET_SCRIPT_OBJECT(par);
if (so_par)
{
ScriptTreeItem *sti_par = static_cast<ScriptTreeItem *>(so_par->vcpu_getInterface(treeitemGuid));
if (sti_par)
{
_par = sti_par->getItem();
}
}
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
int _haschildtab = GET_SCRIPT_INT(haschildtab);
int _sorted = GET_SCRIPT_INT(sorted);
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
TreeItem *a = NULL;
a = sp->addTreeItem(_item, _par, _sorted, _haschildtab);
if (a != NULL)
{
ScriptTreeItem *item = sp->bindScriptTreeItem(a);
if (item != NULL)
{
retval = MAKE_SCRIPT_OBJECT(item->getScriptObject());
}
}
}
return retval;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_removeTreeItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
a = sp->removeTreeItem(_item);
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_moveTreeItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item, scriptVar newparent)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_newparent = NULL;
ScriptObject *so_newparent = GET_SCRIPT_OBJECT(newparent);
if (so_newparent)
{
ScriptTreeItem *sti_newparent = static_cast<ScriptTreeItem *>(so_newparent->vcpu_getInterface(treeitemGuid));
if (sti_newparent)
{
_newparent = sti_newparent->getItem();
}
}
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
if (sp != NULL)
{
sp->moveTreeItem(_item, _newparent);
}
RETURN_SCRIPT_VOID;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_deleteAllItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
if (sp != NULL)
{
sp->deleteAllItems();
}
RETURN_SCRIPT_VOID;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_expandItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
a = sp->expandItem(_item);
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_expandItemDeferred(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
if (sp != NULL)
{
sp->expandItemDeferred(_item);
}
RETURN_SCRIPT_VOID;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_collapseItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
a = sp->collapseItem(_item);
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_collapseItemDeferred(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
if (sp != NULL)
{
sp->collapseItemDeferred(_item);
}
RETURN_SCRIPT_VOID;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_selectItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
if (sp != NULL)
{
sp->selectItem(_item);
}
RETURN_SCRIPT_VOID;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_selectItemDeferred(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
if (sp != NULL)
{
sp->selectItemDeferred(_item);
}
RETURN_SCRIPT_VOID;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_delItemDeferred(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
if (sp != NULL)
{
sp->delItemDeferred(_item);
}
RETURN_SCRIPT_VOID;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_hiliteItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
if (sp != NULL)
{
sp->hiliteItem(_item);
}
RETURN_SCRIPT_VOID;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_unhiliteItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
if (sp != NULL)
{
sp->unhiliteItem(_item);
}
RETURN_SCRIPT_VOID;
}
/*TreeItem*/ scriptVar GuiTreeScriptController::guitree_getCurItem(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
TreeItem *a = NULL;
a = sp->getCurItem();
if (a != NULL)
{
ScriptTreeItem *item = sp->bindScriptTreeItem(a);
if (item != NULL)
{
retval = MAKE_SCRIPT_OBJECT(item->getScriptObject());
}
}
}
return retval;
}
/*TreeItem*/ scriptVar GuiTreeScriptController::guitree_hitTest(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar x, scriptVar y)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
int _y = GET_SCRIPT_INT(y);
int _x = GET_SCRIPT_INT(x);
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
TreeItem *a = NULL;
a = sp->hitTest(_x, _y);
if (a != NULL)
{
ScriptTreeItem *item = sp->bindScriptTreeItem(a);
if (item != NULL)
{
retval = MAKE_SCRIPT_OBJECT(item->getScriptObject());
}
}
}
return retval;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_editItemLabel(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
if (sp != NULL)
{
sp->editItemLabel(_item);
}
RETURN_SCRIPT_VOID;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_cancelEditLabel(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar destroyit)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
int _destroyit = GET_SCRIPT_INT(destroyit);
if (sp != NULL)
{
sp->cancelEditLabel(_destroyit);
}
RETURN_SCRIPT_VOID;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_setAutoEdit(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar ae)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
int _ae = GET_SCRIPT_INT(ae);
if (sp != NULL)
{
sp->setAutoEdit(_ae);
}
RETURN_SCRIPT_VOID;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getAutoEdit(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
a = sp->getAutoEdit();
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*TreeItem*/ scriptVar GuiTreeScriptController::guitree_getByLabel(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item, /*String*/ scriptVar name)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
StringW _name = GET_SCRIPT_STRING(name);
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
TreeItem *a = NULL;
a = sp->getByLabel(_item, _name);
if (a != NULL)
{
ScriptTreeItem *item = sp->bindScriptTreeItem(a);
if (item != NULL)
{
retval = MAKE_SCRIPT_OBJECT(item->getScriptObject());
}
}
}
return retval;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_setSorted(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar dosort)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
int _dosort = GET_SCRIPT_INT(dosort);
if (sp != NULL)
{
sp->setSorted(!!_dosort);
}
RETURN_SCRIPT_VOID;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getSorted(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
int a = NULL;
a = sp->getSorted();
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_sortTreeItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
if (sp != NULL)
{
sp->sortTreeItems();
}
RETURN_SCRIPT_VOID;
}
/*TreeItem*/ scriptVar GuiTreeScriptController::guitree_getSibling(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
TreeItem *a = NULL;
a = sp->getSibling(_item);
if (a != NULL)
{
ScriptTreeItem *item = sp->bindScriptTreeItem(a);
if (item != NULL)
{
retval = MAKE_SCRIPT_OBJECT(item->getScriptObject());
}
}
}
return retval;
}
/*Void*/ scriptVar GuiTreeScriptController::guitree_setAutoCollapse(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar doautocollapse)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
int _doautocollapse = GET_SCRIPT_INT(doautocollapse);
if (sp != NULL)
{
sp->setAutoCollapse(!!_doautocollapse);
}
RETURN_SCRIPT_VOID;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_setFontSize(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar newsize)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
int _newsize = GET_SCRIPT_INT(newsize);
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
a = sp->setFontSize(_newsize);
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getFontSize(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
a = sp->getFontSize();
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getNumVisibleChildItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar c)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_c = NULL;
ScriptObject *so_c = GET_SCRIPT_OBJECT(c);
if (so_c)
{
ScriptTreeItem *sti_c = static_cast<ScriptTreeItem *>(so_c->vcpu_getInterface(treeitemGuid));
if (sti_c)
{
_c = sti_c->getItem();
}
}
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
a = sp->getNumVisibleChildItems(_c);
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getNumVisibleItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
a = sp->getNumVisibleItems();
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*TreeItem*/ scriptVar GuiTreeScriptController::guitree_enumVisibleItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar n)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
int _n = GET_SCRIPT_INT(n);
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
TreeItem *a = NULL;
a = sp->enumVisibleItems(_n);
if (a != NULL)
{
ScriptTreeItem *item = sp->bindScriptTreeItem(a);
if (item != NULL)
{
retval = MAKE_SCRIPT_OBJECT(item->getScriptObject());
}
}
}
return retval;
}
/*TreeItem*/ scriptVar GuiTreeScriptController::guitree_enumVisibleChildItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar c, scriptVar n)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_c = NULL;
ScriptObject *so_c = GET_SCRIPT_OBJECT(c);
if (so_c)
{
ScriptTreeItem *sti_c = static_cast<ScriptTreeItem *>(so_c->vcpu_getInterface(treeitemGuid));
if (sti_c)
{
_c = sti_c->getItem();
}
}
int _n = GET_SCRIPT_INT(n);
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
TreeItem *a = NULL;
a = sp->enumVisibleChildItems(_c, _n);
if (a != NULL)
{
ScriptTreeItem *item = sp->bindScriptTreeItem(a);
if (item != NULL)
{
retval = MAKE_SCRIPT_OBJECT(item->getScriptObject());
}
}
}
return retval;
}
/*TreeItem*/ scriptVar GuiTreeScriptController::guitree_enumAllItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar n)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
int _n = GET_SCRIPT_INT(n);
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
TreeItem *a = NULL;
a = sp->enumAllItems(_n);
if (a != NULL)
{
ScriptTreeItem *item = sp->bindScriptTreeItem(a);
if (item != NULL)
{
retval = MAKE_SCRIPT_OBJECT(item->getScriptObject());
}
}
}
return retval;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getItemRectX(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
RECT r;
sp->getItemRect(_item, &r);
a = r.left;
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getItemRectY(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
RECT r;
sp->getItemRect(_item, &r);
a = r.top;
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getItemRectW(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
RECT r;
sp->getItemRect(_item, &r);
a = r.left - r.right;
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
/*Int*/ scriptVar GuiTreeScriptController::guitree_getItemRectH(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar item)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
TreeItem *_item = NULL;
ScriptObject *so_item = GET_SCRIPT_OBJECT(item);
if (so_item)
{
ScriptTreeItem *sti_item = static_cast<ScriptTreeItem *>(so_item->vcpu_getInterface(treeitemGuid));
if (sti_item)
{
_item = sti_item->getItem();
}
}
scriptVar retval = MAKE_SCRIPT_INT(0);
if (sp != NULL)
{
int a = 0;
RECT r;
sp->getItemRect(_item, &r);
a = r.bottom - r.top;
retval = MAKE_SCRIPT_INT(a);
}
return retval;
}
#if 0 // Not implemented in TreeWnd, dammit.
/*TreeItem*/ scriptVar GuiTreeScriptController::guitree_getItemFromPoint(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar x, scriptVar y)
{
SCRIPT_FUNCTION_INIT
ScriptTree *sp = static_cast<ScriptTree *>(o->vcpu_getInterface(guitreeGuid));
int _y = GET_SCRIPT_INT(y);
int _x = GET_SCRIPT_INT(x);
scriptVar retval = MAKE_SCRIPT_OBJECT(NULL);
if (sp != NULL)
{
TreeItem *a = NULL;
POINT p = {_x, _y};
a = sp->getItemFromPoint(&p);
if (a != NULL)
{
ScriptTreeItem *item = sp->bindScriptTreeItem(a);
if (item != NULL)
{
retval = MAKE_SCRIPT_OBJECT(item->getScriptObject());
}
}
}
return retval;
}
#endif
// -----------------------------------------------------------------------
// Script Object For The Tree Item
ScriptTreeItem::ScriptTreeItem(TreeItem *_item, ScriptTree *_tree) : item(_item), tree(_tree), SCRIPTTREEITEM_SCRIPTPARENT()
{
getScriptObject()->vcpu_setInterface(treeitemGuid, (void *)static_cast<ScriptTreeItem *>(this));
getScriptObject()->vcpu_setClassName(L"TreeItem");
getScriptObject()->vcpu_setController(treeItemController);
}
ScriptTreeItem::~ScriptTreeItem()
{}
int ScriptTreeItem::getNumChildren()
{
ASSERT(item);
return item->getNumChildren();
}
void ScriptTreeItem::setLabel(const wchar_t *label)
{
ASSERT(item);
item->setLabel(label);
}
const wchar_t *ScriptTreeItem::getLabel()
{
ASSERT(item);
return item->getLabel();
}
void ScriptTreeItem::ensureVisible()
{
ASSERT(item);
item->ensureVisible();
}
TreeItem *ScriptTreeItem::getNthChild(int nth)
{
ASSERT(item);
return item->getNthChild(nth);
}
TreeItem *ScriptTreeItem::getChild()
{
ASSERT(item);
return item->getChild();
}
TreeItem *ScriptTreeItem::getChildSibling(TreeItem *_item)
{
ASSERT(item);
return item->getChildSibling(_item);
}
TreeItem *ScriptTreeItem::getSibling()
{
ASSERT(item);
return item->getSibling();
}
TreeItem *ScriptTreeItem::getParent()
{
ASSERT(item);
return item->getParent();
}
void ScriptTreeItem::editLabel()
{
ASSERT(item);
item->editLabel();
}
bool ScriptTreeItem::hasSubItems()
{
ASSERT(item);
return item->hasSubItems();
}
void ScriptTreeItem::setSorted(int issorted)
{
ASSERT(item);
item->setSorted(issorted);
}
void ScriptTreeItem::setChildTab(int haschildtab)
{
ASSERT(item);
item->setChildTab(haschildtab);
}
bool ScriptTreeItem::isSorted()
{
ASSERT(item);
return item->isSorted();
}
bool ScriptTreeItem::isCollapsed()
{
ASSERT(item);
return item->isCollapsed();
}
bool ScriptTreeItem::isExpanded()
{
ASSERT(item);
return item->isExpanded();
}
void ScriptTreeItem::invalidate()
{
ASSERT(item);
item->invalidate();
}
bool ScriptTreeItem::isSelected()
{
ASSERT(item);
return item->isSelected();
}
bool ScriptTreeItem::isHilited()
{
ASSERT(item);
return item->isHilited();
}
void ScriptTreeItem::setHilited(bool ishilited)
{
ASSERT(item);
item->setHilited(ishilited);
}
int ScriptTreeItem::collapse()
{
ASSERT(item);
return item->collapse();
}
int ScriptTreeItem::expand()
{
ASSERT(item);
return item->expand();
}
#if 0
// This was never implemented!
void ScriptTreeItem::setCurrent(bool tf)
{
ASSERT(item);
item->setCurrent(tf);
}
#endif
TreeWnd *ScriptTreeItem::getTree()
{
ASSERT(item);
return item->getTree();
}
// -----------------------------------------------------------------------
// Script Controller For The Tree Item
TreeItemScriptController _treeItemController;
TreeItemScriptController *treeItemController = &_treeItemController;
// -- Functions table -------------------------------------
function_descriptor_struct TreeItemScriptController::exportedFunction[] = {
{L"getNumChildren", 0, (void*)TreeItemScriptController::treeitem_getNumChildren },
{L"setLabel", 1, (void*)TreeItemScriptController::treeitem_setLabel },
{L"getLabel", 0, (void*)TreeItemScriptController::treeitem_getLabel },
{L"ensureVisible", 0, (void*)TreeItemScriptController::treeitem_ensureVisible },
{L"getNthChild", 1, (void*)TreeItemScriptController::treeitem_getNthChild },
{L"getChild", 0, (void*)TreeItemScriptController::treeitem_getChild },
{L"getChildSibling", 1, (void*)TreeItemScriptController::treeitem_getChildSibling },
{L"getSibling", 0, (void*)TreeItemScriptController::treeitem_getSibling },
{L"getParent", 0, (void*)TreeItemScriptController::treeitem_getParent },
{L"editLabel", 0, (void*)TreeItemScriptController::treeitem_editLabel },
{L"hasSubItems", 0, (void*)TreeItemScriptController::treeitem_hasSubItems },
{L"setSorted", 1, (void*)TreeItemScriptController::treeitem_setSorted },
{L"setChildTab", 1, (void*)TreeItemScriptController::treeitem_setChildTab },
{L"isSorted", 0, (void*)TreeItemScriptController::treeitem_isSorted },
{L"isCollapsed", 0, (void*)TreeItemScriptController::treeitem_isCollapsed },
{L"isExpanded", 0, (void*)TreeItemScriptController::treeitem_isExpanded },
{L"invalidate", 0, (void*)TreeItemScriptController::treeitem_invalidate },
{L"isSelected", 0, (void*)TreeItemScriptController::treeitem_isSelected },
{L"isHilited", 0, (void*)TreeItemScriptController::treeitem_isHilited },
{L"setHilited", 1, (void*)TreeItemScriptController::treeitem_setHilited },
{L"collapse", 0, (void*)TreeItemScriptController::treeitem_collapse },
{L"expand", 0, (void*)TreeItemScriptController::treeitem_expand },
{L"getTree", 0, (void*)TreeItemScriptController::treeitem_getTree },
{L"onTreeAdd", 0, (void*)TreeItemScriptController::treeitem_onTreeAdd },
{L"onTreeRemove", 0, (void*)TreeItemScriptController::treeitem_onTreeRemove },
{L"onSelect", 0, (void*)TreeItemScriptController::treeitem_onSelect },
{L"onDeselect", 0, (void*)TreeItemScriptController::treeitem_onDeselect },
{L"onLeftDoubleClick", 0, (void*)TreeItemScriptController::treeitem_onLeftDoubleClick },
{L"onRightDoubleClick", 0, (void*)TreeItemScriptController::treeitem_onRightDoubleClick },
{L"onChar", 1, (void*)TreeItemScriptController::treeitem_onChar },
{L"onExpand", 0, (void*)TreeItemScriptController::treeitem_onExpand },
{L"onCollapse", 0, (void*)TreeItemScriptController::treeitem_onCollapse },
{L"onBeginLabelEdit", 0, (void*)TreeItemScriptController::treeitem_onBeginLabelEdit },
{L"onEndLabelEdit", 1, (void*)TreeItemScriptController::treeitem_onEndLabelEdit },
{L"onContextMenu", 2, (void*)TreeItemScriptController::treeitem_onContextMenu },
};
StringW TreeItemScriptController::staticStr;
ScriptTreeMap TreeItemScriptController::g_scriptitems;
ScriptObject *TreeItemScriptController::instantiate()
{
ScriptTreeItem *sp = new ScriptTreeItem;
ASSERT(sp != NULL);
TreeItem *child_item = new TreeItemScript(L"", sp);
ASSERT(child_item != NULL);
sp->setItem(child_item);
TISC::g_scriptitems.insert({ child_item, sp });
// We're not attached to a tree. that's okay!
return sp->getScriptObject();
}
// If the script asks to delete the item, delete the internal item as well.
// We tell the owning ScriptTree to remove this object.
void TreeItemScriptController::destroy(ScriptObject *o)
{
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
ASSERT(sp != NULL);
if (!sp->destroyScriptTreeItem())
{
auto item = sp->getItem();
// Ask the owner tree to do it for us, but if not owned, we do it ourselves.
if (item)
{
//TISC::g_scriptitems.delItem(sp->getItem());
auto it = TISC::g_scriptitems.find(item);
if (TISC::g_scriptitems.end() != it)
{
TISC::g_scriptitems.erase(it);
}
}
// AND we delete our item, since we're not a part of a tree that will do it for us.
delete item;
delete sp;
}
}
void *TreeItemScriptController::encapsulate(ScriptObject *o)
{
return NULL; // no encapsulation for guitrees yet
}
void TreeItemScriptController::deencapsulate(void *o)
{}
int TreeItemScriptController::getNumFunctions()
{
return sizeof(exportedFunction) / sizeof(function_descriptor_struct);
}
const function_descriptor_struct *TreeItemScriptController::getExportedFunctions()
{
return exportedFunction;
}
/*int*/ scriptVar TreeItemScriptController::treeitem_getNumChildren(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int a = 0;
if (sp != NULL)
{
a = sp->getNumChildren();
}
return MAKE_SCRIPT_INT(a);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_setLabel(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*String*/ scriptVar label)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
StringW _label = GET_SCRIPT_STRING(label);
if (sp != NULL)
{
sp->setLabel(_label);
}
RETURN_SCRIPT_VOID;
}
/*String*/ scriptVar TreeItemScriptController::treeitem_getLabel(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
if (sp != NULL)
{
staticStr = sp->getLabel();
}
return MAKE_SCRIPT_STRING(staticStr);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_ensureVisible(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
if (sp != NULL)
{
sp->ensureVisible();
}
RETURN_SCRIPT_VOID;
}
/*TreeItem*/ scriptVar TreeItemScriptController::treeitem_getNthChild(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*int*/ scriptVar nth)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int _nth = GET_SCRIPT_INT(nth);
TreeItem *a = NULL;
if (sp != NULL)
{
a = sp->getNthChild(_nth);
}
ScriptTree *tree = sp->getScriptTree();
ScriptTreeItem *retval = NULL;
if (tree && a)
{
retval = tree->bindScriptTreeItem(a);
}
if (retval)
{
return MAKE_SCRIPT_OBJECT(retval->getScriptObject());
}
return MAKE_SCRIPT_OBJECT(NULL); // Return NULL
}
/*TreeItem*/ scriptVar TreeItemScriptController::treeitem_getChild(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
TreeItem *a = NULL;
if (sp != NULL)
{
a = sp->getChild();
}
ScriptTree *tree = sp->getScriptTree();
ScriptTreeItem *retval = NULL;
if (tree && a)
{
retval = tree->bindScriptTreeItem(a);
}
if (retval)
{
return MAKE_SCRIPT_OBJECT(retval->getScriptObject());
}
return MAKE_SCRIPT_OBJECT(NULL); // Return NULL
}
/*TreeItem*/ scriptVar TreeItemScriptController::treeitem_getChildSibling(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*TreeItem*/ scriptVar _item)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
TreeItem *__item = NULL;
ScriptObject *io = GET_SCRIPT_OBJECT(_item);
if (io)
{
ScriptTreeItem *sio = static_cast<ScriptTreeItem *>(io->vcpu_getInterface(treeitemGuid));
if (sio)
{
__item = sio->getItem();
}
}
TreeItem *a = NULL;
if (sp != NULL)
{
a = sp->getChildSibling(__item);
}
ScriptTree *tree = sp->getScriptTree();
ScriptTreeItem *retval = NULL;
if (tree && a)
{
retval = tree->bindScriptTreeItem(a);
}
if (retval)
{
return MAKE_SCRIPT_OBJECT(retval->getScriptObject());
}
return MAKE_SCRIPT_OBJECT(NULL); // Return NULL
}
/*TreeItem*/ scriptVar TreeItemScriptController::treeitem_getSibling(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
TreeItem *a = NULL;
if (sp != NULL)
{
a = sp->getSibling();
}
ScriptTree *tree = sp->getScriptTree();
ScriptTreeItem *retval = NULL;
if (tree && a)
{
retval = tree->bindScriptTreeItem(a);
}
if (retval)
{
return MAKE_SCRIPT_OBJECT(retval->getScriptObject());
}
return MAKE_SCRIPT_OBJECT(NULL); // Return NULL
}
/*TreeItem*/ scriptVar TreeItemScriptController::treeitem_getParent(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
TreeItem *a = NULL;
if (sp != NULL)
{
a = sp->getParent();
}
ScriptTree *tree = sp->getScriptTree();
ScriptTreeItem *retval = NULL;
if (tree && a)
{
retval = tree->bindScriptTreeItem(a);
}
if (retval)
{
return MAKE_SCRIPT_OBJECT(retval->getScriptObject());
}
return MAKE_SCRIPT_OBJECT(NULL); // Return NULL
}
/*void*/ scriptVar TreeItemScriptController::treeitem_editLabel(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
if (sp != NULL)
{
sp->editLabel();
}
RETURN_SCRIPT_VOID;
}
/*int*/ scriptVar TreeItemScriptController::treeitem_hasSubItems(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int a = 0;
if (sp != NULL)
{
a = sp->hasSubItems();
}
return MAKE_SCRIPT_INT(a);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_setSorted(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*int*/ scriptVar issorted)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int _issorted = GET_SCRIPT_INT(issorted);
if (sp != NULL)
{
sp->setSorted(_issorted);
}
RETURN_SCRIPT_VOID;
}
/*void*/ scriptVar TreeItemScriptController::treeitem_setChildTab(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*int*/ scriptVar haschildtab)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int _haschildtab = GET_SCRIPT_INT(haschildtab);
if (sp != NULL)
{
sp->setChildTab(_haschildtab);
}
RETURN_SCRIPT_VOID;
}
/*int*/ scriptVar TreeItemScriptController::treeitem_isSorted(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int a = 0;
if (sp != NULL)
{
a = sp->isSorted();
}
return MAKE_SCRIPT_INT(a);
}
/*int*/ scriptVar TreeItemScriptController::treeitem_isCollapsed(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int a = 0;
if (sp != NULL)
{
a = sp->isCollapsed();
}
return MAKE_SCRIPT_INT(a);
}
/*int*/ scriptVar TreeItemScriptController::treeitem_isExpanded(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int a = 0;
if (sp != NULL)
{
a = sp->isExpanded();
}
return MAKE_SCRIPT_INT(a);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_invalidate(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
if (sp != NULL)
{
sp->invalidate();
}
RETURN_SCRIPT_VOID;
}
/*int*/ scriptVar TreeItemScriptController::treeitem_isSelected(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int a = 0;
if (sp != NULL)
{
a = sp->isSelected();
}
return MAKE_SCRIPT_INT(a);
}
/*int*/ scriptVar TreeItemScriptController::treeitem_isHilited(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int a = 0;
if (sp != NULL)
{
a = sp->isHilited();
}
return MAKE_SCRIPT_INT(a);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_setHilited(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*int*/ scriptVar ishilited)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int _ishilited = GET_SCRIPT_INT(ishilited);
if (sp != NULL)
{
sp->setHilited(!!_ishilited);
}
RETURN_SCRIPT_VOID;
}
/*int*/ scriptVar TreeItemScriptController::treeitem_collapse(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int a = 0;
if (sp != NULL)
{
a = sp->collapse();
}
return MAKE_SCRIPT_INT(a);
}
/*int*/ scriptVar TreeItemScriptController::treeitem_expand(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int a = 0;
if (sp != NULL)
{
a = sp->expand();
}
return MAKE_SCRIPT_INT(a);
}
#if 0
// This was never implemented!
/*void*/ scriptVar TreeItemScriptController::treeitem_setCurrent(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*int*/ scriptVar tf)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
int _tf = GET_SCRIPT_INT(tf);
if (sp != NULL)
{
sp->setCurrent(_tf);
}
RETURN_SCRIPT_VOID;
}
#endif
/*GuiTree*/ scriptVar TreeItemScriptController::treeitem_getTree(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
ScriptTreeItem *sp = static_cast<ScriptTreeItem *>(o->vcpu_getInterface(treeitemGuid));
ScriptTree *a = NULL;
ScriptObject *retval = NULL;
if (sp != NULL)
{
a = sp->getScriptTree();
}
if (a)
{
retval = a->getScriptObject();
}
return MAKE_SCRIPT_OBJECT(retval);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_onTreeAdd(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_onTreeRemove(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_onSelect(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_onDeselect(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
/*int*/ scriptVar TreeItemScriptController::treeitem_onLeftDoubleClick(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
/*int*/ scriptVar TreeItemScriptController::treeitem_onRightDoubleClick(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
/*int*/ scriptVar TreeItemScriptController::treeitem_onChar(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*int*/ scriptVar _key)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS1(o, guiTreeController, _key);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT1(o, _key);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_onExpand(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
/*void*/ scriptVar TreeItemScriptController::treeitem_onCollapse(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
/*int*/ scriptVar TreeItemScriptController::treeitem_onBeginLabelEdit(SCRIPT_FUNCTION_PARAMS, ScriptObject *o)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS0(o, guiTreeController);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT0(o);
}
/*int*/ scriptVar TreeItemScriptController::treeitem_onEndLabelEdit(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*String*/ scriptVar _newlabel)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS1(o, guiTreeController, _newlabel);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT1(o, _newlabel);
}
/*int*/ scriptVar TreeItemScriptController::treeitem_onContextMenu(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, /*int*/ scriptVar _x, /*int*/ scriptVar _y)
{
SCRIPT_FUNCTION_INIT
PROCESS_HOOKS2(o, guiTreeController, _x, _y);
SCRIPT_FUNCTION_CHECKABORTEVENT;
SCRIPT_EXEC_EVENT2(o, _x, _y);
}