Layer brushes - Make enable-disable process consistent with plugins

This commit is contained in:
SpoinkyNL committed 2020-06-07 15:00:40 +02:00
1 parent 6327107277
commit 33bb3ffa6c
37 files changed
+325 -128

No files matched your search

@@ -43,7 +43,7 @@ namespace Artemis.Core.Plugins.Abstract
}
}
protected override void DisablePlugin()
public override void DisablePlugin()
{
// Does not happen with device providers, they require Artemis to restart
}
@@ -0,0 +1,28 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Artemis.Core.Plugins.LayerBrush;
using Artemis.Core.Plugins.Models;
namespace Artemis.Core.Plugins.Abstract
{
/// <inheritdoc />
/// <summary>
/// Allows you to create one or more <see cref="LayerBrush" />s usable by profile layers.
/// </summary>
public abstract class LayerBrushProvider : Plugin
{
private readonly List<LayerBrushDescriptor> _layerBrushDescriptors;
protected LayerBrushProvider(PluginInfo pluginInfo) : base(pluginInfo)
{
_layerBrushDescriptors = new List<LayerBrushDescriptor>();
}
public ReadOnlyCollection<LayerBrushDescriptor> LayerBrushDescriptors => _layerBrushDescriptors.AsReadOnly();
protected void AddLayerBrushDescriptor<T>(string displayName, string description, string icon) where T : BaseLayerBrush
{
_layerBrushDescriptors.Add(new LayerBrushDescriptor(displayName, description, icon, typeof(T), this));
}
}
}
@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Text;
using Artemis.Core.Plugins.Models;
namespace Artemis.Core.Plugins.Abstract
{
/// <inheritdoc />
/// <summary>
/// Allows you to create one or more <see cref="LayerEffect" />s usable by profile layers.
/// </summary>
public class LayerEffectProvider : Plugin
{
public LayerEffectProvider(PluginInfo pluginInfo) : base(pluginInfo)
{
}
public override void EnablePlugin()
{
throw new NotImplementedException();
}
public override void DisablePlugin()
{
throw new NotImplementedException();
}
}
}
+5 -17
View File
@@ -30,19 +30,18 @@ namespace Artemis.Core.Plugins.Abstract
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
DisablePlugin();
}
/// <summary>
/// Called when the plugin is activated
/// </summary>
protected abstract void EnablePlugin();
public abstract void EnablePlugin();
/// <summary>
/// Called when the plugin is deactivated
/// Called when the plugin is deactivated or when Artemis shuts down
/// </summary>
protected abstract void DisablePlugin();
public abstract void DisablePlugin();
/// <summary>
/// Called when the plugins configuration window is opened from the UI. The UI will only attempt to open if
@@ -53,18 +52,7 @@ namespace Artemis.Core.Plugins.Abstract
{
return null;
}
/// <summary>
/// Called when Artemis shuts down
/// </summary>
/// <param name="disposing"></param>
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
}
}
internal void SetEnabled(bool enable)
{
if (enable && !Enabled)