From d5a5d9516969d7a0fb665a72be7269e7bd51ad58 Mon Sep 17 00:00:00 2001 From: jpbruyere Date: Thu, 18 Dec 2014 22:41:10 +0100 Subject: misa a jour --- src/GraphicObjects/NumericControl.cs | 119 +++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 src/GraphicObjects/NumericControl.cs (limited to 'src/GraphicObjects/NumericControl.cs') diff --git a/src/GraphicObjects/NumericControl.cs b/src/GraphicObjects/NumericControl.cs new file mode 100644 index 00000000..c8aa48d2 --- /dev/null +++ b/src/GraphicObjects/NumericControl.cs @@ -0,0 +1,119 @@ +using System; + +namespace go +{ + public class NumericControl : GraphicObject + { + public NumericControl () : base() + { + } + public NumericControl(double minimum, double maximum, double step) + : base() + { + _minValue = minimum; + _maxValue = maximum; + _smallStep = step; + _bigStep = step * 5; + } + + #region event handlers + public EventHandler ValueChanged; + + public virtual void onValueChanged(object sender, ValueChangeEventArgs e) + { + if (ValueChanged != null) + ValueChanged (sender, e); + } + #endregion + + double _actualValue, _minValue, _maxValue, _smallStep, _bigStep; + + [System.Xml.Serialization.XmlAttributeAttribute()] + [System.ComponentModel.DefaultValue(0)] + public virtual double Minimum { + get { return _minValue; } + set { + if (_minValue == value) + return; + + _minValue = value; + + LayoutIsValid = false; + registerForGraphicUpdate (); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute()] + [System.ComponentModel.DefaultValue(10.0)] + public virtual double Maximum + { + get { return _maxValue; } + set { + if (_maxValue == value) + return; + + _maxValue = value; + + LayoutIsValid = false; + registerForGraphicUpdate (); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute()] + [System.ComponentModel.DefaultValue(0.5)] + public virtual double SmallIncrement + { + get { return _smallStep; } + set { + if (_smallStep == value) + return; + + _smallStep = value; + + LayoutIsValid = false; + registerForGraphicUpdate (); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute()] + [System.ComponentModel.DefaultValue(2.0)] + public virtual double LargeIncrement + { + get { return _bigStep; } + set { + if (_bigStep == value) + return; + + _bigStep = value; + + LayoutIsValid = false; + registerForGraphicUpdate (); + } + } + + [System.Xml.Serialization.XmlAttributeAttribute()] + [System.ComponentModel.DefaultValue(0)] + public double Value + { + get { return _actualValue; } + set + { + if (value == _actualValue) + return; + + Decimal oldV = (Decimal)_actualValue; + + if (value < _minValue) + _actualValue = _minValue; + else if (value > _maxValue) + _actualValue = _maxValue; + else + _actualValue = value; + + onValueChanged(this,new ValueChangeEventArgs(oldV,(Decimal)_actualValue)); + registerForGraphicUpdate(); + } + } + } +} + -- cgit v1.3.1-4-g156e