extends AcceptDialog

@export var dialog_min_size := Vector2(400, 200)
@export var ok_text := "确认"
@export var cancel_text := "取消"

func _ready() -> void:
	# 设置弹窗最小尺寸
	self.set("rect_min_size", dialog_min_size)

	# 设置标题和内容（可通过函数修改）
	set_dialog_title("默认标题")
	set_dialog_content("默认内容")

	# 添加取消按钮
	var cancel_btn = self.add_cancel_button(cancel_text)
	_customize_button(cancel_btn)

	# 获取并设置确认按钮
	var ok_btn = self.get_ok_button()
	ok_btn.text = ok_text
	_customize_button(ok_btn)

	# 设置按钮样式属性
	self.add_theme_constant_override("buttons_min_height", 40)
	self.add_theme_constant_override("buttons_min_width", 120)
	self.add_theme_constant_override("buttons_separation", 16)

	# 添加样式美化
	_apply_custom_theme()

func set_dialog_position(new_position :Vector2):
	self.position = new_position
	pass

func set_dialog_title(title: String) -> void:
	self.title = title


func set_dialog_content(content: String) -> void:
	self.dialog_text = content


func set_ok_text(text: String) -> void:
	ok_text = text
	get_ok_button().text = text


func set_cancel_text(text: String) -> void:
	cancel_text = text
	# 注意：add_cancel_button 只能调用一次，想动态更新需要重建按钮


func _customize_button(button: Button) -> void:
	button.custom_minimum_size = Vector2(120, 40)
	button.add_theme_color_override("font_color", Color.WHITE)
	button.add_theme_color_override("font_color_pressed", Color.WHITE)
	button.add_theme_color_override("font_color_hover", Color.WHITE)
	button.add_theme_color_override("bg_color", Color("3c82f6"))  # 蓝色
	button.add_theme_color_override("bg_color_hover", Color("2563eb"))
	button.add_theme_color_override("bg_color_pressed", Color("1e40af"))
	button.add_theme_color_override("bg_color_disabled", Color("94a3b8"))


func _apply_custom_theme() -> void:
	# 设置面板背景颜色
	var panel_style := StyleBoxFlat.new()
	#panel_style.bg_color = Color.AQUA  # very light gray
	panel_style.set_border_width_all(2)
	#panel_style.border_color = Color("cbd5e1")

	self.add_theme_stylebox_override("panel", panel_style)  # ✅ 修正方法名

	# 设置文字颜色（内容部分）
	var label = self.get_label()
	label.add_theme_color_override("font_color", Color("1e293b"))  # 深灰蓝



# 确认按钮点击
func _on_confirmed() -> void:
	print("确认按钮被点击")


# 取消按钮点击
func _on_canceled() -> void:
	print("取消按钮被点击")
