From 7f34841eee3121f85631c8a18da40559ebed152c Mon Sep 17 00:00:00 2001 From: Anna Date: Sun, 11 Apr 2021 09:42:59 -0400 Subject: [PATCH] docs: document public api --- XivCommon/Functions/BattleTalk.cs | 35 +++++++++++++++++++++++++++++- XivCommon/Functions/PartyFinder.cs | 9 ++++++++ XivCommon/Hooks.cs | 17 +++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) diff --git a/XivCommon/Functions/BattleTalk.cs b/XivCommon/Functions/BattleTalk.cs index f55b5a3..428533c 100755 --- a/XivCommon/Functions/BattleTalk.cs +++ b/XivCommon/Functions/BattleTalk.cs @@ -12,6 +12,9 @@ namespace XivCommon.Functions { public delegate void BattleTalkEventDelegate(ref SeString sender, ref SeString message, ref BattleTalkOptions options, ref bool isHandled); + /// + /// The event that is fired when a BattleTalk window is shown. + /// public event BattleTalkEventDelegate? OnBattleTalk; private delegate byte AddBattleTalkDelegate(IntPtr uiModule, IntPtr sender, IntPtr message, float duration, byte style); @@ -67,6 +70,13 @@ namespace XivCommon.Functions { } } + /// + /// Show a BattleTalk window with the given options. + /// + /// The name to attribute to the message + /// The message to show in the window + /// Optional options for the window + /// If the hook is not enabled public void Show(SeString sender, SeString message, BattleTalkOptions? options = null) { this.Show(sender.Encode(), message.Encode(), options); } @@ -98,17 +108,40 @@ namespace XivCommon.Functions { public class BattleTalkOptions { /// - /// Duration of the window in seconds. + /// Duration to display the window, in seconds. /// public float Duration { get; set; } = 5f; + /// + /// The style of the window. + /// public BattleTalkStyle Style { get; set; } = BattleTalkStyle.Normal; } public enum BattleTalkStyle : byte { + /// + /// A normal battle talk window with a white background. + /// Normal = 0, + + /// + /// A battle talk window with a blue background and styled edges. + /// Aetherial = 6, + + /// + /// A battle talk window styled similarly to a system text message (black background). + /// System = 7, + + /// + /// + /// A battle talk window with a blue, computer-y background. + /// + /// + /// Used by the Ultima Weapons (Ruby, Emerald, etc.). + /// + /// Blue = 9, } } diff --git a/XivCommon/Functions/PartyFinder.cs b/XivCommon/Functions/PartyFinder.cs index 808d6c4..8a09316 100755 --- a/XivCommon/Functions/PartyFinder.cs +++ b/XivCommon/Functions/PartyFinder.cs @@ -37,6 +37,15 @@ namespace XivCommon.Functions { return this.RequestPfListingsHook!.Original(agent, categoryIdx); } + /// + /// + /// Refresh the Party Finder listings. This does not open the Party Finder. + /// + /// + /// This maintains the currently selected category. + /// + /// + /// If the hook is not enabled public void RefreshListings() { if (!this.Enabled) { throw new InvalidOperationException("PartyFinder hooks are not enabled"); diff --git a/XivCommon/Hooks.cs b/XivCommon/Hooks.cs index 6ebcfd4..7e165ba 100755 --- a/XivCommon/Hooks.cs +++ b/XivCommon/Hooks.cs @@ -3,8 +3,25 @@ namespace XivCommon { [Flags] public enum Hooks { + /// + /// No hook. + /// + /// This flag is used to disable all hooking. + /// None, + + /// + /// The BattleTalk hook. + /// + /// This hook is used in order to enable all BattleTalk functions. + /// BattleTalk, + + /// + /// The Party Finder hooks. + /// + /// This hook is used in order to enable all Party Finder functions. + /// PartyFinder, }