Пример #1
0
        /**
         * @brief dispatch the key pad msg
         */

        public bool DispatchKeypadMsg(CCKeypadMSGType nMsgType)
        {
            m_bLocked = true;

            if (m_pDelegates.Count > 0)
            {
                for (int i = 0; i < m_pDelegates.Count; i++)
                {
                    CCKeypadHandler   pHandler  = m_pDelegates[i];
                    ICCKeypadDelegate pDelegate = pHandler.Delegate;

                    switch (nMsgType)
                    {
                    case CCKeypadMSGType.BackClicked:
                        pDelegate.KeyBackClicked();
                        break;

                    case CCKeypadMSGType.MenuClicked:
                        pDelegate.KeyMenuClicked();
                        break;
                    }
                }
            }

            m_bLocked = false;

            if (m_bToRemove)
            {
                m_bToRemove = false;
                for (int i = 0; i < m_pHandlersToRemove.Count; ++i)
                {
                    ForceRemoveDelegate(m_pHandlersToRemove[i]);
                }
                m_pHandlersToRemove.Clear();
            }

            if (m_bToAdd)
            {
                m_bToAdd = false;
                for (int i = 0; i < m_pHandlersToAdd.Count; ++i)
                {
                    ForceAddDelegate(m_pHandlersToAdd[i]);
                }
                m_pHandlersToAdd.Clear();
            }

            return(true);
        }
Пример #2
0
        /**
        @brief dispatch the key pad msg
        */

        public bool DispatchKeypadMsg(CCKeypadMSGType nMsgType)
        {
            m_bLocked = true;

            if (m_pDelegates.Count > 0)
            {
                for (int i = 0; i < m_pDelegates.Count; i++)
                {
                    CCKeypadHandler pHandler = m_pDelegates[i];
                    ICCKeypadDelegate pDelegate = pHandler.Delegate;

                    switch (nMsgType)
                    {
                        case CCKeypadMSGType.BackClicked:
                            pDelegate.KeyBackClicked();
                            break;

                        case CCKeypadMSGType.MenuClicked:
                            pDelegate.KeyMenuClicked();
                            break;
                    }
                }
            }

            m_bLocked = false;

            if (m_bToRemove)
            {
                m_bToRemove = false;
                for (int i = 0; i < m_pHandlersToRemove.Count; ++i)
                {
                    ForceRemoveDelegate(m_pHandlersToRemove[i]);
                }
                m_pHandlersToRemove.Clear();
            }

            if (m_bToAdd)
            {
                m_bToAdd = false;
                for (int i = 0; i < m_pHandlersToAdd.Count; ++i)
                {
                    ForceAddDelegate(m_pHandlersToAdd[i]);
                }
                m_pHandlersToAdd.Clear();
            }

            return true;
        }