private void RenderButton(MapGraphics g, PanelButton button) { float num = g.GetAbsoluteDimension(100f) - 1f; SizeF absoluteSize = g.GetAbsoluteSize(new SizeF(100f, 100f)); absoluteSize.Width -= 1f; absoluteSize.Height -= 1f; SizeF sizeF = new SizeF((absoluteSize.Width - num) / 2f, (absoluteSize.Height - num) / 2f); float num2 = num / 3f; PointF empty = PointF.Empty; switch (button.Type) { case PanelButtonType.NavigationButton: empty = new PointF(num / 2f, num2 / 2f); if (!CenterButtonVisible) { empty.Y += 2f; } break; case PanelButtonType.NaviagateSouth: empty = new PointF(num / 2f, num - num2 / 2f); if (!CenterButtonVisible) { empty.Y -= 2f; } break; case PanelButtonType.NaviagateEast: empty = new PointF(num - num2 / 2f, num / 2f); if (!CenterButtonVisible) { empty.X -= 2f; } break; case PanelButtonType.NaviagateWest: empty = new PointF(num2 / 2f, num / 2f); if (!CenterButtonVisible) { empty.X += 2f; } break; case PanelButtonType.NaviagateCenter: empty = new PointF(num / 2f, num / 2f); break; default: throw new ArgumentException(SR.invalid_button_type); } num2 -= 4f; RectangleF absolute = new RectangleF(sizeF.Width + empty.X - num2 / 2f, sizeF.Height + empty.Y - num2 / 2f, num2, num2); button.Bounds = g.GetRelativeRectangle(absolute); button.Render(g); }
private void RenderButton(MapGraphics g, PanelButton button) { float markerLength = Pointer.MarkerLength; markerLength += 5f; float num = 0f; float num2 = 0f; float num3; PointF relative; if (GetOrientation() == Orientation.Horizontal) { float relativeY = (100f - markerLength) / 2f; relativeY = g.GetRelativeX(g.GetAbsoluteY(relativeY)); markerLength = g.GetRelativeX(g.GetAbsoluteY(markerLength)); num3 = g.GetAbsoluteX(markerLength); relative = new PointF(markerLength / 2f + relativeY, 50f); if ((button.Type == PanelButtonType.ZoomOut && GetReversed()) || (button.Type == PanelButtonType.ZoomButton && !GetReversed())) { num = 100f - markerLength - 2f * relativeY; } } else { float relativeX = (100f - markerLength) / 2f; relativeX = g.GetRelativeY(g.GetAbsoluteX(relativeX)); markerLength = g.GetRelativeY(g.GetAbsoluteX(markerLength)); num3 = g.GetAbsoluteY(markerLength); relative = new PointF(50f, markerLength / 2f + relativeX); if ((button.Type == PanelButtonType.ZoomOut && !GetReversed()) || (button.Type == PanelButtonType.ZoomButton && GetReversed())) { num2 = 100f - markerLength - 2f * relativeX; } } relative.X += num; relative.Y += num2; relative = g.GetAbsolutePoint(relative); RectangleF absolute = new RectangleF(relative.X, relative.Y, 0f, 0f); absolute.Inflate(num3 / 2f, num3 / 2f); button.Bounds = g.GetRelativeRectangle(absolute); button.Render(g); }