Added tablet view Added time Implemented reserve now buttons Implemented auto-scale Implemented reservation edit and deletion
108 lines
1.6 KiB
GDScript
108 lines
1.6 KiB
GDScript
@tool
|
|
extends HBoxContainer
|
|
|
|
enum Type {
|
|
Line,
|
|
Text,
|
|
Calendar,
|
|
Time
|
|
}
|
|
|
|
@export var title : String:
|
|
set(value):
|
|
title = value
|
|
set_title(title)
|
|
|
|
@export var type := Type.Line:
|
|
set(value):
|
|
type = value
|
|
set_type(type)
|
|
|
|
@export var editable : bool = true:
|
|
set(value):
|
|
editable = value
|
|
set_editable(value)
|
|
|
|
@onready var _label = $FieldLabelControl/FieldLabel
|
|
@onready var _line = $Line
|
|
@onready var _calendar = $Calendar
|
|
@onready var _time = $Time
|
|
@onready var _text = $Text
|
|
|
|
var _type
|
|
|
|
func _ready():
|
|
set_title(title)
|
|
set_type(type)
|
|
|
|
func set_title(new_title):
|
|
if _label == null:
|
|
await ready
|
|
|
|
_label.text = new_title
|
|
|
|
func get_value():
|
|
match _type:
|
|
Type.Line:
|
|
return _line.text
|
|
Type.Text:
|
|
return _text.text
|
|
Type.Calendar:
|
|
return ""
|
|
Type.Time:
|
|
return {
|
|
"hours": _time.get_hours(),
|
|
"minutes": _time.get_minutes()
|
|
}
|
|
|
|
func set_value(value):
|
|
match _type:
|
|
Type.Line:
|
|
_line.text = value
|
|
Type.Text:
|
|
_text.text = value
|
|
Type.Calendar:
|
|
pass
|
|
Type.Time:
|
|
_time.set_time(value.hours, value.minutes)
|
|
|
|
func set_editable(value):
|
|
if _line == null:
|
|
await ready
|
|
|
|
_line.editable = value
|
|
_text.editable = value
|
|
_time.editable = value
|
|
|
|
func set_type(type):
|
|
if _line == null:
|
|
await ready
|
|
|
|
_line.visible = false
|
|
_text.visible = false
|
|
_calendar.visible = false
|
|
_time.visible = false
|
|
|
|
_type = type
|
|
|
|
match type:
|
|
Type.Line:
|
|
_line.visible = true
|
|
Type.Text:
|
|
_text.visible = true
|
|
Type.Calendar:
|
|
_calendar.visible = true
|
|
Type.Time:
|
|
_time.visible = true
|
|
|
|
func clean():
|
|
match _type:
|
|
Type.Line:
|
|
_line.text = ""
|
|
Type.Text:
|
|
_text.text = ""
|
|
Type.Calendar:
|
|
pass
|
|
Type.Time:
|
|
_time.clean()
|