bar can be resized in code

This commit is contained in:
Tabby 2026-06-01 00:13:23 +10:00
parent b9d5940fac
commit 181f3eaf50
3 changed files with 60 additions and 17 deletions

View file

@ -1,6 +1,7 @@
extends Control
var taskbar_height : int = 50
var bar_size : int = 10
@export var bar: TextureProgressBar
@export var label: Label
@export var options_window: Window
@ -21,19 +22,30 @@ func _ready() -> void:
func setup_window():
var screen_size : Vector2i = DisplayServer.screen_get_size() # get current screen size
var screen_pos : Vector2i = DisplayServer.screen_get_position(DisplayServer.SCREEN_OF_MAIN_WINDOW) # get the posiiton of the window on the virtual display
get_window().min_size = Vector2i(1,1) # weird godot bug where the min screen size is 64x64 unless set in code
if bar_position == Position.Bottom:
get_window().size = Vector2i(screen_size.x, 10) # set window size to be 10 high and screen width wide
DisplayServer.window_set_position(screen_pos + Vector2i(0,screen_size.y-10-taskbar_height)) # set position of window to be just above the taskbar
if screen_size.x > 2560:
bar_size = 20
get_window().size = Vector2i(screen_size.x, bar_size) # set window size to be 10 high and screen width wide
size = Vector2i(screen_size.x, bar_size)
DisplayServer.window_set_position(screen_pos + Vector2i(0,screen_size.y-bar_size-taskbar_height)) # set position of window to be just above the taskbar
position.y = 0 # set position of bar to be where it should be (moves when we change the window size)
label.label_settings.font_size = (bar_size/10)*10
if bar_position == Position.Right:
get_window().size = Vector2i(10, screen_size.y) # set window size to be 10 high and screen width wide
if screen_size.y > 1440:
bar_size = 20
get_window().size = Vector2i(bar_size, screen_size.y) # set window size to be 10 high and screen width wide
size.x = screen_size.y - taskbar_height
DisplayServer.window_set_position(screen_pos + Vector2i(screen_size.x-10,0)) # set position of window to be just above the taskbar
size.y = bar_size
label.label_settings.font_size = (bar_size/10)*10
DisplayServer.window_set_position(screen_pos + Vector2i(screen_size.x-bar_size,0)) # set position of window to be just above the taskbar
position.y = 0 # set position of bar to be where it should be (moves when we change the window size)
position.x = 10
position.x = bar_size
rotation_degrees = 90
# Called every frame. 'delta' is the elapsed time since the previous frame.