/Scenes/Tests/UIThemeTests.cs
# · C# · 126 lines · 97 code · 13 blank · 16 comment · 0 complexity · a07b39c48d8cdd9a4929449215b69b20 MD5 · raw file
- using Delta.Engine;
- using Delta.Rendering.Basics.Fonts;
- using Delta.Scenes.UserInterfaces;
- using Delta.Scenes.UserInterfaces.Controls;
- using Delta.Scenes.UserInterfaces.Designs;
- using Delta.Utilities.Datatypes;
- using NUnit.Framework;
-
- namespace Delta.Scenes.Tests
- {
- /// <summary>
- /// UITheme tests
- /// </summary>
- public class UIThemeTests
- {
- #region CreateRedTheme (LongRunning)
- /// <summary>
- /// Create red theme
- /// </summary>
- [Test, Category("Visual")]
- private static Theme CreateRedTheme()
- {
- Theme redTheme = new Theme("<RedTheme>")
- {
- #region Label design
- LabelDesign = new TextControlDesign
- {
- Background = BaseTheme.GetUIMaterial("Panel"),
- Hover = BaseTheme.GetUIMaterial("Panel", BaseTheme.DefaultHoverColor),
- TextFont = new Font(Font.Default, BaseTheme.DefaultTextColor),
- },
- #endregion
-
- #region Button design
- ButtonDesign = new TextControlDesign
- {
- Background = BaseTheme.GetUIMaterial("ButtonBackground"),
- Hover = BaseTheme.GetUIMaterial("ButtonHover",
- BaseTheme.DefaultHoverColor),
- TextFont = new Font(Font.Default, BaseTheme.DefaultTextColor),
- Pressed = BaseTheme.GetUIMaterial("ButtonPressed",
- BaseTheme.DefaultHoverColor),
- },
- #endregion
-
- #region Checkbox design
- CheckboxDesign = new CheckboxDesign
- {
- TextBackground = BaseTheme.GetUIMaterial("Panel"),
- UncheckedSymbol = BaseTheme.GetUIMaterial("CheckboxOff"),
- CheckedSymbol = BaseTheme.GetUIMaterial("CheckboxOn"),
- UncheckedSymbolHover = BaseTheme.GetUIMaterial("CheckboxOffHover"),
- CheckedSymbolHover = BaseTheme.GetUIMaterial("CheckboxOnHover"),
- TextFont = new Font(Font.Default, BaseTheme.DefaultTextColor),
- },
- #endregion
-
- #region Slider design
- SliderDesign = new SliderDesign
- {
- // Finally we normally don't need a background, because we have
- // the "TrackerbarDesign" instead for it (for the moment)
- Trackerbar = BaseTheme.GetUIMaterial("SliderBackground"),
- Tracker = BaseTheme.GetUIMaterial("Slider"),
- Hover = BaseTheme.GetUIMaterial("SliderHover"),
- TextFont = new Font(Font.Default, BaseTheme.DefaultTextColor),
- },
- #endregion
- };
-
- return redTheme;
- }
- #endregion
-
- #region RedTheme (LongRunning)
- /// <summary>
- /// Red theme
- /// </summary>
- [Test, Category("Visual")]
- public static void RedTheme()
- {
- // Our UI scene which manages our controls
- Screen testScene = new Screen();
-
- Label testLabel = new Label
- {
- LocalArea = Rectangle.FromCenter(0.25f, 0.35f, 0.08f, 0.02f),
- Text = "RedLabel",
- };
- testScene.Add(testLabel);
-
- Button testButton = new Button
- {
- LocalArea = Rectangle.FromCenter(0.75f, 0.35f, 0.25f, 0.1f),
- Text = "RedButton",
- };
- testScene.Add(testButton);
-
- Checkbox testCheckbox = new Checkbox
- {
- LocalArea = Rectangle.FromCenter(0.25f, 0.65f, 0.4f, 0.05f),
- Text = "RedCheckbox",
- IsChecked = true,
- };
- testScene.Add(testCheckbox);
-
- Slider testSlider = new Slider
- {
- LocalArea = Rectangle.FromCenter(0.75f, 0.65f, 0.4f, 0.05f),
- Text = "RedSlider",
- };
- testScene.Add(testSlider);
-
- Theme.Current = CreateRedTheme();
-
- // Open now the scene to "activate" for the test
- testScene.Open();
-
- // We just call here the "StartTest()" to display the image, but we
- // don't need to call the "Image.Draw()" explicitely, because this
- // already handled automatically by the UI manager
- Application.Start();
- }
- #endregion
- }
- }