extends MarginContainer
class_name SafeUI


@export var apply_margin_left: bool
@export var apply_margin_right: bool 
@export var apply_margin_top: bool
@export var apply_margin_bottom: bool


func set_safe_margins(scaling_factor: float):
	var cutouts: Array[Rect2] = DisplayServer.get_display_cutouts()

	var left
	var right
	var top
	var bottom

	if len(cutouts) == 0:
		left = 8
		right = 8
		top = 8
		bottom = 8
	else:
		var screen: Vector2i = DisplayServer.screen_get_size()
		var rect: Rect2i = DisplayServer.get_display_safe_area()
		left = max(8, rect.position.x)
		right = max(8, screen.x - rect.end.x)
		top = max(8, rect.position.y)
		bottom = max(8, screen.y - rect.end.y)

	print("[SafeUI] Left margin is: ", left)
	print("[SafeUI] Right margin is: ", right)
	print("[SafeUI] Top margin is: ", top)
	print("[SafeUI] Bottom margin is: ", bottom)

	if apply_margin_left:
		add_theme_constant_override("margin_left", left / scaling_factor)
	if apply_margin_right:
		add_theme_constant_override("margin_right", right / scaling_factor)
	if apply_margin_top:
		add_theme_constant_override("margin_top", top / scaling_factor)
	if apply_margin_bottom:
		add_theme_constant_override("margin_bottom", bottom / scaling_factor)