Files
wwdpublic/Content.Client/UserInterface/Screens/OverlayChatGameScreen.xaml.cs
DEATHB4DEFEAT 544fd135de Default to Separated UI Layout (#433)
# Description

<sub>~~Change from Nyano~~</sub>
Uses space a lot better. The old layout still exists if people want it
for whatever reason.
I also renamed "Default" to "Overlay", which should stay anyway if the
default change is denied.

---

<details><summary><h1>Media</h1></summary>
<p>

## Separated


![image](https://github.com/Simple-Station/Einstein-Engines/assets/77995199/b97c4373-99ac-4ac5-80a5-149122238551)

## Overlay


![image](https://github.com/Simple-Station/Einstein-Engines/assets/77995199/3891756f-91f0-4336-b075-6c461ee1b8e6)

</p>
</details>

---

# Changelog

🆑
- tweak: UI layout now defaults to separated, the old one is still
available in settings
2024-06-16 18:38:10 -04:00

54 lines
1.9 KiB
C#

using System.Numerics;
using Content.Client.UserInterface.Systems.Chat.Widgets;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.UserInterface.Screens;
[GenerateTypedNameReferences]
public sealed partial class OverlayChatGameScreen : InGameScreen
{
public OverlayChatGameScreen()
{
RobustXamlLoader.Load(this);
AutoscaleMaxResolution = new Vector2i(1080, 770);
SetAnchorPreset(MainViewport, LayoutPreset.Wide);
SetAnchorPreset(ViewportContainer, LayoutPreset.Wide);
SetAnchorAndMarginPreset(TopLeft, LayoutPreset.TopLeft, margin: 10);
SetAnchorAndMarginPreset(Ghost, LayoutPreset.BottomWide, margin: 80);
SetAnchorAndMarginPreset(Inventory, LayoutPreset.BottomLeft, margin: 5);
SetAnchorAndMarginPreset(Hotbar, LayoutPreset.BottomWide, margin: 5);
SetAnchorAndMarginPreset(Chat, LayoutPreset.TopRight, margin: 10);
SetAnchorAndMarginPreset(Alerts, LayoutPreset.TopRight, margin: 10);
Chat.OnResized += ChatOnResized;
Chat.OnChatResizeFinish += ChatOnResizeFinish;
Actions.ActionsContainer.Columns = 1;
}
private void ChatOnResizeFinish(Vector2 _)
{
var marginBottom = Chat.GetValue<float>(MarginBottomProperty);
var marginLeft = Chat.GetValue<float>(MarginLeftProperty);
OnChatResized?.Invoke(new Vector2(marginBottom, marginLeft));
}
private void ChatOnResized()
{
var marginBottom = Chat.GetValue<float>(MarginBottomProperty);
SetMarginTop(Alerts, marginBottom);
}
public override ChatBox ChatBox => Chat;
//TODO: There's probably a better way to do this... but this is also the easiest way.
public override void SetChatSize(Vector2 size)
{
SetMarginBottom(Chat, size.X);
SetMarginLeft(Chat, size.Y);
SetMarginTop(Alerts, size.X);
}
}