SleepyClock/options_window.gd

118 lines
3 KiB
GDScript

extends Window
signal options_changed
@export var sleep_h: SpinBox
@export var sleep_m: SpinBox
@export var duration_h: SpinBox
@export var duration_m: SpinBox
@export var size_label: Label
@export var size_slider: HSlider
@export var bar_color: ColorPickerButton
@export var background_color: ColorPickerButton
@export var warning_color: ColorPickerButton
@export var trans_label: Label
@export var trans_slider: HSlider
func _init() -> void:
hide()
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
#validate inputs?, disable save button if somehow invalid?
if visible:
size_label.text = str(Data.save.size)+"px"
trans_label.text = str(roundi(Data.save.bar_transparency*100))+"%"
pass
func _on_close_requested() -> void:
hide()
pass # Replace with function body.
func _on_cancel_button_pressed() -> void:
Data.load_data()
options_changed.emit()
hide()
func _on_save_button_pressed() -> void:
if Data.save_data():
hide()
pass # Replace with function body.
func _on_visibility_changed() -> void:
#populate form
#print(Data.save.end_time)
sleep_h.value = int(Data.save.end_time/(60*60))
sleep_m.value = int((Data.save.end_time-sleep_h.value*60*60)/60)
duration_h.value = int(Data.save.duration/(60*60))
duration_m.value = int((Data.save.duration-duration_h.value*60*60)/60)
size_slider.value = Data.save.size
bar_color.color = Data.save.bar_color
background_color.color = Data.save.background_color
warning_color.color = Data.save.warning_color
trans_slider.value = Data.save.bar_transparency
pass # Replace with function body.
func _on_duration_value_changed(value: float) -> void:
var duration_seconds : float = 0
duration_seconds += duration_h.value * 60 * 60
duration_seconds += duration_m.value * 60
Data.save.duration = duration_seconds
pass # Replace with function body.
func _on_sleep_value_changed(value: float) -> void:
var end_seconds : float = 0
end_seconds += sleep_h.value * 60 * 60
end_seconds += sleep_m.value * 60
Data.save.end_time = end_seconds
pass # Replace with function body.
func _on_size_slider_value_changed(value: float) -> void:
Data.save.size = int(value)
options_changed.emit()
func _on_position_dropdown_item_selected(index: int) -> void:
if index == 0:
Data.save.position = Data.Position.Bottom
elif index == 1:
Data.save.position = Data.Position.Right
options_changed.emit()
func _on_bar_color_color_changed(color: Color) -> void:
Data.save.bar_color = color
options_changed.emit()
func _on_background_color_color_changed(color: Color) -> void:
Data.save.background_color = color
options_changed.emit()
func _on_warning_color_color_changed(color: Color) -> void:
Data.save.warning_color = color
options_changed.emit()
func _on_trans_slider_value_changed(value: float) -> void:
Data.save.bar_transparency = value
options_changed.emit()