Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Windows.Controls;
- using VVVV.PluginInterfaces.V2;
- namespace VVVV.Packs.UI.Nodes.WPF
- {
- [PluginInfo(Author = "Robster", Category = "WPF", Help = "Creates a slider UIElement", Name = "Slider")]
- public class WPFSliderNode : WPFGenericNode<Slider>, IPluginEvaluate
- {
- [Input("SizeX", DefaultValue = 120, Order = 9, MinValue = 0)]
- public IDiffSpread<int> SizeX;
- [Input("SizeY", DefaultValue = 120, Order = 9, MinValue = 0)]
- public IDiffSpread<int> SizeY;
- [Input("Orientation", Order = 1, DefaultEnumEntry = "Horizontal")]
- public IDiffSpread<Orientation> OrientationIn;
- [Output("Value", IsSingle = true, Order = 1)]
- public ISpread<double> ValueOut;
- // ReSharper restore UnassignedField.Global
- // ReSharper restore MemberCanBePrivate.Global
- public void Evaluate(int SpreadMax)
- {
- UIElementOut.SliceCount = SpreadMax;
- ValueOut.SliceCount = SpreadMax;
- for (var i = 0; i < SpreadMax; i++)
- {
- if (UIElementOut == null || !(UIElementOut[i] is Slider))
- CreateElement(i);
- SetProperties(i);
- }
- }
- private new void CreateElement(int i)
- {
- base.CreateElement(i);
- var uiElement = (Slider)UIElementOut[i];
- uiElement.Width = SizeX[i];
- uiElement.Height = SizeY[i];
- uiElement.Minimum = 0;
- uiElement.Maximum = 1;
- }
- private new void SetProperties(int i, bool force = false)
- {
- base.SetProperties(i, force);
- var uiElement = (Slider)UIElementOut[i];
- if (!ValueOut[i].Equals(uiElement.Value))
- ValueOut[i] = uiElement.Value;
- if (OrientationIn.IsChanged)
- uiElement.Orientation = OrientationIn[i];
- if (SizeX.IsChanged || SizeY.IsChanged)
- {
- uiElement.Width = SizeX[i];
- uiElement.Height = SizeY[i];
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement