aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects/AnalogMeter.cs
diff options
context:
space:
mode:
authorjpbruyere <jp.bruyere@hotmail.com>2015-08-21 13:31:52 +0200
committerjpbruyere <jp.bruyere@hotmail.com>2015-08-21 13:31:52 +0200
commit24c01f34ad393be4da4af6b25a37e434cbc9cd44 (patch)
tree384be6cd3d44efa8e6feb4769fce972e7ed4b705 /src/GraphicObjects/AnalogMeter.cs
parent61aeb72522c4ad315fed13d8ddd3d73f7a21bc2a (diff)
Documentation, analog meter tests
Diffstat (limited to 'src/GraphicObjects/AnalogMeter.cs')
-rw-r--r--src/GraphicObjects/AnalogMeter.cs18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/GraphicObjects/AnalogMeter.cs b/src/GraphicObjects/AnalogMeter.cs
index dd248cee..bf7f1c24 100644
--- a/src/GraphicObjects/AnalogMeter.cs
+++ b/src/GraphicObjects/AnalogMeter.cs
@@ -5,6 +5,7 @@ using Cairo;
namespace go
{
+ [DefaultTemplate("#go.Templates.AnalogMeter0.goml")]
public class AnalogMeter : NumericControl
{
#region CTOR
@@ -20,29 +21,34 @@ namespace go
protected override void loadTemplate (GraphicObject template = null)
{
- throw new NotImplementedException ();
+ base.loadTemplate (template);
}
#endregion
#region GraphicObject Overrides
protected override void onDraw (Context gr)
- {
+ {
base.onDraw (gr);
Rectangle r = ClientRectangle;
Point m = r.Center;
+ gr.Save ();
+
+
double aUnit = Math.PI*2.0 / (Maximum - Minimum);
- gr.Translate (m.X, m.Y);
- gr.Rotate (Value * aUnit);
+ gr.Translate (m.X, r.Height *1.1);
+ gr.Rotate (Value/4.0 * aUnit - Math.PI/4.0);
gr.Translate (-m.X, -m.Y);
gr.LineWidth = 2;
gr.Color = Foreground;
- gr.MoveTo (m);
- gr.LineTo (m.X, 0);
+ gr.MoveTo (m.X,0.0);
+ gr.LineTo (m.X, -m.Y*0.5);
gr.Stroke ();
+
+ gr.Restore ();
}
#endregion
}