diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-02-07 07:43:48 +0100 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-02-07 07:43:48 +0100 |
| commit | 158bc472eff0771479d48e5bd74a8141d62ab60a (patch) | |
| tree | 492f2d255de49b5c04ebba237ecb40b265bd6534 /Crow.ControlsLib/AnalogMeter.cs | |
| parent | a330b907a9c9252c480ea352606d961bdc7c3ecb (diff) | |
:book: , renames, move some controls to other project file
Diffstat (limited to 'Crow.ControlsLib/AnalogMeter.cs')
| -rw-r--r-- | Crow.ControlsLib/AnalogMeter.cs | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/Crow.ControlsLib/AnalogMeter.cs b/Crow.ControlsLib/AnalogMeter.cs new file mode 100644 index 00000000..ff23bd6b --- /dev/null +++ b/Crow.ControlsLib/AnalogMeter.cs @@ -0,0 +1,68 @@ +// +// AnalogMeter.cs +// +// Author: +// Jean-Philippe Bruyère <jp.bruyere@hotmail.com> +// +// Copyright (c) 2013-2017 Jean-Philippe Bruyère +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Xml.Serialization; +using System.ComponentModel; +using Cairo; + +namespace Crow +{ + public class AnalogMeter : NumericControl + { + #region CTOR + protected AnalogMeter () : base(){} + public AnalogMeter (Interface iface) : base(iface){} + #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, r.Height *1.1); + gr.Rotate (Value/4.0 * aUnit - Math.PI/4.0); + gr.Translate (-m.X, -m.Y); + + gr.LineWidth = 2; + Foreground.SetAsSource (gr); + gr.MoveTo (m.X,0.0); + gr.LineTo (m.X, -m.Y*0.5); + gr.Stroke (); + + gr.Restore (); + } + #endregion + } +} + |