前几天忘了上传了上传一下
This commit is contained in:
87
Script/Dialog/AcceptDialog.gd
Normal file
87
Script/Dialog/AcceptDialog.gd
Normal file
@@ -0,0 +1,87 @@
|
||||
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("取消按钮被点击")
|
||||
Reference in New Issue
Block a user