using System.Collections.Generic; using MoleMole.Config; using UnityEngine; using UnityEngine.UI; using proto; namespace MoleMole { public class InLevelPauseDialogContext : BaseDialogContext { public delegate void OnClosedHandler(); public const string StatusTab = "StatusTab"; public const string SettingTab = "SettingTab"; private const float DROP_ITEM_SCALE = 0.85f; private readonly string defaultTab; private TabManager _tabManager; private MonoSettingAudioTab _audioSetting; private MonoSettingGraphicsTab _graphicSetting; private LevelScoreManager _levelScoreManager; private List _dropItemList; private LevelDataItem _levelData; private MonoGridScroller _dropGridScroller; public event OnClosedHandler OnClosed; public InLevelPauseDialogContext(string defaultTab = "StatusTab") { config = new ContextPattern { contextName = "InLevelPauseDialogContext", viewPrefabPath = "UI/Menus/Dialog/InLevelPauseDialog" }; this.defaultTab = defaultTab; _tabManager = new TabManager(); _tabManager.onSetActive += OnTabSetActive; } protected override bool SetupView() { string showingTabKey = _tabManager.GetShowingTabKey(); string searchKey = ((!string.IsNullOrEmpty(showingTabKey)) ? showingTabKey : defaultTab); _tabManager.Clear(); SetupStatusTab(); SetupSettingTab(); _tabManager.ShowTab(searchKey); Singleton.Instance.Post("BGM_PauseMenu_On"); return false; } protected override void BindViewCallbacks() { BindViewCallback(base.view.transform.Find("Dialog/TabBtns/TabBtn_1").GetComponent