public void Invoke(RPOSWindow window, RPOSWindowMessage message) { if (!this.init || this.count == 0) { return; } if (((int)message - (int)RPOSWindowMessage.WillShow & (int)RPOSWindowMessage.DidOpen) != (int)RPOSWindowMessage.DidOpen) { for (int i = 0; i < this.count; i++) { if (!this.TryInvoke(window, message, i)) { this.handlerGate.Remove(this.handlers[i]); int num = i; i = num - 1; this.handlers.RemoveAt(num); RPOSWindowMessageCenter.RPOSWindowMessageResponder rPOSWindowMessageResponder = this; rPOSWindowMessageResponder.count = rPOSWindowMessageResponder.count - 1; } } } else { for (int j = this.count - 1; j >= 0; j--) { if (!this.TryInvoke(window, message, j)) { this.handlerGate.Remove(this.handlers[j]); this.handlers.RemoveAt(j); RPOSWindowMessageCenter.RPOSWindowMessageResponder rPOSWindowMessageResponder1 = this; rPOSWindowMessageResponder1.count = rPOSWindowMessageResponder1.count - 1; } } } }
public bool Remove(RPOSWindowMessageHandler handler) { if (!this.init || handler == null || !this.handlerGate.Remove(handler)) { return(false); } this.handlers.Remove(handler); RPOSWindowMessageCenter.RPOSWindowMessageResponder rPOSWindowMessageResponder = this; rPOSWindowMessageResponder.count = rPOSWindowMessageResponder.count - 1; return(true); }
public bool Add(RPOSWindowMessageHandler handler) { if (handler == null) { return(false); } if (!this.init) { this.handlerGate = new HashSet <RPOSWindowMessageHandler>(); this.handlers = new List <RPOSWindowMessageHandler>(); this.init = true; this.handlerGate.Add(handler); } else if (!this.handlerGate.Add(handler)) { return(false); } this.handlers.Add(handler); RPOSWindowMessageCenter.RPOSWindowMessageResponder rPOSWindowMessageResponder = this; rPOSWindowMessageResponder.count = rPOSWindowMessageResponder.count + 1; return(true); }