using System;
using System.Collections;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class UI_MainTitlePanel : BasePanel
{
    internal void Init()
    {
        SwitchTitleImg();
        SwitchMode();
        SwitchUserName();
    }

    /// <summary>
    /// 显示
    /// </summary>
    public override void ShowMe()
    {
        GameManager.EventMgr.AddEventListener(Enum_EventType.SwitchMode, SwitchMode);
    }

    /// <summary>
    /// 隐藏
    /// </summary>
    public override void HideMe()
    {
        GameManager.EventMgr.RemoveEventListener(Enum_EventType.SwitchMode, SwitchMode);
    }

    /// <summary>
    /// 切换模式
    /// </summary>
    private void SwitchMode()
    {
        string mode = "";
        switch (RunModelMgr.Instance.ModeType)
        {
            case E_ModeType.None:
                mode = string.Empty;
                break;
            case E_ModeType.Study:
                mode = "学习模式";
                break;
            case E_ModeType.Practice:
                mode = "练习模式";
                break;
            case E_ModeType.Exam:
                mode = "考试模式";
                break;
        }

        GetControl<TextMeshProUGUI>("modelText (TMP)").text = mode;
        
    }

    private void SwitchTitleImg()
    {
        var systemInfo = GameManager.DataMgr.GetSystemInfo(GameManager.Instance.systemId);
        GetControl<Image>("TopBgImg").sprite =
            GameManager.ResourcesMgr.Load<Sprite>(Const.UI_MainTitlePanel + systemInfo.titleName);
    }

    private void SwitchUserName()
    {
        var userName = GameManager.ProcessMgr.userData.userName;
        GetControl<TextMeshProUGUI>("userNameText (TMP)").text = userName;
    }

    /// <summary>
    /// 按钮点击
    /// </summary>
    /// <param name="btnName"></param>
    protected override void OnClick(string btnName)
    {
        switch (btnName)
        {
            //TODO 退出提示框
            case "closeBtn":
                print("退出应用");
                GameManager.UIMgr.ShowPanel<UI_MessagePanel>(E_UI_Layer.System,
                    (panel) => { panel.Init("提示", "确定退出应用吗?", E_MessageType.Warning, () => { Application.Quit(); }); });
                break;
        }
    }
  
}