diff --git a/ChatTwo/Resources/Language.Designer.cs b/ChatTwo/Resources/Language.Designer.cs
index e6e0df9..28800f1 100755
--- a/ChatTwo/Resources/Language.Designer.cs
+++ b/ChatTwo/Resources/Language.Designer.cs
@@ -267,6 +267,33 @@ namespace ChatTwo.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to The font Chat 2 will use to display non-Japanese text..
+ ///
+ internal static string Options_Font_Description {
+ get {
+ return ResourceManager.GetString("Options_Font_Description", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Font.
+ ///
+ internal static string Options_Font_Name {
+ get {
+ return ResourceManager.GetString("Options_Font_Name", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Using certain system fonts may crash your game. You have been warned..
+ ///
+ internal static string Options_Font_Warning {
+ get {
+ return ResourceManager.GetString("Options_Font_Warning", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Font size.
///
@@ -312,6 +339,24 @@ namespace ChatTwo.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to The font Chat 2 will use to display Japanese text..
+ ///
+ internal static string Options_JapaneseFont_Description {
+ get {
+ return ResourceManager.GetString("Options_JapaneseFont_Description", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Japanese font.
+ ///
+ internal static string Options_JapaneseFont_Name {
+ get {
+ return ResourceManager.GetString("Options_JapaneseFont_Name", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Reduce the spacing between messages..
///
diff --git a/ChatTwo/Resources/Language.resx b/ChatTwo/Resources/Language.resx
index 1c5d362..4bff7c9 100755
--- a/ChatTwo/Resources/Language.resx
+++ b/ChatTwo/Resources/Language.resx
@@ -320,4 +320,19 @@
Pet (Other)
+
+ Font
+
+
+ Japanese font
+
+
+ The font Chat 2 will use to display non-Japanese text.
+
+
+ Using certain system fonts may crash your game. You have been warned.
+
+
+ The font Chat 2 will use to display Japanese text.
+
diff --git a/ChatTwo/Ui/SettingsTabs/Display.cs b/ChatTwo/Ui/SettingsTabs/Display.cs
index a912a13..b0bd1ab 100755
--- a/ChatTwo/Ui/SettingsTabs/Display.cs
+++ b/ChatTwo/Ui/SettingsTabs/Display.cs
@@ -34,10 +34,20 @@ internal sealed class Display : ISettingsTab {
this.UpdateFonts();
}
+ ImGui.PushTextWrapPos();
+
ImGuiUtil.OptionCheckbox(ref this.Mutable.HideChat, Language.Options_HideChat_Name, Language.Options_HideChat_Description);
+ ImGui.Spacing();
+
ImGuiUtil.OptionCheckbox(ref this.Mutable.HideDuringCutscenes, Language.Options_HideDuringCutscenes_Name, Language.Options_HideDuringCutscenes_Description);
+ ImGui.Spacing();
+
ImGuiUtil.OptionCheckbox(ref this.Mutable.NativeItemTooltips, Language.Options_NativeItemTooltips_Name, Language.Options_NativeItemTooltips_Description);
+ ImGui.Spacing();
+
ImGuiUtil.OptionCheckbox(ref this.Mutable.SidebarTabView, Language.Options_SidebarTabView_Name, Language.Options_SidebarTabView_Description);
+ ImGui.Spacing();
+
ImGuiUtil.OptionCheckbox(ref this.Mutable.PrettierTimestamps, Language.Options_PrettierTimestamps_Name, Language.Options_PrettierTimestamps_Description);
if (this.Mutable.PrettierTimestamps) {
@@ -46,9 +56,12 @@ internal sealed class Display : ISettingsTab {
ImGui.TreePop();
}
- ImGuiUtil.OptionCheckbox(ref this.Mutable.ShowNoviceNetwork, Language.Options_ShowNoviceNetwork_Name, Language.Options_ShowNoviceNetwork_Description);
+ ImGui.Spacing();
- if (ImGui.BeginCombo("Font", this.Mutable.GlobalFont)) {
+ ImGuiUtil.OptionCheckbox(ref this.Mutable.ShowNoviceNetwork, Language.Options_ShowNoviceNetwork_Name, Language.Options_ShowNoviceNetwork_Description);
+ ImGui.Spacing();
+
+ if (ImGui.BeginCombo(Language.Options_Font_Name, this.Mutable.GlobalFont)) {
foreach (var font in Ui.Fonts.GlobalFonts) {
if (ImGui.Selectable(font.Name, this.Mutable.GlobalFont == font.Name)) {
this.Mutable.GlobalFont = font.Name;
@@ -78,7 +91,11 @@ internal sealed class Display : ISettingsTab {
ImGui.EndCombo();
}
- if (ImGui.BeginCombo("Japanese font", this.Mutable.JapaneseFont)) {
+ ImGuiUtil.HelpText(Language.Options_Font_Description);
+ ImGuiUtil.WarningText(Language.Options_Font_Warning);
+ ImGui.Spacing();
+
+ if (ImGui.BeginCombo(Language.Options_JapaneseFont_Name, this.Mutable.JapaneseFont)) {
foreach (var (name, _) in Ui.Fonts.JapaneseFonts) {
if (ImGui.Selectable(name, this.Mutable.JapaneseFont == name)) {
this.Mutable.JapaneseFont = name;
@@ -104,6 +121,9 @@ internal sealed class Display : ISettingsTab {
ImGui.EndCombo();
}
+ ImGuiUtil.HelpText(Language.Options_JapaneseFont_Description);
+ ImGui.Spacing();
+
ImGui.DragFloat(Language.Options_FontSize_Name, ref this.Mutable.FontSize, .0125f, 12f, 36f, $"{this.Mutable.FontSize:N1}");
if (ImGui.DragFloat(Language.Options_WindowOpacity_Name, ref this.Mutable.WindowAlpha, .0025f, 0f, 1f, $"{this.Mutable.WindowAlpha * 100f:N2}%%")) {
switch (this.Mutable.WindowAlpha) {
@@ -116,8 +136,17 @@ internal sealed class Display : ISettingsTab {
}
}
+ ImGui.Spacing();
+
ImGuiUtil.OptionCheckbox(ref this.Mutable.CanMove, Language.Options_CanMove_Name);
+ ImGui.Spacing();
+
ImGuiUtil.OptionCheckbox(ref this.Mutable.CanResize, Language.Options_CanResize_Name);
+ ImGui.Spacing();
+
ImGuiUtil.OptionCheckbox(ref this.Mutable.ShowTitleBar, Language.Options_ShowTitleBar_Name);
+ ImGui.Spacing();
+
+ ImGui.PopTextWrapPos();
}
}
diff --git a/ChatTwo/Util/ImGuiUtil.cs b/ChatTwo/Util/ImGuiUtil.cs
index 9636def..ebcdaae 100755
--- a/ChatTwo/Util/ImGuiUtil.cs
+++ b/ChatTwo/Util/ImGuiUtil.cs
@@ -1,5 +1,6 @@
using System.Text;
using Dalamud.Interface;
+using Dalamud.Interface.Style;
using ImGuiNET;
namespace ChatTwo.Util;
@@ -110,18 +111,36 @@ internal static class ImGuiUtil {
var ret = ImGui.Checkbox(label, ref value);
if (description != null) {
- var colour = ImGui.GetStyle().Colors[(int) ImGuiCol.TextDisabled];
- ImGui.PushStyleColor(ImGuiCol.Text, colour);
- ImGui.PushTextWrapPos();
-
- try {
- ImGui.TextUnformatted(description);
- } finally {
- ImGui.PopTextWrapPos();
- ImGui.PopStyleColor();
- }
+ HelpText(description);
}
return ret;
}
+
+ internal static void HelpText(string text) {
+ var colour = ImGui.GetStyle().Colors[(int) ImGuiCol.TextDisabled];
+ ImGui.PushStyleColor(ImGuiCol.Text, colour);
+ ImGui.PushTextWrapPos();
+
+ try {
+ ImGui.TextUnformatted(text);
+ } finally {
+ ImGui.PopTextWrapPos();
+ ImGui.PopStyleColor();
+ }
+ }
+
+ internal static void WarningText(string text) {
+ var style = StyleModel.GetConfiguredStyle() ?? StyleModel.GetFromCurrent();
+ var dalamudOrange = style.BuiltInColors?.DalamudOrange;
+ if (dalamudOrange != null) {
+ ImGui.PushStyleColor(ImGuiCol.Text, dalamudOrange.Value);
+ }
+
+ ImGui.TextUnformatted(text);
+
+ if (dalamudOrange != null) {
+ ImGui.PopStyleColor();
+ }
+ }
}