UnsafeGetController() public static method

public static UnsafeGetController ( CssBox box ) : object
box CssBox
return object
Beispiel #1
0
        public void dbugPaint(PaintVisitor p, RectangleF r)
        {
            if (!PaintVisitor.dbugDrawWireFrame)
            {
                return;
            }
            //
            var htmlE = CssBox.UnsafeGetController(this);

            if (htmlE == null)
            {
                //anonymous box
                //Font f = new Font("tahoma", 10);
                //p.Gfx.DrawString(this.__aa_dbugId.ToString(), f, System.Drawing.Color.Black,
                //     new PointF(r.Left + 10, r.Top + 10), new SizeF(r.Width, r.Height));
                //f.Dispose();

                p.dbugDrawDiagonalBox(Color.Gray, r.Left, r.Top, r.Right, r.Bottom);
            }
            else
            {
                Color color = Color.Green;
                switch (this._cssDisplay)
                {
                case Css.CssDisplay.TableCell:
                    color = Color.OrangeRed;
                    break;
                }
                p.dbugDrawDiagonalBox(color, r.Left, r.Top, r.Right, r.Bottom);
            }
        }
 public void dbugEnterNewContext(CssBox box, dbugPaintVisitorContextName contextName)
 {
     if (this.dbugEnableLogRecord)
     {
         var controller = CssBox.UnsafeGetController(box);
         //if (box.__aa_dbugId == 7)
         //{
         //}
         dbuglogRecords.Add(new string('>', dbugIndentLevel) + dbugIndentLevel.ToString() +
                            "x:" + box.Left + ",y:" + box.Top + ",w:" + box.VisualWidth + "h:" + box.VisualHeight +
                            " " + box.ToString() + ",id:" + box.__aa_dbugId);
         dbugIndentLevel++;
     }
 }
 public void dbugEnterNewContext(CssBox box, PaintVisitorContextName contextName)
 {
     if (this.dbugEnableLogRecord)
     {
         var controller = CssBox.UnsafeGetController(box);
         //if (box.__aa_dbugId == 7)
         //{
         //}
         dbugLogRecords.Add(new string('>', dbugIndentLevel) + dbugIndentLevel.ToString() +
                            "[" + _drawBoard.CurrentClipRect + "] " +
                            "(" + this.CanvasOriginX + "," + this.CanvasOriginY + ") " +
                            "x:" + box.Left + ",y:" + box.Top + ",w:" + box.VisualWidth + "h:" + box.VisualHeight +
                            " " + box.ToString() + ",id:" + box.__aa_dbugId);
         dbugIndentLevel++;
     }
 }
        static void ForEachEventListenerBubbleUp(UIEventArgs e, CssBoxHitChain hitChain, EventListenerAction listenerAction)
        {
            for (int i = hitChain.Count - 1; i >= 0; --i)
            {
                //propagate up
                var            hitInfo    = hitChain.GetHitInfo(i);
                IEventListener controller = null;
                switch (hitInfo.hitObjectKind)
                {
                default:
                {
                    continue;
                }

                case HitObjectKind.Run:
                {
                    CssRun run = (CssRun)hitInfo.hitObject;
                    controller = CssBox.UnsafeGetController(run.OwnerBox) as IEventListener;
                }
                break;

                case HitObjectKind.CssBox:
                {
                    CssBox box = (CssBox)hitInfo.hitObject;
                    controller = CssBox.UnsafeGetController(box) as IEventListener;
                }
                break;
                }

                //---------------------
                if (controller != null)
                {
                    //found controller
                    if (e.SourceHitElement == null)
                    {
                        e.SourceHitElement = controller;
                    }

                    e.CurrentContextElement = controller;
                    e.SetLocation(hitInfo.localX, hitInfo.localY);
                    if (listenerAction())
                    {
                        return;
                    }
                }
            }
        }
        static void ForEachOnlyEventPortalBubbleUp(UIEventArgs e, CssBoxHitChain hitPointChain, EventPortalAction eventPortalAction)
        {
            //only listener that need tunnel down
            for (int i = hitPointChain.Count - 1; i >= 0; --i)
            {
                //propagate up
                var          hitInfo    = hitPointChain.GetHitInfo(i);
                IEventPortal controller = null;
                switch (hitInfo.hitObjectKind)
                {
                default:
                {
                    continue;
                }

                case HitObjectKind.Run:
                {
                    CssRun run = (CssRun)hitInfo.hitObject;
                    controller = CssBox.UnsafeGetController(run.OwnerBox) as IEventPortal;
                }
                break;

                case HitObjectKind.CssBox:
                {
                    CssBox box = (CssBox)hitInfo.hitObject;
                    controller = CssBox.UnsafeGetController(box) as IEventPortal;
                }
                break;
                }

                //---------------------
                if (controller != null)
                {
                    e.SetLocation(hitInfo.localX, hitInfo.localY);
                    if (eventPortalAction(controller))
                    {
                        return;
                    }
                }
            }
        }