Exemplo n.º 1
1
 /// <summary>
 /// Handles the button press event to track which focused menu item will get the activation
 /// </summary>
 /// <param name="backButton"></param>
 /// <param name="startButton"></param>
 /// <param name="systemButton"></param>
 /// <param name="aButton"></param>
 /// <param name="bButton"></param>
 /// <param name="xButton"></param>
 /// <param name="yButton"></param>
 /// <param name="leftShoulder"></param>
 /// <param name="rightShoulder"></param>
 /// <param name="player"></param>
 protected override void OnGamePadButtonUpdate(CCGamePadButtonStatus backButton, CCGamePadButtonStatus startButton, CCGamePadButtonStatus systemButton, CCGamePadButtonStatus aButton, CCGamePadButtonStatus bButton, CCGamePadButtonStatus xButton, CCGamePadButtonStatus yButton, CCGamePadButtonStatus leftShoulder, CCGamePadButtonStatus rightShoulder, Microsoft.Xna.Framework.PlayerIndex player)
 {
     base.OnGamePadButtonUpdate(backButton, startButton, systemButton, aButton, bButton, xButton, yButton, leftShoulder, rightShoulder, player);
     if (!HasFocus)
     {
         return;
     }
     if (backButton == CCGamePadButtonStatus.Pressed || aButton == CCGamePadButtonStatus.Pressed || bButton == CCGamePadButtonStatus.Pressed ||
         xButton == CCGamePadButtonStatus.Pressed || yButton == CCGamePadButtonStatus.Pressed || leftShoulder == CCGamePadButtonStatus.Pressed ||
         rightShoulder == CCGamePadButtonStatus.Pressed)
     {
         CCMenuItem item = FocusedItem;
         item.Selected();
         m_pSelectedItem = item;
         m_eState = CCMenuState.TrackingTouch;
     }
     else if (backButton == CCGamePadButtonStatus.Released || aButton == CCGamePadButtonStatus.Released || bButton == CCGamePadButtonStatus.Released ||
         xButton == CCGamePadButtonStatus.Released || yButton == CCGamePadButtonStatus.Released || leftShoulder == CCGamePadButtonStatus.Released ||
         rightShoulder == CCGamePadButtonStatus.Released)
     {
         if (m_eState == CCMenuState.TrackingTouch)
         {
             // Now we are selecting the menu item
             CCMenuItem item = FocusedItem;
             if (item != null && m_pSelectedItem == item)
             {
                 // Activate this item
                 item.Unselected();
                 item.Activate();
                 m_eState = CCMenuState.Waiting;
                 m_pSelectedItem = null;
             }
         }
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Handles the button press event to track which focused menu item will get the activation
 /// </summary>
 /// <param name="backButton"></param>
 /// <param name="startButton"></param>
 /// <param name="systemButton"></param>
 /// <param name="aButton"></param>
 /// <param name="bButton"></param>
 /// <param name="xButton"></param>
 /// <param name="yButton"></param>
 /// <param name="leftShoulder"></param>
 /// <param name="rightShoulder"></param>
 /// <param name="player"></param>
 protected override void OnGamePadButtonUpdate(CCGamePadButtonStatus backButton, CCGamePadButtonStatus startButton, CCGamePadButtonStatus systemButton, CCGamePadButtonStatus aButton, CCGamePadButtonStatus bButton, CCGamePadButtonStatus xButton, CCGamePadButtonStatus yButton, CCGamePadButtonStatus leftShoulder, CCGamePadButtonStatus rightShoulder, Microsoft.Xna.Framework.PlayerIndex player)
 {
     base.OnGamePadButtonUpdate(backButton, startButton, systemButton, aButton, bButton, xButton, yButton, leftShoulder, rightShoulder, player);
     if (!HasFocus)
     {
         return;
     }
     if (backButton == CCGamePadButtonStatus.Pressed || aButton == CCGamePadButtonStatus.Pressed || bButton == CCGamePadButtonStatus.Pressed ||
         xButton == CCGamePadButtonStatus.Pressed || yButton == CCGamePadButtonStatus.Pressed || leftShoulder == CCGamePadButtonStatus.Pressed ||
         rightShoulder == CCGamePadButtonStatus.Pressed)
     {
         CCMenuItem item = FocusedItem;
         item.Selected();
         m_pSelectedItem = item;
         m_eState        = CCMenuState.TrackingTouch;
     }
     else if (backButton == CCGamePadButtonStatus.Released || aButton == CCGamePadButtonStatus.Released || bButton == CCGamePadButtonStatus.Released ||
              xButton == CCGamePadButtonStatus.Released || yButton == CCGamePadButtonStatus.Released || leftShoulder == CCGamePadButtonStatus.Released ||
              rightShoulder == CCGamePadButtonStatus.Released)
     {
         if (m_eState == CCMenuState.TrackingTouch)
         {
             // Now we are selecting the menu item
             CCMenuItem item = FocusedItem;
             if (item != null && m_pSelectedItem == item)
             {
                 // Activate this item
                 item.Unselected();
                 item.Activate();
                 m_eState        = CCMenuState.Waiting;
                 m_pSelectedItem = null;
             }
         }
     }
 }
Exemplo n.º 3
0
 public override void TouchCancelled(CCTouch touch)
 {
     Debug.Assert(m_eState == CCMenuState.TrackingTouch, "[Menu ccTouchCancelled] -- invalid state");
     if (m_pSelectedItem != null)
     {
         m_pSelectedItem.Unselected();
     }
     m_eState = CCMenuState.Waiting;
 }
Exemplo n.º 4
0
 public override void TouchEnded(CCTouch touch, CCEvent e)
 {
     Debug.Assert(m_eState == CCMenuState.TrackingTouch, "[Menu TouchEnded] -- invalid state");
     if (m_pSelectedItem != null)
     {
         m_pSelectedItem.Unselected();
         m_pSelectedItem.Activate();
     }
     m_eState = CCMenuState.Waiting;
 }
Exemplo n.º 5
0
        /// <summary>
        /// The position of the menu is set to the center of the main screen
        /// </summary>
        /// <param name="items"></param>
        /// <returns></returns>
        private bool InitWithArray(params CCMenuItem[] items)
        {
            if (_Items.Count > 0)
            {
                List <CCMenuItem> copy = new List <CCMenuItem>(_Items);
                foreach (CCMenuItem i in copy)
                {
                    RemoveChild(i, false);
                }
            }
            if (base.Init())
            {
                if (CCConfiguration.SharedConfiguration.UseGraphPriority)
                {
                    TouchPriority = kMaxGraphPriority;
                }
                else
                {
                    TouchPriority = kCCMenuHandlerPriority;
                }
                TouchMode    = CCTouchMode.OneByOne;
                TouchEnabled = true;

                m_bEnabled = true;
                // menu in the center of the screen
                CCSize s = CCDirector.SharedDirector.WinSize;

                IgnoreAnchorPointForPosition = true;
                AnchorPoint = new CCPoint(0.5f, 0.5f);
                ContentSize = s;

                Position = (new CCPoint(s.Width / 2, s.Height / 2));

                if (items != null)
                {
                    int z = 0;
                    foreach (CCMenuItem item in items)
                    {
                        AddChild(item, z);
                        z++;
                    }
                }

                //    [self alignItemsVertically];
                m_pSelectedItem = null;
                m_eState        = CCMenuState.Waiting;

                // enable cascade color and opacity on menus
                CascadeColorEnabled   = true;
                CascadeOpacityEnabled = true;

                return(true);
            }
            return(false);
        }
Exemplo n.º 6
0
 public override void OnExit()
 {
     if (m_eState == CCMenuState.TrackingTouch)
     {
         m_pSelectedItem.Unselected();
         m_eState        = CCMenuState.Waiting;
         m_pSelectedItem = null;
     }
     foreach (CCMenuItem item in _Items)
     {
         CCFocusManager.Instance.Remove(item);
     }
     base.OnExit();
 }
Exemplo n.º 7
0
        /// <summary>
        /// The position of the menu is set to the center of the main screen
        /// </summary>
        /// <param name="items"></param>
        /// <returns></returns>
        private bool InitWithArray(params CCMenuItem[] items)
        {
            if (_Items.Count > 0)
            {
                List <CCMenuItem> copy = new List <CCMenuItem>(_Items);
                foreach (CCMenuItem i in copy)
                {
                    RemoveChild(i, false);
                }
            }
            if (base.Init())
            {
                TouchEnabled = true;

                m_bEnabled = true;
                // menu in the center of the screen
                CCSize s = CCDirector.SharedDirector.WinSize;

                IgnoreAnchorPointForPosition = true;
                AnchorPoint = new CCPoint(0.5f, 0.5f);
                ContentSize = s;

                Position = (new CCPoint(s.Width / 2, s.Height / 2));

                if (items != null)
                {
                    int z = 0;
                    foreach (CCMenuItem item in items)
                    {
                        AddChild(item, z);
                        z++;
                    }
                }

                //    [self alignItemsVertically];
                m_pSelectedItem = null;
                m_eState        = CCMenuState.Waiting;
                return(true);
            }
            return(false);
        }
Exemplo n.º 8
0
        public override bool TouchBegan(CCTouch touch)
        {
            if (m_eState != CCMenuState.Waiting || !m_bVisible || !m_bEnabled)
            {
                return(false);
            }

            for (CCNode c = m_pParent; c != null; c = c.Parent)
            {
                if (c.Visible == false)
                {
                    return(false);
                }
            }

            m_pSelectedItem = ItemForTouch(touch);
            if (m_pSelectedItem != null)
            {
                m_eState = CCMenuState.TrackingTouch;
                m_pSelectedItem.Selected();
                return(true);
            }
            return(false);
        }
Exemplo n.º 9
0
 public override void TouchCancelled(CCTouch touch)
 {
     Debug.Assert(m_eState == CCMenuState.TrackingTouch, "[Menu ccTouchCancelled] -- invalid state");
     if (m_pSelectedItem != null)
     {
         m_pSelectedItem.Unselected();
     }
     m_eState = CCMenuState.Waiting;
 }
Exemplo n.º 10
0
        public override bool TouchBegan(CCTouch touch)
        {
            if (m_eState != CCMenuState.Waiting || !m_bVisible || !m_bEnabled)
            {
                return false;
            }

            for (CCNode c = m_pParent; c != null; c = c.Parent)
            {
                if (c.Visible == false)
                {
                    return false;
                }
            }

            m_pSelectedItem = ItemForTouch(touch);
            if (m_pSelectedItem != null)
            {
                m_eState = CCMenuState.TrackingTouch;
                m_pSelectedItem.Selected();
                return true;
            }
            return false;
        }
Exemplo n.º 11
0
 public override void OnExit()
 {
     if (m_eState == CCMenuState.TrackingTouch)
     {
         if (m_pSelectedItem != null)
         {
             m_pSelectedItem.Unselected();
             m_pSelectedItem = null;
         }
         m_eState = CCMenuState.Waiting;
     }
     
     foreach (CCMenuItem item in _Items)
     {
         CCFocusManager.Instance.Remove(item);
     }
     
     base.OnExit();
 }
Exemplo n.º 12
0
        /// <summary>
        /// The position of the menu is set to the center of the main screen
        /// </summary>
        /// <param name="items"></param>
        /// <returns></returns>
        private bool InitWithArray(params CCMenuItem[] items)
        {
            if (_Items.Count > 0)
            {
                List<CCMenuItem> copy = new List<CCMenuItem>(_Items);
                foreach (CCMenuItem i in copy)
                {
                    RemoveChild(i, false);
                }
            }
            if (base.Init())
            {
                TouchPriority = kCCMenuHandlerPriority;
                TouchMode = CCTouchMode.OneByOne;
                TouchEnabled = true;

                m_bEnabled = true;
                // menu in the center of the screen
                CCSize s = CCDirector.SharedDirector.WinSize;

                IgnoreAnchorPointForPosition = true;
                AnchorPoint = new CCPoint(0.5f, 0.5f);
                ContentSize = s;

                Position = (new CCPoint(s.Width / 2, s.Height / 2));

                if (items != null)
                {
                    int z = 0;
                    foreach (CCMenuItem item in items)
                    {
                        AddChild(item, z);
                        z++;
                    }
                }

                //    [self alignItemsVertically];
                m_pSelectedItem = null;
                m_eState = CCMenuState.Waiting;

                // enable cascade color and opacity on menus
                CascadeColorEnabled = true;
                CascadeOpacityEnabled = true;

                return true;
            }
            return false;
        }
Exemplo n.º 13
0
 public override void TouchEnded(CCTouch touch, CCEvent e)
 {
     Debug.Assert(m_eState == CCMenuState.TrackingTouch, "[Menu TouchEnded] -- invalid state");
     if (m_pSelectedItem != null)
     {
         m_pSelectedItem.Unselected();
         m_pSelectedItem.Activate();
     }
     m_eState = CCMenuState.Waiting;
 }