2019-08-10 21:37:10 +02:00
using System.Text ;
using Microsoft.Xna.Framework ;
using Microsoft.Xna.Framework.Graphics ;
2019-12-31 14:08:13 +01:00
using MLEM.Extensions ;
2019-08-10 21:37:10 +02:00
using MLEM.Font ;
namespace MLEM.Ui.Style {
2020-05-22 17:02:24 +02:00
/// <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>
2019-08-10 21:37:10 +02:00
public class UntexturedStyle : UiStyle {
2020-05-22 17:02:24 +02:00
/// <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>
2019-08-10 21:37:10 +02:00
public UntexturedStyle ( SpriteBatch batch ) {
2019-12-31 14:08:13 +01:00
this . SelectionIndicator = batch . GenerateTexture ( Color . Transparent , Color . Red ) ;
this . ButtonTexture = batch . GenerateTexture ( Color . CadetBlue ) ;
2019-08-10 21:37:10 +02:00
this . ButtonHoveredColor = Color . LightGray ;
2020-01-15 17:05:28 +01:00
this . ButtonDisabledColor = Color . Gray ;
2019-12-31 14:08:13 +01:00
this . PanelTexture = batch . GenerateTexture ( Color . Gray ) ;
this . TextFieldTexture = batch . GenerateTexture ( Color . MediumBlue ) ;
2019-08-10 21:37:10 +02:00
this . TextFieldHoveredColor = Color . LightGray ;
2019-12-31 14:08:13 +01:00
this . ScrollBarBackground = batch . GenerateTexture ( Color . LightBlue ) ;
this . ScrollBarScrollerTexture = batch . GenerateTexture ( Color . Blue ) ;
this . CheckboxTexture = batch . GenerateTexture ( Color . LightBlue ) ;
2019-08-13 21:23:20 +02:00
this . CheckboxHoveredColor = Color . LightGray ;
2019-12-31 14:08:13 +01:00
this . CheckboxCheckmark = batch . GenerateTexture ( Color . Blue ) . Region ;
this . RadioTexture = batch . GenerateTexture ( Color . AliceBlue ) ;
2019-08-13 21:23:20 +02:00
this . RadioHoveredColor = Color . LightGray ;
2019-12-31 14:08:13 +01:00
this . RadioCheckmark = batch . GenerateTexture ( Color . CornflowerBlue ) . Region ;
this . TooltipBackground = batch . GenerateTexture ( Color . Black * 0.65F , Color . Black * 0.65F ) ;
this . TooltipOffset = new Vector2 ( 2 , 3 ) ;
this . ProgressBarTexture = batch . GenerateTexture ( Color . RoyalBlue ) ;
2019-09-10 23:28:25 +02:00
this . ProgressBarColor = Color . White ;
2019-11-02 14:53:59 +01:00
this . ProgressBarProgressPadding = new Vector2 ( 1 ) ;
2019-09-10 23:28:25 +02:00
this . ProgressBarProgressColor = Color . Red ;
2019-08-10 21:37:10 +02:00
this . Font = new EmptyFont ( ) ;
}
2020-03-28 22:25:06 +01:00
private class EmptyFont : GenericFont {
2019-08-10 21:37:10 +02:00
2020-05-17 00:10:29 +02:00
public override GenericFont Bold = > this ;
public override GenericFont Italic = > this ;
2020-03-28 22:25:06 +01:00
public override float LineHeight = > 1 ;
2019-08-25 19:07:45 +02:00
2020-06-20 12:12:34 +02:00
protected override Vector2 MeasureChar ( char c ) {
2020-06-20 01:18:27 +02:00
return Vector2 . Zero ;
2019-08-10 21:37:10 +02:00
}
2020-03-28 22:25:06 +01:00
public override void DrawString ( SpriteBatch batch , string text , Vector2 position , Color color ) {
2019-08-10 21:37:10 +02:00
}
2020-03-28 22:25:06 +01:00
public override void DrawString ( SpriteBatch batch , string text , Vector2 position , Color color , float rotation , Vector2 origin , float scale , SpriteEffects effects , float layerDepth ) {
2019-08-10 21:37:10 +02:00
}
2020-03-28 22:25:06 +01:00
public override void DrawString ( SpriteBatch batch , string text , Vector2 position , Color color , float rotation , Vector2 origin , Vector2 scale , SpriteEffects effects , float layerDepth ) {
2019-08-10 21:37:10 +02:00
}
2020-03-28 22:25:06 +01:00
public override void DrawString ( SpriteBatch batch , StringBuilder text , Vector2 position , Color color ) {
2019-08-10 21:37:10 +02:00
}
2020-03-28 22:25:06 +01:00
public override void DrawString ( SpriteBatch batch , StringBuilder text , Vector2 position , Color color , float rotation , Vector2 origin , float scale , SpriteEffects effects , float layerDepth ) {
2019-08-10 21:37:10 +02:00
}
2020-03-28 22:25:06 +01:00
public override void DrawString ( SpriteBatch batch , StringBuilder text , Vector2 position , Color color , float rotation , Vector2 origin , Vector2 scale , SpriteEffects effects , float layerDepth ) {
2019-09-05 18:15:51 +02:00
}
2019-08-10 21:37:10 +02:00
}
}
}