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);
}