Advertisement
Guest User

Untitled

a guest
Aug 14th, 2015
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.13 KB | None | 0 0
  1. using System.Windows.Controls;
  2. using VVVV.PluginInterfaces.V2;
  3.  
  4. namespace VVVV.Packs.UI.Nodes.WPF
  5. {
  6.     [PluginInfo(Author = "Robster", Category = "WPF", Help = "Creates a slider UIElement", Name = "Slider")]
  7.  
  8.     public class WPFSliderNode : WPFGenericNode<Slider>, IPluginEvaluate
  9.     {
  10.         [Input("SizeX", DefaultValue = 120, Order = 9, MinValue = 0)]
  11.         public IDiffSpread<int> SizeX;
  12.  
  13.         [Input("SizeY", DefaultValue = 120, Order = 9, MinValue = 0)]
  14.         public IDiffSpread<int> SizeY;
  15.  
  16.         [Input("Orientation", Order = 1, DefaultEnumEntry = "Horizontal")]
  17.         public IDiffSpread<Orientation> OrientationIn;
  18.        
  19.         [Output("Value", IsSingle = true, Order = 1)]
  20.         public ISpread<double> ValueOut;
  21.  
  22.         // ReSharper restore UnassignedField.Global
  23.         // ReSharper restore MemberCanBePrivate.Global
  24.  
  25.         public void Evaluate(int SpreadMax)
  26.         {
  27.  
  28.             UIElementOut.SliceCount = SpreadMax;
  29.             ValueOut.SliceCount = SpreadMax;
  30.  
  31.             for (var i = 0; i < SpreadMax; i++)
  32.             {
  33.                 if (UIElementOut == null || !(UIElementOut[i] is Slider))
  34.                     CreateElement(i);
  35.                     SetProperties(i);
  36.             }
  37.         }
  38.  
  39.         private new void CreateElement(int i)
  40.         {
  41.             base.CreateElement(i);
  42.             var uiElement = (Slider)UIElementOut[i];
  43.  
  44.             uiElement.Width = SizeX[i];
  45.             uiElement.Height = SizeY[i];
  46.  
  47.             uiElement.Minimum = 0;
  48.             uiElement.Maximum = 1;
  49.         }
  50.  
  51.         private new void SetProperties(int i, bool force = false)
  52.         {
  53.             base.SetProperties(i, force);
  54.             var uiElement = (Slider)UIElementOut[i];
  55.  
  56.             if (!ValueOut[i].Equals(uiElement.Value))
  57.                 ValueOut[i] = uiElement.Value;
  58.  
  59.             if (OrientationIn.IsChanged)
  60.                 uiElement.Orientation = OrientationIn[i];
  61.  
  62.             if (SizeX.IsChanged || SizeY.IsChanged)
  63.             {
  64.                 uiElement.Width = SizeX[i];
  65.                 uiElement.Height = SizeY[i];
  66.             }
  67.         }
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement