diff --git a/Engine/source/gui/containers/guiSplitContainer.cpp b/Engine/source/gui/containers/guiSplitContainer.cpp index df52829dc..971dd262f 100644 --- a/Engine/source/gui/containers/guiSplitContainer.cpp +++ b/Engine/source/gui/containers/guiSplitContainer.cpp @@ -613,3 +613,25 @@ void GuiSplitContainer::onMouseDragged( const GuiEvent &event ) solvePanelConstraints(newDragPos, firstPanel, secondPanel, clientRect); } } + +void GuiSplitContainer::setSplitPoint(Point2I splitPoint) +{ + GuiContainer *firstPanel = dynamic_cast(at(0)); + GuiContainer *secondPanel = dynamic_cast(at(1)); + + // This function will constrain the panels to their minExtents and update the mSplitPoint + if (firstPanel && secondPanel) + { + RectI clientRect = getClientRect(); + + solvePanelConstraints(splitPoint, firstPanel, secondPanel, clientRect); + + layoutControls(clientRect); + } +} + +DefineEngineMethod(GuiSplitContainer, setSplitPoint, void, (Point2I splitPoint), , + "Set the positin of the split handler.") +{ + object->setSplitPoint(splitPoint); +} \ No newline at end of file diff --git a/Engine/source/gui/containers/guiSplitContainer.h b/Engine/source/gui/containers/guiSplitContainer.h index f3d853fe4..ab78fb0ff 100644 --- a/Engine/source/gui/containers/guiSplitContainer.h +++ b/Engine/source/gui/containers/guiSplitContainer.h @@ -87,6 +87,9 @@ public: virtual void solvePanelConstraints(Point2I newDragPos, GuiContainer * firstPanel, GuiContainer * secondPanel, const RectI& clientRect); virtual Point2I getMinExtent() const; + //Set the positin of the split handler + void setSplitPoint(Point2I splitPoint); + protected: S32 mFixedPanel;