diff --git a/Content.Client/Info/Info.xaml b/Content.Client/Info/Info.xaml
new file mode 100644
index 0000000000..0f6e55bfaa
--- /dev/null
+++ b/Content.Client/Info/Info.xaml
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/Content.Client/Info/Info.xaml.cs b/Content.Client/Info/Info.xaml.cs
new file mode 100644
index 0000000000..bb8778f9ec
--- /dev/null
+++ b/Content.Client/Info/Info.xaml.cs
@@ -0,0 +1,14 @@
+using Robust.Client.AutoGenerated;
+using Robust.Client.UserInterface.Controls;
+using Robust.Client.UserInterface.XAML;
+
+namespace Content.Client.Info;
+
+[GenerateTypedNameReferences]
+public partial class Info : ScrollContainer
+{
+ public Info()
+ {
+ RobustXamlLoader.Load(this);
+ }
+}
diff --git a/Content.Client/Info/InfoControlsSection.xaml b/Content.Client/Info/InfoControlsSection.xaml
new file mode 100644
index 0000000000..ccaf79027a
--- /dev/null
+++ b/Content.Client/Info/InfoControlsSection.xaml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/Content.Client/Info/InfoControlsSection.xaml.cs b/Content.Client/Info/InfoControlsSection.xaml.cs
new file mode 100644
index 0000000000..1f68689ac9
--- /dev/null
+++ b/Content.Client/Info/InfoControlsSection.xaml.cs
@@ -0,0 +1,15 @@
+using System;
+using Robust.Client.AutoGenerated;
+using Robust.Client.UserInterface.Controls;
+using Robust.Client.UserInterface.XAML;
+
+namespace Content.Client.Info;
+
+[GenerateTypedNameReferences]
+public partial class InfoControlsSection : BoxContainer
+{
+ public InfoControlsSection()
+ {
+ RobustXamlLoader.Load(this);
+ }
+}
diff --git a/Content.Client/Info/InfoSection.xaml b/Content.Client/Info/InfoSection.xaml
new file mode 100644
index 0000000000..7c082a1b6f
--- /dev/null
+++ b/Content.Client/Info/InfoSection.xaml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/Content.Client/Info/InfoSection.xaml.cs b/Content.Client/Info/InfoSection.xaml.cs
new file mode 100644
index 0000000000..13dd479734
--- /dev/null
+++ b/Content.Client/Info/InfoSection.xaml.cs
@@ -0,0 +1,23 @@
+using Robust.Client.AutoGenerated;
+using Robust.Client.UserInterface.Controls;
+using Robust.Client.UserInterface.XAML;
+using Robust.Shared.Utility;
+using Robust.Shared.Utility.Markup;
+
+namespace Content.Client.Info;
+
+[GenerateTypedNameReferences]
+public partial class InfoSection : BoxContainer
+{
+ public InfoSection(string title, string text, bool markup = false)
+ {
+ RobustXamlLoader.Load(this);
+
+ TitleLabel.Text = title;
+
+ if (markup)
+ Content.SetMessage(Basic.RenderMarkup(text.Trim()));
+ else
+ Content.SetMessage(text);
+ }
+}
diff --git a/Content.Client/Info/RulesAndInfoWindow.cs b/Content.Client/Info/RulesAndInfoWindow.cs
index 5132d674a0..817c114269 100644
--- a/Content.Client/Info/RulesAndInfoWindow.cs
+++ b/Content.Client/Info/RulesAndInfoWindow.cs
@@ -1,18 +1,9 @@
-
-using System.Collections.Generic;
-using System.IO;
using Content.Client.EscapeMenu.UI;
-using Content.Client.Stylesheets;
using Robust.Client.ResourceManagement;
-using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
-using Robust.Shared.Maths;
-using Robust.Shared.Utility;
-using Robust.Shared.Utility.Markup;
-using static Robust.Client.UserInterface.Controls.BoxContainer;
namespace Content.Client.Info
{
@@ -33,15 +24,8 @@ namespace Content.Client.Info
var rootContainer = new TabContainer();
- var rulesList = new ScrollContainer
- {
- HScrollEnabled = false
- };
- var tutorialList = new ScrollContainer
- {
- HScrollEnabled = false
- };
-
+ var rulesList = new Info();
+ var tutorialList = new Info();
rootContainer.AddChild(rulesList);
rootContainer.AddChild(tutorialList);
@@ -57,112 +41,26 @@ namespace Content.Client.Info
SetSize = (650, 650);
}
- private void PopulateRules(Control rulesList)
+ private void PopulateRules(Info rulesList)
{
- var vBox = new BoxContainer
- {
- Orientation = LayoutOrientation.Vertical,
- Margin = new Thickness(2, 2, 0, 0)
- };
-
- var first = true;
-
- void AddSection(string title, string path, bool markup = false)
- {
- if (!first)
- {
- vBox.AddChild(new Control { MinSize = (0, 10) });
- }
-
- first = false;
- vBox.AddChild(new Label { StyleClasses = { StyleBase.StyleClassLabelHeading }, Text = title });
-
- var label = new RichTextLabel();
- var text = _resourceManager.ContentFileReadAllText($"/Server Info/{path}");
- if (markup)
- {
- label.SetMessage(Basic.RenderMarkup(text.Trim()));
- }
- else
- {
- label.SetMessage(text);
- }
-
- vBox.AddChild(label);
- }
-
- AddSection(Loc.GetString("ui-info-header-rules"), "Rules.txt", true);
-
- rulesList.AddChild(vBox);
-
+ AddSection(rulesList, Loc.GetString("ui-info-header-rules"), "Rules.txt", true);
}
- private void PopulateTutorial(Control tutorialList)
+ private void PopulateTutorial(Info tutorialList)
{
- Button controlsButton;
+ AddSection(tutorialList, Loc.GetString("ui-info-header-intro"), "Intro.txt");
+ var infoControlSection = new InfoControlsSection();
+ tutorialList.InfoContainer.AddChild(infoControlSection);
+ AddSection(tutorialList, Loc.GetString("ui-info-header-gameplay"), "Gameplay.txt", true);
+ AddSection(tutorialList, Loc.GetString("ui-info-header-sandbox"), "Sandbox.txt", true);
- var vBox = new BoxContainer
- {
- Orientation = LayoutOrientation.Vertical,
- Margin = new Thickness(2, 2, 0, 0)
- };
+ infoControlSection.ControlsButton.OnPressed += _ => optionsMenu.OpenCentered();
+ }
- var first = true;
-
- void AddSection(string title, string path, bool markup = false)
- {
- if (!first)
- {
- vBox.AddChild(new Control { MinSize = (0, 10) });
- }
-
- first = false;
- vBox.AddChild(new Label { StyleClasses = { StyleBase.StyleClassLabelHeading }, Text = title });
-
- var label = new RichTextLabel();
- var text = _resourceManager.ContentFileReadAllText($"/Server Info/{path}");
- if (markup)
- {
- label.SetMessage(Basic.RenderMarkup(text.Trim()));
- }
- else
- {
- label.SetMessage(text);
- }
-
- vBox.AddChild(label);
- }
-
- AddSection(Loc.GetString("ui-info-header-intro"), "Intro.txt");
-
- vBox.AddChild(new BoxContainer
- {
- Orientation = LayoutOrientation.Horizontal,
- MinSize = (0, 10),
- Children =
- {
- new Label {StyleClasses = { StyleBase.StyleClassLabelHeading }, Text = Loc.GetString("ui-info-header-controls")},
- }
- });
-
- vBox.AddChild(new BoxContainer
- {
- Orientation = LayoutOrientation.Horizontal,
- SeparationOverride = 5,
- Children =
- {
- new Label {Text = Loc.GetString("ui-info-text-controls")},
- (controlsButton = new Button {Text = Loc.GetString("ui-info-button-controls")})
- }
- });
-
- AddSection(Loc.GetString("ui-info-header-gameplay"), "Gameplay.txt", true);
- AddSection(Loc.GetString("ui-info-header-sandbox"), "Sandbox.txt", true);
-
- tutorialList.AddChild(vBox);
-
- controlsButton.OnPressed += _ =>
- optionsMenu.OpenCentered();
+ private void AddSection(Info info, string title, string path, bool markup = false)
+ {
+ info.InfoContainer.AddChild(new InfoSection(title,
+ _resourceManager.ContentFileReadAllText($"/Server Info/{path}"), markup));
}
protected override void Opened()
@@ -171,19 +69,5 @@ namespace Content.Client.Info
_rulesManager.SaveLastReadTime();
}
-
- private static IEnumerable Lines(TextReader reader)
- {
- while (true)
- {
- var line = reader.ReadLine();
- if (line == null)
- {
- yield break;
- }
-
- yield return line;
- }
- }
}
}