private GameObject InstantiatePopup(QueuedInfoPopupData i_popupToShow)
        {
            string     nextPopupPrefabName = i_popupToShow.PrefabName;
            GameObject popup = PopupPanel.InstantiateUI(nextPopupPrefabName);

            return(popup);
        }
        public void QueueInfoPopup(string i_prefabName, ViewModel i_viewModel)
        {
            QueuedInfoPopupData queuedPopup = new QueuedInfoPopupData(i_prefabName, i_viewModel);

            mListPopups.Add(queuedPopup);
            CheckToShowNextPopup();
        }
        public void ShowNextPopup()
        {
            QueuedInfoPopupData nextQueuedPopupData = GetNextPopupData();

            CreatePopup(nextQueuedPopupData);
            RemovedPopupDataFromList(nextQueuedPopupData);
            mShowingPopup = true;
        }
 public virtual void CreatePopup(QueuedInfoPopupData i_popupData)
 {
     if (PopupPanel != null)
     {
         GameObject popupObject = InstantiatePopup(i_popupData);
         InitPopup(popupObject, i_popupData);
     }
     else
     {
         MyMessenger.Instance.Send <LogTypes, string, string>(MyLogger.LOG_EVENT, LogTypes.Error, "InfoPopupManager trying to show a popup, but the parent panel does not exist.", "InfoPopup");
     }
 }
        private void InitPopup(GameObject i_popup, QueuedInfoPopupData i_popupData)
        {
            InfoPopupView infoView = i_popup.GetComponent <InfoPopupView>();

            infoView.SetModel(i_popupData.ViewModel);
        }
 private void RemovedPopupDataFromList(QueuedInfoPopupData i_popupData)
 {
     mListPopups.Remove(i_popupData);
 }