/// <summary> /// Inicjowanie podstawowych właściwości Popup-u /// </summary> /// <param name="lifeSpan">Czas, przez jaki wyświetlany jest popup-u</param> /// <param name="onOpen">Akcje wywoływane po wyświetleniu popup-u</param> /// <param name="onClick">Akcje wywoływane po naciśnięciu na popup</param> /// <param name="onClose">Akcje wywoływane po zniszczeniu popup-u</param> protected Popup(AutoCloseMode closeMode = AutoCloseMode.NewAppears, PopupAction onOpen = null, PopupAction onClose = null, PopupAction onClick = null) { CloseMode = closeMode; this.onOpen = onOpen; this.onClose = onClose; this.onClick = onClick; }
/// <summary> /// Inicjowanie popup-u typu Icon /// </summary> /// <param name="iconType">Typ ikony, jaka jest wyświetlana przez IconBox/param> /// <param name="lifeSpan">Czas wyświetlania IconBox-u</param> /// <param name="onOpen">Akcje wywoływane po wyświetleniu IconBox-u</param> /// <param name="onClick">Akcje wywoływane po naciśnięciu na IconBox</param> /// <param name="onClose">Akcje wywoływane po zniszczeniu IconBox-u</param> public IconPopup(IconPopupType iconType, PopupAction onClose = null, AutoCloseMode closeMode = AutoCloseMode.NewAppears) : base(closeMode) { this.iconType = iconType; this.onClose = onClose; onClick = Functionality.Destroy(); //Icon popup po kliknięciu jest zamykany }
/// <summary> /// Inicjowanie popup-u typu Icon /// </summary> /// <param name="iconType">Typ ikony do wyświetlania</param> /// <param name="closeMode">Tryb automatycznego zamknięcia popupu</param> /// <param name="message">Wiadomość do wyświetlenia w QuestionPopupie po kliknięciu IconPopup-u</param> public IconPopup(IconPopupType iconType, string message, AutoCloseMode closeMode = AutoCloseMode.NewAppears) : base(closeMode) { this.iconType = iconType; onClick = Functionality.Destroy(); QuestionPopup toShow = QuestionPopup.CreateOkDialog(message); onClose += Functionality.Show(toShow); }
/// <summary> /// Inicjowanie popup-u typu Icon /// </summary> /// <param name="iconType">Typ ikony do wyświetlania</param> /// <param name="closeMode">Tryb automatycznego zamknięcia popupu</param> /// <param name="toShow">Popup, który ma zostać wyświetlony po kliknięciu ikon boxu</param> public IconPopup(IconPopupType iconType, Popup toShow = null, AutoCloseMode closeMode = AutoCloseMode.NewAppears) : base(closeMode) { this.iconType = iconType; onClick = Functionality.Destroy(); if (toShow != null) { onClose += Functionality.Show(toShow); } }
/// <summary> /// Zamyka wszystkie popupy o trybie zamknięcia równym, bądź niższym od podanego. /// Na czas zamykania blokuje możliwość wyświetlenia nowych popupów /// </summary> /// <param name="closeMode">Tryb zamknięcia popupów</param> public void ClosePopups(AutoCloseMode closeMode) { canShowNewPopups = false; //Zamykanie obecnie wyświetlonych popupów List <PopupBox> toClose = new List <PopupBox>(); foreach (PopupBox box in showedPopups) { if (box.source.CloseMode <= closeMode) { toClose.Add(box); } } foreach (PopupBox box in toClose) { ClosePopup(box); } List <Popup> toRemove = new List <Popup>(); //Usuwanie popupów jeszcze nie wyświetlonych foreach (Popup popup in popupQueue) { if (popup.CloseMode <= closeMode) { toRemove.Add(popup); popup.onClose?.Invoke(popup); } } foreach (Popup popup in toRemove) { popupQueue.Remove(popup); } canShowNewPopups = true; CheckScreenAccessibility(); }