public void RegisterGamePadButton(Buttons button, GamePadButtonEventHandler eventHandler) { int buttonIdx = -1; for (int idx = 0; idx < m_registeredButtons.Count; ++idx) { if (m_registeredButtons[idx].Button == button) { buttonIdx = idx; break; } } if (buttonIdx != -1) { // Button already registered, add event handler m_registeredButtons[buttonIdx].AddHandler(eventHandler); } else { // Register new button event handler RegisteredGamePadButton rb = new RegisteredGamePadButton(button); rb.AddHandler(eventHandler); m_registeredButtons.Add(rb); } }
public void AddHandler(GamePadButtonEventHandler handler) { OnGamePadButtonEvent += handler; }
public void RemoveHandler(GamePadButtonEventHandler handler) { OnGamePadButtonEvent -= handler; }
public void UnregisterGamePadButton(Buttons button, GamePadButtonEventHandler eventHandler) { for (int idx = 0; idx < m_registeredButtons.Count; ++idx) { if (m_registeredButtons[idx].Button == button) { m_registeredButtons[idx].RemoveHandler(eventHandler); if (m_registeredButtons[idx].Empty) { m_registeredButtons.RemoveAt(idx); } break; } } }