feat: add vanilla presets

This commit is contained in:
Anna 2022-02-06 16:45:19 -05:00
parent 256494e858
commit 310ee7600d
4 changed files with 144 additions and 1 deletions

View File

@ -618,6 +618,15 @@ namespace ChatTwo.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to New tab.
/// </summary>
internal static string Options_Tabs_NewTab {
get {
return ResourceManager.GetString("Options_Tabs_NewTab", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to &lt;None&gt;.
/// </summary>
@ -627,6 +636,15 @@ namespace ChatTwo.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Preset: {0}.
/// </summary>
internal static string Options_Tabs_Preset {
get {
return ResourceManager.GetString("Options_Tabs_Preset", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Show timestamps.
/// </summary>
@ -717,6 +735,24 @@ namespace ChatTwo.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Event.
/// </summary>
internal static string Tabs_Presets_Event {
get {
return ResourceManager.GetString("Tabs_Presets_Event", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to General.
/// </summary>
internal static string Tabs_Presets_General {
get {
return ResourceManager.GetString("Tabs_Presets_General", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to All.
/// </summary>

View File

@ -359,4 +359,16 @@
<data name="Options_HideWhenNotLoggedIn_Description" xml:space="preserve">
<value>Hide {0} when you are not logged in to a character.</value>
</data>
<data name="Tabs_Presets_General" xml:space="preserve">
<value>General</value>
</data>
<data name="Options_Tabs_Preset" xml:space="preserve">
<value>Preset: {0}</value>
</data>
<data name="Tabs_Presets_Event" xml:space="preserve">
<value>Event</value>
</data>
<data name="Options_Tabs_NewTab" xml:space="preserve">
<value>New tab</value>
</data>
</root>

View File

@ -16,8 +16,28 @@ internal sealed class Tabs : ISettingsTab {
}
public void Draw() {
const string addTabPopup = "add-tab-popup";
if (ImGuiUtil.IconButton(FontAwesomeIcon.Plus, tooltip: Language.Options_Tabs_Add)) {
this.Mutable.Tabs.Add(new Tab());
ImGui.OpenPopup(addTabPopup);
}
if (ImGui.BeginPopup(addTabPopup)) {
if (ImGui.Selectable(Language.Options_Tabs_NewTab)) {
this.Mutable.Tabs.Add(new Tab());
}
ImGui.Separator();
if (ImGui.Selectable(string.Format(Language.Options_Tabs_Preset, Language.Tabs_Presets_General))) {
this.Mutable.Tabs.Add(TabsUtil.VanillaGeneral);
}
if (ImGui.Selectable(string.Format(Language.Options_Tabs_Preset, Language.Tabs_Presets_Event))) {
this.Mutable.Tabs.Add(TabsUtil.VanillaEvent);
}
ImGui.EndPopup();
}
var toRemove = -1;

75
ChatTwo/Util/TabsUtil.cs Executable file
View File

@ -0,0 +1,75 @@
using ChatTwo.Code;
namespace ChatTwo.Util;
internal static class TabsUtil {
internal static Tab VanillaGeneral => new() {
Name = "General",
ChatCodes = new Dictionary<ChatType, ChatSource> {
// Special
[ChatType.Debug] = ChatSourceExt.All,
[ChatType.Urgent] = ChatSourceExt.All,
[ChatType.Notice] = ChatSourceExt.All,
// Chat
[ChatType.Say] = ChatSourceExt.All,
[ChatType.Yell] = ChatSourceExt.All,
[ChatType.Shout] = ChatSourceExt.All,
[ChatType.TellIncoming] = ChatSourceExt.All,
[ChatType.TellOutgoing] = ChatSourceExt.All,
[ChatType.Party] = ChatSourceExt.All,
[ChatType.CrossParty] = ChatSourceExt.All,
[ChatType.Alliance] = ChatSourceExt.All,
[ChatType.FreeCompany] = ChatSourceExt.All,
[ChatType.PvpTeam] = ChatSourceExt.All,
[ChatType.CrossLinkshell1] = ChatSourceExt.All,
[ChatType.CrossLinkshell2] = ChatSourceExt.All,
[ChatType.CrossLinkshell3] = ChatSourceExt.All,
[ChatType.CrossLinkshell4] = ChatSourceExt.All,
[ChatType.CrossLinkshell5] = ChatSourceExt.All,
[ChatType.CrossLinkshell6] = ChatSourceExt.All,
[ChatType.CrossLinkshell7] = ChatSourceExt.All,
[ChatType.CrossLinkshell8] = ChatSourceExt.All,
[ChatType.Linkshell1] = ChatSourceExt.All,
[ChatType.Linkshell2] = ChatSourceExt.All,
[ChatType.Linkshell3] = ChatSourceExt.All,
[ChatType.Linkshell4] = ChatSourceExt.All,
[ChatType.Linkshell5] = ChatSourceExt.All,
[ChatType.Linkshell6] = ChatSourceExt.All,
[ChatType.Linkshell7] = ChatSourceExt.All,
[ChatType.Linkshell8] = ChatSourceExt.All,
[ChatType.NoviceNetwork] = ChatSourceExt.All,
[ChatType.StandardEmote] = ChatSourceExt.All,
[ChatType.CustomEmote] = ChatSourceExt.All,
// Announcements
[ChatType.System] = ChatSourceExt.All,
[ChatType.GatheringSystem] = ChatSourceExt.All,
[ChatType.Error] = ChatSourceExt.All,
[ChatType.Echo] = ChatSourceExt.All,
[ChatType.NoviceNetworkSystem] = ChatSourceExt.All,
[ChatType.FreeCompanyAnnouncement] = ChatSourceExt.All,
[ChatType.PvpTeamAnnouncement] = ChatSourceExt.All,
[ChatType.FreeCompanyLoginLogout] = ChatSourceExt.All,
[ChatType.PvpTeamLoginLogout] = ChatSourceExt.All,
[ChatType.RetainerSale] = ChatSourceExt.All,
[ChatType.NpcAnnouncement] = ChatSourceExt.All,
[ChatType.LootNotice] = ChatSourceExt.All,
[ChatType.Progress] = ChatSourceExt.All,
[ChatType.LootRoll] = ChatSourceExt.All,
[ChatType.Crafting] = ChatSourceExt.All,
[ChatType.Gathering] = ChatSource.Self,
[ChatType.PeriodicRecruitmentNotification] = ChatSourceExt.All,
[ChatType.Sign] = ChatSourceExt.All,
[ChatType.RandomNumber] = ChatSourceExt.All,
[ChatType.Orchestrion] = ChatSourceExt.All,
[ChatType.MessageBook] = ChatSourceExt.All,
[ChatType.Alarm] = ChatSourceExt.All,
},
};
internal static Tab VanillaEvent => new() {
Name = "Event",
ChatCodes = new Dictionary<ChatType, ChatSource> {
[ChatType.NpcDialogue] = ChatSourceExt.All,
},
};
}