@tool # ############################################################################ # # Copyright © 2019-2022 Frédéric Maquin # Licensed under the MIT License. # See LICENSE in the project root for license information. # ############################################################################ # extends Popup # A custom dialog showing a progress bar. # Hiding this type to prevent registration of "private" nodes. # See https://github.com/godotengine/godot-proposals/issues/1047 # class_name InkProgressDialog # ############################################################################ # # Nodes # ############################################################################ # @onready var _margin_container = $MarginContainer @onready var _vbox_container = $MarginContainer/VBoxContainer @onready var _title_label = $MarginContainer/VBoxContainer/TitleLabel @onready var _progress_bar = $MarginContainer/VBoxContainer/ProgressBar @onready var _current_step_label = $MarginContainer/VBoxContainer/CurrentStepLabel # ############################################################################ # # Properties # ############################################################################ # ## The title of the progress. var progress_title: String: get = get_progress_title, set = set_progress_title func set_progress_title(text: String): _title_label.text = text func get_progress_title() -> String: return _title_label.text ## The name of the current step. var current_step_name: String: get = get_current_step_name, set = set_current_step_name func set_current_step_name(text: String): _current_step_label.text = text func get_current_step_name() -> String: return _current_step_label.text ## The current progress. var progress: float: get: return _progress_bar.value set(value): _progress_bar.value = value func update_layout(scale: float) -> void: _margin_container.add_theme_constant_override("offset_right", 10 * scale) _margin_container.add_theme_constant_override("offset_top", 10 * scale) _margin_container.add_theme_constant_override("offset_left", 10 * scale) _margin_container.add_theme_constant_override("offset_bottom", 10 * scale) _vbox_container.add_theme_constant_override("separation", 5 * scale)