diff --git a/Assets/DefaultTheme.tres b/Assets/DefaultTheme.tres index b0720be..39ea386 100644 --- a/Assets/DefaultTheme.tres +++ b/Assets/DefaultTheme.tres @@ -1,4 +1,4 @@ -[gd_resource type="Theme" load_steps=227 format=3 uid="uid://b8rk41gjual2b"] +[gd_resource type="Theme" load_steps=228 format=3 uid="uid://b8rk41gjual2b"] [ext_resource type="FontFile" uid="uid://501bous51s3p" path="res://Assets/Fonts/Inter-Regular.ttf" id="1_a74l0"] [ext_resource type="Texture2D" uid="uid://blqywcg2e22in" path="res://Assets/Icons/checked.svg" id="2_jlkvh"] @@ -1700,7 +1700,7 @@ corner_radius_bottom_left = 3 corner_detail = 3 anti_aliasing = false -[sub_resource type="Image" id="Image_3ih7l"] +[sub_resource type="Image" id="Image_8w8ju"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 3, 255, 255, 255, 41, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 40, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 41, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 67, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 67, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 67, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 67, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 40, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 3, 255, 255, 255, 40, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 40, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -1710,7 +1710,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_bk0hb"] -image = SubResource("Image_3ih7l") +image = SubResource("Image_8w8ju") [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_0hke8"] content_margin_left = 7.0 @@ -1723,7 +1723,7 @@ texture_margin_top = 6.0 texture_margin_right = 6.0 texture_margin_bottom = 6.0 -[sub_resource type="Image" id="Image_1xahl"] +[sub_resource type="Image" id="Image_tx7cq"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 6, 248, 248, 248, 102, 249, 249, 249, 168, 249, 249, 249, 168, 248, 248, 248, 101, 213, 213, 213, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 248, 248, 248, 102, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 248, 248, 248, 101, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 249, 249, 249, 168, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 249, 249, 249, 168, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 248, 248, 248, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 248, 248, 248, 101, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 250, 250, 250, 99, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 213, 213, 213, 6, 248, 248, 248, 101, 249, 249, 249, 168, 248, 248, 248, 168, 250, 250, 250, 99, 213, 213, 213, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -1733,7 +1733,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_uc42h"] -image = SubResource("Image_1xahl") +image = SubResource("Image_tx7cq") [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_asndq"] content_margin_left = 6.0 @@ -1746,7 +1746,7 @@ texture_margin_top = 5.0 texture_margin_right = 5.0 texture_margin_bottom = 5.0 -[sub_resource type="Image" id="Image_pbefk"] +[sub_resource type="Image" id="Image_8almr"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 213, 213, 213, 6, 180, 180, 180, 102, 181, 181, 181, 168, 181, 181, 181, 168, 179, 179, 179, 101, 170, 170, 170, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 180, 180, 180, 102, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 179, 179, 179, 101, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 168, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 181, 181, 181, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 168, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 179, 179, 179, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 179, 179, 179, 101, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 181, 181, 181, 99, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 170, 170, 170, 6, 179, 179, 179, 101, 181, 181, 181, 168, 179, 179, 179, 168, 181, 181, 181, 99, 170, 170, 170, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -1756,7 +1756,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_y6fi8"] -image = SubResource("Image_pbefk") +image = SubResource("Image_8almr") [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_7amsq"] content_margin_left = 7.0 @@ -1769,7 +1769,7 @@ texture_margin_top = 6.0 texture_margin_right = 6.0 texture_margin_bottom = 6.0 -[sub_resource type="Image" id="Image_gf5m0"] +[sub_resource type="Image" id="Image_kfbnc"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 7, 255, 255, 255, 19, 255, 255, 255, 19, 255, 255, 255, 7, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 7, 255, 255, 255, 19, 255, 255, 255, 19, 255, 255, 255, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -1779,7 +1779,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_lfhcu"] -image = SubResource("Image_gf5m0") +image = SubResource("Image_kfbnc") [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tef5f"] content_margin_left = 0.0 @@ -2437,6 +2437,15 @@ border_color = Color(0.337255, 0.619608, 1, 1) corner_detail = 1 anti_aliasing = false +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ek1lj"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(0.116078, 0.116078, 0.116078, 1) +corner_detail = 3 +anti_aliasing = false + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qr21i"] content_margin_left = 12.0 content_margin_top = 6.0 @@ -4415,8 +4424,11 @@ TextEdit/styles/read_only = SubResource("StyleBoxFlat_6ucq2") ThemeEditor/colors/preview_picker_overlay_color = Color(0.1, 0.1, 0.1, 0.25) ThemeEditor/styles/preview_picker_label = SubResource("StyleBoxFlat_jtsa3") ThemeEditor/styles/preview_picker_overlay = SubResource("StyleBoxFlat_qixj3") -Timeline/colors/line_primary_color = Color(0.517184, 0.517184, 0.517184, 1) +Timeline/colors/line_primary_color = Color(0.4, 0.4, 0.4, 1) Timeline/colors/line_secondary_color = Color(0.2, 0.2, 0.2, 1) +Timeline/constants/time_label_offset_x = 30 +Timeline/constants/time_label_offset_y = 20 +Timeline/styles/top_panel = SubResource("StyleBoxFlat_ek1lj") TooltipLabel/colors/font_color = Color(0.893137, 0.893137, 0.893137, 1) TooltipLabel/colors/font_shadow_color = Color(0, 0, 0, 0) TooltipPanel/styles/panel = SubResource("StyleBoxFlat_qr21i") diff --git a/Assets/Fonts/Inter-Regular.ttf.import b/Assets/Fonts/Inter-Regular.ttf.import index 8479dc6..b2dd5d7 100644 --- a/Assets/Fonts/Inter-Regular.ttf.import +++ b/Assets/Fonts/Inter-Regular.ttf.import @@ -14,7 +14,7 @@ dest_files=["res://.godot/imported/Inter-Regular.ttf-2ec9900abaf32134c660163ed92 Rendering=null antialiasing=1 -generate_mipmaps=false +generate_mipmaps=true disable_embedded_bitmaps=true multichannel_signed_distance_field=false msdf_pixel_range=8 diff --git a/Assets/Fonts/InterVariable.ttf b/Assets/Fonts/InterVariable.ttf new file mode 100644 index 0000000..4ab79e0 Binary files /dev/null and b/Assets/Fonts/InterVariable.ttf differ diff --git a/Assets/Fonts/InterVariable.ttf.import b/Assets/Fonts/InterVariable.ttf.import new file mode 100644 index 0000000..e035bad --- /dev/null +++ b/Assets/Fonts/InterVariable.ttf.import @@ -0,0 +1,40 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://ctw3g5gundhpj" +path="res://.godot/imported/InterVariable.ttf-09b44e72d6af299ef8705b08a9e9ca36.fontdata" + +[deps] + +source_file="res://Assets/Fonts/InterVariable.ttf" +dest_files=["res://.godot/imported/InterVariable.ttf-09b44e72d6af299ef8705b08a9e9ca36.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=true +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[{ +"chars": [], +"glyphs": [], +"name": "New Configuration", +"size": Vector2i(16, 0), +"variation_embolden": 0.0 +}] +language_support={} +script_support={} +opentype_features={} diff --git a/Controls/Track.tscn b/Controls/Track.tscn index ecd52de..93e8bcd 100644 --- a/Controls/Track.tscn +++ b/Controls/Track.tscn @@ -1,7 +1,15 @@ -[gd_scene load_steps=3 format=3 uid="uid://c3kajrpp2ux7"] +[gd_scene load_steps=5 format=3 uid="uid://c3kajrpp2ux7"] [ext_resource type="Theme" uid="uid://b8rk41gjual2b" path="res://Assets/DefaultTheme.tres" id="1_tbi88"] [ext_resource type="Texture2D" uid="uid://bwfbs4jxbia3o" path="res://Assets/Icons/microphone_track.svg" id="2_r2pin"] +[ext_resource type="FontFile" uid="uid://ctw3g5gundhpj" path="res://Assets/Fonts/InterVariable.ttf" id="3_12y3l"] + +[sub_resource type="FontVariation" id="FontVariation_lbdn3"] +base_font = ExtResource("3_12y3l") +variation_opentype = { +1869640570: 14, +2003265652: 500 +} [node name="Track" type="Control"] clip_children = 1 @@ -63,6 +71,7 @@ expand_mode = 2 [node name="TrackName" type="LineEdit" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls/IconAndName"] layout_mode = 2 size_flags_horizontal = 3 +theme_override_fonts/font = SubResource("FontVariation_lbdn3") text = "Track Name" expand_to_text_length = true context_menu_enabled = false diff --git a/Controls/Transport.tscn b/Controls/Transport.tscn index 776a3e1..2a50c9b 100644 --- a/Controls/Transport.tscn +++ b/Controls/Transport.tscn @@ -54,11 +54,11 @@ layout_mode = 2 [node name="CurrentTime" type="Label" parent="HBoxContainer/Time/HBoxContainer"] layout_mode = 2 -text = "00:00.00" +text = "00:00:00.00" [node name="VSeparator" type="VSeparator" parent="HBoxContainer/Time/HBoxContainer"] layout_mode = 2 [node name="Length" type="Label" parent="HBoxContainer/Time/HBoxContainer"] layout_mode = 2 -text = "00:00.00" +text = "00:00:00.00" diff --git a/Scripts/Timeline.gd b/Scripts/Timeline.gd index 6ffb8c5..b352830 100644 --- a/Scripts/Timeline.gd +++ b/Scripts/Timeline.gd @@ -2,21 +2,70 @@ class_name Timeline extends Control +@export var track_list: VBoxContainer + @export var font_scale: float = 1.0 @export var time_offset: float = 0.0 -@export var grid_space_seconds: float = 0.25 -@export var label_interval_seconds: float = 1.0 +@export var time_interval: float = 1000.0 # 1 second +@export var grid_space_ms: float = 250 # 0.25 seconds +@export var label_interval_ms: float = 1000.0 # 1 second @export var line_thickness: int = 1 -@export var primary_line_step: int = 4 +@export var major_line_step: int = 4 @export var cursor_width: int = 8 -@export var base_scale: float = 2.0 @export var zoom: float = 1.0 +@export var start_time: float = 0.0 +@export var end_time: float = 10000.0 # 10 seconds + @export var min_zoom: float = 0.1 +func format_time_ms_hours(ms: float) -> String: + var total_seconds = ms / 1000 + var hours = int(total_seconds / 3600) + var minutes = int(total_seconds / 60) % 60 + var seconds = int(total_seconds) % 60 + var milliseconds = fmod(ms, 1000.0) + return "%02d:%02d:%02d.%03d" % [hours, minutes, seconds, milliseconds] + +func format_time_ms_minutes(ms: float) -> String: + var total_seconds = ms / 1000 + var minutes = int(total_seconds / 60) % 60 + var seconds = int(total_seconds) % 60 + var milliseconds = fmod(ms, 1000.0) + return "%02d:%02d.%03d" % [minutes, seconds, milliseconds] + func _draw(): - draw_intervals() - # draw_top_time_labels() + var primary_color = get_theme_color("line_primary_color", "Timeline") + var secondary_color = get_theme_color("line_secondary_color", "Timeline") + + var font = get_theme_default_font() + var font_size = get_theme_default_font_size() + + var time_label_offset_x = get_theme_constant("time_label_offset_x", "Timeline") + var time_label_offset_y = get_theme_constant("time_label_offset_y", "Timeline") + + # top panel + var stylebox = get_theme_stylebox("top_panel", "Timeline") + draw_style_box(stylebox, Rect2(0.0, 0.0, size.x, 28.0)) + + var timeline_y := size.y + var screen_width := size.x + + var pixels_per_unit := 50.0 * zoom + + var start := (time_offset / pixels_per_unit) - 1 + var end := start + (screen_width / pixels_per_unit) + 2 + + for t in range(int(start), int(end) + 1): + var x := t * pixels_per_unit - time_offset + + if x >= 0 and x <= screen_width: + if t % 4 == 0: + draw_line(Vector2(x, 28.0), Vector2(x, size.y), primary_color, 2) + var time = t * int(time_interval) + draw_string(font, Vector2(x - time_label_offset_x, time_label_offset_y), format_time_ms_minutes(time), HORIZONTAL_ALIGNMENT_CENTER, -1, font_size, primary_color) + else: + draw_line(Vector2(x, 28.0), Vector2(x, timeline_y), secondary_color, 1) pass func _gui_input(event): @@ -28,44 +77,11 @@ func _gui_input(event): zoom *= zoom_factor queue_redraw() if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_WHEEL_LEFT: - time_offset -= 0.1 / zoom + time_offset -= 50 / zoom queue_redraw() if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_WHEEL_RIGHT: - time_offset += 0.1 / zoom + time_offset += 50 / zoom queue_redraw() zoom = max(min_zoom, zoom) time_offset = max(0.0, time_offset) - -func draw_intervals(): - var font = get_theme_default_font() - var font_size = get_theme_default_font_size() - - var current_width = size.x - var current_height = size.y - - var primary_color = get_theme_color("line_primary_color", "Timeline") - var secondary_color = get_theme_color("line_secondary_color", "Timeline") - - var interval = grid_space_seconds * base_scale * zoom * current_width - - var first_line_index = roundi(time_offset / grid_space_seconds) - var first_line_position = -(time_offset - (first_line_index * grid_space_seconds)) * interval - - var line_count = ceil(current_width / interval) + 4 - - var current_position = first_line_position - - for i in range(first_line_index, first_line_index + line_count): - if current_position > current_width: - break - - if current_position >= -interval: - var color = secondary_color - if i % primary_line_step == 0: - draw_string(font, Vector2(current_position, 0), str(i * grid_space_seconds), HORIZONTAL_ALIGNMENT_CENTER, -1, font_size * font_scale) - color = primary_color - - draw_line(Vector2(current_position, 0), Vector2(current_position, current_height), color, line_thickness) - - current_position += interval diff --git a/Views/MainView.tscn b/Views/MainView.tscn index 4032f1f..63605a5 100644 --- a/Views/MainView.tscn +++ b/Views/MainView.tscn @@ -58,6 +58,7 @@ grow_vertical = 2 [node name="MenuBar" type="MenuBar" parent="VBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 13 flat = true [node name="File" type="PopupMenu" parent="VBoxContainer/MenuBar"] @@ -146,9 +147,10 @@ layout = SubResource("Resource_20kxa") [node name="Tracks" parent="VBoxContainer/VSplitContainer/HSplitContainer/LeftDock" instance=ExtResource("5_rgxdu")] layout_mode = 2 -[node name="Timeline" parent="VBoxContainer/VSplitContainer/HSplitContainer" instance=ExtResource("7_xu70y")] +[node name="Timeline" parent="VBoxContainer/VSplitContainer/HSplitContainer" node_paths=PackedStringArray("track_list") instance=ExtResource("7_xu70y")] layout_mode = 2 size_flags_vertical = 3 +track_list = NodePath("../LeftDock/Tracks/VBoxContainer/TrackList") [node name="BottomDock" type="Container" parent="VBoxContainer/VSplitContainer"] visible = false @@ -177,3 +179,5 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 theme_override_styles/panel = SubResource("StyleBoxFlat_3f3qp") + +[editable path="VBoxContainer/VSplitContainer/HSplitContainer/LeftDock/Tracks"] diff --git a/Views/Timeline.tscn b/Views/Timeline.tscn index da3c587..6e5bf21 100644 --- a/Views/Timeline.tscn +++ b/Views/Timeline.tscn @@ -11,7 +11,7 @@ grow_horizontal = 2 grow_vertical = 2 size_flags_horizontal = 3 script = ExtResource("1_h2mev") -base_scale = 0.05 +end_time = 4000.0 [node name="ScrollBar" type="HScrollBar" parent="."] custom_minimum_size = Vector2(0, 20) @@ -25,7 +25,7 @@ grow_horizontal = 2 grow_vertical = 0 [node name="Panel" type="Panel" parent="."] -modulate = Color(0.329158, 0.329158, 0.329158, 1) +modulate = Color(0.674815, 0.674815, 0.674814, 1) show_behind_parent = true layout_mode = 1 anchors_preset = 15 diff --git a/Views/TrackView.tscn b/Views/TrackView.tscn index ca0cd85..62d6970 100644 --- a/Views/TrackView.tscn +++ b/Views/TrackView.tscn @@ -23,10 +23,20 @@ grow_vertical = 2 [node name="TrackList" type="VBoxContainer" parent="VBoxContainer"] custom_minimum_size = Vector2(128, 0) layout_mode = 2 +size_flags_vertical = 3 [node name="Track" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")] layout_mode = 2 +[node name="Track2" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")] +layout_mode = 2 + +[node name="Track3" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")] +layout_mode = 2 + +[node name="Track4" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")] +layout_mode = 2 + [node name="AddTrack" type="MenuButton" parent="VBoxContainer"] layout_mode = 2 icon = ExtResource("2_rekuu")