Beispiel #1
0
        public void RemoveListener(int event_type, UIEventListenerContext listener_context)
        {
            List <UIEventListenerContext> listeners;

            if (!m_all_listeners.TryGetValue(event_type, out listeners))
            {
                return;
            }
            if (listeners.Contains(listener_context))
            {
                listeners.Remove(listener_context);
            }
        }
Beispiel #2
0
        public void AddListener(int event_type, UIEventListenerContext listener_context)
        {
            List <UIEventListenerContext> listeners;

            if (!m_all_listeners.TryGetValue(event_type, out listeners))
            {
                listeners = new List <UIEventListenerContext>();
                m_all_listeners[event_type] = listeners;
            }

            if (listeners.Contains(listener_context))
            {
                return;
            }
            listeners.Add(listener_context);
        }
Beispiel #3
0
        public void NotifyUI(int event_type, System.Object event_data)
        {
            List <UIEventListenerContext> listeners;

            if (!m_all_listeners.TryGetValue(event_type, out listeners))
            {
                return;
            }
            int listener_cnt = listeners.Count;

            if (listener_cnt == 0)
            {
                return;
            }
            int index = 0;

            while (index < listener_cnt)
            {
                UIEventListenerContext context  = listeners[index];
                IUIEventListener       listener = context.m_listener;
                if (listener == null)
                {
                    listeners.RemoveAt(index);
                }
                else
                {
                    listener.ReceiveEvent(event_type, event_data);
                }

                int new_count = listeners.Count;
                if (new_count < listener_cnt)
                {
                    listener_cnt = new_count;
                }
                else
                {
                    ++index;
                }
            }
        }