Beispiel #1
0
 public RenderBase getSelectClickItem(PointF pos, out ClickPosArena arena)
 {
     arena = ClickPosArena.PosCenter;
     //foreach (RenderBase render in childItems)
     //{
     for (int i = childItems.Count - 1; i >= 0; i--)
     {
         RenderBase render = childItems[i];
         RectangleF rect   = render.boxAtParent();
         if (isCanDeepPanel(render))
         {
             PointF     relaPos   = new PointF(pos.X - rect.X, pos.Y - rect.Y);
             RenderBase clickItem = render.getSelectClickItem(relaPos, out arena);
             if (clickItem != null)
             {
                 arena = clickItem.calcClickArena(relaPos);
                 return(clickItem);
             }
         }
         else if (render.isSelect && rect.Contains(pos))
         {
             arena = render.calcClickArena(pos);
             return(render);
         }
     }
     return(null);
 }
Beispiel #2
0
        public ClickPosArena calcClickArena(PointF pos)
        {
            ClickPosArena arena        = ClickPosArena.PosCenter;
            float         actionWidth  = size.Width / 10;
            float         actionHeight = size.Height / 10;
            RectangleF    rect         = boxAtParent();

            if (pos.X < rect.X || pos.X > rect.X + rect.Width ||
                pos.Y < rect.Y || pos.Y > rect.Y + rect.Height)
            {
                arena = ClickPosArena.PosCenter;
            }
            else if (pos.X <= rect.X + actionWidth && pos.Y <= rect.Y + actionHeight)
            {
                arena = ClickPosArena.PosNWSE | ClickPosArena.PosXLeft | ClickPosArena.PosYUp;
            }
            else if (pos.X >= rect.X + rect.Width - actionWidth && pos.Y >= rect.Y + rect.Height - actionHeight)
            {
                arena = ClickPosArena.PosNWSE;
            }
            else if (pos.X <= rect.X + actionWidth && pos.Y >= rect.Y + rect.Height - actionHeight)
            {
                arena = ClickPosArena.PosNESW | ClickPosArena.PosXLeft;
            }
            else if (pos.X >= rect.X + rect.Width - actionWidth && pos.Y <= rect.Y + actionHeight)
            {
                arena = ClickPosArena.PosNESW | ClickPosArena.PosYUp;
            }
            else if (pos.X <= rect.X + actionWidth)
            {
                arena = ClickPosArena.PosWE | ClickPosArena.PosXLeft;
            }
            else if (pos.X >= rect.X + rect.Width - actionWidth)
            {
                arena = ClickPosArena.PosWE;
            }
            else if (pos.Y >= rect.Y + rect.Height - actionHeight)
            {
                arena = ClickPosArena.PosNS;
            }
            else if (pos.Y <= rect.Y + actionHeight)
            {
                arena = ClickPosArena.PosNS | ClickPosArena.PosYUp;
            }
            return(arena);
        }
Beispiel #3
0
 public void changeMoveSize(ClickPosArena clickPosArena, SizeF moveSize)
 {
     if ((clickPosArena & ClickPosArena.PosNS) != 0)
     {
         moveSize.Width = 0;
     }
     else if ((clickPosArena & ClickPosArena.PosWE) != 0)
     {
         moveSize.Height = 0;
     }
     if ((clickPosArena & ClickPosArena.PosXLeft) != 0)
     {
         moveSize.Width = -moveSize.Width;
     }
     if ((clickPosArena & ClickPosArena.PosYUp) != 0)
     {
         moveSize.Height = -moveSize.Height;
     }
     this.size += moveSize;
 }
Beispiel #4
0
 protected void setCursorByArena(ClickPosArena arena)
 {
     if ((arena & ClickPosArena.PosNESW) != 0)
     {
         this.Cursor = Cursors.SizeNESW;
     }
     else if ((arena & ClickPosArena.PosNS) != 0)
     {
         this.Cursor = Cursors.SizeNS;
     }
     else if ((arena & ClickPosArena.PosNWSE) != 0)
     {
         this.Cursor = Cursors.SizeNWSE;
     }
     else if ((arena & ClickPosArena.PosWE) != 0)
     {
         this.Cursor = Cursors.SizeWE;
     }
     else
     {
         this.Cursor = Cursors.Arrow;
     }
 }