private void SteamVR_NexHUD_PostUpdateCallback(object sender, EventArgs e) { if (m_state == MenuState.Initialize) { return; } if (Shortcuts.holdMode) { if (NexHudEngine.isShortcutIsHold(Shortcuts.get(ShortcutId.menu))) { if (!m_frame.renderOverlay) { m_frame.renderOverlay = true; if (NexHudSettings.GetInstance().stealFocus) { FocusHelper.focusonNexHud(); } } if (NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.back))) { if (m_state != MenuState.Main && m_state != MenuState.Improve && m_state != MenuState.Search) { changeState(MenuState.Main); } } } else { if (m_frame.renderOverlay) { m_frame.renderOverlay = false; if (NexHudSettings.GetInstance().stealFocus) { FocusHelper.focusOnGame(); } } return; } } else { if (NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.menu))) { if (m_frame.renderOverlay) { if (m_state != MenuState.Main) { if (m_state != MenuState.Improve && m_state != MenuState.Search) { changeState(MenuState.Main); } } else { m_frame.renderOverlay = false; if (NexHudSettings.GetInstance().stealFocus) { FocusHelper.focusOnGame(); } } } else { changeState(MenuState.Main); m_frame.renderOverlay = true; if (NexHudSettings.GetInstance().stealFocus) { FocusHelper.focusonNexHud(); } } } } if (m_frame.renderOverlay) { //MAIN MENU NAVIGATION if (m_uiMainMenu.isVisible) { bool up = NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.up)); bool down = NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.down)); bool left = NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.left)); bool right = NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.right)); bool select = NexHudEngine.isShortcutPressed(Shortcuts.get(ShortcutId.select)); if (Cursor.Y == 0) { if (right) { m_uiMainMenu.selectNext(); } else if (left) { m_uiMainMenu.selectPrev(); } else if (down) { Cursor = new Point(1, 1); } else if (select) { if (m_uiMainMenu.isSelectedMenuActive()) { switch (m_uiMainMenu.SelectedMenu) { case UiMainMenuButton.MenuButtonType.Search: changeState(MenuState.Search); break; case UiMainMenuButton.MenuButtonType.Improve: changeState(MenuState.Improve); break; case UiMainMenuButton.MenuButtonType.Trade: changeState(MenuState.Trade); break; } } } } else { if (up) { Cursor.Y--; } else if (down && Cursor.Y < 2) { Cursor.Y++; } else if (left && Cursor.X > 0 && Cursor.Y < 2) { Cursor.X--; } else if (right && Cursor.X < 2 && Cursor.Y < 2) { Cursor.X++; } m_UiRadio.PreviousRadio.Selected = Cursor == new Point(0, 1); m_UiRadio.Radio.Selected = Cursor == new Point(1, 1); m_UiRadio.NextRadio.Selected = Cursor == new Point(2, 1); m_UiRadio.VolumeSelected = Cursor.Y == 2; } } } }