//------------------------------------------------------------------------------
//
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
//------------------------------------------------------------------------------
using Newtonsoft.Json;
namespace Shuttle.Api.AfterEffectsDTO.Properties
{
///
/// Properties are accessed by name through layers, using various kinds of expression syntax, as
/// controlled by application preferences. For example, the following are all ways of access properties in
/// the Effects group:
///
public class PropertyBase
{
///
/// When true, this property is active. For a layer, this corresponds to the setting of the eyeball
/// icon and if the current time is between the layer’s in and out points. For an effect and all
/// properties, it is the same as the e n abl e d attribute, except that it’s read-only.
///
[JsonProperty("active")]
public bool Active { get; private set; }
///
/// When true, you can set the enabled attribute value. Generally, this is true if the user interface
/// displays an eyeball icon for this property; it is true for all layers.
///
[JsonProperty("canSetEnabled")]
public bool CanSetEnabled { get; private set; }
///
/// When true, this property is a group used to organize other properties. The property is not
/// displayed in the user interface and its child properties are not indented in the Timeline panel.For
/// example, for a text layer with two animators and no properties twirled down, you might see:
///
[JsonProperty("elided")]
public bool Elided { get; private set; }
///
/// When true, this property is enabled. It corresponds to the setting of the eyeball icon, if there
/// is one; otherwise, the default is true.
///
[JsonProperty("enabled")]
public bool Enabled { get; private set; }
///
/// When true, this property is an effect PropertyGroup.
///
[JsonProperty("isEffect")]
public bool IsEffect { get; private set; }
///
/// When true, this property is a mask PropertyGroup.
///
[JsonProperty("isMask")]
public bool IsMask { get; private set; }
///
/// When true, this property has been changed since its creation.
///
[JsonProperty("isModified")]
public bool IsModified { get; private set; }
///
/// A special name for the property used to build unique naming paths. The match name is not
/// displayed, but you can refer to it in scripts. Every property has a unique match-name identifier. Match names
/// are stable from version to version regardless of the display name (the name attribute value) or any
/// changes to the application. Unlike the display name, it is not localized. An indexed group may not
/// have a name value, but always has a matchName value. (An indexed group has the type
/// PropertyType.INDEXED_GROUP; see PropertyBase.propertyType.)
///
[JsonProperty("matchName")]
public string MatchName { get; private set; }
///
/// The display name of the property. (Compare PropertyBase.matchName.) It is an error to set the name
/// value if the property is not a child of an indexed group (that is, a property group that has the
/// type PropertyType.INDEXED_GROUP; see PropertyBase.propertyType).
///
[JsonProperty("name")]
public string Name { get; private set; }
///
/// The property group that is the immediate parent of this property, or null if this PropertyBase is
/// a layer.
///
[JsonProperty("parentProperty")]
public PropertyGroup ParentProperty { get; private set; }
///
/// The number of levels of parent groups between this property and the containing layer. The value 0
/// for a layer.
///
[JsonProperty("propertyDepth")]
public int PropertyDepth { get; private set; }
///
/// The position index of this property within its parent group, if it is a child of an indexed group
/// (a property group that has the type PropertyType.INDEXED_GROUP; see PropertyBase.propertyType).
///
[JsonProperty("propertyIndex")]
public int PropertyIndex { get; private set; }
///
/// The type of this property.
///
[JsonProperty("propertyType")]
public int PropertyType { get; set; }
///
/// When true, this property is selected. Set to true to select the property, or to false to deselect
/// it. Sampling this attribute repeatedly for a large number of properties can slow down system
/// performance. To read the full set of selected properties of a composition or layer, use either
/// CompItem.selectedProperties or Layer.selectedProperties.
///
[JsonProperty("selected")]
public bool Selected { get; set; }
public override string ToString()
{
return Name;
}
}
}