using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using MLEM.Extensions;

namespace MLEM.Ui.Style {
    /// <summary>
    /// The default, untextured <see cref="UiStyle"/>.
    /// Note that, as MLEM does not provide any texture or font assets, this default style is made up of single-color textures that were generated using <see cref="SpriteBatchExtensions.GenerateTexture"/>.
    /// </summary>
    public class UntexturedStyle : UiStyle {

        /// <summary>
        /// Creates a new untextured style with textures generated by the given sprite batch
        /// </summary>
        /// <param name="batch">The sprite batch to generate the textures with</param>
        public UntexturedStyle(SpriteBatch batch) {
            this.SelectionIndicator = batch.GenerateTexture(Color.Transparent, Color.Red);
            this.ButtonTexture = batch.GenerateTexture(Color.CadetBlue);
            this.PanelTexture = batch.GenerateTexture(Color.Gray);
            this.TextFieldTexture = batch.GenerateTexture(Color.MediumBlue);
            this.ScrollBarBackground = batch.GenerateTexture(Color.LightBlue);
            this.ScrollBarScrollerTexture = batch.GenerateTexture(Color.Blue);
            this.CheckboxTexture = batch.GenerateTexture(Color.LightBlue);
            this.CheckboxCheckmark = batch.GenerateTexture(Color.Blue).Region;
            this.RadioTexture = batch.GenerateTexture(Color.AliceBlue);
            this.RadioCheckmark = batch.GenerateTexture(Color.CornflowerBlue).Region;
            this.TooltipBackground = batch.GenerateTexture(Color.Black * 0.65F, Color.Black * 0.65F);
            this.ProgressBarTexture = batch.GenerateTexture(Color.RoyalBlue);
        }

    }
}
