Don't update MarginContainer if it already matches its parent size, update TestGame.
This commit is contained in:
@@ -20,7 +20,7 @@ public class TestGame : Game
|
|||||||
InitializeSystemsDefault();
|
InitializeSystemsDefault();
|
||||||
|
|
||||||
_uiSystem = new UISystem(Input, ResourceRef<Style>.Empty());
|
_uiSystem = new UISystem(Input, ResourceRef<Style>.Empty());
|
||||||
_uiSystem.RenderDebugRects = true;
|
// _uiSystem.RenderDebugRects = true;
|
||||||
|
|
||||||
_particleSystem = new ParticleSystem();
|
_particleSystem = new ParticleSystem();
|
||||||
|
|
||||||
@@ -63,19 +63,32 @@ public class TestGame : Game
|
|||||||
Input.AddInputMapping("reload", new IInputAction[] { new KeyInputAction(KeyboardKey.R) });
|
Input.AddInputMapping("reload", new IInputAction[] { new KeyInputAction(KeyboardKey.R) });
|
||||||
_emitterId = _particleSystem.CreateEmitter(Renderer.WindowSize / 2, _fireEffect);
|
_emitterId = _particleSystem.CreateEmitter(Renderer.WindowSize / 2, _fireEffect);
|
||||||
|
|
||||||
var button = new Button("Add element", _defaultFontSet, () => { _container.AddChild(new Label("Hello, World!", _defaultFontSet)); });
|
var addButton = new Button("Add element", _defaultFontSet, () => { _container.AddChild(new Label("Hello, World!", _defaultFontSet)); });
|
||||||
button.Padding = new Margin(8.0f);
|
addButton.Padding = new Margin(8.0f);
|
||||||
|
|
||||||
_buttonContainer.AddChild(button);
|
var removeButton = new Button("Remove element", _defaultFontSet, () =>
|
||||||
|
{
|
||||||
|
if (_container.Children.Count == 0) return;
|
||||||
|
var lastChild = _container.Children.Last();
|
||||||
|
_container.RemoveChild(lastChild);
|
||||||
|
});
|
||||||
|
|
||||||
var c = new MarginContainer();
|
removeButton.Padding = new Margin(8.0f);
|
||||||
c.AddChild(_container);
|
|
||||||
|
|
||||||
_buttonContainer.AddChild(c);
|
_buttonContainer.AddChild(addButton);
|
||||||
|
_buttonContainer.AddChild(removeButton);
|
||||||
|
|
||||||
_root.AddChild(_buttonContainer);
|
var c = new VerticalContainer();
|
||||||
|
|
||||||
_uiSystem.AddElement(_root);
|
var m = new MarginContainer();
|
||||||
|
m.AddChild(_container);
|
||||||
|
|
||||||
|
c.AddChild(_buttonContainer);
|
||||||
|
c.AddChild(m);
|
||||||
|
|
||||||
|
_rootFill.AddChild(c);
|
||||||
|
|
||||||
|
_uiSystem.AddElement(_rootFill);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -86,12 +99,6 @@ public class TestGame : Game
|
|||||||
ResourceManager.Reload();
|
ResourceManager.Reload();
|
||||||
_particleSystem!.RestartEmitter(_emitterId);
|
_particleSystem!.RestartEmitter(_emitterId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Input.IsActionPressed("cancel") && _container.Children.Count != 0)
|
|
||||||
{
|
|
||||||
var lastChild = _container.Children.Last();
|
|
||||||
_container.RemoveChild(lastChild);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Render(double deltaTime)
|
protected override void Render(double deltaTime)
|
||||||
@@ -150,6 +157,9 @@ public class TestGame : Game
|
|||||||
|
|
||||||
[NotNull] private Label _label;
|
[NotNull] private Label _label;
|
||||||
|
|
||||||
private FillContainer _root = new();
|
private FillContainer _rootFill = new();
|
||||||
private VerticalContainer _buttonContainer = new(16);
|
private HorizontalContainer _buttonContainer = new(16)
|
||||||
|
{
|
||||||
|
ConfineToContents = true,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@@ -65,7 +65,10 @@ public class MarginContainer : Container
|
|||||||
base.OnUpdate();
|
base.OnUpdate();
|
||||||
if (Parent == null) return;
|
if (Parent == null) return;
|
||||||
|
|
||||||
Size = Parent.Size;
|
if (Size != Parent.Size)
|
||||||
|
{
|
||||||
|
Size = Parent.Size;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Arrange()
|
public override void Arrange()
|
||||||
|
|||||||
Reference in New Issue
Block a user