示例#1
0
 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;
             }
         }
     }
 }
示例#2
0
 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);
 }
示例#3
0
 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);
 }