diff options
| author | jpbruyere <jp.bruyere@hotmail.com> | 2015-08-21 13:31:52 +0200 |
|---|---|---|
| committer | jpbruyere <jp.bruyere@hotmail.com> | 2015-08-21 13:31:52 +0200 |
| commit | 24c01f34ad393be4da4af6b25a37e434cbc9cd44 (patch) | |
| tree | 384be6cd3d44efa8e6feb4769fce972e7ed4b705 /src/GraphicObjects/AnalogMeter.cs | |
| parent | 61aeb72522c4ad315fed13d8ddd3d73f7a21bc2a (diff) | |
Documentation, analog meter tests
Diffstat (limited to 'src/GraphicObjects/AnalogMeter.cs')
| -rw-r--r-- | src/GraphicObjects/AnalogMeter.cs | 18 |
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 } |