Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        /// <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;
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }