mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-15 13:14:17 +01:00
fix: remove shitty feature interface stuff, do it in UiBuilder
This commit is contained in:
parent
9acc51ca96
commit
6c7592ec17
5 changed files with 7 additions and 57 deletions
|
|
@ -58,6 +58,11 @@ namespace Dalamud.Interface
|
||||||
public TextureWrap LoadImage(byte[] imageData) =>
|
public TextureWrap LoadImage(byte[] imageData) =>
|
||||||
this.interfaceManager.LoadImage(imageData);
|
this.interfaceManager.LoadImage(imageData);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Event that is fired when the plugin should open its configuration interface.
|
||||||
|
/// </summary>
|
||||||
|
public EventHandler OnOpenConfigUi;
|
||||||
|
|
||||||
private void OnDraw() {
|
private void OnDraw() {
|
||||||
ImGui.PushID(this.namespaceName);
|
ImGui.PushID(this.namespaceName);
|
||||||
OnBuildUi?.Invoke();
|
OnBuildUi?.Invoke();
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
using System;
|
|
||||||
using Dalamud.Interface;
|
|
||||||
|
|
||||||
namespace Dalamud.Plugin.Features
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// This interface represents a Dalamud plugin that has a configuration UI which can be triggered.
|
|
||||||
/// </summary>
|
|
||||||
public interface IHasConfigUi : IHasUi
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// An event handler that is fired when the plugin should show its configuration interface.
|
|
||||||
/// </summary>
|
|
||||||
EventHandler OpenConfigUi { get; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Dalamud.Interface;
|
|
||||||
|
|
||||||
namespace Dalamud.Plugin.Features
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// This interface represents a Dalamud plugin that has user interface which can be drawn.
|
|
||||||
/// </summary>
|
|
||||||
public interface IHasUi : IDalamudPlugin
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// A function that gets called when Dalamud is ready to draw your UI.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="uiBuilder">An <see cref="UiBuilder"/> object you can use to e.g. load images.</param>
|
|
||||||
void Draw(UiBuilder uiBuilder);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -10,7 +10,6 @@ using System.Net.Http;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Dalamud.Plugin.Features;
|
|
||||||
using ImGuiNET;
|
using ImGuiNET;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
|
|
@ -224,10 +223,10 @@ namespace Dalamud.Plugin
|
||||||
this.errorModalOnNextFrame = true;
|
this.errorModalOnNextFrame = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (installedPlugin.Plugin is IHasConfigUi v2Plugin && v2Plugin.OpenConfigUi != null) {
|
if (installedPlugin.PluginInterface.UiBuilder.OnOpenConfigUi != null) {
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Open Configuration")) v2Plugin.OpenConfigUi?.Invoke(null, null);
|
if (ImGui.Button("Open Configuration")) installedPlugin.PluginInterface.UiBuilder.OnOpenConfigUi?.Invoke(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,7 @@ using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Dalamud.Configuration;
|
using Dalamud.Configuration;
|
||||||
using Dalamud.Interface;
|
|
||||||
using Dalamud.Plugin.Features;
|
|
||||||
using ImGuiNET;
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
|
|
||||||
|
|
@ -31,18 +26,6 @@ namespace Dalamud.Plugin
|
||||||
this.devPluginDirectory = devPluginDirectory;
|
this.devPluginDirectory = devPluginDirectory;
|
||||||
|
|
||||||
this.pluginConfigs = new PluginConfigurations(Path.Combine(Path.GetDirectoryName(dalamud.StartInfo.ConfigurationPath), "pluginConfigs"));
|
this.pluginConfigs = new PluginConfigurations(Path.Combine(Path.GetDirectoryName(dalamud.StartInfo.ConfigurationPath), "pluginConfigs"));
|
||||||
|
|
||||||
this.dalamud.InterfaceManager.OnDraw += InterfaceManagerOnOnDraw;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void InterfaceManagerOnOnDraw() {
|
|
||||||
foreach (var plugin in this.Plugins) {
|
|
||||||
if (plugin.Plugin is IHasUi uiPlugin) {
|
|
||||||
ImGui.PushID(plugin.Definition.InternalName);
|
|
||||||
uiPlugin.Draw(plugin.PluginInterface.UiBuilder);
|
|
||||||
ImGui.PopID();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UnloadPlugins() {
|
public void UnloadPlugins() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue