public GraphicsPath GetPointerPath(GaugeGraphics g)
        {
            if (!this.Visible)
            {
                return(null);
            }
            GraphicsPath graphicsPath = new GraphicsPath();
            ScaleBase    scale        = this.GetScale();

            scale.GetPositionFromValue(scale.GetValueLimit(base.Position));
            if (this.Type == LinearPointerType.Marker || this.Image != string.Empty)
            {
                MarkerStyleAttrib markerStyleAttrib = this.GetMarkerStyleAttrib(g);
                if (markerStyleAttrib.path != null)
                {
                    graphicsPath.AddPath(markerStyleAttrib.path, false);
                }
            }
            else if (this.Type == LinearPointerType.Bar)
            {
                BarStyleAttrib barStyleAttrib = this.GetBarStyleAttrib(g);
                if (barStyleAttrib.primaryPath == null)
                {
                    graphicsPath.Dispose();
                    return(null);
                }
                if (barStyleAttrib.primaryPath != null)
                {
                    graphicsPath.AddPath(barStyleAttrib.primaryPath, false);
                }
            }
            else if (this.Type == LinearPointerType.Thermometer)
            {
                BarStyleAttrib thermometerStyleAttrib = this.GetThermometerStyleAttrib(g);
                if (thermometerStyleAttrib.primaryPath == null)
                {
                    graphicsPath.Dispose();
                    return(null);
                }
                if (thermometerStyleAttrib.totalPath != null)
                {
                    graphicsPath.AddPath(thermometerStyleAttrib.primaryPath, false);
                }
            }
            return(graphicsPath);
        }
Example #2
0
        void IPointerProvider.DataValueChanged(bool initialize)
        {
            if (!initialize)
            {
                GetGaugeBase()?.PointerValueChanged(this);
            }
            ScaleBase scaleBase = GetScaleBase();

            if (scaleBase != null)
            {
                double valueLimit = scaleBase.GetValueLimit(data.Value, snappingEnabled, snappingInterval);
                if (initialize || !dampeningEnabled || !Data.StartDampening(valueLimit, scaleBase.MinimumLog, scaleBase.Maximum, dampeningSweepTime, Common.GaugeCore.RefreshRate))
                {
                    Position = valueLimit;
                }
            }
        }
Example #3
0
        internal virtual void DragTo(int x, int y, PointF refPoint)
        {
            ScaleBase scaleBase = GetScaleBase();
            double    value     = scaleBase.GetValue(refPoint, new PointF(x, y));

            value = scaleBase.GetValueLimit(value, SnappingEnabled, SnappingInterval);
            PointerPositionChangeEventArgs pointerPositionChangeEventArgs = new PointerPositionChangeEventArgs(value, DateTime.Now, Name, playbackMode: false);

            if (Common != null)
            {
                Common.GaugeContainer.OnPointerPositionChange(this, pointerPositionChangeEventArgs);
                if (pointerPositionChangeEventArgs.Accept)
                {
                    dragging = true;
                    Value    = value;
                }
            }
        }
Example #4
0
        public virtual void DragTo(int x, int y, PointF refPoint)
        {
            ScaleBase scaleBase = this.GetScaleBase();
            double    value     = scaleBase.GetValue(refPoint, new PointF((float)x, (float)y));

            value = scaleBase.GetValueLimit(value, this.SnappingEnabled, this.SnappingInterval);
            PointerPositionChangeEventArgs pointerPositionChangeEventArgs = new PointerPositionChangeEventArgs(value, DateTime.Now, this.Name, false);

            if (this.Common != null)
            {
                this.Common.GaugeContainer.OnPointerPositionChange(this, pointerPositionChangeEventArgs);
                if (pointerPositionChangeEventArgs.Accept)
                {
                    this.dragging = true;
                    this.Value    = value;
                }
            }
        }
        public MarkerStyleAttrib GetMarkerStyleAttrib(GaugeGraphics g)
        {
            MarkerStyleAttrib markerStyleAttrib  = new MarkerStyleAttrib();
            float             absoluteDimension  = g.GetAbsoluteDimension(this.MarkerLength);
            float             absoluteDimension2 = g.GetAbsoluteDimension(this.Width);

            markerStyleAttrib.path = g.CreateMarker(new PointF(0f, 0f), absoluteDimension2, absoluteDimension, this.MarkerStyle);
            float num = 0f;

            if (this.Placement == Placement.Cross || this.Placement == Placement.Inside)
            {
                num = (float)(num + 180.0);
            }
            if (this.GetGauge().GetOrientation() == GaugeOrientation.Vertical)
            {
                num = (float)(num + 270.0);
            }
            if (num > 0.0)
            {
                using (Matrix matrix = new Matrix())
                {
                    matrix.Rotate(num);
                    markerStyleAttrib.path.Transform(matrix);
                }
            }
            float     num2              = this.CalculateMarkerDistance();
            ScaleBase scale             = this.GetScale();
            float     positionFromValue = scale.GetPositionFromValue(scale.GetValueLimit(base.Position));
            PointF    pointOrigin       = Point.Empty;

            pointOrigin             = ((this.GetGauge().GetOrientation() != 0) ? g.GetAbsolutePoint(new PointF(num2, positionFromValue)) : g.GetAbsolutePoint(new PointF(positionFromValue, num2)));
            markerStyleAttrib.brush = g.GetMarkerBrush(markerStyleAttrib.path, this.MarkerStyle, pointOrigin, 0f, this.FillColor, this.FillGradientType, this.FillGradientEndColor, this.FillHatchStyle);
            using (Matrix matrix2 = new Matrix())
            {
                matrix2.Translate(pointOrigin.X, pointOrigin.Y, MatrixOrder.Append);
                markerStyleAttrib.path.Transform(matrix2);
                return(markerStyleAttrib);
            }
        }
Example #6
0
        void IPointerProvider.DataValueChanged(bool initialize)
        {
            if (!initialize)
            {
                GaugeBase gaugeBase = this.GetGaugeBase();
                if (gaugeBase != null)
                {
                    gaugeBase.PointerValueChanged(this);
                }
            }
            ScaleBase scaleBase = this.GetScaleBase();

            if (scaleBase != null)
            {
                double valueLimit = scaleBase.GetValueLimit(this.data.Value, this.snappingEnabled, this.snappingInterval);
                if (!initialize && this.dampeningEnabled && this.Data.StartDampening(valueLimit, scaleBase.MinimumLog, scaleBase.Maximum, this.dampeningSweepTime, this.Common.GaugeCore.RefreshRate))
                {
                    return;
                }
                this.Position = valueLimit;
            }
        }