diff --git a/Engine/source/gui/containers/guiFlexibleArrayCtrl.cpp b/Engine/source/gui/containers/guiFlexibleArrayCtrl.cpp
deleted file mode 100644
index befcd3610..000000000
--- a/Engine/source/gui/containers/guiFlexibleArrayCtrl.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2012 Daniel Buckmaster
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
-//-----------------------------------------------------------------------------
-
-#include "console/engineAPI.h"
-#include "platform/platform.h"
-#include "gui/containers/guiFlexibleArrayCtrl.h"
-#include "platform/types.h"
-
-GuiFlexibleArrayControl::GuiFlexibleArrayControl()
-{
- mRows = 0;
- mRowSpacing = 0;
- mColSpacing = 0;
- mIsContainer = true;
-
- mResizing = false;
-
- mFrozen = false;
-
- mPadding.set(0, 0, 0, 0);
-}
-
-GuiFlexibleArrayControl::~GuiFlexibleArrayControl()
-{
-}
-
-IMPLEMENT_CONOBJECT(GuiFlexibleArrayControl);
-
-ConsoleDocClass( GuiFlexibleArrayControl,
- "@brief A container that arranges children into a grid.\n\n"
-
- "This container maintains a 2D grid of GUI controls. If one is added, deleted, "
- "or resized, then the grid is updated. The insertion order into the grid is "
- "determined by the internal order of the children (ie. the order of addition).
"
-
- "Children are added to the grid by row or column until they fill the assocated "
- "GuiFlexibleArrayControl extent (width or height). For example, a "
- "GuiFlexibleArrayControl with 10 children, and fillRowFirst set to "
- "true may be arranged as follows:\n\n"
-
- "
\n"
- "1 2 ...3... 4\n"
- "..5.. 6 7 .8.\n"
- "9 ....10....\n"
- "
\n"
-
- "@tsexample\n"
- "new GuiFlexibleArrayControl()\n"
- "{\n"
- " colSpacing = \"2\";\n"
- " rowSpacing = \"2\";\n"
- " frozen = \"0\";\n"
- " padding = \"0 0 0 0\";\n"
- " //Properties not specific to this control have been omitted from this example.\n"
- "};\n"
- "@endtsexample\n\n"
-
- "@see GuiDynamicCtrlArrayControl\n"
- "@ingroup GuiContainers"
-);
-
-// ConsoleObject...
-
-void GuiFlexibleArrayControl::initPersistFields()
-{
- addField("rowCount", TypeS32, Offset( mRows, GuiFlexibleArrayControl),
- "Number of rows the child controls have been arranged into. This value "
- "is calculated automatically when children are added, removed or resized; "
- "writing it directly has no effect.");
-
- addField("rowSpacing", TypeS32, Offset(mRowSpacing, GuiFlexibleArrayControl),
- "Spacing between rows");
-
- addField("colSpacing", TypeS32, Offset(mColSpacing, GuiFlexibleArrayControl),
- "Spacing between columns");
-
- addField("frozen", TypeBool, Offset(mFrozen, GuiFlexibleArrayControl),
- "When true, the array will not update when new children are added or in "
- "response to child resize events. This is useful to prevent unnecessary "
- "resizing when adding, removing or resizing a number of child controls.");
-
- addField("padding", TypeRectSpacingI, Offset(mPadding, GuiFlexibleArrayControl),
- "Padding around the top, bottom, left, and right of this control. This "
- "reduces the area available for child controls.");
-
- Parent::initPersistFields();
-}
-
-void GuiFlexibleArrayControl::inspectPostApply()
-{
- resize(getPosition(), getExtent());
- Parent::inspectPostApply();
-}
-
-void GuiFlexibleArrayControl::addObject(SimObject *obj)
-{
- Parent::addObject(obj);
-
- if(!mFrozen)
- refresh();
-}
-
-bool GuiFlexibleArrayControl::resize(const Point2I &newPosition, const Point2I &newExtent)
-{
- if(size() == 0)
- return Parent::resize(newPosition, newExtent);
-
- if(mResizing)
- return false;
-
- mResizing = true;
-
- // Place each child.
- S32 childcount = 0;
- Point2I pos(mPadding.left, mPadding.top);
- mRows = 0;
- S32 rowHeight = 0;
- for(S32 i = 0; i < size(); i++)
- {
- GuiControl *gc = dynamic_cast(operator [](i));
- if(gc && gc->isVisible())
- {
- if(pos.x + gc->getWidth() > getExtent().x - mPadding.right)
- {
- pos.y += rowHeight + mRowSpacing;
- pos.x = mPadding.left;
- rowHeight = 0;
- mRows++;
- }
- gc->setPosition(pos);
-
- rowHeight = getMax(rowHeight, gc->getHeight());
-
- pos.x += mColSpacing + gc->getWidth();
- childcount++;
- }
- }
-
- Point2I realExtent(newExtent);
- realExtent.y = pos.y + rowHeight;
- realExtent.y += mPadding.bottom;
-
- mResizing = false;
-
- return Parent::resize(newPosition, realExtent);
-}
-
-void GuiFlexibleArrayControl::childResized(GuiControl *child)
-{
- Parent::childResized(child);
-
- if ( !mFrozen )
- refresh();
-}
-
-void GuiFlexibleArrayControl::refresh()
-{
- resize(getPosition(), getExtent());
-}
-
-DefineEngineMethod( GuiFlexibleArrayControl, refresh, void, (),,
- "Recalculates the position and size of this control and all its children." )
-{
- object->refresh();
-}
\ No newline at end of file
diff --git a/Engine/source/gui/containers/guiFlexibleArrayCtrl.h b/Engine/source/gui/containers/guiFlexibleArrayCtrl.h
deleted file mode 100644
index 1bf068f48..000000000
--- a/Engine/source/gui/containers/guiFlexibleArrayCtrl.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2012 Daniel Buckmaster
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
-//-----------------------------------------------------------------------------
-
-#ifndef _GUIFLEXIBLEARRAYCTRL_H_
-#define _GUIFLEXIBLEARRAYCTRL_H_
-
-#include "gui/core/guiControl.h"
-
-class GuiFlexibleArrayControl : public GuiControl
-{
- typedef GuiControl Parent;
-
-public:
-
- GuiFlexibleArrayControl();
- virtual ~GuiFlexibleArrayControl();
-
- DECLARE_CONOBJECT(GuiFlexibleArrayControl);
- DECLARE_CATEGORY( "Gui Containers" );
-
- // ConsoleObject
- static void initPersistFields();
-
- // SimObject
- void inspectPostApply();
-
- // SimSet
- void addObject(SimObject *obj);
-
- // GuiControl
- bool resize(const Point2I &newPosition, const Point2I &newExtent);
- void childResized(GuiControl *child);
-
- // GuiFlexibleArrayCtrl
- void refresh();
-
-protected:
-
- S32 mRows;
- S32 mRowSpacing;
- S32 mColSpacing;
- bool mResizing;
- bool mFrozen;
-
- RectSpacingI mPadding;
-};
-
-#endif // _GUIFLEXIBLEARRAYCTRL_H_
\ No newline at end of file
diff --git a/Templates/Empty/game/tools/navEditor/NavEditorGui.gui b/Templates/Empty/game/tools/navEditor/NavEditorGui.gui
index da2d32e40..de78d5ee7 100644
--- a/Templates/Empty/game/tools/navEditor/NavEditorGui.gui
+++ b/Templates/Empty/game/tools/navEditor/NavEditorGui.gui
@@ -199,10 +199,8 @@
Extent = "86 18";
text = "Actions";
};
- new GuiFlexibleArrayControl()
+ new GuiStackControl()
{
- colSpacing = 2;
- rowSpacing = 2;
internalName = "SelectActions";
position = "7 21";
extent = "190 64";
@@ -216,40 +214,47 @@
text = "Build NavMesh";
command = "NavEditorGui.buildSelectedMeshes();";
};
- new GuiCheckboxCtrl() {
- internalName = "BackgroundBuildButton";
- text = "Background";
- groupNum = "-1";
- buttonType = "ToggleButton";
- useMouseEvents = "0";
- extent = "75 20";
- minExtent = "8 2";
- profile = "GuiCheckBoxProfile";
- visible = "1";
- active = "1";
- variable = "$Nav::Editor::backgroundBuild";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- canSave = "1";
- canSaveDynamicFields = "0";
- };
- new GuiCheckboxCtrl() {
- internalName = "SaveIntermediatesButton";
- text = "Keep intermediates";
- groupNum = "-1";
- buttonType = "ToggleButton";
- useMouseEvents = "0";
- extent = "105 20";
- profile = "GuiCheckBoxProfile";
- visible = "1";
- active = "1";
- variable = "$Nav::Editor::saveIntermediates";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- canSave = "1";
- canSaveDynamicFields = "0";
+ new GuiControl() {
+ profile = "GuiDefaultProfile";
+ Extent = "182 20";
+ position = "0 20";
+
+ new GuiCheckboxCtrl() {
+ internalName = "BackgroundBuildButton";
+ text = "Background";
+ groupNum = "-1";
+ buttonType = "ToggleButton";
+ useMouseEvents = "0";
+ extent = "75 20";
+ minExtent = "8 2";
+ profile = "GuiCheckBoxProfile";
+ visible = "1";
+ active = "1";
+ variable = "NavEditorGui.backgroundBuild";
+ tooltipProfile = "GuiToolTipProfile";
+ hovertime = "1000";
+ isContainer = "0";
+ canSave = "1";
+ canSaveDynamicFields = "0";
+ };
+ new GuiCheckboxCtrl() {
+ position = "75 0";
+ internalName = "SaveIntermediatesButton";
+ text = "Keep intermediates";
+ groupNum = "-1";
+ buttonType = "ToggleButton";
+ useMouseEvents = "0";
+ extent = "105 20";
+ profile = "GuiCheckBoxProfile";
+ visible = "1";
+ active = "1";
+ variable = "NavEditorGui.saveIntermediates";
+ tooltipProfile = "GuiToolTipProfile";
+ hovertime = "1000";
+ isContainer = "0";
+ canSave = "1";
+ canSaveDynamicFields = "0";
+ };
};
new GuiCheckboxCtrl() {
internalName = "BuildSoundButton";
@@ -262,7 +267,7 @@
profile = "GuiCheckBoxProfile";
visible = "1";
active = "1";
- variable = "$Nav::Editor::playSoundWhenDone";
+ variable = "NavEditorGui.playSoundWhenDone";
tooltipProfile = "GuiToolTipProfile";
hovertime = "1000";
isContainer = "0";
@@ -270,10 +275,8 @@
canSaveDynamicFields = "0";
};
};
- new GuiFlexibleArrayControl()
+ new GuiStackControl()
{
- colSpacing = 2;
- rowSpacing = 2;
internalName = "LinkActions";
position = "7 21";
extent = "190 64";
@@ -288,10 +291,8 @@
command = "NavEditorGui.buildLinks();";
};
};
- new GuiFlexibleArrayControl()
+ new GuiStackControl()
{
- colSpacing = 2;
- rowSpacing = 2;
internalName = "CoverActions";
position = "7 21";
extent = "190 64";
@@ -315,10 +316,8 @@
command = "NavEditorGui.deleteCoverPoints();";
};
};
- new GuiFlexibleArrayControl()
+ new GuiStackControl()
{
- colSpacing = 2;
- rowSpacing = 2;
internalName = "TileActions";
position = "7 21";
extent = "190 64";
@@ -333,10 +332,8 @@
command = "NavEditorGui.buildTile();";
};
};
- new GuiFlexibleArrayControl()
+ new GuiStackControl()
{
- colSpacing = 2;
- rowSpacing = 2;
internalName = "TestActions";
position = "7 21";
extent = "190 64";
@@ -350,41 +347,53 @@
text = "Spawn";
command = "NavEditorGui.spawnPlayer();";
};
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- buttonType = "PushButton";
- HorizSizing = "right";
- VertSizing = "bottom";
- Extent = "90 18";
- text = "Delete";
- command = "NavEditorGui.getPlayer().delete();";
+ new GuiControl() {
+ profile = "GuiDefaultProfile";
+ Extent = "190 18";
+
+ new GuiButtonCtrl() {
+ Profile = "GuiButtonProfile";
+ buttonType = "PushButton";
+ HorizSizing = "right";
+ VertSizing = "bottom";
+ Extent = "90 18";
+ text = "Delete";
+ command = "NavEditorGui.getPlayer().delete();";
+ };
+ new GuiButtonCtrl() {
+ position = "100 0";
+ Profile = "GuiButtonProfile";
+ buttonType = "PushButton";
+ HorizSizing = "right";
+ VertSizing = "bottom";
+ Extent = "90 18";
+ text = "Find cover";
+ command = "NavEditorGui.findCover();";
+ };
};
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- buttonType = "PushButton";
- HorizSizing = "right";
- VertSizing = "bottom";
- Extent = "90 18";
- text = "Find cover";
- command = "NavEditorGui.findCover();";
- };
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- buttonType = "PushButton";
- HorizSizing = "right";
- VertSizing = "bottom";
- Extent = "90 18";
- text = "Follow";
- command = "NavEditorGui.followObject();";
- };
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- buttonType = "PushButton";
- HorizSizing = "right";
- VertSizing = "bottom";
- Extent = "90 18";
- text = "Stop";
- command = "NavEditorGui.getPlayer().stop();";
+ new GuiControl() {
+ profile = "GuiDefaultProfile";
+ Extent = "190 18";
+
+ new GuiButtonCtrl() {
+ Profile = "GuiButtonProfile";
+ buttonType = "PushButton";
+ HorizSizing = "right";
+ VertSizing = "bottom";
+ Extent = "90 18";
+ text = "Follow";
+ command = "NavEditorGui.followObject();";
+ };
+ new GuiButtonCtrl() {
+ position = "100 0";
+ Profile = "GuiButtonProfile";
+ buttonType = "PushButton";
+ HorizSizing = "right";
+ VertSizing = "bottom";
+ Extent = "90 18";
+ text = "Stop";
+ command = "NavEditorGui.getPlayer().stop();";
+ };
};
};
};
@@ -460,17 +469,15 @@
dividerMargin = "5";
};
- new GuiFlexibleArrayControl() {
- colSpacing = 2;
- rowSpacing = 2;
+ new GuiStackControl() {
internalName = "LinkProperties";
position = "7 21";
extent = "186 64";
padding = "2 2 2 2";
new GuiCheckBoxCtrl() {
- internalName = "LinkWalkFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkWalkFlag";
+ class = "NavMeshLinkFlagButton";
text = " Walk";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -482,15 +489,15 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "This link is just ordinary flat ground.";
+ toolTip = "This link is just ordinary flat ground.";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiCheckBoxCtrl() {
- internalName = "LinkJumpFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkJumpFlag";
+ class = "NavMeshLinkFlagButton";
text = " Jump";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -502,15 +509,15 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Does this link require a jump?";
+ toolTip = "Does this link require a jump?";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiCheckBoxCtrl() {
- internalName = "LinkDropFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkDropFlag";
+ class = "NavMeshLinkFlagButton";
text = " Drop";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -522,15 +529,15 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Does this link involve a significant drop?";
+ toolTip = "Does this link involve a significant drop?";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiCheckBoxCtrl() {
- internalName = "LinkLedgeFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkLedgeFlag";
+ class = "NavMeshLinkFlagButton";
text = " Ledge";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -542,15 +549,15 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Should the character jump at the next ledge?";
+ toolTip = "Should the character jump at the next ledge?";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiCheckBoxCtrl() {
- internalName = "LinkClimbFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkClimbFlag";
+ class = "NavMeshLinkFlagButton";
text = " Climb";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -562,15 +569,15 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Does this link involve climbing?";
+ toolTip = "Does this link involve climbing?";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiCheckBoxCtrl() {
- internalName = "LinkTeleportFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkTeleportFlag";
+ class = "NavMeshLinkFlagButton";
text = " Teleport";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -582,16 +589,14 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Is this link a teleporter?";
+ toolTip = "Is this link a teleporter?";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
};
- new GuiFlexibleArrayControl() {
- colSpacing = 2;
- rowSpacing = 2;
+ new GuiStackControl() {
internalName = "TileProperties";
position = "7 21";
extent = "186 64";
@@ -613,7 +618,7 @@
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
- variable = "$Nav::Editor::renderInput";
+ variable = "$Nav::Editor::renderInput";
};
new GuiCheckBoxCtrl() {
text = " Display voxels";
@@ -631,24 +636,22 @@
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
- variable = "$Nav::Editor::renderVoxels";
+ variable = "$Nav::Editor::renderVoxels";
};
};
- new GuiFlexibleArrayControl() {
- colSpacing = 2;
- rowSpacing = 2;
+ new GuiStackControl() {
internalName = "TestProperties";
position = "7 21";
extent = "186 64";
padding = "2 2 2 2";
new GuiTextCtrl() {
- text = "Cover";
+ text = "Cover";
profile = "GuiTextProfile";
extent = "180 20";
minExtent = "8 2";
visible = "1";
- };
+ };
new GuiTextEditCtrl() {
internalName = "CoverRadius";
text = "10";
@@ -657,9 +660,9 @@
minExtent = "8 2";
visible = "1";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Radius for cover-finding.";
+ toolTip = "Radius for cover-finding.";
};
- new GuiTextEditCtrl() {
+ new GuiTextEditCtrl() {
internalName = "CoverPosition";
text = "LocalClientConnection.getControlObject().getPosition();";
profile = "GuiTextEditProfile";
@@ -667,15 +670,15 @@
minExtent = "8 2";
visible = "1";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Position to find cover from.";
- };
- new GuiTextCtrl() {
- text = "Follow";
+ toolTip = "Position to find cover from.";
+ };
+ new GuiTextCtrl() {
+ text = "Follow";
profile = "GuiTextProfile";
extent = "180 20";
minExtent = "8 2";
visible = "1";
- };
+ };
new GuiTextEditCtrl() {
internalName = "FollowRadius";
text = "1";
@@ -684,9 +687,9 @@
minExtent = "8 2";
visible = "1";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Radius for following.";
+ toolTip = "Radius for following.";
};
- new GuiTextEditCtrl() {
+ new GuiTextEditCtrl() {
internalName = "FollowObject";
text = "LocalClientConnection.player";
profile = "GuiTextEditProfile";
@@ -694,18 +697,18 @@
minExtent = "8 2";
visible = "1";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Object to follow.";
- };
- new GuiTextCtrl() {
- text = "Movement";
+ toolTip = "Object to follow.";
+ };
+ new GuiTextCtrl() {
+ text = "Movement";
profile = "GuiTextProfile";
extent = "180 20";
minExtent = "8 2";
visible = "1";
- };
+ };
new GuiCheckBoxCtrl() {
- internalName = "LinkWalkFlag";
- class = "NavMeshTestFlagButton";
+ internalName = "LinkWalkFlag";
+ class = "NavMeshTestFlagButton";
text = " Walk";
buttonType = "ToggleButton";
useMouseEvents = "0";
diff --git a/Templates/Full/game/tools/navEditor/NavEditorGui.gui b/Templates/Full/game/tools/navEditor/NavEditorGui.gui
index da2d32e40..de78d5ee7 100644
--- a/Templates/Full/game/tools/navEditor/NavEditorGui.gui
+++ b/Templates/Full/game/tools/navEditor/NavEditorGui.gui
@@ -199,10 +199,8 @@
Extent = "86 18";
text = "Actions";
};
- new GuiFlexibleArrayControl()
+ new GuiStackControl()
{
- colSpacing = 2;
- rowSpacing = 2;
internalName = "SelectActions";
position = "7 21";
extent = "190 64";
@@ -216,40 +214,47 @@
text = "Build NavMesh";
command = "NavEditorGui.buildSelectedMeshes();";
};
- new GuiCheckboxCtrl() {
- internalName = "BackgroundBuildButton";
- text = "Background";
- groupNum = "-1";
- buttonType = "ToggleButton";
- useMouseEvents = "0";
- extent = "75 20";
- minExtent = "8 2";
- profile = "GuiCheckBoxProfile";
- visible = "1";
- active = "1";
- variable = "$Nav::Editor::backgroundBuild";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- canSave = "1";
- canSaveDynamicFields = "0";
- };
- new GuiCheckboxCtrl() {
- internalName = "SaveIntermediatesButton";
- text = "Keep intermediates";
- groupNum = "-1";
- buttonType = "ToggleButton";
- useMouseEvents = "0";
- extent = "105 20";
- profile = "GuiCheckBoxProfile";
- visible = "1";
- active = "1";
- variable = "$Nav::Editor::saveIntermediates";
- tooltipProfile = "GuiToolTipProfile";
- hovertime = "1000";
- isContainer = "0";
- canSave = "1";
- canSaveDynamicFields = "0";
+ new GuiControl() {
+ profile = "GuiDefaultProfile";
+ Extent = "182 20";
+ position = "0 20";
+
+ new GuiCheckboxCtrl() {
+ internalName = "BackgroundBuildButton";
+ text = "Background";
+ groupNum = "-1";
+ buttonType = "ToggleButton";
+ useMouseEvents = "0";
+ extent = "75 20";
+ minExtent = "8 2";
+ profile = "GuiCheckBoxProfile";
+ visible = "1";
+ active = "1";
+ variable = "NavEditorGui.backgroundBuild";
+ tooltipProfile = "GuiToolTipProfile";
+ hovertime = "1000";
+ isContainer = "0";
+ canSave = "1";
+ canSaveDynamicFields = "0";
+ };
+ new GuiCheckboxCtrl() {
+ position = "75 0";
+ internalName = "SaveIntermediatesButton";
+ text = "Keep intermediates";
+ groupNum = "-1";
+ buttonType = "ToggleButton";
+ useMouseEvents = "0";
+ extent = "105 20";
+ profile = "GuiCheckBoxProfile";
+ visible = "1";
+ active = "1";
+ variable = "NavEditorGui.saveIntermediates";
+ tooltipProfile = "GuiToolTipProfile";
+ hovertime = "1000";
+ isContainer = "0";
+ canSave = "1";
+ canSaveDynamicFields = "0";
+ };
};
new GuiCheckboxCtrl() {
internalName = "BuildSoundButton";
@@ -262,7 +267,7 @@
profile = "GuiCheckBoxProfile";
visible = "1";
active = "1";
- variable = "$Nav::Editor::playSoundWhenDone";
+ variable = "NavEditorGui.playSoundWhenDone";
tooltipProfile = "GuiToolTipProfile";
hovertime = "1000";
isContainer = "0";
@@ -270,10 +275,8 @@
canSaveDynamicFields = "0";
};
};
- new GuiFlexibleArrayControl()
+ new GuiStackControl()
{
- colSpacing = 2;
- rowSpacing = 2;
internalName = "LinkActions";
position = "7 21";
extent = "190 64";
@@ -288,10 +291,8 @@
command = "NavEditorGui.buildLinks();";
};
};
- new GuiFlexibleArrayControl()
+ new GuiStackControl()
{
- colSpacing = 2;
- rowSpacing = 2;
internalName = "CoverActions";
position = "7 21";
extent = "190 64";
@@ -315,10 +316,8 @@
command = "NavEditorGui.deleteCoverPoints();";
};
};
- new GuiFlexibleArrayControl()
+ new GuiStackControl()
{
- colSpacing = 2;
- rowSpacing = 2;
internalName = "TileActions";
position = "7 21";
extent = "190 64";
@@ -333,10 +332,8 @@
command = "NavEditorGui.buildTile();";
};
};
- new GuiFlexibleArrayControl()
+ new GuiStackControl()
{
- colSpacing = 2;
- rowSpacing = 2;
internalName = "TestActions";
position = "7 21";
extent = "190 64";
@@ -350,41 +347,53 @@
text = "Spawn";
command = "NavEditorGui.spawnPlayer();";
};
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- buttonType = "PushButton";
- HorizSizing = "right";
- VertSizing = "bottom";
- Extent = "90 18";
- text = "Delete";
- command = "NavEditorGui.getPlayer().delete();";
+ new GuiControl() {
+ profile = "GuiDefaultProfile";
+ Extent = "190 18";
+
+ new GuiButtonCtrl() {
+ Profile = "GuiButtonProfile";
+ buttonType = "PushButton";
+ HorizSizing = "right";
+ VertSizing = "bottom";
+ Extent = "90 18";
+ text = "Delete";
+ command = "NavEditorGui.getPlayer().delete();";
+ };
+ new GuiButtonCtrl() {
+ position = "100 0";
+ Profile = "GuiButtonProfile";
+ buttonType = "PushButton";
+ HorizSizing = "right";
+ VertSizing = "bottom";
+ Extent = "90 18";
+ text = "Find cover";
+ command = "NavEditorGui.findCover();";
+ };
};
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- buttonType = "PushButton";
- HorizSizing = "right";
- VertSizing = "bottom";
- Extent = "90 18";
- text = "Find cover";
- command = "NavEditorGui.findCover();";
- };
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- buttonType = "PushButton";
- HorizSizing = "right";
- VertSizing = "bottom";
- Extent = "90 18";
- text = "Follow";
- command = "NavEditorGui.followObject();";
- };
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- buttonType = "PushButton";
- HorizSizing = "right";
- VertSizing = "bottom";
- Extent = "90 18";
- text = "Stop";
- command = "NavEditorGui.getPlayer().stop();";
+ new GuiControl() {
+ profile = "GuiDefaultProfile";
+ Extent = "190 18";
+
+ new GuiButtonCtrl() {
+ Profile = "GuiButtonProfile";
+ buttonType = "PushButton";
+ HorizSizing = "right";
+ VertSizing = "bottom";
+ Extent = "90 18";
+ text = "Follow";
+ command = "NavEditorGui.followObject();";
+ };
+ new GuiButtonCtrl() {
+ position = "100 0";
+ Profile = "GuiButtonProfile";
+ buttonType = "PushButton";
+ HorizSizing = "right";
+ VertSizing = "bottom";
+ Extent = "90 18";
+ text = "Stop";
+ command = "NavEditorGui.getPlayer().stop();";
+ };
};
};
};
@@ -460,17 +469,15 @@
dividerMargin = "5";
};
- new GuiFlexibleArrayControl() {
- colSpacing = 2;
- rowSpacing = 2;
+ new GuiStackControl() {
internalName = "LinkProperties";
position = "7 21";
extent = "186 64";
padding = "2 2 2 2";
new GuiCheckBoxCtrl() {
- internalName = "LinkWalkFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkWalkFlag";
+ class = "NavMeshLinkFlagButton";
text = " Walk";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -482,15 +489,15 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "This link is just ordinary flat ground.";
+ toolTip = "This link is just ordinary flat ground.";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiCheckBoxCtrl() {
- internalName = "LinkJumpFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkJumpFlag";
+ class = "NavMeshLinkFlagButton";
text = " Jump";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -502,15 +509,15 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Does this link require a jump?";
+ toolTip = "Does this link require a jump?";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiCheckBoxCtrl() {
- internalName = "LinkDropFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkDropFlag";
+ class = "NavMeshLinkFlagButton";
text = " Drop";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -522,15 +529,15 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Does this link involve a significant drop?";
+ toolTip = "Does this link involve a significant drop?";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiCheckBoxCtrl() {
- internalName = "LinkLedgeFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkLedgeFlag";
+ class = "NavMeshLinkFlagButton";
text = " Ledge";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -542,15 +549,15 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Should the character jump at the next ledge?";
+ toolTip = "Should the character jump at the next ledge?";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiCheckBoxCtrl() {
- internalName = "LinkClimbFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkClimbFlag";
+ class = "NavMeshLinkFlagButton";
text = " Climb";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -562,15 +569,15 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Does this link involve climbing?";
+ toolTip = "Does this link involve climbing?";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiCheckBoxCtrl() {
- internalName = "LinkTeleportFlag";
- class = "NavMeshLinkFlagButton";
+ internalName = "LinkTeleportFlag";
+ class = "NavMeshLinkFlagButton";
text = " Teleport";
buttonType = "ToggleButton";
useMouseEvents = "0";
@@ -582,16 +589,14 @@
visible = "1";
active = "0";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Is this link a teleporter?";
+ toolTip = "Is this link a teleporter?";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
};
- new GuiFlexibleArrayControl() {
- colSpacing = 2;
- rowSpacing = 2;
+ new GuiStackControl() {
internalName = "TileProperties";
position = "7 21";
extent = "186 64";
@@ -613,7 +618,7 @@
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
- variable = "$Nav::Editor::renderInput";
+ variable = "$Nav::Editor::renderInput";
};
new GuiCheckBoxCtrl() {
text = " Display voxels";
@@ -631,24 +636,22 @@
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
- variable = "$Nav::Editor::renderVoxels";
+ variable = "$Nav::Editor::renderVoxels";
};
};
- new GuiFlexibleArrayControl() {
- colSpacing = 2;
- rowSpacing = 2;
+ new GuiStackControl() {
internalName = "TestProperties";
position = "7 21";
extent = "186 64";
padding = "2 2 2 2";
new GuiTextCtrl() {
- text = "Cover";
+ text = "Cover";
profile = "GuiTextProfile";
extent = "180 20";
minExtent = "8 2";
visible = "1";
- };
+ };
new GuiTextEditCtrl() {
internalName = "CoverRadius";
text = "10";
@@ -657,9 +660,9 @@
minExtent = "8 2";
visible = "1";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Radius for cover-finding.";
+ toolTip = "Radius for cover-finding.";
};
- new GuiTextEditCtrl() {
+ new GuiTextEditCtrl() {
internalName = "CoverPosition";
text = "LocalClientConnection.getControlObject().getPosition();";
profile = "GuiTextEditProfile";
@@ -667,15 +670,15 @@
minExtent = "8 2";
visible = "1";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Position to find cover from.";
- };
- new GuiTextCtrl() {
- text = "Follow";
+ toolTip = "Position to find cover from.";
+ };
+ new GuiTextCtrl() {
+ text = "Follow";
profile = "GuiTextProfile";
extent = "180 20";
minExtent = "8 2";
visible = "1";
- };
+ };
new GuiTextEditCtrl() {
internalName = "FollowRadius";
text = "1";
@@ -684,9 +687,9 @@
minExtent = "8 2";
visible = "1";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Radius for following.";
+ toolTip = "Radius for following.";
};
- new GuiTextEditCtrl() {
+ new GuiTextEditCtrl() {
internalName = "FollowObject";
text = "LocalClientConnection.player";
profile = "GuiTextEditProfile";
@@ -694,18 +697,18 @@
minExtent = "8 2";
visible = "1";
tooltipProfile = "GuiToolTipProfile";
- toolTip = "Object to follow.";
- };
- new GuiTextCtrl() {
- text = "Movement";
+ toolTip = "Object to follow.";
+ };
+ new GuiTextCtrl() {
+ text = "Movement";
profile = "GuiTextProfile";
extent = "180 20";
minExtent = "8 2";
visible = "1";
- };
+ };
new GuiCheckBoxCtrl() {
- internalName = "LinkWalkFlag";
- class = "NavMeshTestFlagButton";
+ internalName = "LinkWalkFlag";
+ class = "NavMeshTestFlagButton";
text = " Walk";
buttonType = "ToggleButton";
useMouseEvents = "0";