示例#1
0
        public override void OnTick()
        {
            base.OnTick();

            bool hasDisplayedPopup = false;
            bool hasDisplayedTio   = false;

            lock (Popups)
            {
                foreach (var popup in Popups.OrderByDescending(p => p.Priority).ThenByDescending(p => p.CurrentTick))
                {
                    if (popup.CurrentTick > popup.Duration + popup.DisplayDelay)
                    {
                        Popups.Remove(popup);
                        continue;
                    }

                    if (popup.CurrentTick > popup.DisplayDelay)
                    {
                        if (popup.MessageType == MessageType.Popup && !hasDisplayedPopup)
                        {
                            SendMessage(popup.Message, type: (byte)popup.MessageType);
                            hasDisplayedPopup = true;
                        }
                        if (popup.MessageType == MessageType.Tip && !hasDisplayedTio)
                        {
                            SendMessage(popup.Message, type: (byte)popup.MessageType);
                            hasDisplayedTio = true;
                        }
                    }

                    popup.CurrentTick++;
                }
            }
        }
        public override bool RemoveViewModel(BaseViewModel model)
        {
            if (Popups.Remove(model))
            {
                return(true);
            }

            return(base.RemoveViewModel(model));
        }
示例#3
0
 public void RemovePopup(IUIPopup popup)
 {
     Popups.Remove(popup);
 }