-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Microsoft.Xna.Framework;
-using Microsoft.Xna.Framework.Graphics;
-
-namespace SuperPolarity
-{
- class Widget
- {
- public List<Widget> Children;
- public Dictionary<string, List<Action<float>>> Listeners;
-
- public Vector2 Position;
- public SuperPolarity Game;
-
- protected bool Active;
-
- public Widget(SuperPolarity game, Vector2 position)
- {
- Game = game;
- Position = position;
- Active = false;
- Children = new List<Widget>();
- Listeners = new Dictionary<string, List<Action<float>>>();
- }
-
- public void Activate()
- {
- Active = true;
- }
-
- public void Deactivate()
- {
- Active = false;
- }
-
- public virtual void AppendChild(Widget widget)
- {
- Children.Add(widget);
- }
-
- public virtual void Bind(string eventName, Action<float> eventListener)
- {
- List<Action<float>> newListenerList;
- List<Action<float>> listenerList;
- bool foundListeners;
-
- if (!Listeners.ContainsKey(eventName))
- {
- newListenerList = new List<Action<float>>();
- Listeners.Add(eventName, newListenerList);
- }
-
- foundListeners = Listeners.TryGetValue(eventName, out listenerList);
-
- listenerList.Add(eventListener);
- }
-
- public virtual void Unbind(string eventName, Action<float> eventListener)
- {
- // NOT YET IMPLEMENTED;
- }
-
- public virtual void Dispatch(string eventName, float value)
- {
- List<Action<float>> listenerList;
- bool foundListeners;
-
- foundListeners = Listeners.TryGetValue(eventName, out listenerList);
-
- if (!foundListeners)
- {
- return;
- }
-
- foreach (Action<float> method in listenerList)
- {
- method(value);
- }
- }
-
- public virtual void Update(GameTime gameTime)
- {
- }
-
- public virtual void Draw(SpriteBatch spriteBatch)
- {
- }
- }
-}