talkpal-frontend/scenes/board/reservation.gd
DarkSlein db273bab0b Fixed wrong reservaiton time view
Redone reservation indent logic

Web build added
2025-02-15 12:51:07 +03:00

70 lines
1.6 KiB
GDScript

extends Control
class_name Reservation
const Colors = {
1: Color("00b1a1d6"),
2: Color("f431e0d6"),
3: Color("eb7130d6")
}
enum Fonts {
BIG,
MEDIUM
}
@onready var _main: Main = get_tree().get_current_scene()
@onready var _title = $Vertical/Horizontal/Section/SectionPanel/SectionLabel
@onready var _panel = $Vertical/Horizontal/Section/SectionPanel
@onready var _indent = $Vertical/Indent
var _hour_size : int
var _minutes : int
var _id : String
func _ready():
initialize_signals()
func _process(delta):
_process_hour_size()
func _process_hour_size():
_hour_size = get_viewport_rect().size.y/15
_panel.size.y = _minutes * _hour_size / 60
custom_minimum_size.y = _panel.size.y
func initialize_signals():
_panel.gui_input.connect(_on_section_panel_gui_input)
func set_title(title):
_title.text = title
func set_start_time(minutes):
_indent.set_minutes(minutes)
func set_duration_time(minutes):
_minutes = minutes
func set_color(color):
var new_style_box: StyleBoxFlat = _panel.get("theme_override_styles/panel").duplicate()
new_style_box.bg_color = Colors[color]
_panel.set("theme_override_styles/panel", new_style_box)
func set_font(font: Fonts):
match font:
Fonts.BIG:
_title.theme = load("res://assets/themes/big.tres")
Fonts.MEDIUM:
_title.theme = load("res://assets/themes/medium.tres")
func set_id(id):
_id = id
func _on_section_panel_gui_input(event):
if event is InputEventScreenTouch or (event is InputEventMouseButton and event.pressed):
print("emit open reservation info signal")
var repo = _main.get_reservation_repo()
repo.set_current_reservation_id(_id)
_main.load_page(Main.Pages.ReservationEdit, true)