mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
feat(UI): 为提示框添加类型支持并改进样式
- 新增MessageType枚举定义提示类型(INFO/WARNING/ERROR) - 根据不同类型显示不同颜色样式 - 修改所有调用showTip的地方使用新的类型参数 - 移除自动销毁时间参数,统一使用固定显示时长
This commit is contained in:
@@ -2,7 +2,19 @@
|
||||
extends PanelContainer
|
||||
class_name TipBox
|
||||
|
||||
enum MessageType {
|
||||
INFO,
|
||||
WARNING,
|
||||
ERROR,
|
||||
}
|
||||
|
||||
@export var text: String = "nothing"
|
||||
@export var messageType: MessageType = MessageType.INFO
|
||||
@export var colorMap = {
|
||||
MessageType.INFO: Color.BLUE,
|
||||
MessageType.WARNING: Color.ORANGE,
|
||||
MessageType.ERROR: Color.RED,
|
||||
}
|
||||
|
||||
@onready var label: RichTextLabel = $%label
|
||||
@onready var animator: AnimationPlayer = $%animator
|
||||
@@ -10,6 +22,9 @@ class_name TipBox
|
||||
func _ready():
|
||||
label.text = text
|
||||
animator.play("show")
|
||||
var styleBox = get_theme_stylebox("panel").duplicate() as StyleBoxFlat
|
||||
styleBox.bg_color = colorMap[messageType]
|
||||
add_theme_stylebox_override("panel", styleBox)
|
||||
func _process(_delta):
|
||||
label.text = text
|
||||
|
||||
@@ -18,7 +33,8 @@ func destroy():
|
||||
await animator.animation_finished
|
||||
queue_free()
|
||||
|
||||
static func create(applyText: String) -> TipBox:
|
||||
static func create(applyText: String, applyMessageType: MessageType = MessageType.INFO) -> TipBox:
|
||||
var box = ComponentManager.getUIComponent("TipBox").instantiate()
|
||||
box.text = applyText
|
||||
box.messageType = applyMessageType
|
||||
return box
|
||||
|
||||
Reference in New Issue
Block a user