void Shape.Draw(Graphics g, int order) { if (m_resizedImage == null) { return; } if (m_tempScale != 1.0f) { float newWidth = m_resizedImage.Width * m_tempScale; float newHeight = m_resizedImage.Height * m_tempScale; g.DrawImage(m_resizedImage, new RectangleF( (int)(m_fpoints[0].X + m_tempOffset.X - (newWidth - m_resizedImage.Width) * m_pivotX), (int)(m_fpoints[0].Y + m_tempOffset.Y - (newHeight - m_resizedImage.Height) * m_pivotY), (int)newWidth, (int)newHeight)); } else { // g.DrawImage(m_resizedImage, (int)(m_fpoints[0].X + m_tempOffset.X + 0.5f), (int)(m_fpoints[0].Y + m_tempOffset.Y + 0.5f)); g.DrawImage(m_resizedImage, (m_fpoints[0].X + m_tempOffset.X), (m_fpoints[0].Y + m_tempOffset.Y)); } if (Selected) { Rectangle border = new Rectangle((int)(m_fpoints[0].X + m_realBounds.X + m_tempOffset.X), (int)(m_fpoints[0].Y + m_realBounds.Y + m_tempOffset.Y), m_realBounds.Width, m_realBounds.Height); ControlPaint.DrawBorder(g, border, System.Drawing.Color.Black, ButtonBorderStyle.Dashed); if (Scalable) { Rectangle NW = new Rectangle(border.X - HANDLE_SIZE / 2, border.Y - HANDLE_SIZE / 2, HANDLE_SIZE, HANDLE_SIZE); Rectangle NE = new Rectangle(border.X + border.Width - HANDLE_SIZE - 1 + HANDLE_SIZE / 2, border.Y - HANDLE_SIZE / 2, HANDLE_SIZE, HANDLE_SIZE); Rectangle SW = new Rectangle(border.X - HANDLE_SIZE / 2, border.Y + border.Height - HANDLE_SIZE - 1 + HANDLE_SIZE / 2, HANDLE_SIZE, HANDLE_SIZE); Rectangle SE = new Rectangle(border.X + border.Width - HANDLE_SIZE - 1 + HANDLE_SIZE / 2, border.Y + border.Height - HANDLE_SIZE - 1 + HANDLE_SIZE / 2, HANDLE_SIZE, HANDLE_SIZE); ControlPaint.DrawGrabHandle(g, NW, true, true); ControlPaint.DrawGrabHandle(g, NE, true, true); ControlPaint.DrawGrabHandle(g, SW, true, true); ControlPaint.DrawGrabHandle(g, SE, true, true); } if (Movable) { Rectangle center = new Rectangle(border.X + border.Width / 2 - MOVE_HANDLE_SIZE / 2, border.Y + border.Height / 2 - MOVE_HANDLE_SIZE / 2, MOVE_HANDLE_SIZE, MOVE_HANDLE_SIZE); ControlPaint.DrawContainerGrabHandle(g, center); } if (Rotatable) { Rectangle pivot = new Rectangle((int)(m_fpoints[0].X + m_resizedImage.Width / 2 - ROTATE_HANDLE_SIZE / 2 + m_tempOffset.X - ROTATE_HANDLE_OFFSET), (int)(m_fpoints[0].Y + m_resizedImage.Height / 2 - ROTATE_HANDLE_SIZE / 2 + m_tempOffset.Y - ROTATE_HANDLE_OFFSET), ROTATE_HANDLE_SIZE, ROTATE_HANDLE_SIZE); ControlPaint.DrawGrabHandle(g, pivot, false, true); } } }
/// <summary> /// Paints the target box with a ContainerGrabHandle icon. /// </summary> /// <param name="focusedElement">The focused element.</param> private static void PaintTargetBox(object focusedElement) { AutomationElement focus = (AutomationElement)focusedElement; Graphics test = Graphics.FromHwnd(_parentHandle); Rectangle r = new Rectangle(); /* Set up to convert coordinates */ NativeMethods.POINT p = new NativeMethods.POINT((int)focus.Current.BoundingRectangle.X, (int)focus.Current.BoundingRectangle.Y); NativeMethods.ScreenToClient(_parentHandle, ref p); /* now create something for the managed code */ r.X = p.X; r.Y = p.Y; r.Width = (int)focus.Current.BoundingRectangle.Width; r.Height = (int)focus.Current.BoundingRectangle.Height; /* Clear the old stuff */ NativeMethods.InvalidateRect(_parentHandle, IntPtr.Zero, false); NativeMethods.UpdateWindow(_parentHandle); ControlPaint.DrawContainerGrabHandle(test, r); _oldel = focus; }
/// <summary> /// Draws only in Design mode /// </summary> /// <param name="e"></param> protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); ControlPaint.DrawContainerGrabHandle(e.Graphics, this.ClientRectangle); }
private void DrawControls() { if (Glass.InvokeRequired) { Glass.Invoke(new Action(() => { DrawControls(); })); return; } if (!this.Standalone) { return; } if (!this.Glass.Focused) { return; } var csize = GetClientSize(); var cGrip = EDGlassForm.cGrip; var graphics = getDraw(); Brush brush = GetBrush("#ffffff"); Pen pen = new Pen(brush); Rectangle rc = new Rectangle(csize.Width - cGrip, csize.Height - cGrip, cGrip, cGrip); graphics.FillRectangle(brush, rc); ControlPaint.DrawSizeGrip(graphics, Color.Black, rc); rc = new Rectangle(0, 0, cGrip, cGrip); ControlPaint.DrawContainerGrabHandle(graphics, rc); rc = new Rectangle(csize.Width - cGrip, 0, cGrip, cGrip); graphics.FillRectangle(brush, rc); rc = new Rectangle(0, csize.Height - cGrip, cGrip, cGrip); graphics.FillRectangle(brush, rc); brush = GetBrush("#999999"); rc = new Rectangle(0, csize.Height - cGrip, cGrip / 2, cGrip / 2); graphics.FillRectangle(brush, rc); rc = new Rectangle(cGrip / 2, csize.Height - cGrip / 2, cGrip / 2, cGrip / 2); graphics.FillRectangle(brush, rc); rc = new Rectangle(csize.Width - cGrip, 0, cGrip / 2, cGrip / 2); graphics.FillRectangle(brush, rc); rc = new Rectangle(csize.Width - cGrip / 2, cGrip / 2, cGrip / 2, cGrip / 2); graphics.FillRectangle(brush, rc); pen = new Pen(Color.Red, 3); graphics.DrawLine(pen, csize.Width - cGrip, 0, csize.Width, cGrip); graphics.DrawLine(pen, csize.Width, 0, csize.Width - cGrip, cGrip); brush = GetBrush("#00FF00"); rc = new Rectangle(csize.Width / 2 - cGrip / 2, 0, cGrip / 2, cGrip / 2); graphics.FillRectangle(brush, rc); brush = GetBrush("#FF0000"); rc = new Rectangle(csize.Width / 2 - cGrip / 2, csize.Height - cGrip / 2, cGrip / 2, cGrip / 2); graphics.FillRectangle(brush, rc); brush = GetBrush("#ffffff"); pen = new Pen(brush); rc = new Rectangle(0, 0, csize.Width - 1, csize.Height - 1); graphics.DrawRectangle(pen, rc); }