public static Delegate Canvas_WillRenderCanvases(LuaFunction func)
 {
     Canvas.WillRenderCanvases d = () =>
     {
         func.Call();
     };
     return(d);
 }
Exemple #2
0
 private static void SendWillRenderCanvases()
 {
     Canvas.WillRenderCanvases expr_06 = Canvas.willRenderCanvases;
     if (expr_06 != null)
     {
         expr_06();
     }
 }
        static Canvas.WillRenderCanvases GetOnWillRenderCanvasEvent()
        {
            System.Type classType  = typeof(Canvas);
            FieldInfo   eventField = classType.GetField("willRenderCanvases", BindingFlags.GetField
                                                        | BindingFlags.Public
                                                        | BindingFlags.NonPublic
                                                        | BindingFlags.Static);

            Canvas.WillRenderCanvases eventValue = (Canvas.WillRenderCanvases)eventField.GetValue(null);

            // eventDelegate will be null if no listeners are attached to the event
            if (eventValue == null)
            {
                return(null);
            }

            return(eventValue);
        }
        protected CanvasRebuildRegistry(CanvasUpdateRegistry p_baseInstanceTemplate) : base()
        {
            //Unregister base PerformUpdate
            if (p_baseInstanceTemplate != null)
            {
                //Unregister events from base type
                var v_eventOnWillRenderCanvas = GetOnWillRenderCanvasEvent();
                if (v_eventOnWillRenderCanvas != null)
                {
                    var v_invocationList = v_eventOnWillRenderCanvas.GetInvocationList();
                    foreach (var v_delegate in v_invocationList)
                    {
                        if (v_delegate != null &&
                            v_delegate.Target is CanvasUpdateRegistry &&
                            (v_delegate.Method.Name == "PerformUpdate"))
                        {
                            Canvas.willRenderCanvases -= (Canvas.WillRenderCanvases)v_delegate;

                            //Save base delegate to force invoke after PerformRefresh
                            if (v_delegate.Target == this)
                            {
                                OnBasePerformUpdate = (Canvas.WillRenderCanvases)v_delegate;
                            }
                        }
                    }
                }

                //Add invalid graphic elements
                if (GraphicRebuildQueue != null)
                {
                    var v_oldGraphics = s_graphicRebuildQueueInfo.GetValue(p_baseInstanceTemplate) as IList <ICanvasElement>;
                    if (v_oldGraphics != null)
                    {
                        for (int i = 0; i < v_oldGraphics.Count; i++)
                        {
                            var v_graphic = v_oldGraphics[i];
                            if (!GraphicRebuildQueue.Contains(v_graphic))
                            {
                                GraphicRebuildQueue.Add(v_graphic);
                            }
                        }
                    }
                }
                //Add invalid layout elements
                if (LayoutRebuildQueue != null)
                {
                    var v_oldLayouts = s_layoutRebuildQueueInfo.GetValue(p_baseInstanceTemplate) as IList <ICanvasElement>;
                    if (v_oldLayouts != null)
                    {
                        for (int i = 0; i < v_oldLayouts.Count; i++)
                        {
                            var v_layout = v_oldLayouts[i];
                            if (!LayoutRebuildQueue.Contains(v_layout))
                            {
                                LayoutRebuildQueue.Add(v_layout);
                            }
                        }
                    }
                }
            }

            //Register new PerformUpdate
            Canvas.willRenderCanvases -= this.OnBeforePerformUpdate;
            Canvas.willRenderCanvases += this.OnBeforePerformUpdate;
        }
Exemple #5
0
 private LayoutGroupFix()
 {
     m_Callback = RebuildFromEnabled;
 }