using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

namespace SimplifyXR
{
    [CreateAssetMenu(fileName = "Data", 
        menuName = "SimpleAR Pro/Standard Toolbox Assets/PanelTheme", order = 1)]
    public class PanelTheme : ScriptableObject
    {

        public Color primaryColor =
            new Color(0.5882353f, 0.7882354f, 0.2392157f, 1.0f);
        public Color secondaryColor =
            new Color(1f, 1f, 1f, 1f);
        public PanelButtonColors buttonColors;
        public Sprite themeOrganizationLogo;
        public Sprite themeProductLogo;
        public Sprite themeDeveloperALogo;
        public Sprite themeDeveloperBLogo;

        public Color GetColorByClass(ThemeClass themeClass)
        {
            switch (themeClass)
            {
                case ThemeClass.Primary:
                    return primaryColor;
                case ThemeClass.Secondary:
                    return secondaryColor;
                default:
                    return Color.white;
            }
        }

        public Sprite GetSpriteByClass(ThemeClass themeClass)
        {
            switch (themeClass)
            {
                case ThemeClass.CompanyLogo:
                    return themeOrganizationLogo;
                case ThemeClass.ProductLogo:
                    return themeProductLogo;
                case ThemeClass.DeveloperALogo:
                    return themeDeveloperALogo;
                case ThemeClass.DeveloperBLogo:
                    return themeDeveloperBLogo;
                default:
                    return null;
            }
        }

        public ColorBlock UpdateColorBlock(ColorBlock block)
        {
            block.normalColor = buttonColors.buttonColor;
            block.highlightedColor = buttonColors.buttonHoverColor;
            block.pressedColor = buttonColors.buttonColor;
            block.selectedColor = buttonColors.buttonColor;
            return block;
        }

    }

    [System.Serializable]
    public class PanelButtonColors
    {
        public Color buttonColor =
            new Color(0.5882353f, 0.7882354f, 0.2392157f, 1.0f);
        public Color buttonHoverColor =
            new Color(0.2392157f, 0.7648195f, 0.7882353f, 1.0f);
        public Color buttonPressedColor =
          new Color(1.0f, 1.0f, 1.0f, 1.0f);
        public Color buttonSelectedColor =
          new Color(1.0f, 0.7490196f, 0.2470588f, 1.0f);
        public Color buttonDisabledColor =
          new Color(0.6196078f, 0.6352941f, 0.6352941f, 1.0f);
    }


    public interface IThemable
    {
        public ThemeClass GetThemeClass();
        public Object GetThemeObject();
        public bool IsImageThemeable();
    }
}


