void ISelectable.DrawSelection(GaugeGraphics g, bool designTimeSelection) { if (GetGauge() == null || GetScale() == null) { return; } Stack stack = new Stack(); for (NamedElement namedElement = GetGauge().ParentObject; namedElement != null; namedElement = (NamedElement)((IRenderable)namedElement).GetParentRenderable()) { stack.Push(namedElement); } foreach (IRenderable item in stack) { g.CreateDrawRegion(item.GetBoundRect(g)); } g.CreateDrawRegion(((IRenderable)GetGauge()).GetBoundRect(g)); using (GraphicsPath graphicsPath = GetPointerPath(g)) { if (graphicsPath != null) { RectangleF bounds = graphicsPath.GetBounds(); g.DrawSelection(bounds, designTimeSelection, Common.GaugeCore.SelectionBorderColor, Common.GaugeCore.SelectionMarkerColor); } } g.RestoreDrawRegion(); foreach (IRenderable item2 in stack) { _ = item2; g.RestoreDrawRegion(); } }
internal void SetDrawRegion(GaugeGraphics g) { RectangleF rect = new RectangleF(GetGauge().PivotPoint.ToPoint(), new SizeF(0f, 0f)); rect.Inflate(radius / 2f, radius / 2f); g.CreateDrawRegion(rect); }
public void SetDrawRegion(GaugeGraphics g) { RectangleF rect = new RectangleF(this.GetGauge().PivotPoint.ToPoint(), new SizeF(0f, 0f)); rect.Inflate((float)(this.radius / 2.0), (float)(this.radius / 2.0)); g.CreateDrawRegion(rect); }
void ISelectable.DrawSelection(GaugeGraphics g, bool designTimeSelection) { Stack stack = new Stack(); for (NamedElement namedElement = this.ParentObject; namedElement != null; namedElement = (NamedElement)((IRenderable)namedElement).GetParentRenderable()) { stack.Push(namedElement); } foreach (IRenderable item in stack) { g.CreateDrawRegion(item.GetBoundRect(g)); } g.CreateDrawRegion(((IRenderable)this).GetBoundRect(g)); g.DrawSelection(g.GetAbsoluteRectangle(new RectangleF(0f, 0f, 100f, 100f)), designTimeSelection, this.Common.GaugeCore.SelectionBorderColor, this.Common.GaugeCore.SelectionMarkerColor); g.RestoreDrawRegion(); foreach (IRenderable item2 in stack) { IRenderable renderable = item2; g.RestoreDrawRegion(); } }
void ISelectable.DrawSelection(GaugeGraphics g, bool designTimeSelection) { Stack stack = new Stack(); for (NamedElement namedElement = base.ParentObject; namedElement != null; namedElement = (NamedElement)((IRenderable)namedElement).GetParentRenderable()) { stack.Push(namedElement); } foreach (IRenderable item in stack) { g.CreateDrawRegion(item.GetBoundRect(g)); } g.CreateDrawRegion(((IRenderable)this).GetBoundRect(g)); RectangleF frameRectangle = base.Frame.GetFrameRectangle(g); g.DrawSelection(frameRectangle, (float)(-3.0 / g.Graphics.PageScale), designTimeSelection, this.Common.GaugeCore.SelectionBorderColor, this.Common.GaugeCore.SelectionMarkerColor); g.RestoreDrawRegion(); foreach (IRenderable item2 in stack) { IRenderable renderable = item2; g.RestoreDrawRegion(); } }
public GraphicsPath GetTextPath(GaugeGraphics g) { if (!this.Visible) { return(null); } if (this.Text.Length == 0) { return(null); } RectangleF absoluteRectangle = g.GetAbsoluteRectangle(new RectangleF(0f, 0f, 100f, 100f)); GraphicsPath graphicsPath = new GraphicsPath(); string text = this.Text; Font font = this.Font; text = text.Replace("\\n", "\n"); float emSize; if (this.ResizeMode == ResizeMode.AutoFit) { SizeF sizeF = g.MeasureString(text, font); SizeF absoluteSize = g.GetAbsoluteSize(new SizeF(100f, 100f)); float num = absoluteSize.Width / sizeF.Width; float num2 = absoluteSize.Height / sizeF.Height; emSize = (float)((!(num < num2)) ? (font.SizeInPoints * num2 * 1.2999999523162842 * g.Graphics.DpiY / 96.0) : (font.SizeInPoints * num * 1.2999999523162842 * g.Graphics.DpiY / 96.0)); } else { if (this.FontUnit == FontUnit.Percent) { g.RestoreDrawRegion(); emSize = g.GetAbsoluteDimension(font.Size); RectangleF boundRect = ((IRenderable)this).GetBoundRect(g); g.CreateDrawRegion(boundRect); } else { emSize = (float)(font.SizeInPoints * g.Graphics.DpiY / 96.0); } emSize = (float)(emSize * 1.2999999523162842); } StringFormat stringFormat = new StringFormat(); if (this.TextAlignment == ContentAlignment.TopLeft) { stringFormat.Alignment = StringAlignment.Near; stringFormat.LineAlignment = StringAlignment.Near; } else if (this.TextAlignment == ContentAlignment.TopCenter) { stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Near; } else if (this.TextAlignment == ContentAlignment.TopRight) { stringFormat.Alignment = StringAlignment.Far; stringFormat.LineAlignment = StringAlignment.Near; } else if (this.TextAlignment == ContentAlignment.MiddleLeft) { stringFormat.Alignment = StringAlignment.Near; stringFormat.LineAlignment = StringAlignment.Center; } else if (this.TextAlignment == ContentAlignment.MiddleCenter) { stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Center; } else if (this.TextAlignment == ContentAlignment.MiddleRight) { stringFormat.Alignment = StringAlignment.Far; stringFormat.LineAlignment = StringAlignment.Center; } else if (this.TextAlignment == ContentAlignment.BottomLeft) { stringFormat.Alignment = StringAlignment.Near; stringFormat.LineAlignment = StringAlignment.Far; } else if (this.TextAlignment == ContentAlignment.BottomCenter) { stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Far; } else { stringFormat.Alignment = StringAlignment.Far; stringFormat.LineAlignment = StringAlignment.Far; } graphicsPath.AddString(text, font.FontFamily, (int)font.Style, emSize, absoluteRectangle, stringFormat); if (this.Angle != 0.0) { PointF point = new PointF((float)(absoluteRectangle.X + absoluteRectangle.Width / 2.0), (float)(absoluteRectangle.Y + absoluteRectangle.Height / 2.0)); using (Matrix matrix = new Matrix()) { matrix.RotateAt(this.Angle, point); graphicsPath.Transform(matrix); return(graphicsPath); } } return(graphicsPath); }
void ISelectable.DrawSelection(GaugeGraphics g, bool designTimeSelection) { if (GetGauge() == null) { return; } Stack stack = new Stack(); for (NamedElement namedElement = GetGauge().ParentObject; namedElement != null; namedElement = (NamedElement)((IRenderable)namedElement).GetParentRenderable()) { stack.Push(namedElement); } foreach (IRenderable item in stack) { g.CreateDrawRegion(item.GetBoundRect(g)); } g.CreateDrawRegion(((IRenderable)GetGauge()).GetBoundRect(g)); SetDrawRegion(g); Gap gap = new Gap(GetRadius()); gap.SetOffset(Placement.Cross, Width); gap.SetBase(); if (MajorTickMark.Visible) { gap.SetOffsetBase(MajorTickMark.Placement, MajorTickMark.Length); if (MajorTickMark.Placement == Placement.Outside) { gap.Outside = Math.Max(gap.Outside, MajorTickMark.DistanceFromScale + MajorTickMark.Length + Width / 2f); gap.Inside = Math.Max(gap.Inside, 0f - MajorTickMark.DistanceFromScale); } else if (MajorTickMark.Placement == Placement.Cross) { gap.Outside = Math.Max(gap.Outside, 0f - MajorTickMark.DistanceFromScale + MajorTickMark.Length / 2f); gap.Inside = Math.Max(gap.Inside, MajorTickMark.DistanceFromScale + MajorTickMark.Length / 2f); } else { gap.Outside = Math.Max(gap.Outside, 0f - MajorTickMark.DistanceFromScale); gap.Inside = Math.Max(gap.Inside, MajorTickMark.DistanceFromScale + MajorTickMark.Length + Width / 2f); } } if (MinorTickMark.Visible) { gap.SetOffsetBase(MinorTickMark.Placement, MinorTickMark.Length); if (MinorTickMark.Placement == Placement.Outside) { gap.Outside = Math.Max(gap.Outside, MinorTickMark.DistanceFromScale + MinorTickMark.Length + Width / 2f); gap.Inside = Math.Max(gap.Inside, 0f - MinorTickMark.DistanceFromScale); } else if (MinorTickMark.Placement == Placement.Cross) { gap.Outside = Math.Max(gap.Outside, 0f - MinorTickMark.DistanceFromScale + MinorTickMark.Length / 2f); gap.Inside = Math.Max(gap.Inside, MinorTickMark.DistanceFromScale + MinorTickMark.Length / 2f); } else { gap.Outside = Math.Max(gap.Outside, 0f - MinorTickMark.DistanceFromScale); gap.Inside = Math.Max(gap.Inside, MinorTickMark.DistanceFromScale + MinorTickMark.Length + Width / 2f); } } if (LabelStyle.Visible) { if (LabelStyle.Placement == Placement.Outside) { gap.Outside = Math.Max(gap.Outside, LabelStyle.DistanceFromScale + (float)LabelStyle.Font.Height + Width / 2f); gap.Inside = Math.Max(gap.Inside, 0f - LabelStyle.DistanceFromScale); } else if (LabelStyle.Placement == Placement.Cross) { gap.Outside = Math.Max(gap.Outside, 0f - LabelStyle.DistanceFromScale + (float)LabelStyle.Font.Height / 2f); gap.Inside = Math.Max(gap.Inside, LabelStyle.DistanceFromScale + (float)LabelStyle.Font.Height / 2f); } else { gap.Outside = Math.Max(gap.Outside, 0f - LabelStyle.DistanceFromScale); gap.Inside = Math.Max(gap.Inside, LabelStyle.DistanceFromScale + (float)LabelStyle.Font.Height + Width / 2f); } } float angularMargin = 4f; float num = 5f; using (GraphicsPath graphicsPath = GetBarPath(gap.Inside + num, gap.Outside + num, angularMargin)) { if (graphicsPath != null) { PointF[] selectionMarkers = GetSelectionMarkers(g, gap.Inside + num, gap.Outside + num, angularMargin); g.DrawRadialSelection(g, graphicsPath, selectionMarkers, designTimeSelection, Common.GaugeCore.SelectionBorderColor, Common.GaugeCore.SelectionMarkerColor); } } g.RestoreDrawRegion(); g.RestoreDrawRegion(); foreach (IRenderable item2 in stack) { _ = item2; g.RestoreDrawRegion(); } }
void ISelectable.DrawSelection(GaugeGraphics g, bool designTimeSelection) { if (this.GetGauge() != null) { Stack stack = new Stack(); for (NamedElement namedElement = this.GetGauge().ParentObject; namedElement != null; namedElement = (NamedElement)((IRenderable)namedElement).GetParentRenderable()) { stack.Push(namedElement); } foreach (IRenderable item in stack) { g.CreateDrawRegion(item.GetBoundRect(g)); } g.CreateDrawRegion(((IRenderable)this.GetGauge()).GetBoundRect(g)); Gap gap = new Gap(this.Position); gap.SetOffset(Placement.Cross, this.Width); gap.SetBase(); if (this.MajorTickMark.Visible) { gap.SetOffsetBase(this.MajorTickMark.Placement, this.MajorTickMark.Length); if (this.MajorTickMark.Placement == Placement.Outside) { gap.Outside = Math.Max(gap.Outside, (float)(this.MajorTickMark.DistanceFromScale + this.MajorTickMark.Length + this.Width / 2.0)); gap.Inside = Math.Max(gap.Inside, (float)(0.0 - this.MajorTickMark.DistanceFromScale)); } else if (this.MajorTickMark.Placement == Placement.Cross) { gap.Outside = Math.Max(gap.Outside, (float)(0.0 - this.MajorTickMark.DistanceFromScale + this.MajorTickMark.Length / 2.0)); gap.Inside = Math.Max(gap.Inside, (float)(this.MajorTickMark.DistanceFromScale + this.MajorTickMark.Length / 2.0)); } else { gap.Outside = Math.Max(gap.Outside, (float)(0.0 - this.MajorTickMark.DistanceFromScale)); gap.Inside = Math.Max(gap.Inside, (float)(this.MajorTickMark.DistanceFromScale + this.MajorTickMark.Length + this.Width / 2.0)); } } if (this.MinorTickMark.Visible) { gap.SetOffsetBase(this.MinorTickMark.Placement, this.MinorTickMark.Length); if (this.MinorTickMark.Placement == Placement.Outside) { gap.Outside = Math.Max(gap.Outside, (float)(this.MinorTickMark.DistanceFromScale + this.MinorTickMark.Length + this.Width / 2.0)); gap.Inside = Math.Max(gap.Inside, (float)(0.0 - this.MinorTickMark.DistanceFromScale)); } else if (this.MinorTickMark.Placement == Placement.Cross) { gap.Outside = Math.Max(gap.Outside, (float)(0.0 - this.MinorTickMark.DistanceFromScale + this.MinorTickMark.Length / 2.0)); gap.Inside = Math.Max(gap.Inside, (float)(this.MinorTickMark.DistanceFromScale + this.MinorTickMark.Length / 2.0)); } else { gap.Outside = Math.Max(gap.Outside, (float)(0.0 - this.MinorTickMark.DistanceFromScale)); gap.Inside = Math.Max(gap.Inside, (float)(this.MinorTickMark.DistanceFromScale + this.MinorTickMark.Length + this.Width / 2.0)); } } if (this.LabelStyle.Visible) { if (this.LabelStyle.Placement == Placement.Outside) { gap.Outside = Math.Max(gap.Outside, (float)(this.LabelStyle.DistanceFromScale + (float)this.LabelStyle.Font.Height + this.Width / 2.0)); gap.Inside = Math.Max(gap.Inside, (float)(0.0 - this.LabelStyle.DistanceFromScale)); } else if (this.LabelStyle.Placement == Placement.Cross) { gap.Outside = Math.Max(gap.Outside, (float)(0.0 - this.LabelStyle.DistanceFromScale + (float)this.LabelStyle.Font.Height / 2.0)); gap.Inside = Math.Max(gap.Inside, (float)(this.LabelStyle.DistanceFromScale + (float)this.LabelStyle.Font.Height / 2.0)); } else { gap.Outside = Math.Max(gap.Outside, (float)(0.0 - this.LabelStyle.DistanceFromScale)); gap.Inside = Math.Max(gap.Inside, (float)(this.LabelStyle.DistanceFromScale + (float)this.LabelStyle.Font.Height + this.Width / 2.0)); } } using (GraphicsPath graphicsPath = this.GetBarPath(gap.Inside, gap.Outside)) { if (graphicsPath != null) { RectangleF bounds = graphicsPath.GetBounds(); g.DrawSelection(bounds, designTimeSelection, this.Common.GaugeCore.SelectionBorderColor, this.Common.GaugeCore.SelectionMarkerColor); } } g.RestoreDrawRegion(); foreach (IRenderable item2 in stack) { IRenderable renderable = item2; g.RestoreDrawRegion(); } } }