public void RegisterListen(UIManagerClass.ChildScreen screen, ChangeList change, Action function)
        {
            ListenerEntry newEntry;

            newEntry.Screen     = screen;
            newEntry.ChangeType = change;
            newEntry.Function   = function;
            Listeners.Add(newEntry);
        }
 public void NotifyChange(UIManagerClass.ChildScreen sender, ChangeList change)
 {
     foreach (ListenerEntry c in Listeners)
     {
         if (c.ChangeType == change && c.Screen != sender)
         {
             c.Function();
         }
     }
 }
        public void DeregisterListener(UIManagerClass.ChildScreen screen)
        {
            int i = 0;

            while (i < Listeners.Count)
            {
                if (Listeners[i].Screen == screen)
                {
                    Listeners.RemoveAt(i);
                }
                else
                {
                    i++;
                }
            }
        }