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(); } }
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(); } }
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)); Gap gap = new Gap(Position); 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); } } using (GraphicsPath graphicsPath = GetBarPath(gap.Inside, gap.Outside)) { 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(); } }