+++ /dev/null
-using System;\r
-using System.Windows;\r
-using System.Windows.Controls;\r
-using System.Windows.Documents;\r
-using System.Windows.Input;\r
-using System.Windows.Media;\r
-using System.Windows.Media.Animation;\r
-using System.Windows.Media.Imaging;\r
-using System.Windows.Shapes;\r
-\r
-\r
-\r
-namespace Psychlops\r
-{\r
-\r
- namespace Widgets\r
- {\r
-\r
- public class Slider\r
- {\r
- internal System.Windows.UIElement instance;\r
- internal System.Windows.Controls.Slider uislider;\r
- internal string label;\r
- internal Interval range;\r
-\r
- public Slider(string l, Interval r)\r
- {\r
- range = r;\r
- label = l;\r
- Psychlops.Widgets.Connector.stackSlider(this);\r
- }\r
- public static implicit operator double(Slider s)\r
- {\r
- return s.value;\r
- }\r
- public double value {\r
- get { return uislider.Value; }\r
- set { if(uislider!=null) uislider.Dispatcher.BeginInvoke( new Action<System.Windows.Controls.Slider, double>(Connector.sliderSet) , uislider, value ); }\r
- }\r
- public bool changed { get; set; }\r
- }\r
-\r
-\r
-\r
-\r
- internal static class Connector\r
- {\r
- delegate void StackSlider_(Slider s);\r
- internal static void stackSlider(Slider s)\r
- {\r
- Internal.Main.widgetStack.Dispatcher.BeginInvoke(new StackSlider_(stackSlider__), s);\r
- }\r
- static void stackSlider__(Slider ss)\r
- {\r
- var holder = new System.Windows.Controls.Canvas { Width = 200 };\r
- var val = new System.Windows.Controls.TextBox { Width = 100 };\r
- System.Windows.Controls.Canvas.SetLeft(val, 100);\r
- var slide = new System.Windows.Controls.Slider {\r
- Minimum = ss.range.begin.val, Maximum = ss.range.end.val,\r
- Name = ss.label,\r
- Tag = ss, Width = 200,\r
- };\r
- System.Windows.Controls.Canvas.SetTop(slide, 25);\r
- var b = new System.Windows.Data.Binding {\r
- Path = new PropertyPath("Value"),\r
- Mode = System.Windows.Data.BindingMode.TwoWay,\r
- Source = slide,\r
- };\r
- val.SetBinding(TextBox.TextProperty, b);\r
- ss.uislider = slide;\r
- //var b2 = new System.Windows.Data.Binding\r
- //{\r
- // Path = new PropertyPath("value"),\r
- // Mode = System.Windows.Data.BindingMode.TwoWay,\r
- // Source = ss,\r
- //};\r
- //val.SetBinding(System.Windows.Controls.Slider.ValueProperty, b2);\r
- var label = new System.Windows.Controls.TextBlock { Text = ss.label };\r
- System.Windows.Controls.Canvas.SetLeft(label, 3);\r
- System.Windows.Controls.Canvas.SetTop(label, 3);\r
-\r
- holder.Children.Add(label);\r
- holder.Children.Add(slide);\r
- holder.Children.Add(val);\r
- ss.instance = holder;\r
- Internal.Main.widgetStack.Children.Add(ss.instance);\r
- }\r
- public static void sliderSet(System.Windows.Controls.Slider s, double v)\r
- {\r
- s.Value = v;\r
- }\r
-\r
- }\r
-\r
- }\r
-\r
-}
\ No newline at end of file