From 67f4ce44a6c6ba6120f64d7f8aed78e3a6a9711f Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sun, 24 Aug 2025 12:11:31 -0500 Subject: [PATCH] add tab cycling between inspector sub-elements for linked values like position, scale, extents ect --- .../source/gui/editor/guiInspectorTypes.cpp | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Engine/source/gui/editor/guiInspectorTypes.cpp b/Engine/source/gui/editor/guiInspectorTypes.cpp index 7d5be1b3f..d6e66c2b8 100644 --- a/Engine/source/gui/editor/guiInspectorTypes.cpp +++ b/Engine/source/gui/editor/guiInspectorTypes.cpp @@ -42,6 +42,7 @@ #include "math/mathTypes.h" #include "sim/actionMap.h" #include "console/typeValidators.h" +#include "console/script.h" //----------------------------------------------------------------------------- // GuiInspectorTypeMenuBase @@ -1983,6 +1984,16 @@ void GuiInspectorType2DValue::constructEditControlChildren(GuiControl* retCtrl, retCtrl->addObject(mContainerX); retCtrl->addObject(mContainerY); + + mCtrlX->setDataField(StringTable->insert("tabComplete"), NULL, "true"); + String tabCmdX = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder();}", + mCtrlX->getName(), mCtrlY->getName()); + Con::evaluatef(tabCmdX); + + mCtrlY->setDataField(StringTable->insert("tabComplete"), NULL, "true"); + String tabCmdY = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder();}", + mCtrlY->getName(), mCtrlX->getName()); + Con::evaluatef(tabCmdY); //retCtrl->addObject(mScriptValue); } @@ -2108,6 +2119,16 @@ void GuiInspectorType3DValue::constructEditControlChildren(GuiControl* retCtrl, mContainerZ->addObject(mCtrlZ); _registerEditControl(mContainerZ, "cz"); + mCtrlY->setDataField(StringTable->insert("tabComplete"), NULL, "true"); + String tabCmdY = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder();}", + mCtrlY->getName(), mCtrlZ->getName()); + Con::evaluatef(tabCmdY); + + mCtrlZ->setDataField(StringTable->insert("tabComplete"), NULL, "true"); + String tabCmdZ = String::ToString("function %s::onTabComplete(){ %s.setFirstResponder();}", + mCtrlZ->getName(), mCtrlX->getName()); + Con::evaluatef(tabCmdZ); + retCtrl->addObject(mContainerZ); }