PageRenderTime 54ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/Scenes/Tests/UIThemeTests.cs

#
C# | 126 lines | 97 code | 13 blank | 16 comment | 0 complexity | a07b39c48d8cdd9a4929449215b69b20 MD5 | raw file
Possible License(s): Apache-2.0
  1. using Delta.Engine;
  2. using Delta.Rendering.Basics.Fonts;
  3. using Delta.Scenes.UserInterfaces;
  4. using Delta.Scenes.UserInterfaces.Controls;
  5. using Delta.Scenes.UserInterfaces.Designs;
  6. using Delta.Utilities.Datatypes;
  7. using NUnit.Framework;
  8. namespace Delta.Scenes.Tests
  9. {
  10. /// <summary>
  11. /// UITheme tests
  12. /// </summary>
  13. public class UIThemeTests
  14. {
  15. #region CreateRedTheme (LongRunning)
  16. /// <summary>
  17. /// Create red theme
  18. /// </summary>
  19. [Test, Category("Visual")]
  20. private static Theme CreateRedTheme()
  21. {
  22. Theme redTheme = new Theme("<RedTheme>")
  23. {
  24. #region Label design
  25. LabelDesign = new TextControlDesign
  26. {
  27. Background = BaseTheme.GetUIMaterial("Panel"),
  28. Hover = BaseTheme.GetUIMaterial("Panel", BaseTheme.DefaultHoverColor),
  29. TextFont = new Font(Font.Default, BaseTheme.DefaultTextColor),
  30. },
  31. #endregion
  32. #region Button design
  33. ButtonDesign = new TextControlDesign
  34. {
  35. Background = BaseTheme.GetUIMaterial("ButtonBackground"),
  36. Hover = BaseTheme.GetUIMaterial("ButtonHover",
  37. BaseTheme.DefaultHoverColor),
  38. TextFont = new Font(Font.Default, BaseTheme.DefaultTextColor),
  39. Pressed = BaseTheme.GetUIMaterial("ButtonPressed",
  40. BaseTheme.DefaultHoverColor),
  41. },
  42. #endregion
  43. #region Checkbox design
  44. CheckboxDesign = new CheckboxDesign
  45. {
  46. TextBackground = BaseTheme.GetUIMaterial("Panel"),
  47. UncheckedSymbol = BaseTheme.GetUIMaterial("CheckboxOff"),
  48. CheckedSymbol = BaseTheme.GetUIMaterial("CheckboxOn"),
  49. UncheckedSymbolHover = BaseTheme.GetUIMaterial("CheckboxOffHover"),
  50. CheckedSymbolHover = BaseTheme.GetUIMaterial("CheckboxOnHover"),
  51. TextFont = new Font(Font.Default, BaseTheme.DefaultTextColor),
  52. },
  53. #endregion
  54. #region Slider design
  55. SliderDesign = new SliderDesign
  56. {
  57. // Finally we normally don't need a background, because we have
  58. // the "TrackerbarDesign" instead for it (for the moment)
  59. Trackerbar = BaseTheme.GetUIMaterial("SliderBackground"),
  60. Tracker = BaseTheme.GetUIMaterial("Slider"),
  61. Hover = BaseTheme.GetUIMaterial("SliderHover"),
  62. TextFont = new Font(Font.Default, BaseTheme.DefaultTextColor),
  63. },
  64. #endregion
  65. };
  66. return redTheme;
  67. }
  68. #endregion
  69. #region RedTheme (LongRunning)
  70. /// <summary>
  71. /// Red theme
  72. /// </summary>
  73. [Test, Category("Visual")]
  74. public static void RedTheme()
  75. {
  76. // Our UI scene which manages our controls
  77. Screen testScene = new Screen();
  78. Label testLabel = new Label
  79. {
  80. LocalArea = Rectangle.FromCenter(0.25f, 0.35f, 0.08f, 0.02f),
  81. Text = "RedLabel",
  82. };
  83. testScene.Add(testLabel);
  84. Button testButton = new Button
  85. {
  86. LocalArea = Rectangle.FromCenter(0.75f, 0.35f, 0.25f, 0.1f),
  87. Text = "RedButton",
  88. };
  89. testScene.Add(testButton);
  90. Checkbox testCheckbox = new Checkbox
  91. {
  92. LocalArea = Rectangle.FromCenter(0.25f, 0.65f, 0.4f, 0.05f),
  93. Text = "RedCheckbox",
  94. IsChecked = true,
  95. };
  96. testScene.Add(testCheckbox);
  97. Slider testSlider = new Slider
  98. {
  99. LocalArea = Rectangle.FromCenter(0.75f, 0.65f, 0.4f, 0.05f),
  100. Text = "RedSlider",
  101. };
  102. testScene.Add(testSlider);
  103. Theme.Current = CreateRedTheme();
  104. // Open now the scene to "activate" for the test
  105. testScene.Open();
  106. // We just call here the "StartTest()" to display the image, but we
  107. // don't need to call the "Image.Draw()" explicitely, because this
  108. // already handled automatically by the UI manager
  109. Application.Start();
  110. }
  111. #endregion
  112. }
  113. }