diff --git a/Engine/source/gui/controls/guiTreeViewCtrl.cpp b/Engine/source/gui/controls/guiTreeViewCtrl.cpp index ca499a758..9d45147e1 100644 --- a/Engine/source/gui/controls/guiTreeViewCtrl.cpp +++ b/Engine/source/gui/controls/guiTreeViewCtrl.cpp @@ -2501,6 +2501,19 @@ const char * GuiTreeViewCtrl::getItemValue(S32 itemId) //----------------------------------------------------------------------------- +S32 GuiTreeViewCtrl::getItemAtPosition(Point2I position) +{ + BitSet32 hitFlags = 0; + Item* item; + + if (_hitTest(position, item, hitFlags)) + return item->mId; + else + return -1; +} + +//----------------------------------------------------------------------------- + bool GuiTreeViewCtrl::editItem( S32 itemId, const char* newText, const char* newValue ) { Item* item = getItem( itemId ); @@ -5550,3 +5563,11 @@ DefineEngineMethod( GuiTreeViewCtrl, clearFilterText, void, (),, { object->clearFilterText(); } + +DefineEngineMethod(GuiTreeViewCtrl, getItemAtPosition, S32, (Point2I position), (Point2I::Zero), + "Get the tree item at the passed in position.\n\n" + "@param position The position to check for what item is below it.\n" + "@return The id of the item under the position.") +{ + return object->getItemAtPosition(position); +} \ No newline at end of file diff --git a/Engine/source/gui/controls/guiTreeViewCtrl.h b/Engine/source/gui/controls/guiTreeViewCtrl.h index 91f842b3d..686e3ea61 100644 --- a/Engine/source/gui/controls/guiTreeViewCtrl.h +++ b/Engine/source/gui/controls/guiTreeViewCtrl.h @@ -513,6 +513,8 @@ class GuiTreeViewCtrl : public GuiArrayCtrl bool editItem( S32 itemId, const char* newText, const char* newValue ); bool markItem( S32 itemId, bool mark ); + + S32 getItemAtPosition(Point2I position); bool isItemSelected( S32 itemId );