using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls.Primitives; using Tango.Core; using Tango.Editors; namespace Tango.Editors { /// /// Represents the base interface for element editors. /// public interface IElementEditor : IConfigurable, IParameterized { /// /// Gets the collection of for the current editor and element properties. /// /// The animation duration. /// The animation setup mode. /// /// The returned collection of animation setups can be inserted into a . /// List GetAnimationSetups(TimeSpan duration, AnimationSetupMode animationSetupMode = AnimationSetupMode.Linear); /// /// Gets or sets the editor unique identifier. /// String ID { get; set; } /// /// Gets or sets the editor top position. /// double Top { get; set; } /// /// Gets or sets the editor left position. /// double Left { get; set; } /// /// Gets or sets the editor width. /// double Width { get; set; } /// /// Gets or sets the editor height. /// double Height { get; set; } /// /// Gets or sets the editor angle. /// double Angle { get; set; } /// /// Gets or sets the editor Z-index. /// int ZIndex { get; set; } /// /// Gets or sets a value indicating whether the hosted element will be presented inside or outside the editor. /// bool ElementDetached { get; set; } /// /// Occurs when the editor is moving. /// event EventHandler Moving; /// /// Occurs before editor bounds change. /// event EventHandler BeforeBoundsChange; /// /// Occurs after editor bounds change. /// event EventHandler AfterBoundsChange; /// /// Moves the editor by the specified delta arguments. /// /// The instance containing the event data. void PushMove(DragDeltaEventArgs e); /// /// Clones this instance. /// /// IElementEditor Clone(); /// /// Gets the hosted element. /// Object HostedElement { get; } /// /// Sets the editor bounds. /// /// The bounds. void SetBounds(Rect bounds); /// /// Gets the editor bounds. /// /// Rect GetBounds(); /// /// Gets or sets an optional attached element for editors mirroring mode. /// IElementEditor AttachedEditor { get; set; } } }