extends Control const Brand := preload("res://scripts/ui/medmind_style.gd") const GAP := 6.0 const CORNER_RADIUS := 4 var filled_segments := 0 var total_segments := 4 var accent := Color.WHITE var dark := true func set_progress(next_filled: int, next_total: int, next_accent: Color, dark_mode: bool) -> void: filled_segments = next_filled total_segments = maxi(1, next_total) accent = next_accent dark = dark_mode queue_redraw() func _draw() -> void: var segment_width: float = (size.x - GAP * float(total_segments - 1)) / float(total_segments) if segment_width <= 0.0: return var filled_box := StyleBoxFlat.new() filled_box.bg_color = accent filled_box.set_corner_radius_all(CORNER_RADIUS) var track_box := StyleBoxFlat.new() track_box.bg_color = Brand.muted_color(dark).lerp(Brand.background_color(dark), 0.5) track_box.set_corner_radius_all(CORNER_RADIUS) for index in range(total_segments): var x: float = index * (segment_width + GAP) var rect := Rect2(x, 0.0, segment_width, size.y) draw_style_box(filled_box if index < filled_segments else track_box, rect)