using System;  
 | 
using UnityEngine;  
 | 
using UnityEditor;  
 | 
  
 | 
namespace qtools.qhierarchy.phelper  
 | 
{  
 | 
    public class QColorUtils  
 | 
    {  
 | 
        private static Color defaultColor = new Color(1.0f, 1.0f, 1.0f, 1.0f);  
 | 
  
 | 
        public static void setDefaultColor(Color defaultColor)  
 | 
        {  
 | 
            QColorUtils.defaultColor = defaultColor;  
 | 
        }  
 | 
  
 | 
        public static void setColor(Color newColor)  
 | 
        {  
 | 
            GUI.color = newColor;  
 | 
        }  
 | 
  
 | 
        public static void setColor(Color newColor, float multiColor, float multiAlpha)  
 | 
        {  
 | 
            newColor.r *= multiColor;  
 | 
            newColor.g *= multiColor;  
 | 
            newColor.b *= multiColor;  
 | 
            newColor.a *= multiAlpha;  
 | 
            GUI.color = newColor;  
 | 
        }  
 | 
  
 | 
        public static void clearColor()  
 | 
        {  
 | 
            GUI.color = defaultColor;  
 | 
        }  
 | 
  
 | 
        public static Color fromString(string color)  
 | 
        {  
 | 
            return fromInt(Convert.ToUInt32(color,16));  
 | 
        }  
 | 
          
 | 
        public static string toString(Color color)  
 | 
        {  
 | 
            uint intColor = toInt(color);  
 | 
            return intColor.ToString("X8");  
 | 
        }  
 | 
  
 | 
        public static Color fromInt(uint color)  
 | 
        {  
 | 
            return new Color(((color >> 16) & 0xFF) / 255.0f,  
 | 
                             ((color >>  8) & 0xFF) / 255.0f,  
 | 
                             ((color >>  0) & 0xFF) / 255.0f,  
 | 
                             ((color >> 24) & 0xFF) / 255.0f);  
 | 
        }  
 | 
          
 | 
        public static uint toInt(Color color)  
 | 
        {  
 | 
            return  (uint)((byte)(color.r * 255) << 16) +   
 | 
                    (uint)((byte)(color.g * 255) << 8) +   
 | 
                    (uint)((byte)(color.b * 255) << 0) +   
 | 
                    (uint)((byte)(color.a * 255) << 24);  
 | 
        }  
 | 
    }  
 | 
}  
 | 
  
 |