예제 #1
0
        /// <summary>
        /// Update all the managed widgets according to the input devices states.
        /// </summary>
        /// <param name="gameTime">game time reference</param>
        public void Update(Stopwatch gameTime)
        {
            /// Dispatch the hovering events.
            Widget receiver = PickWidget(myCursor.Position);
            if (myHoveredWidget != receiver)
            {
                if (myHoveredWidget != null)
                {
                    HoverEndEvent evt = new HoverEndEvent();

                    // the old owner of the focus can refuse the lost of the focus.
                    myHoveredWidget.OnEvent(evt);

                    if (evt.Accepted)
                        myHoveredWidget.OnHoverEndEvent(evt);
                }

                myHoveredWidget = receiver;
                if (receiver != null)
                {
                    HoverEvent evt = new HoverEvent();

                    // the old owner of the focus can refuse the lost of the focus.
                    receiver.OnEvent(evt);

                    if (evt.Accepted)
                        receiver.OnHoverEvent(evt);
                }
            }

            foreach (Widget widget in myManagedWidgets)
            {
                UpdateEvent raisedEvent = new UpdateEvent(gameTime);
                widget.OnEvent(raisedEvent);

                if (raisedEvent.Accepted)
                    widget.OnUpdate(raisedEvent);
            }
        }
예제 #2
0
파일: Widget.cs 프로젝트: Ziple/NOubliezPas
 /// <summary>
 /// Raised when the widgets update is beginning.
 /// </summary>
 /// <param name="beginUpdateEvent">raised event</param>
 public virtual void OnUpdate(UpdateEvent beginUpdateEvent)
 {
     foreach (Widget child in myChildrenWidgets)
         child.OnUpdate(beginUpdateEvent);
 }