private void Dispose (bool disposing) { // do this first so that no more events will fire OnButtonStateChange = null; if (disposing) { // manually dispose of any directly referenced resources m_Listener.OnButtonStateChange -= m_AgentButtonListener; } m_Listener = null; }
public CombinationAgentButtonListener (AgentButtonListener listener, params AgentButton[] buttons) { if (listener == null) throw new ArgumentNullException ("listener"); m_Listener = listener; m_ButtonToStateMap = new Hashtable(); foreach (var b in AgentButton.Empty.GetAll ()) m_ButtonToStateMap[b] = AgentButtonState.Up; listener.StartListeningTo (buttons); m_AgentButtonListener = OnAgentButtonListenerPressed; listener.OnButtonStateChange += m_AgentButtonListener; }