2645 lines
77 KiB
C++
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);
|
||
|
}
|