mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 11:56:30 +00:00
UI VM factories - Shortened names for readibility
Layer properties - Ensure only LayerBrushes can add properties and make sure that method instantiates a keyframe engine Layer properties UI - Respond to properties being added/removed
This commit is contained in:
1 parent
b3e1ba6d1c
commit
f4c1c9de3d
29 files changed
+417
-303
No files matched your search
@@ -1,71 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using Artemis.Core.Plugins.LayerBrush;
|
||||
using Artemis.Core.Plugins.Models;
|
||||
|
||||
namespace Artemis.Core.Models.Profile.LayerProperties
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a property on the layer. This property is visible in the profile editor and can be key-framed (unless
|
||||
/// opted out)
|
||||
/// opted out).
|
||||
/// <para>To create and register a new LayerProperty use <see cref="LayerBrush.RegisterLayerProperty" /></para>
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class LayerProperty<T> : BaseLayerProperty
|
||||
{
|
||||
internal LayerProperty(Layer layer, BaseLayerProperty parent, string id, string name, string description) : base(layer, null, parent, id, name, description, typeof(T))
|
||||
internal LayerProperty(Layer layer, BaseLayerProperty parent, string id, string name, string description)
|
||||
: base(layer, null, parent, id, name, description, typeof(T))
|
||||
{
|
||||
}
|
||||
|
||||
internal LayerProperty(Layer layer, string id, string name, string description) : base(layer, null, null, id, name, description, typeof(T))
|
||||
internal LayerProperty(Layer layer, string id, string name, string description)
|
||||
: base(layer, null, null, id, name, description, typeof(T))
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a property on the layer. This property is visible in the profile editor and can be key-framed (unless
|
||||
/// opted out)
|
||||
/// <para>
|
||||
/// Note: The value and keyframes of the property are stored using the ID, after adding the property to the layer
|
||||
/// these are restored.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="layer">The layer the property is applied to</param>
|
||||
/// <param name="pluginInfo">The plugin to create this property for</param>
|
||||
/// <param name="parent">The parent of this property, use this to create a tree-hierarchy in the editor</param>
|
||||
/// <param name="id">A and ID identifying your property, must be unique within your plugin</param>
|
||||
/// <param name="name">A name for your property, this is visible in the editor</param>
|
||||
/// <param name="description">A description for your property, this is visible in the editor</param>
|
||||
public LayerProperty(Layer layer, PluginInfo pluginInfo, BaseLayerProperty parent, string id, string name, string description) : base(layer, pluginInfo, parent, id, name, description,
|
||||
typeof(T))
|
||||
internal LayerProperty(Layer layer, PluginInfo pluginInfo, BaseLayerProperty parent, string id, string name, string description)
|
||||
: base(layer, pluginInfo, parent, id, name, description, typeof(T))
|
||||
{
|
||||
if (layer == null)
|
||||
throw new ArgumentNullException(nameof(layer));
|
||||
if (pluginInfo == null)
|
||||
throw new ArgumentNullException(nameof(pluginInfo));
|
||||
if (id == null)
|
||||
throw new ArgumentNullException(nameof(id));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a property on the layer. This property is visible in the profile editor and can be key-framed (unless
|
||||
/// opted out)
|
||||
/// <para>
|
||||
/// Note: The value and keyframes of the property are stored using the ID, after adding the property to the layer
|
||||
/// these are restored.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="layer">The layer the property is applied to</param>
|
||||
/// <param name="pluginInfo">The plugin to create this property for</param>
|
||||
/// <param name="id">A and ID identifying your property, must be unique within your plugin</param>
|
||||
/// <param name="name">A name for your property, this is visible in the editor</param>
|
||||
/// <param name="description">A description for your property, this is visible in the editor</param>
|
||||
public LayerProperty(Layer layer, PluginInfo pluginInfo, string id, string name, string description) : base(layer, pluginInfo, null, id, name, description, typeof(T))
|
||||
{
|
||||
if (layer == null)
|
||||
throw new ArgumentNullException(nameof(layer));
|
||||
if (pluginInfo == null)
|
||||
throw new ArgumentNullException(nameof(pluginInfo));
|
||||
if (id == null)
|
||||
throw new ArgumentNullException(nameof(id));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in new issue
Block a user