/// <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; } } } }
public bool InitWithTarget(Action<CCMenuItem> selector, CCMenuItem[] items) { base.InitWithTarget(selector); CascadeColorEnabled = true; CascadeOpacityEnabled = true; m_pSubItems = new List<CCMenuItem>(); float w = float.MinValue; float h = float.MinValue; foreach (CCMenuItem item in items) { m_pSubItems.Add(item); AddChild(item, 0); item.Visible = false; if (w < item.ContentSize.Width) { w = item.ContentSize.Width; } if (h < item.ContentSize.Height) { h = item.ContentSize.Height; } item.AnchorPoint = CCPoint.AnchorMiddle; } ContentSize = new CCSize(w, h); foreach (CCMenuItem item in items) { item.Position = ContentSize.Center; } m_uSelectedIndex = int.MaxValue; SelectedIndex = 0; return true; }
public static CCMenuItemToggle Create(CCMenuItem item) { var pRet = new CCMenuItemToggle(); pRet.InitWithItem(item); return(pRet); }
public bool InitWithItem(CCMenuItem item) { base.InitWithTarget(null); m_pSubItems = new List <CCMenuItem>(); m_pSubItems.Add(item); m_uSelectedIndex = int.MaxValue; SelectedIndex = 0; return(true); }
/// <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); }
public bool InitWithTarget(Action<object> selector, CCMenuItem[] items) { base.InitWithTarget(selector); m_pSubItems = new List<CCMenuItem>(); foreach (CCMenuItem item in items) { m_pSubItems.Add(item); } m_uSelectedIndex = int.MaxValue; SelectedIndex = 0; return true; }
public bool InitWithItem(CCMenuItem item) { base.InitWithTarget(null); m_pSubItems = new List <CCMenuItem>(); m_pSubItems.Add(item); m_uSelectedIndex = int.MaxValue; SelectedIndex = 0; CascadeColorEnabled = true; CascadeOpacityEnabled = true; return(true); }
public bool InitWithItem(CCMenuItem item) { base.InitWithTarget(null); m_pSubItems = new List<CCMenuItem>(); m_pSubItems.Add(item); m_uSelectedIndex = int.MaxValue; SelectedIndex = 0; CascadeColorEnabled = true; CascadeOpacityEnabled = true; return true; }
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(); }
public override void RemoveChild(CCNode child, bool cleanup) { Debug.Assert(child is CCMenuItem, "Menu only supports MenuItem objects as children"); if (m_pSelectedItem == child) { m_pSelectedItem = null; } base.RemoveChild(child, cleanup); if (_Items.Contains(child as CCMenuItem)) { _Items.Remove(child as CCMenuItem); } }
public override void TouchMoved(CCTouch touch) { Debug.Assert(m_eState == CCMenuState.TrackingTouch, "[Menu TouchMoved] -- invalid state"); CCMenuItem currentItem = ItemForTouch(touch); if (currentItem != m_pSelectedItem) { if (m_pSelectedItem != null) { m_pSelectedItem.Unselected(); } m_pSelectedItem = currentItem; if (m_pSelectedItem != null) { m_pSelectedItem.Selected(); } } }
public MenuLayer3() { CCMenuItemFont.FontName = "arial"; CCMenuItemFont.FontSize = 28; CCLabelBMFont label = new CCLabelBMFont("Enable AtlasItem", "fonts/bitmapFontTest3.fnt"); CCMenuItemLabel item1 = new CCMenuItemLabel(label, this.menuCallback2); CCMenuItemFont item2 = new CCMenuItemFont("--- Go Back ---", this.menuCallback); CCSprite spriteNormal = new CCSprite(s_MenuItem, new CCRect(0, 23 * 2, 115, 23)); CCSprite spriteSelected = new CCSprite(s_MenuItem, new CCRect(0, 23 * 1, 115, 23)); CCSprite spriteDisabled = new CCSprite(s_MenuItem, new CCRect(0, 23 * 0, 115, 23)); CCMenuItemSprite item3 = new CCMenuItemSprite(spriteNormal, spriteSelected, spriteDisabled, this.menuCallback3); m_disabledItem = item3; m_disabledItem.Enabled = false; CCMenu menu = new CCMenu(item1, item2, item3); menu.Position = new CCPoint(0, 0); CCSize s = CCDirector.SharedDirector.WinSize; item1.Position = new CCPoint(s.Width / 2 - 150, s.Height / 2); item2.Position = new CCPoint(s.Width / 2 - 200, s.Height / 2); item3.Position = new CCPoint(s.Width / 2, s.Height / 2 - 100); CCJumpBy jump = new CCJumpBy (3, new CCPoint(400, 0), 50, 4); item2.RunAction(new CCRepeatForever ( (CCActionInterval)(CCSequence.FromActions(jump, jump.Reverse())) ) ); CCActionInterval spin1 = new CCRotateBy (3, 360); CCActionInterval spin2 = (CCActionInterval)(spin1.Copy()); CCActionInterval spin3 = (CCActionInterval)(spin1.Copy()); item1.RunAction(new CCRepeatForever (spin1)); item2.RunAction(new CCRepeatForever (spin2)); item3.RunAction(new CCRepeatForever (spin3)); AddChild(menu); }
/// <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); }
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); }
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; }
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(); }
/// <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; }
public void AddSubItem(CCMenuItem item) { m_pSubItems.Add(item); }
public void menuCallback(CCMenuItem pSender) { // get the userdata, it's the index of the menu item clicked CCMenuItem pMenuItem = (CCMenuItem)(pSender); int nIdx = (int)pMenuItem.UserData; // create the test scene and run it TestScene pScene = CreateTestScene(nIdx); if (pScene != null) { CCApplication.SharedApplication.GamePadDPadUpdate -= _GamePadDPadDelegate; CCApplication.SharedApplication.GamePadButtonUpdate -= _GamePadButtonDelegate; pScene.runThisTest(); } }
public static CCMenuItemToggle Create(CCMenuItem item) { var pRet = new CCMenuItemToggle(); pRet.InitWithItem(item); return pRet; }
public bool InitWithItem(CCMenuItem item) { base.InitWithTarget(null); m_pSubItems = new List<CCMenuItem>(); m_pSubItems.Add(item); m_uSelectedIndex = int.MaxValue; SelectedIndex = 0; return true; }