aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects/GraduatedSlider.cs
diff options
context:
space:
mode:
authorjpbruyere <jp.bruyere@hotmail.com>2014-12-18 22:41:10 +0100
committerjpbruyere <jp.bruyere@hotmail.com>2014-12-18 22:41:10 +0100
commitd5a5d9516969d7a0fb665a72be7269e7bd51ad58 (patch)
tree64807d55e1994b3c700e9628ac7a6ba602a4426f /src/GraphicObjects/GraduatedSlider.cs
parent02fed0f59e37aa66381023ec1543cca9a54ac118 (diff)
misa a jour
Diffstat (limited to 'src/GraphicObjects/GraduatedSlider.cs')
-rw-r--r--src/GraphicObjects/GraduatedSlider.cs51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/GraphicObjects/GraduatedSlider.cs b/src/GraphicObjects/GraduatedSlider.cs
new file mode 100644
index 00000000..9eb0ec7a
--- /dev/null
+++ b/src/GraphicObjects/GraduatedSlider.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Cairo;
+using System.Xml.Serialization;
+
+namespace go
+{
+ public class GraduatedSlider : Slider
+ {
+ public GraduatedSlider() : base()
+ {}
+ public GraduatedSlider(double minimum, double maximum, double step)
+ : base()
+ {
+ Minimum = minimum;
+ Maximum = maximum;
+ SmallIncrement = step;
+ LargeIncrement = step * 5;
+ }
+ public override void DrawGraduations(Context gr, PointD pStart, PointD pEnd)
+ {
+ Rectangle r = clientBounds;
+ gr.Color = Foreground;
+
+ gr.LineWidth = 2;
+ gr.MoveTo(pStart);
+ gr.LineTo(pEnd);
+
+ gr.Stroke();
+ gr.LineWidth = 1;
+
+ double sst = unity * SmallIncrement;
+ double bst = unity * LargeIncrement;
+
+
+ PointD vBar = new PointD(0, sst);
+ for (double x = Minimum; x <= Maximum - Minimum; x += SmallIncrement)
+ {
+ double lineLength = r.Height / 3;
+ if (x % LargeIncrement != 0)
+ lineLength /= 3;
+ PointD p = new PointD(pStart.X + x * unity, pStart.Y);
+ gr.MoveTo(p);
+ gr.LineTo(new PointD(p.X, p.Y + lineLength));
+ }
+ gr.Stroke();
+ }
+ }
+}