コード例 #1
0
ファイル: Manager.cs プロジェクト: Ziple/NOubliezPas
        /// <summary>
        /// Place the widget as much as possible on the top of the rendering stack.
        /// </summary>
        /// <param name="widget">Widget to push on top of the rendering stack.</param>
        void PushWidgetOnTop(Widget widget)
        {
            if (myManagedWidgets.Contains(widget) && myManagedWidgets.Count > 1 )
            {
                int index = myManagedWidgets.FindIndex(delegate(Widget widget_) { return widget_ == widget; });
                myManagedWidgets.RemoveAt(index);

                RenderingOrderChangedEvent evt = new RenderingOrderChangedEvent(RenderingOrderChangedEvent.RenderingOrderChange.RenderedLater);

                //now we must find a new place for this poor widget ;)
                for (int i = myManagedWidgets.Count - 1; i >= 0; i--)
                {
                    evt.Accepted = true;
                    myManagedWidgets[i].OnEvent(evt);

                    if (evt.Accepted)
                    {
                        myManagedWidgets[i].OnRenderingOrderChangedEvent(evt);

                        if (evt.Accepted)
                        {
                            myManagedWidgets.Insert(i + 1, widget);
                            break;
                        }
                    }
                }
            }
        }
コード例 #2
0
ファイル: Widget.cs プロジェクト: Ziple/NOubliezPas
 /// <summary>
 /// Event generated when the widget's drawing priority changed.
 /// </summary>
 /// <param name="orderEvent"></param>
 public virtual void OnRenderingOrderChangedEvent(RenderingOrderChangedEvent orderEvent)
 {
 }