Add persistent light and dark themes
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
extends SceneTree
|
||||
|
||||
const Style := preload("res://scripts/ui/ui_style.gd")
|
||||
|
||||
var failures := 0
|
||||
|
||||
|
||||
func _initialize() -> void:
|
||||
Style.set_dark_mode(true)
|
||||
var root := Control.new()
|
||||
var background := ColorRect.new()
|
||||
background.color = Style.BACKGROUND
|
||||
root.add_child(background)
|
||||
var panel := PanelContainer.new()
|
||||
panel.add_theme_stylebox_override("panel", Style.panel_box(Color("172337"), Color("405475")))
|
||||
root.add_child(panel)
|
||||
|
||||
Style.set_dark_mode(false)
|
||||
Style.refresh_tree(root, true)
|
||||
_assert(background.color.is_equal_approx(Style.BACKGROUND), "background should switch to light mode")
|
||||
_assert(root.theme.get_color("default_color", "RichTextLabel").is_equal_approx(Style.TEXT), "rich text should use the light text color")
|
||||
var light_box := panel.get_theme_stylebox("panel") as StyleBoxFlat
|
||||
_assert(light_box.bg_color.is_equal_approx(Color("fffffe")), "custom panel surface should switch to light mode")
|
||||
|
||||
Style.set_dark_mode(true)
|
||||
Style.refresh_tree(root, false)
|
||||
_assert(background.color.is_equal_approx(Style.BACKGROUND), "background should switch back to dark mode")
|
||||
_assert(root.theme.get_color("default_color", "RichTextLabel").is_equal_approx(Style.TEXT), "rich text should use the dark text color")
|
||||
var dark_box := panel.get_theme_stylebox("panel") as StyleBoxFlat
|
||||
_assert(dark_box.bg_color.is_equal_approx(Color("172337")), "custom panel surface should switch back to dark mode")
|
||||
|
||||
root.free()
|
||||
quit(1 if failures > 0 else 0)
|
||||
|
||||
|
||||
func _assert(condition: bool, message: String) -> void:
|
||||
if condition:
|
||||
return
|
||||
failures += 1
|
||||
push_error(message)
|
||||
@@ -0,0 +1 @@
|
||||
uid://bm47u1leamc1h
|
||||
Reference in New Issue
Block a user