6b44310e04
The translator section sat inside a child window whose height was computed as "whatever is left in the content region minus a line". Once the About copy grew with the new mission and rewritten built-on sections, that remaining space dropped close to zero on smaller settings windows, so the tree node was rendered but its content was either invisible or unscrollable from the parent. Drop the fixed-height child entirely. The settings window already provides a scroll container around each tab, so rendering the tree node and the translator list directly into it lets the parent handle the scroll. The translators get a manual indent push to keep the visual nesting that the child-frame used to suggest.
129 lines
5.1 KiB
C#
Executable File
129 lines
5.1 KiB
C#
Executable File
using System.Numerics;
|
|
using ChatTwo.Resources;
|
|
using ChatTwo.Util;
|
|
using Dalamud.Interface;
|
|
using Dalamud.Interface.Colors;
|
|
using Dalamud.Interface.Utility;
|
|
using Dalamud.Interface.Utility.Raii;
|
|
using Dalamud.Bindings.ImGui;
|
|
|
|
namespace ChatTwo.Ui.SettingsTabs;
|
|
|
|
internal sealed class About : ISettingsTab
|
|
{
|
|
public string Name => string.Format(Language.Options_About_Tab, Plugin.PluginName) + "###tabs-about";
|
|
|
|
private readonly List<string> Translators =
|
|
[
|
|
"q673135110", "Akizem", "d0tiKs",
|
|
"Moonlight_Everlit", "Dark32", "andreycout",
|
|
"Button_", "Cali666", "cassandra308",
|
|
"lokinmodar", "jtabox", "AkiraYorumoto",
|
|
"MKhayle", "elena.space", "imlisa",
|
|
"andrei5125", "ShivaMaheshvara", "aislinn87",
|
|
"nishinatsu051", "lichuyuan", "Risu64",
|
|
"yummypillow", "witchymary", "Yuzumi",
|
|
"zomsakura", "Sirayuki"
|
|
];
|
|
|
|
internal About()
|
|
{
|
|
Translators.Sort((a, b) => string.Compare(a.ToLowerInvariant(), b.ToLowerInvariant(), StringComparison.Ordinal));
|
|
}
|
|
|
|
public void Draw(bool changed)
|
|
{
|
|
using var wrap = ImRaii.TextWrapPos(0.0f);
|
|
|
|
ImGui.TextUnformatted(string.Format(Language.Options_About_Opening, Plugin.PluginName));
|
|
|
|
ImGuiHelpers.ScaledDummy(10.0f);
|
|
|
|
ImGui.TextUnformatted(Language.Options_About_Authors);
|
|
ImGui.SameLine();
|
|
ImGui.TextColored(ImGuiColors.ParsedGold, Plugin.Interface.Manifest.Author);
|
|
|
|
ImGui.TextUnformatted(Language.Options_About_Discord);
|
|
ImGui.SameLine();
|
|
ImGui.TextColored(ImGuiColors.ParsedGold, "@j.j_kazama");
|
|
|
|
ImGui.TextUnformatted(Language.Options_About_Version);
|
|
ImGui.SameLine();
|
|
ImGui.TextColored(ImGuiColors.ParsedOrange, Plugin.Interface.Manifest.AssemblyVersion.ToString(3));
|
|
|
|
ImGuiHelpers.ScaledDummy(10.0f);
|
|
|
|
ImGui.TextUnformatted(Language.Options_About_Github_Issues);
|
|
ImGui.SameLine();
|
|
if (ImGuiUtil.IconButton(FontAwesomeIcon.ExternalLinkAlt, "githubIssues"))
|
|
Dalamud.Utility.Util.OpenLink("https://github.com/JonKazama-Hellion/HellionChat/issues");
|
|
|
|
ImGuiHelpers.ScaledDummy(10.0f);
|
|
|
|
ImGui.TextColored(ImGuiColors.ParsedGold, HellionStrings.About_Maintainer_Heading);
|
|
ImGui.TextUnformatted(HellionStrings.About_Maintainer_Body);
|
|
ImGui.TextUnformatted(HellionStrings.About_Maintainer_Website_Label);
|
|
ImGui.SameLine();
|
|
if (ImGuiUtil.IconButton(FontAwesomeIcon.ExternalLinkAlt, "hellionMedia"))
|
|
Dalamud.Utility.Util.OpenLink("https://hellion-media.de");
|
|
|
|
ImGuiHelpers.ScaledDummy(10.0f);
|
|
|
|
ImGui.TextColored(ImGuiColors.ParsedGold, HellionStrings.About_Mission_Heading);
|
|
ImGui.TextUnformatted(HellionStrings.About_Mission_P1);
|
|
ImGui.Spacing();
|
|
ImGui.TextUnformatted(HellionStrings.About_Mission_P2);
|
|
ImGui.Spacing();
|
|
ImGui.TextUnformatted(HellionStrings.About_Mission_P3);
|
|
|
|
ImGuiHelpers.ScaledDummy(10.0f);
|
|
|
|
ImGui.TextColored(ImGuiColors.ParsedGold, HellionStrings.About_BuiltOn_Heading);
|
|
ImGui.TextUnformatted(HellionStrings.About_BuiltOn_P1);
|
|
ImGui.Spacing();
|
|
ImGui.TextUnformatted(HellionStrings.About_BuiltOn_P2);
|
|
ImGui.Spacing();
|
|
ImGui.TextUnformatted(HellionStrings.About_BuiltOn_Upstream_Label);
|
|
ImGui.SameLine();
|
|
if (ImGuiUtil.IconButton(FontAwesomeIcon.ExternalLinkAlt, "chatTwoUpstream"))
|
|
Dalamud.Utility.Util.OpenLink("https://github.com/Infiziert90/ChatTwo");
|
|
|
|
ImGuiHelpers.ScaledDummy(10.0f);
|
|
|
|
ImGui.TextColored(ImGuiColors.ParsedGold, HellionStrings.About_License_Heading);
|
|
ImGui.TextUnformatted(HellionStrings.About_License_P1);
|
|
ImGui.TextUnformatted(HellionStrings.About_License_P2);
|
|
ImGui.TextUnformatted(HellionStrings.About_License_P3);
|
|
|
|
ImGuiHelpers.ScaledDummy(10.0f);
|
|
|
|
ImGui.TextColored(ImGuiColors.DalamudOrange, HellionStrings.About_SE_Heading);
|
|
ImGui.TextUnformatted(HellionStrings.About_SE_P1);
|
|
ImGui.TextUnformatted(HellionStrings.About_SE_P2);
|
|
|
|
ImGui.Spacing();
|
|
|
|
ImGui.TextColored(ImGuiColors.ParsedGold, HellionStrings.About_Localization_Heading);
|
|
ImGui.TextUnformatted(HellionStrings.About_Localization_P1);
|
|
ImGui.TextUnformatted(HellionStrings.About_Localization_P2);
|
|
|
|
ImGui.Spacing();
|
|
|
|
// The translator list lives at the bottom of the About tab. Render
|
|
// it directly inside the parent scroll container instead of a
|
|
// fixed-height child — the previous "remaining space" calculation
|
|
// shrank to zero (or below) once the About copy grew, which made
|
|
// the section unreachable on smaller settings windows.
|
|
using (var treeNode = ImRaii.TreeNode(HellionStrings.About_Translators_TreeNode))
|
|
{
|
|
if (treeNode)
|
|
{
|
|
using var indent = ImRaii.PushIndent(ImGui.GetStyle().IndentSpacing, false);
|
|
foreach (var translator in Translators)
|
|
ImGui.TextUnformatted(translator);
|
|
}
|
|
}
|
|
ImGui.Spacing();
|
|
}
|
|
}
|