|
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows;
namespace Logitech.Windows.MotionFlow
{
#region IMotionElementInput
public interface IMotionElementInput : IInputElement { }
#endregion
#region IMotionElement
public interface IMotionElement : IMotionElementInput
{
int Id { get; }
string Name { get; set; }
}
#endregion
#region MotionElement
public class MotionElement : ContentElement, IMotionElement
{
#region Static
#region Fields
private static int _refCount;
#endregion
#region Methods
public static string TransmitMethodSuffix(IMotionInfo info, int nativeDelta)
{
return nativeDelta == 0 || Math.Sign(nativeDelta) == info.NativeDirection ? "++" : "--";
}
#endregion
#endregion
#region Instance
#region Initialization
public MotionElement()
{
Id = ++_refCount;
Name = Id.ToString("'M'00");
}
#endregion
#region Object
public override string ToString() { return Name; }
#endregion
#region IMotionElement
public int Id { get; protected set; }
public string Name { get; set; }
#endregion
#endregion
}
#endregion
#region MotionElementLink
public class MotionElementLink : MotionElement
{
#region Fields
private IMotionElementInput _next;
#endregion
#region Methods
[DebuggerStepThrough]
protected IMotionElementInput GetNext(bool setParent = true)
{
if (setParent)
_next.SetParent(this);
return _next;
}
[DebuggerStepThrough]
protected void SetNext(IMotionElementInput value, bool setParent = true)
{
_next = value;
if (setParent)
value.SetParent(this);
}
#endregion
}
#endregion
#region MotionElementExtensions
public static class MotionElementExtensions
{
public static void SetParent(this IMotionElementInput reference, DependencyObject parent)
{
if (reference is ContentElement)
ContentOperations.SetParent(reference as ContentElement, parent);
else
throw new ArgumentException("Given reference is not a ContentElement");
}
}
#endregion
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.