﻿using UnityEngine;
using System.Collections;

namespace ProGrids
{
	/**
	 * A substitute for GUIContent that offers some additional functionality.
	 */
	[System.Serializable]
	public class pg_ToggleContent
	{
		public string text_on, text_off;
		public Texture2D image_on, image_off;
		public string tooltip;

		GUIContent gc = new GUIContent();

		public pg_ToggleContent(string t_on, string t_off, string tooltip)
		{
			this.text_on = t_on;
			this.text_off = t_off;
			this.image_on = (Texture2D)null;
			this.image_off = (Texture2D)null;
			this.tooltip = tooltip;

			gc.tooltip = tooltip;
		}

		public pg_ToggleContent(string t_on, string t_off, Texture2D i_on, Texture2D i_off, string tooltip)
		{
			this.text_on = t_on;
			this.text_off = t_off;
			this.image_on = i_on;
			this.image_off = i_off;
			this.tooltip = tooltip;

			gc.tooltip = tooltip;
		}

		public static bool ToggleButton(Rect r, pg_ToggleContent content, bool enabled, GUIStyle imageStyle, GUIStyle altStyle)
		{
			content.gc.image = enabled ? content.image_on : content.image_off;
			content.gc.text = content.gc.image == null ? (enabled ? content.text_on : content.text_off) : "";

			return GUI.Button(r, content.gc, content.gc.image != null ? imageStyle : altStyle);
		}
	}
}
