/// <summary> /// Add a new listener to the specific action passed in. /// </summary> /// <param name="action">The action to listen for.</param> /// <param name="listener">The listener to alert.</param> public void AddListener(MouseButtonAction action, MouseButtonListener listener) { switch (action) { case MouseButtonAction.Down: if (downListeners == null) { downListeners = new List <MouseButtonListener>(); } downListeners.Add(listener); break; case MouseButtonAction.Pressed: if (pressedListeners == null) { pressedListeners = new List <MouseButtonListener>(); } pressedListeners.Add(listener); break; case MouseButtonAction.Up: if (upListeners == null) { upListeners = new List <MouseButtonListener>(); } upListeners.Add(listener); break; } }
/// <summary> /// Remove an existing listener from it's key and action. /// </summary> /// <param name="button">The button to remove a listener from.</param> /// <param name="action">The action to stop listening to.</param> /// <param name="listener">The listener to remove.</param> public void RemoveListener(MouseButton button, MouseButtonAction action, MouseButtonListener listener) { if (buttonHandlers != null) { for (int i = 0, keyHandlerCount = buttonHandlers.Count; i < keyHandlerCount; i++) { if (buttonHandlers[i].Button == button) { buttonHandlers[i].RemoveListener(action, listener); return; } } } }
/// <summary> /// Remove a specific listener from the action. /// </summary> /// <param name="action">The action to remove a listener of.</param> /// <param name="listener">The listener to remove.</param> public void RemoveListener(MouseButtonAction action, MouseButtonListener listener) { switch (action) { case MouseButtonAction.Down: if (downListeners != null) { for (int i = 0, downCount = downListeners.Count; i < downCount; i++) { if (downListeners[i] == listener) { downListeners.RemoveAt(i); break; } } } break; case MouseButtonAction.Pressed: if (pressedListeners != null) { for (int i = 0, pressedCount = pressedListeners.Count; i < pressedCount; i++) { if (pressedListeners[i] == listener) { pressedListeners.RemoveAt(i); break; } } } break; case MouseButtonAction.Up: if (upListeners != null) { for (int i = 0, upCount = upListeners.Count; i < upCount; i++) { if (upListeners[i] == listener) { upListeners.RemoveAt(i); break; } } } break; } }
/// <summary> /// Add a new event listener to the specific mouse button, /// and action. /// </summary> /// <param name="button">The button to listen for.</param> /// <param name="action">It's life cycle event to listen for.</param> /// <param name="listener">The listener to invoke.</param> public void AddListener(MouseButton button, MouseButtonAction action, MouseButtonListener listener) { if (buttonHandlers != null) { for (int i = 0, keyHandlerCount = buttonHandlers.Count; i < keyHandlerCount; i++) { if (buttonHandlers[i].Button == button) { buttonHandlers[i].AddListener(action, listener); return; } } } else { buttonHandlers = new List <MouseButtonHandler>(); } MouseButtonHandler buttonHandler = new MouseButtonHandler(button); buttonHandler.AddListener(action, listener); buttonHandlers.Add(buttonHandler); }