34 lines
1.0 KiB
C#
34 lines
1.0 KiB
C#
using System;
|
|
|
|
namespace Ink_Canvas.Plugins
|
|
{
|
|
public abstract class PluginBase : IPlugin
|
|
{
|
|
public abstract string Id { get; }
|
|
public abstract string Name { get; }
|
|
public abstract string Version { get; }
|
|
public abstract string Description { get; }
|
|
public virtual string Author => "Unknown";
|
|
public virtual int Order => 0;
|
|
|
|
protected IPluginHost? Host { get; private set; }
|
|
|
|
public virtual void Initialize(IPluginHost host)
|
|
{
|
|
Host = host;
|
|
Host.Log($"[Plugin:{Name}] Initialized");
|
|
}
|
|
|
|
public virtual void Shutdown()
|
|
{
|
|
Host?.Log($"[Plugin:{Name}] Shutdown");
|
|
Host = null;
|
|
}
|
|
|
|
public virtual object? GetSettingsView() => null;
|
|
public virtual object? GetMainView() => null;
|
|
|
|
protected void Log(string message) => Host?.Log($"[Plugin:{Name}] {message}");
|
|
protected void LogError(string message, Exception? ex = null) => Host?.LogError($"[Plugin:{Name}] {message}", ex);
|
|
}
|
|
} |