Polish CCS computer desktop
This commit is contained in:
@@ -278,30 +278,68 @@ stretch_mode = 0
|
||||
layout_mode = 0
|
||||
offset_left = 30.0
|
||||
offset_top = 32.0
|
||||
offset_right = 150.0
|
||||
offset_bottom = 142.0
|
||||
offset_right = 142.0
|
||||
offset_bottom = 138.0
|
||||
mouse_default_cursor_shape = 2
|
||||
tooltip_text = "View nurse vital signs"
|
||||
icon = ExtResource("10_vitals")
|
||||
icon_max_width = 48
|
||||
expand_icon = true
|
||||
text = "Vitals"
|
||||
icon_alignment = 1
|
||||
vertical_icon_alignment = 0
|
||||
|
||||
[node name="Label" type="Label" parent="ComputerOverlay/VitalsLauncher"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 12
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -34.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
mouse_filter = 2
|
||||
theme_override_colors/font_color = Color(0.96, 0.98, 1, 1)
|
||||
theme_override_colors/font_shadow_color = Color(0.01, 0.04, 0.07, 0.9)
|
||||
theme_override_constants/shadow_offset_x = 1
|
||||
theme_override_constants/shadow_offset_y = 2
|
||||
theme_override_font_sizes/font_size = 17
|
||||
text = "Vitals"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="MedicalHistoryLauncher" type="Button" parent="ComputerOverlay"]
|
||||
layout_mode = 0
|
||||
offset_left = 166.0
|
||||
offset_left = 158.0
|
||||
offset_top = 32.0
|
||||
offset_right = 342.0
|
||||
offset_bottom = 142.0
|
||||
offset_right = 294.0
|
||||
offset_bottom = 138.0
|
||||
mouse_default_cursor_shape = 2
|
||||
tooltip_text = "View medical history"
|
||||
icon = ExtResource("11_history")
|
||||
icon_max_width = 48
|
||||
expand_icon = true
|
||||
text = "Medical History"
|
||||
icon_alignment = 1
|
||||
vertical_icon_alignment = 0
|
||||
|
||||
[node name="Label" type="Label" parent="ComputerOverlay/MedicalHistoryLauncher"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 12
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -34.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
mouse_filter = 2
|
||||
theme_override_colors/font_color = Color(0.96, 0.98, 1, 1)
|
||||
theme_override_colors/font_shadow_color = Color(0.01, 0.04, 0.07, 0.9)
|
||||
theme_override_constants/shadow_offset_x = 1
|
||||
theme_override_constants/shadow_offset_y = 2
|
||||
theme_override_font_sizes/font_size = 16
|
||||
text = "Medical History"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="VitalsWindow" type="PanelContainer" parent="ComputerOverlay"]
|
||||
visible = false
|
||||
z_index = 2
|
||||
@@ -426,11 +464,9 @@ text = "Past Medical History"
|
||||
|
||||
[node name="Text" type="Label" parent="ComputerOverlay/MedicalHistoryWindow/Margin/Content"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_colors/font_color = Color(0.04, 0.09, 0.13, 1)
|
||||
theme_override_font_sizes/font_size = 22
|
||||
text = "No past medical history is available."
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="Close" type="Button" parent="ComputerOverlay"]
|
||||
layout_mode = 1
|
||||
|
||||
@@ -81,6 +81,8 @@ func _ready() -> void:
|
||||
resized.connect(_resize_computer_windows)
|
||||
_style_vitals_window()
|
||||
_style_computer_window(medical_history_window)
|
||||
_style_desktop_shortcut(vitals_launcher)
|
||||
_style_desktop_shortcut(medical_history_launcher)
|
||||
_resize_computer_windows()
|
||||
_update_clock()
|
||||
_schedule_patient_blink()
|
||||
@@ -387,6 +389,7 @@ func _render_vitals(vitals: Dictionary) -> void:
|
||||
vitals_rows.add_child(value_label)
|
||||
vitals_rows.visible = not rows.is_empty()
|
||||
vitals_empty.visible = rows.is_empty()
|
||||
_resize_computer_windows()
|
||||
|
||||
|
||||
func _build_vital_rows(vitals: Dictionary) -> Array[Dictionary]:
|
||||
@@ -454,16 +457,33 @@ func _style_computer_window(window: PanelContainer) -> void:
|
||||
window.add_theme_stylebox_override("panel", panel_style)
|
||||
|
||||
|
||||
func _style_desktop_shortcut(button: Button) -> void:
|
||||
var normal := StyleBoxEmpty.new()
|
||||
var hover := StyleBoxFlat.new()
|
||||
hover.bg_color = Color(0.82, 0.91, 0.97, 0.18)
|
||||
hover.border_color = Color(0.9, 0.96, 1.0, 0.5)
|
||||
hover.set_border_width_all(1)
|
||||
hover.set_corner_radius_all(8)
|
||||
var pressed := hover.duplicate() as StyleBoxFlat
|
||||
pressed.bg_color = Color(0.72, 0.86, 0.96, 0.28)
|
||||
button.add_theme_stylebox_override("normal", normal)
|
||||
button.add_theme_stylebox_override("hover", hover)
|
||||
button.add_theme_stylebox_override("pressed", pressed)
|
||||
button.add_theme_stylebox_override("focus", hover)
|
||||
|
||||
|
||||
func _resize_computer_windows() -> void:
|
||||
if vitals_window == null or medical_history_window == null:
|
||||
return
|
||||
var vital_row_count := vitals_rows.get_child_count() / 2
|
||||
var vitals_content_height := clampf(180.0 + float(vital_row_count) * 36.0, 300.0, 540.0)
|
||||
var vitals_size := Vector2(
|
||||
minf(720.0, maxf(320.0, size.x - 48.0)),
|
||||
minf(540.0, maxf(360.0, size.y - 48.0)))
|
||||
minf(vitals_content_height, maxf(300.0, size.y - 48.0)))
|
||||
_set_centered_window_rect(vitals_window, vitals_size, Vector2(-55.0, -25.0))
|
||||
var history_size := Vector2(
|
||||
minf(660.0, maxf(320.0, size.x - 48.0)),
|
||||
minf(420.0, maxf(300.0, size.y - 48.0)))
|
||||
minf(560.0, maxf(320.0, size.x - 48.0)),
|
||||
minf(300.0, maxf(260.0, size.y - 48.0)))
|
||||
_set_centered_window_rect(medical_history_window, history_size, Vector2(55.0, 25.0))
|
||||
|
||||
|
||||
|
||||
@@ -90,6 +90,9 @@ func _run() -> void:
|
||||
_assert(screen.active_scene.computer_overlay.get_node("Screen").stretch_mode == TextureRect.STRETCH_SCALE, "the computer should fill the viewport without side bars")
|
||||
_assert(screen.active_scene.vitals_launcher.visible, "the computer desktop should expose a Vitals app")
|
||||
_assert(screen.active_scene.medical_history_launcher.visible, "the computer desktop should expose a Medical History app")
|
||||
_assert(screen.active_scene.vitals_launcher.text.is_empty() and screen.active_scene.medical_history_launcher.text.is_empty(), "desktop shortcuts should place labels below centered icons")
|
||||
_assert(screen.active_scene.vitals_launcher.get_node("Label").text == "Vitals" and screen.active_scene.medical_history_launcher.get_node("Label").text == "Medical History", "desktop shortcut labels should remain readable")
|
||||
_assert(screen.active_scene.vitals_launcher.get_theme_stylebox("normal") is StyleBoxEmpty and screen.active_scene.medical_history_launcher.get_theme_stylebox("normal") is StyleBoxEmpty, "desktop shortcuts should not render permanent button tiles")
|
||||
screen.active_scene.vitals_launcher.pressed.emit()
|
||||
_assert(screen.active_scene.is_vitals_open(), "the Vitals app should open a nurse vital-sign window")
|
||||
_assert(screen.active_scene.vitals_header.get_node("Title").text == "Vitals", "the vital window should use the concise Vitals heading")
|
||||
@@ -98,6 +101,8 @@ func _run() -> void:
|
||||
screen.active_scene.medical_history_launcher.pressed.emit()
|
||||
_assert(screen.active_scene.is_vitals_open() and screen.active_scene.is_medical_history_open(), "both chart windows should be able to remain open")
|
||||
_assert(screen.active_scene.medical_history_text.text == "Hyperlipidemia", "Medical History should render the case-authored past medical history")
|
||||
_assert(screen.active_scene.medical_history_window.size.y <= 310.0, "Medical History should size closely to its short content (size %s, minimum %s)" % [screen.active_scene.medical_history_window.size, screen.active_scene.medical_history_window.get_combined_minimum_size()])
|
||||
_assert(screen.active_scene.vitals_window.size.y <= 410.0, "Vitals should size to its rendered measurement rows")
|
||||
_assert(screen.active_scene.medical_history_window.z_index > screen.active_scene.vitals_window.z_index, "the most recently opened chart window should come to the front")
|
||||
var original_history_position: Vector2 = screen.active_scene.medical_history_window.position
|
||||
screen.active_scene._set_medical_history_window_position(Vector2(90.0, 70.0))
|
||||
|
||||
Reference in New Issue
Block a user