using Dalamud.Plugin; using Penumbra.Api.Api; using Penumbra.Api.Enums; using Penumbra.Api.Helpers; namespace Penumbra.Api.IpcSubscribers; /// public static class ChangedItemTooltip { /// The label. public const string Label = $"Penumbra.{nameof(ChangedItemTooltip)}"; /// Create a new event subscriber. public static EventSubscriber Subscriber(IDalamudPluginInterface pi, params Action[] actions) => new(pi, Label, actions); /// Create a provider. public static EventProvider Provider(IDalamudPluginInterface pi, IPenumbraApiUi api) => new(pi, Label, (d => api.ChangedItemTooltip += d, d => api.ChangedItemTooltip -= d)); } /// public static class ChangedItemClicked { /// The label. public const string Label = $"Penumbra.{nameof(ChangedItemClicked)}"; /// Create a new event subscriber. public static EventSubscriber Subscriber(IDalamudPluginInterface pi, params Action[] actions) => new(pi, Label, actions); /// Create a provider. public static EventProvider Provider(IDalamudPluginInterface pi, IPenumbraApiUi api) => new(pi, Label, (d => api.ChangedItemClicked += d, d => api.ChangedItemClicked -= d)); } /// public static class PreSettingsTabBarDraw { /// The label. public const string Label = $"Penumbra.{nameof(PreSettingsTabBarDraw)}"; /// Create a new event subscriber. public static EventSubscriber Subscriber(IDalamudPluginInterface pi, params Action[] actions) => new(pi, Label, actions); /// Create a provider. public static EventProvider Provider(IDalamudPluginInterface pi, IPenumbraApiUi api) => new(pi, Label, (d => api.PreSettingsTabBarDraw += d, d => api.PreSettingsTabBarDraw -= d)); } /// public static class PreSettingsDraw { /// The label. public const string Label = $"Penumbra.{nameof(PreSettingsDraw)}"; /// Create a new event subscriber. public static EventSubscriber Subscriber(IDalamudPluginInterface pi, params Action[] actions) => new(pi, Label, actions); /// Create a provider. public static EventProvider Provider(IDalamudPluginInterface pi, IPenumbraApiUi api) => new(pi, Label, (d => api.PreSettingsPanelDraw += d, d => api.PreSettingsPanelDraw -= d)); } /// public static class PostEnabledDraw { /// The label. public const string Label = $"Penumbra.{nameof(PostEnabledDraw)}"; /// Create a new event subscriber. public static EventSubscriber Subscriber(IDalamudPluginInterface pi, params Action[] actions) => new(pi, Label, actions); /// Create a provider. public static EventProvider Provider(IDalamudPluginInterface pi, IPenumbraApiUi api) => new(pi, Label, (d => api.PostEnabledDraw += d, d => api.PostEnabledDraw -= d)); } /// public static class PostSettingsDraw { /// The label. public const string Label = $"Penumbra.{nameof(PostSettingsDraw)}"; /// Create a new event subscriber. public static EventSubscriber Subscriber(IDalamudPluginInterface pi, params Action[] actions) => new(pi, Label, actions); /// Create a provider. public static EventProvider Provider(IDalamudPluginInterface pi, IPenumbraApiUi api) => new(pi, Label, (d => api.PostSettingsPanelDraw += d, d => api.PostSettingsPanelDraw -= d)); } /// public sealed class OpenMainWindow(IDalamudPluginInterface pi) : FuncSubscriber(pi, Label) { /// The label. public const string Label = $"Penumbra.{nameof(OpenMainWindow)}.V5"; /// public PenumbraApiEc Invoke(TabType tab, string modDirectory = "", string modName = "") => (PenumbraApiEc)Invoke((int)tab, modDirectory, modName); /// Create a provider. public static FuncProvider Provider(IDalamudPluginInterface pi, IPenumbraApiUi api) => new(pi, Label, (a, b, c) => (int)api.OpenMainWindow((TabType)a, b, c)); } /// public sealed class CloseMainWindow(IDalamudPluginInterface pi) : ActionSubscriber(pi, Label) { /// The label. public const string Label = $"Penumbra{nameof(CloseMainWindow)}"; /// public new void Invoke() => base.Invoke(); /// Create a provider. public static ActionProvider Provider(IDalamudPluginInterface pi, IPenumbraApiUi api) => new(pi, Label, api.CloseMainWindow); }