Compare commits
No commits in common. "develop" and "stable" have entirely different histories.
48 changed files with 294 additions and 769 deletions
6
dist/example.png.import
vendored
6
dist/example.png.import
vendored
|
@ -3,15 +3,15 @@
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://beqhfqbyme6in"
|
uid="uid://beqhfqbyme6in"
|
||||||
path="res://.godot/imported/example.png-79ae4e30d20a5d2033286350990a93fe.ctex"
|
path="res://.godot/imported/example.png-47be253adf4d5d94d259a060339b95e0.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/dist/example.png"
|
source_file="res://SUI/dist/example.png"
|
||||||
dest_files=["res://.godot/imported/example.png-79ae4e30d20a5d2033286350990a93fe.ctex"]
|
dest_files=["res://.godot/imported/example.png-47be253adf4d5d94d259a060339b95e0.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
6
dist/sui.png.import
vendored
6
dist/sui.png.import
vendored
|
@ -3,15 +3,15 @@
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://db6wn76fb2bnu"
|
uid="uid://db6wn76fb2bnu"
|
||||||
path="res://.godot/imported/sui.png-c2630d6c0f48be3e5128a131222590e3.ctex"
|
path="res://.godot/imported/sui.png-06a43b445987005f6f28d7a54ee82d35.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/dist/sui.png"
|
source_file="res://SUI/dist/sui.png"
|
||||||
dest_files=["res://.godot/imported/sui.png-c2630d6c0f48be3e5128a131222590e3.ctex"]
|
dest_files=["res://.godot/imported/sui.png-06a43b445987005f6f28d7a54ee82d35.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://bvg3rkn8w7apl"
|
uid="uid://bvg3rkn8w7apl"
|
||||||
path="res://.godot/imported/Bold.ttf-9d02378de508f6c4574455afb9e0f76f.fontdata"
|
path="res://.godot/imported/Bold.ttf-22cba54e4f49541df0f88d22919fa43c.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/FiraCode/Bold.ttf"
|
source_file="res://SUI/fonts/FiraCode/Bold.ttf"
|
||||||
dest_files=["res://.godot/imported/Bold.ttf-9d02378de508f6c4574455afb9e0f76f.fontdata"]
|
dest_files=["res://.godot/imported/Bold.ttf-22cba54e4f49541df0f88d22919fa43c.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://bvluo6uibvwwo"
|
uid="uid://bvluo6uibvwwo"
|
||||||
path="res://.godot/imported/Light.ttf-5358520cff11f8deca184a7167eaf2b7.fontdata"
|
path="res://.godot/imported/Light.ttf-b7c03199b472b55574b9b45080c68c17.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/FiraCode/Light.ttf"
|
source_file="res://SUI/fonts/FiraCode/Light.ttf"
|
||||||
dest_files=["res://.godot/imported/Light.ttf-5358520cff11f8deca184a7167eaf2b7.fontdata"]
|
dest_files=["res://.godot/imported/Light.ttf-b7c03199b472b55574b9b45080c68c17.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://b1pxod4r5puw8"
|
uid="uid://b1pxod4r5puw8"
|
||||||
path="res://.godot/imported/Medium.ttf-86d1745537123a429e6bccd6d86eb8b0.fontdata"
|
path="res://.godot/imported/Medium.ttf-40e43fa0b24d32cf56e9d3d649b2df2c.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/FiraCode/Medium.ttf"
|
source_file="res://SUI/fonts/FiraCode/Medium.ttf"
|
||||||
dest_files=["res://.godot/imported/Medium.ttf-86d1745537123a429e6bccd6d86eb8b0.fontdata"]
|
dest_files=["res://.godot/imported/Medium.ttf-40e43fa0b24d32cf56e9d3d649b2df2c.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://dmyes0lwt4sgw"
|
uid="uid://dmyes0lwt4sgw"
|
||||||
path="res://.godot/imported/Regular.ttf-52cf847b22463b3df20f23164c25ab4e.fontdata"
|
path="res://.godot/imported/Regular.ttf-04045b5ea8a54f2ef953f12106a268da.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/FiraCode/Regular.ttf"
|
source_file="res://SUI/fonts/FiraCode/Regular.ttf"
|
||||||
dest_files=["res://.godot/imported/Regular.ttf-52cf847b22463b3df20f23164c25ab4e.fontdata"]
|
dest_files=["res://.godot/imported/Regular.ttf-04045b5ea8a54f2ef953f12106a268da.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://c2qswgll1vpc6"
|
uid="uid://c2qswgll1vpc6"
|
||||||
path="res://.godot/imported/Retina.ttf-1b39772f452475d30e5a51f5e07cc1ae.fontdata"
|
path="res://.godot/imported/Retina.ttf-3255d7691679a4e571c84d2485e39ad1.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/FiraCode/Retina.ttf"
|
source_file="res://SUI/fonts/FiraCode/Retina.ttf"
|
||||||
dest_files=["res://.godot/imported/Retina.ttf-1b39772f452475d30e5a51f5e07cc1ae.fontdata"]
|
dest_files=["res://.godot/imported/Retina.ttf-3255d7691679a4e571c84d2485e39ad1.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://m6urwfj4pmcw"
|
uid="uid://m6urwfj4pmcw"
|
||||||
path="res://.godot/imported/Jost-Black.ttf-2c635ee32d5da5865ec199bd682a2d50.fontdata"
|
path="res://.godot/imported/Jost-Black.ttf-d2b76427d7ff73b7de9d6cb2ebbbffd9.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-Black.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-Black.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-Black.ttf-2c635ee32d5da5865ec199bd682a2d50.fontdata"]
|
dest_files=["res://.godot/imported/Jost-Black.ttf-d2b76427d7ff73b7de9d6cb2ebbbffd9.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://c8pq1wpbkpcaj"
|
uid="uid://c8pq1wpbkpcaj"
|
||||||
path="res://.godot/imported/Jost-BlackItalic.ttf-7c2c0ed51407347a2a6fdca6b6852845.fontdata"
|
path="res://.godot/imported/Jost-BlackItalic.ttf-c46f41f0d59e6636f3e254b2a526b666.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-BlackItalic.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-BlackItalic.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-BlackItalic.ttf-7c2c0ed51407347a2a6fdca6b6852845.fontdata"]
|
dest_files=["res://.godot/imported/Jost-BlackItalic.ttf-c46f41f0d59e6636f3e254b2a526b666.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://b6kyv4fqc0h0r"
|
uid="uid://b6kyv4fqc0h0r"
|
||||||
path="res://.godot/imported/Jost-Bold.ttf-89758df4d1e4651df1f9f59f663b9998.fontdata"
|
path="res://.godot/imported/Jost-Bold.ttf-530330f4d453cedaf0fa5c530f0e9499.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-Bold.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-Bold.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-Bold.ttf-89758df4d1e4651df1f9f59f663b9998.fontdata"]
|
dest_files=["res://.godot/imported/Jost-Bold.ttf-530330f4d453cedaf0fa5c530f0e9499.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://dyie3a0vo05m6"
|
uid="uid://dyie3a0vo05m6"
|
||||||
path="res://.godot/imported/Jost-BoldItalic.ttf-5c2bdb46e5980b65ed9ca1075638d114.fontdata"
|
path="res://.godot/imported/Jost-BoldItalic.ttf-ce61bd5c22a68649a11234fc3f5045a4.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-BoldItalic.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-BoldItalic.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-BoldItalic.ttf-5c2bdb46e5980b65ed9ca1075638d114.fontdata"]
|
dest_files=["res://.godot/imported/Jost-BoldItalic.ttf-ce61bd5c22a68649a11234fc3f5045a4.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://dmal2c285wyd5"
|
uid="uid://dmal2c285wyd5"
|
||||||
path="res://.godot/imported/Jost-Book.ttf-e796e63ee3da21fdf38d9a3c4b3b676b.fontdata"
|
path="res://.godot/imported/Jost-Book.ttf-fcca27ee59160551b9f968d4a28f3094.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-Book.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-Book.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-Book.ttf-e796e63ee3da21fdf38d9a3c4b3b676b.fontdata"]
|
dest_files=["res://.godot/imported/Jost-Book.ttf-fcca27ee59160551b9f968d4a28f3094.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://cbwek1bifl4ug"
|
uid="uid://cbwek1bifl4ug"
|
||||||
path="res://.godot/imported/Jost-BookItalic.ttf-b20af08f46b9a9385e74f352e8542f31.fontdata"
|
path="res://.godot/imported/Jost-BookItalic.ttf-1620829af2a0daf59631f59a0bbfa89e.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-BookItalic.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-BookItalic.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-BookItalic.ttf-b20af08f46b9a9385e74f352e8542f31.fontdata"]
|
dest_files=["res://.godot/imported/Jost-BookItalic.ttf-1620829af2a0daf59631f59a0bbfa89e.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://ojsgind3ered"
|
uid="uid://ojsgind3ered"
|
||||||
path="res://.godot/imported/Jost-Hairline.ttf-d1dd71e771c1b42e0258e87923e65831.fontdata"
|
path="res://.godot/imported/Jost-Hairline.ttf-60a860c6f046fc64490aa060536a6c96.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-Hairline.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-Hairline.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-Hairline.ttf-d1dd71e771c1b42e0258e87923e65831.fontdata"]
|
dest_files=["res://.godot/imported/Jost-Hairline.ttf-60a860c6f046fc64490aa060536a6c96.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://qni4pu0bm308"
|
uid="uid://qni4pu0bm308"
|
||||||
path="res://.godot/imported/Jost-HairlineItalic.ttf-fb69b6a296010f64da381646abf766ae.fontdata"
|
path="res://.godot/imported/Jost-HairlineItalic.ttf-1f22e8ae5a4c4ea3cdc6663fef01e37c.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-HairlineItalic.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-HairlineItalic.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-HairlineItalic.ttf-fb69b6a296010f64da381646abf766ae.fontdata"]
|
dest_files=["res://.godot/imported/Jost-HairlineItalic.ttf-1f22e8ae5a4c4ea3cdc6663fef01e37c.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://c6pvexxexmc7r"
|
uid="uid://c6pvexxexmc7r"
|
||||||
path="res://.godot/imported/Jost-Heavy.ttf-13a86b042195fc082920b8b1790b2121.fontdata"
|
path="res://.godot/imported/Jost-Heavy.ttf-b0c23db38ef7e5d8579dac98f7f0e1bc.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-Heavy.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-Heavy.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-Heavy.ttf-13a86b042195fc082920b8b1790b2121.fontdata"]
|
dest_files=["res://.godot/imported/Jost-Heavy.ttf-b0c23db38ef7e5d8579dac98f7f0e1bc.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://dv5eppfnp0g1p"
|
uid="uid://dv5eppfnp0g1p"
|
||||||
path="res://.godot/imported/Jost-HeavyItalic.ttf-53870a664183e8ede629796746926a7d.fontdata"
|
path="res://.godot/imported/Jost-HeavyItalic.ttf-e7fcb33dfb4a18e0f2c41c8c1568acf0.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-HeavyItalic.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-HeavyItalic.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-HeavyItalic.ttf-53870a664183e8ede629796746926a7d.fontdata"]
|
dest_files=["res://.godot/imported/Jost-HeavyItalic.ttf-e7fcb33dfb4a18e0f2c41c8c1568acf0.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://lgdhrfvuirc8"
|
uid="uid://lgdhrfvuirc8"
|
||||||
path="res://.godot/imported/Jost-Light.ttf-2dbed4b0da6ce9f06416069dec6915ed.fontdata"
|
path="res://.godot/imported/Jost-Light.ttf-ba510b840fdc146937673fd2582f4389.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-Light.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-Light.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-Light.ttf-2dbed4b0da6ce9f06416069dec6915ed.fontdata"]
|
dest_files=["res://.godot/imported/Jost-Light.ttf-ba510b840fdc146937673fd2582f4389.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://b71mb2nm3qhpc"
|
uid="uid://b71mb2nm3qhpc"
|
||||||
path="res://.godot/imported/Jost-LightItalic.ttf-702988867a5b4796d468dce0ad421d3a.fontdata"
|
path="res://.godot/imported/Jost-LightItalic.ttf-7f878179a0fd0bc18ca1d551eac1268b.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-LightItalic.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-LightItalic.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-LightItalic.ttf-702988867a5b4796d468dce0ad421d3a.fontdata"]
|
dest_files=["res://.godot/imported/Jost-LightItalic.ttf-7f878179a0fd0bc18ca1d551eac1268b.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://d3cdnrnmplqa2"
|
uid="uid://d3cdnrnmplqa2"
|
||||||
path="res://.godot/imported/Jost-Medium.ttf-f161b5eb0d0dc3093b24164ab7b49c5c.fontdata"
|
path="res://.godot/imported/Jost-Medium.ttf-18a1c5f1f46710985bb7bd431a626c3b.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-Medium.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-Medium.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-Medium.ttf-f161b5eb0d0dc3093b24164ab7b49c5c.fontdata"]
|
dest_files=["res://.godot/imported/Jost-Medium.ttf-18a1c5f1f46710985bb7bd431a626c3b.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://c8pypsury6pp0"
|
uid="uid://c8pypsury6pp0"
|
||||||
path="res://.godot/imported/Jost-MediumItalic.ttf-01b4f8b1311e6c370cf8956be27a4d92.fontdata"
|
path="res://.godot/imported/Jost-MediumItalic.ttf-74fab0e71b9d6a783a4c23d09e5a8bc2.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-MediumItalic.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-MediumItalic.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-MediumItalic.ttf-01b4f8b1311e6c370cf8956be27a4d92.fontdata"]
|
dest_files=["res://.godot/imported/Jost-MediumItalic.ttf-74fab0e71b9d6a783a4c23d09e5a8bc2.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://gnouta0qju0p"
|
uid="uid://gnouta0qju0p"
|
||||||
path="res://.godot/imported/Jost-Semi.ttf-9377052d79aeca7e001c2ca77cfcbe8e.fontdata"
|
path="res://.godot/imported/Jost-Semi.ttf-0d5b54fce18b66b9a3efd1947bd643ee.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-Semi.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-Semi.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-Semi.ttf-9377052d79aeca7e001c2ca77cfcbe8e.fontdata"]
|
dest_files=["res://.godot/imported/Jost-Semi.ttf-0d5b54fce18b66b9a3efd1947bd643ee.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://d2iwusq4f7oql"
|
uid="uid://d2iwusq4f7oql"
|
||||||
path="res://.godot/imported/Jost-SemiItalic.ttf-68daaa58429e6ae8bd8151fd1bf4b7c6.fontdata"
|
path="res://.godot/imported/Jost-SemiItalic.ttf-c0398693734e1f928de1f3d879cec4ca.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-SemiItalic.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-SemiItalic.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-SemiItalic.ttf-68daaa58429e6ae8bd8151fd1bf4b7c6.fontdata"]
|
dest_files=["res://.godot/imported/Jost-SemiItalic.ttf-c0398693734e1f928de1f3d879cec4ca.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://cgcmctm1yk74f"
|
uid="uid://cgcmctm1yk74f"
|
||||||
path="res://.godot/imported/Jost-Thin.ttf-cf88a1c2ba9d17fec2aa86a24e8ff592.fontdata"
|
path="res://.godot/imported/Jost-Thin.ttf-e0ab4e7fb89f79107d9e4dd6035aa171.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-Thin.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-Thin.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-Thin.ttf-cf88a1c2ba9d17fec2aa86a24e8ff592.fontdata"]
|
dest_files=["res://.godot/imported/Jost-Thin.ttf-e0ab4e7fb89f79107d9e4dd6035aa171.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://boi4bwfisvegs"
|
uid="uid://boi4bwfisvegs"
|
||||||
path="res://.godot/imported/Jost-ThinItalic.ttf-7838f2160d46284d888598d15fd30dc0.fontdata"
|
path="res://.godot/imported/Jost-ThinItalic.ttf-8c39a4954eac56e794cf73949a2e807e.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/SUI/fonts/Jost/Jost-ThinItalic.ttf"
|
source_file="res://SUI/fonts/Jost/Jost-ThinItalic.ttf"
|
||||||
dest_files=["res://.godot/imported/Jost-ThinItalic.ttf-7838f2160d46284d888598d15fd30dc0.fontdata"]
|
dest_files=["res://.godot/imported/Jost-ThinItalic.ttf-8c39a4954eac56e794cf73949a2e807e.fontdata"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
[plugin]
|
|
||||||
|
|
||||||
name="StarOpenSource UI"
|
|
||||||
description="StarOpenSource UI (SUI for short) is a collection of common ui elements for the Godot Engine."
|
|
||||||
author="The StarOpenSource Project & Contributors"
|
|
||||||
version=""
|
|
||||||
script="plugin.gd"
|
|
26
plugin.gd
26
plugin.gd
|
@ -1,26 +0,0 @@
|
||||||
# STAROPENSOURCE UI SOURCE FILE
|
|
||||||
# Copyright (c) 2024 The StarOpenSource Project & Contributors
|
|
||||||
# Licensed under the GNU Affero General Public License v3
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
@tool
|
|
||||||
extends EditorPlugin
|
|
||||||
|
|
||||||
func _enter_tree():
|
|
||||||
if !FileAccess.file_exists("res://CORE/.corebasepath") and !FileAccess.file_exists("res://addons/CORE/.corebasepath"):
|
|
||||||
printerr("The CORE Framework is not installed in your project.\nPlease install the CORE Framework for StarOpenSource UI to work.\nSee https://core.staropensource.de/category/getting-started/")
|
|
||||||
|
|
||||||
|
|
||||||
func _exit_tree():
|
|
||||||
print("Thank you for using StarOpenSource UI")
|
|
|
@ -1,23 +1,27 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://1r7pvm0biuk7"]
|
[gd_scene load_steps=4 format=3 uid="uid://1r7pvm0biuk7"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/SUI/src/SuiHeader.gd" id="2_bnj46"]
|
[ext_resource type="Script" path="res://SUI/src/SuiHeader.gd" id="1_b3qg3"]
|
||||||
[ext_resource type="Theme" uid="uid://c08yxv1cirbxe" path="res://addons/SUI/themes/RichTextLabel.tres" id="3_877pi"]
|
[ext_resource type="Script" path="res://SUI/src/SuiHeaderTool.gd" id="2_bnj46"]
|
||||||
|
[ext_resource type="Theme" uid="uid://c08yxv1cirbxe" path="res://SUI/themes/RichTextLabel.tres" id="3_877pi"]
|
||||||
|
|
||||||
[node name="SuiHeader" type="Control"]
|
[node name="SuiHeader" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
offset_right = -1278.0
|
offset_right = -780.0
|
||||||
offset_bottom = -765.0
|
offset_bottom = -490.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_b3qg3")
|
||||||
|
|
||||||
|
[node name="ToolScript" type="Node" parent="."]
|
||||||
script = ExtResource("2_bnj46")
|
script = ExtResource("2_bnj46")
|
||||||
|
|
||||||
[node name="Text" type="RichTextLabel" parent="."]
|
[node name="Text" type="RichTextLabel" parent="."]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_right = 162.0
|
offset_right = 170.0
|
||||||
offset_bottom = 45.0
|
offset_bottom = 50.0
|
||||||
theme = ExtResource("3_877pi")
|
theme = ExtResource("3_877pi")
|
||||||
theme_override_font_sizes/normal_font_size = 35
|
theme_override_font_sizes/normal_font_size = 35
|
||||||
theme_override_font_sizes/bold_font_size = 35
|
theme_override_font_sizes/bold_font_size = 35
|
||||||
|
|
|
@ -1,32 +1,39 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://cxg471hoqg6mr"]
|
[gd_scene load_steps=5 format=3 uid="uid://cxg471hoqg6mr"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/SUI/src/SuiIconButton.gd" id="2_g6elc"]
|
[ext_resource type="Script" path="res://SUI/src/SuiIconButton.gd" id="1_ekv73"]
|
||||||
[ext_resource type="Theme" uid="uid://prqv77t23rsq" path="res://addons/SUI/themes/Button.tres" id="3_knxki"]
|
[ext_resource type="Texture2D" uid="uid://beqhfqbyme6in" path="res://SUI/dist/example.png" id="2_c5w38"]
|
||||||
|
[ext_resource type="Script" path="res://SUI/src/SuiIconButtonTool.gd" id="2_g6elc"]
|
||||||
|
[ext_resource type="Theme" uid="uid://prqv77t23rsq" path="res://SUI/themes/Button.tres" id="3_knxki"]
|
||||||
|
|
||||||
[node name="SuiIconButton" type="Control"]
|
[node name="SuiIconButton" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
offset_right = -1290.0
|
offset_right = -900.0
|
||||||
offset_bottom = -660.0
|
offset_bottom = -490.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("2_g6elc")
|
script = ExtResource("1_ekv73")
|
||||||
|
image = ExtResource("2_c5w38")
|
||||||
ip_left = 8
|
ip_left = 8
|
||||||
ip_top = 5
|
ip_top = 5
|
||||||
ip_right = 8
|
ip_right = 8
|
||||||
ip_bottom = 5
|
ip_bottom = 5
|
||||||
|
|
||||||
|
[node name="ToolScript" type="Node" parent="."]
|
||||||
|
script = ExtResource("2_g6elc")
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="."]
|
[node name="Button" type="Button" parent="."]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_right = 150.0
|
offset_right = 50.0
|
||||||
offset_bottom = 150.0
|
offset_bottom = 50.0
|
||||||
theme = ExtResource("3_knxki")
|
theme = ExtResource("3_knxki")
|
||||||
|
|
||||||
[node name="Icon" type="NinePatchRect" parent="."]
|
[node name="Icon" type="NinePatchRect" parent="."]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_left = 8.0
|
offset_left = 8.0
|
||||||
offset_top = 5.0
|
offset_top = 5.0
|
||||||
offset_right = 150.0
|
offset_right = 42.0
|
||||||
offset_bottom = 150.0
|
offset_bottom = 45.0
|
||||||
|
texture = ExtResource("2_c5w38")
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://7v3lokrljsjw"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/SUI/src/SuiProgressBar.gd" id="1_t211g"]
|
|
||||||
[ext_resource type="Theme" uid="uid://bfln8p0ov8enx" path="res://addons/SUI/themes/ProgressBar.tres" id="2_rvtjx"]
|
|
||||||
|
|
||||||
[node name="SuiProgressBar" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
offset_right = -1063.0
|
|
||||||
offset_bottom = -762.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
script = ExtResource("1_t211g")
|
|
||||||
editor_process = true
|
|
||||||
runtime_process = true
|
|
||||||
|
|
||||||
[node name="Bar" type="ProgressBar" parent="."]
|
|
||||||
layout_mode = 0
|
|
||||||
offset_right = 377.0
|
|
||||||
offset_bottom = 48.0
|
|
||||||
theme = ExtResource("2_rvtjx")
|
|
||||||
theme_override_font_sizes/font_size = 25
|
|
||||||
value = 50.0
|
|
|
@ -1,41 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://b31tqrkh73to2"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/SUI/src/SuiScroller.gd" id="1_dcfql"]
|
|
||||||
[ext_resource type="Theme" uid="uid://jg7l68yqa6n2" path="res://addons/SUI/themes/ScrollBar.tres" id="2_4lteo"]
|
|
||||||
|
|
||||||
[node name="SuiScroller" type="Control"]
|
|
||||||
clip_contents = true
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
offset_right = -1053.33
|
|
||||||
offset_bottom = -563.333
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
script = ExtResource("1_dcfql")
|
|
||||||
|
|
||||||
[node name="HScrollBar" type="HScrollBar" parent="."]
|
|
||||||
modulate = Color(1, 1, 1, 0.501961)
|
|
||||||
layout_mode = 1
|
|
||||||
offset_top = 226.417
|
|
||||||
offset_right = 366.42
|
|
||||||
offset_bottom = 246.667
|
|
||||||
theme = ExtResource("2_4lteo")
|
|
||||||
max_value = 386.67
|
|
||||||
step = 1.0
|
|
||||||
page = 1.0
|
|
||||||
|
|
||||||
[node name="VScrollBar" type="VScrollBar" parent="."]
|
|
||||||
modulate = Color(1, 1, 1, 0.501961)
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 1
|
|
||||||
anchor_left = 1.0
|
|
||||||
anchor_right = 1.0
|
|
||||||
offset_left = -20.25
|
|
||||||
offset_bottom = 226.417
|
|
||||||
grow_horizontal = 0
|
|
||||||
theme = ExtResource("2_4lteo")
|
|
||||||
max_value = 246.667
|
|
||||||
step = 1.0
|
|
||||||
page = 1.0
|
|
|
@ -1,22 +1,26 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://bso65vpjqc4g4"]
|
[gd_scene load_steps=4 format=3 uid="uid://bso65vpjqc4g4"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/SUI/src/SuiText.gd" id="2_87ovr"]
|
[ext_resource type="Script" path="res://SUI/src/SuiText.gd" id="1_1jc62"]
|
||||||
[ext_resource type="Theme" uid="uid://c08yxv1cirbxe" path="res://addons/SUI/themes/RichTextLabel.tres" id="3_fttgr"]
|
[ext_resource type="Script" path="res://SUI/src/SuiTextTool.gd" id="2_87ovr"]
|
||||||
|
[ext_resource type="Theme" uid="uid://c08yxv1cirbxe" path="res://SUI/themes/RichTextLabel.tres" id="3_fttgr"]
|
||||||
|
|
||||||
[node name="SuiText" type="Control"]
|
[node name="SuiText" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
offset_right = -1345.0
|
offset_right = -850.0
|
||||||
offset_bottom = -773.0
|
offset_bottom = -503.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_1jc62")
|
||||||
|
|
||||||
|
[node name="ToolScript" type="Node" parent="."]
|
||||||
script = ExtResource("2_87ovr")
|
script = ExtResource("2_87ovr")
|
||||||
|
|
||||||
[node name="Text" type="RichTextLabel" parent="."]
|
[node name="Text" type="RichTextLabel" parent="."]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_right = 95.0
|
offset_right = 100.0
|
||||||
offset_bottom = 37.0
|
offset_bottom = 37.0
|
||||||
theme = ExtResource("3_fttgr")
|
theme = ExtResource("3_fttgr")
|
||||||
theme_override_font_sizes/normal_font_size = 25
|
theme_override_font_sizes/normal_font_size = 25
|
||||||
|
|
|
@ -1,30 +1,34 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://4hi8y7pu3w0v"]
|
[gd_scene load_steps=5 format=3 uid="uid://4hi8y7pu3w0v"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/SUI/src/SuiTextButton.gd" id="2_43xd1"]
|
[ext_resource type="Script" path="res://SUI/src/SuiTextButton.gd" id="1_tjgbd"]
|
||||||
[ext_resource type="Theme" uid="uid://prqv77t23rsq" path="res://addons/SUI/themes/Button.tres" id="3_u0br7"]
|
[ext_resource type="Script" path="res://SUI/src/SuiTextButtonTool.gd" id="2_43xd1"]
|
||||||
[ext_resource type="Theme" uid="uid://c08yxv1cirbxe" path="res://addons/SUI/themes/RichTextLabel.tres" id="4_vp57w"]
|
[ext_resource type="Theme" uid="uid://prqv77t23rsq" path="res://SUI/themes/Button.tres" id="3_u0br7"]
|
||||||
|
[ext_resource type="Theme" uid="uid://c08yxv1cirbxe" path="res://SUI/themes/RichTextLabel.tres" id="4_vp57w"]
|
||||||
|
|
||||||
[node name="SuiTextButton" type="Control"]
|
[node name="SuiTextButton" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
offset_right = -1224.0
|
offset_right = -700.0
|
||||||
offset_bottom = -757.0
|
offset_bottom = -490.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_tjgbd")
|
||||||
|
|
||||||
|
[node name="ToolScript" type="Node" parent="."]
|
||||||
script = ExtResource("2_43xd1")
|
script = ExtResource("2_43xd1")
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="."]
|
[node name="Button" type="Button" parent="."]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_right = 216.0
|
offset_right = 250.0
|
||||||
offset_bottom = 53.0
|
offset_bottom = 50.0
|
||||||
theme = ExtResource("3_u0br7")
|
theme = ExtResource("3_u0br7")
|
||||||
|
|
||||||
[node name="Text" type="RichTextLabel" parent="."]
|
[node name="Text" type="RichTextLabel" parent="."]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_right = 216.0
|
offset_right = 250.0
|
||||||
offset_bottom = 53.0
|
offset_bottom = 50.0
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
theme = ExtResource("4_vp57w")
|
theme = ExtResource("4_vp57w")
|
||||||
theme_override_font_sizes/normal_font_size = 35
|
theme_override_font_sizes/normal_font_size = 35
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
# STAROPENSOURCE UI SOURCE FILE
|
|
||||||
# Copyright (c) 2024 The StarOpenSource Project & Contributors
|
|
||||||
# Licensed under the GNU Affero General Public License v3
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
@tool
|
|
||||||
extends Control
|
|
||||||
class_name SuiBaseClass
|
|
||||||
|
|
||||||
## Reference to the [CORE] Object. Set by [method _ready].
|
|
||||||
var core: Core
|
|
||||||
## Reference to a [CoreLoggerInstance]. Must be set manually.
|
|
||||||
var logger: CoreLoggerInstance = null
|
|
||||||
|
|
||||||
@export_category("Debugging")
|
|
||||||
## Determines if the element should be updated automatically [b]while running in the editor[/b].
|
|
||||||
@export var editor_process: bool = true
|
|
||||||
## Determines if the element should be updated automatically [b]during your game/application's runtime[/b].
|
|
||||||
@export var runtime_process: bool = true
|
|
||||||
|
|
||||||
# +++ initialization and process methods +++
|
|
||||||
## Initializes the base class.[br]
|
|
||||||
## To run additional code in `_ready()`, use this example:
|
|
||||||
## [/codeblock]
|
|
||||||
## func _ready() -> void:
|
|
||||||
## super()
|
|
||||||
## # Your code here
|
|
||||||
## [/codeblock]
|
|
||||||
func _ready() -> void:
|
|
||||||
if !in_editor(): core = get_node("/root/CORE")
|
|
||||||
|
|
||||||
## Calls [method update_element] if allowed to execute
|
|
||||||
func _process(_delta: float):
|
|
||||||
if execute_process(): update_element()
|
|
||||||
|
|
||||||
# +++ element updating +++
|
|
||||||
## This method is intended to be extended by a child script.[br]
|
|
||||||
## Use this to implement your own element update logic.
|
|
||||||
func update_element() -> void: pass
|
|
||||||
|
|
||||||
# +++ etc +++
|
|
||||||
## Determines if [method _process] is allowed to execute-
|
|
||||||
func execute_process() -> bool:
|
|
||||||
if in_editor() and !editor_process: return false
|
|
||||||
elif !in_editor() and !runtime_process: return false
|
|
||||||
else: return true
|
|
||||||
|
|
||||||
## Determines if running inside or outside the editor-
|
|
||||||
func in_editor() -> bool:
|
|
||||||
return get_node_or_null("/root/CORE") == null
|
|
|
@ -1,30 +1,24 @@
|
||||||
# STAROPENSOURCE UI SOURCE FILE
|
extends Control
|
||||||
# Copyright (c) 2024 The StarOpenSource Project & Contributors
|
|
||||||
# Licensed under the GNU Affero General Public License v3
|
@onready var logger: CoreLoggerInstance = get_node("/root/CORE").logger.get_instance("SUI/src/SuiHeader.gd")
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
@tool
|
|
||||||
extends SuiBaseClass
|
|
||||||
|
|
||||||
@export_category("Base Configuration")
|
@export_category("Base Configuration")
|
||||||
@export_subgroup("RichTextLabel")
|
@export_subgroup("RichTextLabel")
|
||||||
## Enables support for BBCode.
|
|
||||||
@export var bbcode_support: bool = true
|
@export var bbcode_support: bool = true
|
||||||
## The text you want to display.
|
|
||||||
@export_multiline var text: String = "[center]SuiHeader[/center]"
|
@export_multiline var text: String = "[center]SuiHeader[/center]"
|
||||||
## The size your text should have.
|
|
||||||
@export var font_size: int = 35
|
@export var font_size: int = 35
|
||||||
|
@export_category("Debugging")
|
||||||
|
@export var editor_process: bool = true
|
||||||
|
@export var runtime_process: bool = true
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
# Free unused children
|
||||||
|
logger.diag("<" + name + "> Freeing ToolScript")
|
||||||
|
get_child(0).queue_free()
|
||||||
|
|
||||||
|
func _process(_delta: float) -> void:
|
||||||
|
if !runtime_process: return
|
||||||
|
update_element()
|
||||||
|
|
||||||
func update_element() -> void:
|
func update_element() -> void:
|
||||||
# Update sizes
|
# Update sizes
|
||||||
|
|
19
src/SuiHeaderTool.gd
Normal file
19
src/SuiHeaderTool.gd
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
@tool
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
func _process(_delta: float):
|
||||||
|
if !get_parent().editor_process: return
|
||||||
|
var parent: Control = get_parent()
|
||||||
|
var text: RichTextLabel = parent.get_node("Text")
|
||||||
|
|
||||||
|
# Update sizes
|
||||||
|
text.size = parent.size
|
||||||
|
|
||||||
|
# Update RichTextLabel stuff
|
||||||
|
text.bbcode_enabled = parent.bbcode_support
|
||||||
|
text.text = parent.text
|
||||||
|
text.add_theme_font_size_override("normal_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("bold_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("italics_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("bold_italics_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("mono_font_size", parent.font_size)
|
|
@ -1,78 +1,54 @@
|
||||||
# STAROPENSOURCE UI SOURCE FILE
|
extends Control
|
||||||
# Copyright (c) 2024 The StarOpenSource Project & Contributors
|
|
||||||
# Licensed under the GNU Affero General Public License v3
|
@onready var logger: CoreLoggerInstance = get_node("/root/CORE").logger.get_instance("SUI/src/SuiIconButton.gd")
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
@tool
|
|
||||||
extends SuiBaseClass
|
|
||||||
|
|
||||||
@export_category("Base Configuration")
|
@export_category("Base Configuration")
|
||||||
@export_subgroup("Button")
|
@export_subgroup("Button")
|
||||||
## Makes the button unable to be interacted with.
|
|
||||||
@export var disabled: bool = false
|
@export var disabled: bool = false
|
||||||
## Makes the button toggleable.
|
|
||||||
@export var toggle_mode: bool = false
|
@export var toggle_mode: bool = false
|
||||||
## Forwarded from the internal [Button]. Will be overriden with the internal button's value, any changes to this variable will not be reflected.
|
|
||||||
@export var button_pressed: bool = false
|
@export var button_pressed: bool = false
|
||||||
@export_subgroup("Icon")
|
@export_subgroup("Icon")
|
||||||
## The image you want to display.
|
|
||||||
@export var image: Texture2D
|
@export var image: Texture2D
|
||||||
## See [member NinePatchRect.region_rect].
|
|
||||||
@export var region_rect: Rect2 = Rect2(0, 0, 0, 0)
|
@export var region_rect: Rect2 = Rect2(0, 0, 0, 0)
|
||||||
## See [member NinePatchRect.draw_center].
|
|
||||||
@export var draw_center: bool = true
|
@export var draw_center: bool = true
|
||||||
@export_category("Advanced Configuration")
|
@export_category("Advanced Configuration")
|
||||||
@export_subgroup("Icon Padding")
|
@export_subgroup("Icon Padding")
|
||||||
## Icon padding (left side)
|
|
||||||
@export var ip_left: int = 0
|
@export var ip_left: int = 0
|
||||||
## Icon padding (top side)
|
|
||||||
@export var ip_top: int = 0
|
@export var ip_top: int = 0
|
||||||
## Icon padding (right side)
|
|
||||||
@export var ip_right: int = 0
|
@export var ip_right: int = 0
|
||||||
## Icon padding (bottom side)
|
|
||||||
@export var ip_bottom: int = 0
|
@export var ip_bottom: int = 0
|
||||||
@export_subgroup("Patch Margin")
|
@export_subgroup("Patch Margin")
|
||||||
## See [member NinePatchRect.patch_margin_left].
|
|
||||||
@export var pm_left: int = 0
|
@export var pm_left: int = 0
|
||||||
## See [member NinePatchRect.patch_margin_top].
|
|
||||||
@export var pm_top: int = 0
|
@export var pm_top: int = 0
|
||||||
## See [member NinePatchRect.patch_margin_right].
|
|
||||||
@export var pm_right: int = 0
|
@export var pm_right: int = 0
|
||||||
## See [member NinePatchRect.patch_margin_bottom].
|
|
||||||
@export var pm_bottom: int = 0
|
@export var pm_bottom: int = 0
|
||||||
@export_subgroup("Axis Stretch")
|
@export_subgroup("Axis Stretch")
|
||||||
## See [member NinePathRect.axis_stretch_horizontal].
|
|
||||||
@export var as_horizontal: NinePatchRect.AxisStretchMode = NinePatchRect.AxisStretchMode.AXIS_STRETCH_MODE_STRETCH
|
@export var as_horizontal: NinePatchRect.AxisStretchMode = NinePatchRect.AxisStretchMode.AXIS_STRETCH_MODE_STRETCH
|
||||||
## See [member NinePathRect.axis_stretch_vertical].
|
|
||||||
@export var as_vertical: NinePatchRect.AxisStretchMode = NinePatchRect.AxisStretchMode.AXIS_STRETCH_MODE_STRETCH
|
@export var as_vertical: NinePatchRect.AxisStretchMode = NinePatchRect.AxisStretchMode.AXIS_STRETCH_MODE_STRETCH
|
||||||
|
@export_category("Debugging")
|
||||||
|
@export var editor_process: bool = true
|
||||||
|
@export var runtime_process: bool = true
|
||||||
|
|
||||||
## Emitted when the button is pressed.
|
|
||||||
signal down
|
signal down
|
||||||
## Emitted when the button is released.
|
|
||||||
signal up
|
signal up
|
||||||
## Emitted when the button has been pressed.
|
|
||||||
signal pressed
|
signal pressed
|
||||||
## Emitted when the button has been toggled.
|
|
||||||
signal toggled
|
signal toggled
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
super()
|
# Free unused children
|
||||||
if !in_editor():
|
logger.diag("<" + name + "> Freeing ToolScript")
|
||||||
$Button.connect("button_down", func() -> void: emit_signal("down"))
|
get_child(0).queue_free()
|
||||||
$Button.connect("button_up", func() -> void: emit_signal("up"))
|
|
||||||
$Button.connect("pressed", func() -> void: emit_signal("pressed"))
|
# Add signals
|
||||||
$Button.connect("toggled", func(toggled_on: bool) -> void: emit_signal("toggled", toggled_on))
|
logger.diag("<" + name + "> Adding signals")
|
||||||
|
$Button.connect("button_down", func() -> void: emit_signal("down"))
|
||||||
|
$Button.connect("button_up", func() -> void: emit_signal("up"))
|
||||||
|
$Button.connect("pressed", func() -> void: emit_signal("pressed"))
|
||||||
|
$Button.connect("toggled", func(toggled_on: bool) -> void: emit_signal("toggled", toggled_on))
|
||||||
|
|
||||||
|
func _process(_delta: float) -> void:
|
||||||
|
if !runtime_process: return
|
||||||
|
update_element()
|
||||||
|
|
||||||
func update_element() -> void:
|
func update_element() -> void:
|
||||||
# Update button size
|
# Update button size
|
||||||
|
@ -100,6 +76,3 @@ func update_element() -> void:
|
||||||
$Icon.patch_margin_bottom = pm_bottom
|
$Icon.patch_margin_bottom = pm_bottom
|
||||||
$Icon.axis_stretch_horizontal = as_horizontal
|
$Icon.axis_stretch_horizontal = as_horizontal
|
||||||
$Icon.axis_stretch_vertical = as_vertical
|
$Icon.axis_stretch_vertical = as_vertical
|
||||||
|
|
||||||
func update_pressed(is_pressed: bool) -> void:
|
|
||||||
$Button.button_pressed = is_pressed
|
|
||||||
|
|
34
src/SuiIconButtonTool.gd
Normal file
34
src/SuiIconButtonTool.gd
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
@tool
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
func _process(_delta: float):
|
||||||
|
if !get_parent().editor_process: return
|
||||||
|
var parent: Control = get_parent()
|
||||||
|
var button: Button = parent.get_node("Button")
|
||||||
|
var icon: NinePatchRect = parent.get_node("Icon")
|
||||||
|
|
||||||
|
# Update button size
|
||||||
|
button.size = parent.size
|
||||||
|
|
||||||
|
# Update icon size + padding
|
||||||
|
icon.size = parent.size
|
||||||
|
icon.position.x = parent.ip_left
|
||||||
|
icon.position.y = parent.ip_top
|
||||||
|
icon.size.x -= parent.ip_right + parent.ip_left
|
||||||
|
icon.size.y -= parent.ip_bottom + parent.ip_top
|
||||||
|
|
||||||
|
# Update Button stuff
|
||||||
|
button.disabled = parent.disabled
|
||||||
|
button.toggle_mode = parent.toggle_mode
|
||||||
|
button.button_pressed = parent.button_pressed
|
||||||
|
|
||||||
|
# Update NinePatchRect stuff
|
||||||
|
icon.texture = parent.image
|
||||||
|
icon.region_rect = parent.region_rect
|
||||||
|
icon.draw_center = parent.draw_center
|
||||||
|
icon.patch_margin_left = parent.pm_left
|
||||||
|
icon.patch_margin_top = parent.pm_top
|
||||||
|
icon.patch_margin_right = parent.pm_right
|
||||||
|
icon.patch_margin_bottom = parent.pm_bottom
|
||||||
|
icon.axis_stretch_horizontal = parent.as_horizontal
|
||||||
|
icon.axis_stretch_vertical = parent.as_vertical
|
|
@ -1,53 +0,0 @@
|
||||||
# STAROPENSOURCE UI SOURCE FILE
|
|
||||||
# Copyright (c) 2024 The StarOpenSource Project & Contributors
|
|
||||||
# Licensed under the GNU Affero General Public License v3
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
@tool
|
|
||||||
extends SuiBaseClass
|
|
||||||
|
|
||||||
@export_category("Base Configuration")
|
|
||||||
## The size the percentage text should have.
|
|
||||||
@export var font_size: int = 25
|
|
||||||
@export_subgroup("ProgressBar")
|
|
||||||
## The minimum value this progress bar can display.
|
|
||||||
@export var minimum_value: float = 0.0
|
|
||||||
## The maximum value this progress bar can display.
|
|
||||||
@export var maximum_value: float = 100.0
|
|
||||||
## Forwarded from the internal [ProgressBar]. Will be overriden with the internal bar's value, any changes to this variable will not be reflected (except during [method _ready]).
|
|
||||||
@export var value: float = 50.0
|
|
||||||
## Determines if [code]value[/code] should be rounded to the nearest integer.
|
|
||||||
@export var rounded: bool = false
|
|
||||||
## See [member Range.exp_edit].
|
|
||||||
@export var exponential: bool = false
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
super()
|
|
||||||
if !in_editor(): $Bar.value = value
|
|
||||||
|
|
||||||
func update_element() -> void:
|
|
||||||
# Update sizes
|
|
||||||
$Bar.size = size
|
|
||||||
|
|
||||||
# Update ProgressBar stuff
|
|
||||||
$Bar.min_value = minimum_value
|
|
||||||
$Bar.max_value = maximum_value
|
|
||||||
$Bar.rounded = rounded
|
|
||||||
$Bar.exp_edit = exponential
|
|
||||||
if in_editor(): $Bar.value = value
|
|
||||||
else: value = $Bar.value
|
|
||||||
$Bar.add_theme_font_size_override("font_size", font_size)
|
|
||||||
|
|
||||||
func update_value(value_new: float) -> void:
|
|
||||||
$Bar.value = value_new
|
|
|
@ -1,229 +0,0 @@
|
||||||
# STAROPENSOURCE UI SOURCE FILE
|
|
||||||
# Copyright (c) 2024 The StarOpenSource Project & Contributors
|
|
||||||
# Licensed under the GNU Affero General Public License v3
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
@tool
|
|
||||||
extends SuiBaseClass
|
|
||||||
|
|
||||||
@export_category("Base Configuration")
|
|
||||||
@export_subgroup("Visibility")
|
|
||||||
## Controls the visibility of the horizontal scroll bar.
|
|
||||||
@export var hscroll_visibility: SuiTypes.ScrollVisibility = SuiTypes.ScrollVisibility.AUTO
|
|
||||||
## Controls the visibility of the vertical scroll bar.
|
|
||||||
@export var vscroll_visibility: SuiTypes.ScrollVisibility = SuiTypes.ScrollVisibility.AUTO
|
|
||||||
@export_category("Advanced Configuration")
|
|
||||||
@export_subgroup("Scroller speed")
|
|
||||||
## Determines how the scrolling speed should be calculated.
|
|
||||||
@export var speed_mode: SuiTypes.ScrollMode = SuiTypes.ScrollMode.MULTIPLY_CUSTOM_VALUE
|
|
||||||
## The speed multiplier, used for [constant SuiTypes.ScrollMode.MULTIPLY_VIEWPORT] and [constant SuiTypes.ScrollMode.MULTIPLY_CUSTOM_VALUE].
|
|
||||||
@export var speed_multiplier: float = 1.0
|
|
||||||
## The speed value, used for [constant SuiTypes.ScrollMode.MULTIPLY_CUSTOM_VALUE] and [constant SuiTypes.ScrollMode.CUSTOM_VALUE].
|
|
||||||
@export var speed_value: float = 1.0
|
|
||||||
@export_subgroup("Scroller speed (wheel)")
|
|
||||||
## Determines how much the scrolling speed should be multiplied by when scrolling with the scroll wheel.[br]
|
|
||||||
## Using a lower value results in more mouse scrolling, higher values result in less mouse scrolling.
|
|
||||||
@export var speed_wheel_multiplier: float = 50.0
|
|
||||||
@export_subgroup("Scroll bar thickness")
|
|
||||||
## Determines how the thickness of both scroll bars should be calculated.
|
|
||||||
@export var thickness_mode: SuiTypes.ScrollMode = SuiTypes.ScrollMode.MULTIPLY_VIEWPORT
|
|
||||||
## The thickness multiplier, used for [constant SuiTypes.ScrollMode.MULTIPLY_VIEWPORT] and [constant SuiTypes.ScrollMode.MULTIPLY_CUSTOM_VALUE].
|
|
||||||
@export var thickness_multiplier: float = 0.025
|
|
||||||
## The thickness value, used for [constant SuiTypes.ScrollMode.MULTIPLY_CUSTOM_VALUE] and [constant SuiTypes.ScrollMode.CUSTOM_VALUE].
|
|
||||||
@export var thickness_value: float = 0.0
|
|
||||||
@export_category("Debugging")
|
|
||||||
## Will cause elements not inside the SuiScroller node to be no longer clipped [i]in editor mode[/i].
|
|
||||||
## Useful when editing the contents of a SuiScroller node, but may cause visual chaos.
|
|
||||||
@export var editor_clip_content: bool = true
|
|
||||||
|
|
||||||
## Internal, don't modify.
|
|
||||||
var mouse_hovering: bool = false
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
super()
|
|
||||||
if !in_editor(): logger = core.logger.get_instance("SUI/src/SuiScroller.gd", self)
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
mouse_hovering = Rect2(Vector2(), size).has_point(get_local_mouse_position()) and !Rect2($HScrollBar.position, $HScrollBar.size).has_point(get_local_mouse_position()) and !Rect2($VScrollBar.position, $VScrollBar.size).has_point(get_local_mouse_position())
|
|
||||||
super(delta)
|
|
||||||
|
|
||||||
func update_element() -> void:
|
|
||||||
# Clip contents
|
|
||||||
if in_editor() and !editor_clip_content: clip_contents = false
|
|
||||||
else: clip_contents = true
|
|
||||||
|
|
||||||
# Update sizes and positions
|
|
||||||
match(thickness_mode):
|
|
||||||
SuiTypes.ScrollMode.MULTIPLY_VIEWPORT:
|
|
||||||
var window_size: Vector2i = Vector2i(ProjectSettings.get("display/window/size/viewport_width"), ProjectSettings.get("display/window/size/viewport_height"))
|
|
||||||
# Find smaller value
|
|
||||||
var scale_size: int
|
|
||||||
if window_size.x < window_size.y: scale_size = window_size.x
|
|
||||||
elif window_size.x > window_size.y: scale_size = window_size.y
|
|
||||||
|
|
||||||
$HScrollBar.size.y = scale_size*thickness_multiplier
|
|
||||||
$VScrollBar.size.x = scale_size*thickness_multiplier
|
|
||||||
SuiTypes.ScrollMode.MULTIPLY_CUSTOM_VALUE:
|
|
||||||
$HScrollBar.size.y = thickness_value*thickness_multiplier
|
|
||||||
$VScrollBar.size.x = thickness_value*thickness_multiplier
|
|
||||||
SuiTypes.ScrollMode.CUSTOM_VALUE:
|
|
||||||
$HScrollBar.size.y = thickness_value
|
|
||||||
$VScrollBar.size.x = thickness_value
|
|
||||||
$HScrollBar.size.x = size.x-$VScrollBar.size.x
|
|
||||||
$VScrollBar.size.y = size.y-$HScrollBar.size.y
|
|
||||||
$HScrollBar.position.x = 0
|
|
||||||
$HScrollBar.position.y = size.y-$HScrollBar.size.y
|
|
||||||
$VScrollBar.position.x = size.x-$VScrollBar.size.x
|
|
||||||
$VScrollBar.position.y = 0
|
|
||||||
|
|
||||||
# Update scrollbar properties
|
|
||||||
# Determine scroll speed
|
|
||||||
var speed: float
|
|
||||||
match(speed_mode):
|
|
||||||
SuiTypes.ScrollMode.MULTIPLY_VIEWPORT:
|
|
||||||
# Find smaller value
|
|
||||||
var scale_size: float
|
|
||||||
if size.x < size.y: scale_size = size.x
|
|
||||||
elif size.x > size.y: scale_size = size.y
|
|
||||||
|
|
||||||
speed = scale_size*speed_multiplier
|
|
||||||
SuiTypes.ScrollMode.MULTIPLY_CUSTOM_VALUE:
|
|
||||||
speed = speed_value*speed_multiplier
|
|
||||||
SuiTypes.ScrollMode.CUSTOM_VALUE:
|
|
||||||
speed = speed_value
|
|
||||||
# HScrollBar
|
|
||||||
$HScrollBar.step = speed
|
|
||||||
$HScrollBar.page = speed
|
|
||||||
# VScrollBar
|
|
||||||
$VScrollBar.step = speed
|
|
||||||
$VScrollBar.page = speed
|
|
||||||
|
|
||||||
# Update visibility
|
|
||||||
# HScrollBar
|
|
||||||
match(hscroll_visibility):
|
|
||||||
SuiTypes.ScrollVisibility.AUTO:
|
|
||||||
$HScrollBar.visible = true
|
|
||||||
$HScrollBar.modulate = Color8(255, 255, 255, 128)
|
|
||||||
SuiTypes.ScrollVisibility.SHOWN:
|
|
||||||
$HScrollBar.visible = true
|
|
||||||
$HScrollBar.modulate = Color8(255, 255, 255, 255)
|
|
||||||
SuiTypes.ScrollVisibility.HIDDEN: $HScrollBar.visible = false
|
|
||||||
_:
|
|
||||||
if in_editor(): printerr("Invalid hscroll_visibility value '" + str(hscroll_visibility) + "'")
|
|
||||||
else: logger.crash("Invalid hscroll_visibility value '" + str(hscroll_visibility) + "'")
|
|
||||||
# VScrollBar
|
|
||||||
match(vscroll_visibility):
|
|
||||||
SuiTypes.ScrollVisibility.AUTO:
|
|
||||||
$VScrollBar.visible = true
|
|
||||||
$VScrollBar.modulate = Color8(255, 255, 255, 128)
|
|
||||||
SuiTypes.ScrollVisibility.SHOWN:
|
|
||||||
$VScrollBar.visible = true
|
|
||||||
$VScrollBar.modulate = Color8(255, 255, 255, 255)
|
|
||||||
SuiTypes.ScrollVisibility.HIDDEN: $VScrollBar.visible = false
|
|
||||||
_:
|
|
||||||
if in_editor(): printerr("Invalid vscroll_visibility value '" + str(hscroll_visibility) + "'")
|
|
||||||
else: logger.crash("Invalid vscroll_visibility value '" + str(hscroll_visibility) + "'")
|
|
||||||
|
|
||||||
if in_editor() and get_child_count() == 3:
|
|
||||||
var container: Control = get_child(2)
|
|
||||||
|
|
||||||
# Update container position
|
|
||||||
container.position.x = 0
|
|
||||||
container.position.y = 0
|
|
||||||
return
|
|
||||||
|
|
||||||
# Move control
|
|
||||||
if get_child_count() == 3 and get_child(2) != $VScrollBar: move_child(get_child(2), 0)
|
|
||||||
|
|
||||||
# Make scrolling possible
|
|
||||||
if get_child_count() == 3 and get_child(0).is_class("Control"):
|
|
||||||
var container: Control = get_child(0)
|
|
||||||
var max_scrolling_distance: Vector2 = Vector2.ZERO
|
|
||||||
|
|
||||||
# Update container size
|
|
||||||
if vscroll_visibility == SuiTypes.ScrollVisibility.HIDDEN: container.size.x = size.x
|
|
||||||
else: container.size.x = size.x-$VScrollBar.size.x
|
|
||||||
if vscroll_visibility == SuiTypes.ScrollVisibility.HIDDEN: container.size.y = size.y
|
|
||||||
else: container.size.y = size.y-$HScrollBar.size.y
|
|
||||||
|
|
||||||
# Update container position
|
|
||||||
container.position.x = -$HScrollBar.value
|
|
||||||
container.position.y = -$VScrollBar.value
|
|
||||||
|
|
||||||
# Get max scrolling distance
|
|
||||||
for child in container.get_children(true):
|
|
||||||
# Ensure 'size' and 'position' variables are either a Vector2 or Vector2i if not of type Control.
|
|
||||||
if !child.is_class("Control"):
|
|
||||||
match(typeof(child.get("size"))):
|
|
||||||
Variant.Type.TYPE_VECTOR2: pass
|
|
||||||
Variant.Type.TYPE_VECTOR2I: pass
|
|
||||||
_: continue
|
|
||||||
match(typeof(child.get("position"))):
|
|
||||||
Variant.Type.TYPE_VECTOR2: pass
|
|
||||||
Variant.Type.TYPE_VECTOR2I: pass
|
|
||||||
_: continue
|
|
||||||
|
|
||||||
if child.size.x+child.position.x > max_scrolling_distance.x:
|
|
||||||
max_scrolling_distance.x = child.size.x+child.position.x-container.size.x
|
|
||||||
if child.size.y+child.position.y > max_scrolling_distance.y:
|
|
||||||
max_scrolling_distance.y = child.size.y+child.position.y-container.size.y
|
|
||||||
|
|
||||||
# Update scroll bar max value
|
|
||||||
$HScrollBar.max_value = max_scrolling_distance.x
|
|
||||||
$VScrollBar.max_value = max_scrolling_distance.y
|
|
||||||
else:
|
|
||||||
$HScrollBar.max_value = size.x
|
|
||||||
$VScrollBar.max_value = size.y
|
|
||||||
|
|
||||||
func _scroll(direction: SuiTypes.ScrollDirection) -> void:
|
|
||||||
var bar: ScrollBar
|
|
||||||
var dsign: int = 0
|
|
||||||
|
|
||||||
# Set 'dsign'
|
|
||||||
match(direction):
|
|
||||||
SuiTypes.ScrollDirection.UP: dsign = +1
|
|
||||||
SuiTypes.ScrollDirection.DOWN: dsign = -1
|
|
||||||
SuiTypes.ScrollDirection.LEFT: dsign = -1
|
|
||||||
SuiTypes.ScrollDirection.RIGHT: dsign = +1
|
|
||||||
|
|
||||||
# Set 'bar'
|
|
||||||
match(direction):
|
|
||||||
SuiTypes.ScrollDirection.UP: bar = $VScrollBar
|
|
||||||
SuiTypes.ScrollDirection.DOWN: bar = $VScrollBar
|
|
||||||
SuiTypes.ScrollDirection.LEFT: bar = $HScrollBar
|
|
||||||
SuiTypes.ScrollDirection.RIGHT: bar = $HScrollBar
|
|
||||||
|
|
||||||
bar.value = bar.value + bar.step * speed_wheel_multiplier * dsign
|
|
||||||
|
|
||||||
# Credit: https://forum.godotengine.org/t/how-do-i-get-input-from-the-mouse-wheel/27979/2
|
|
||||||
func _input(event: InputEvent):
|
|
||||||
if !mouse_hovering: return
|
|
||||||
if event is InputEventMouseButton:
|
|
||||||
if event.is_pressed():
|
|
||||||
match(event.button_index):
|
|
||||||
MouseButton.MOUSE_BUTTON_WHEEL_UP:
|
|
||||||
if Input.is_key_pressed(Key.KEY_SHIFT): _scroll(SuiTypes.ScrollDirection.LEFT)
|
|
||||||
else: _scroll(SuiTypes.ScrollDirection.DOWN)
|
|
||||||
MouseButton.MOUSE_BUTTON_WHEEL_DOWN:
|
|
||||||
if Input.is_key_pressed(Key.KEY_SHIFT): _scroll(SuiTypes.ScrollDirection.RIGHT)
|
|
||||||
else: _scroll(SuiTypes.ScrollDirection.UP)
|
|
||||||
MouseButton.MOUSE_BUTTON_WHEEL_LEFT: _scroll(SuiTypes.ScrollDirection.RIGHT)
|
|
||||||
MouseButton.MOUSE_BUTTON_WHEEL_RIGHT: _scroll(SuiTypes.ScrollDirection.LEFT)
|
|
||||||
|
|
||||||
func _get_configuration_warnings():
|
|
||||||
if get_child_count() != 3:
|
|
||||||
return ["SuiScroller is intended to operate with one child only."]
|
|
||||||
elif !get_child(2).is_class("Control"):
|
|
||||||
return ["SuiScroller only supports Controls."]
|
|
||||||
return []
|
|
|
@ -1,44 +1,24 @@
|
||||||
# STAROPENSOURCE UI SOURCE FILE
|
extends Control
|
||||||
# Copyright (c) 2024 The StarOpenSource Project & Contributors
|
|
||||||
# Licensed under the GNU Affero General Public License v3
|
@onready var logger: CoreLoggerInstance = get_node("/root/CORE").logger.get_instance("SUI/src/SuiText.gd")
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
@tool
|
|
||||||
extends SuiBaseClass
|
|
||||||
|
|
||||||
@export_category("Base Configuration")
|
@export_category("Base Configuration")
|
||||||
@export_subgroup("RichTextLabel")
|
@export_subgroup("RichTextLabel")
|
||||||
## Enables support for BBCode.
|
|
||||||
@export var bbcode_support: bool = true
|
@export var bbcode_support: bool = true
|
||||||
## The text you want to display.
|
|
||||||
@export_multiline var text: String = "[center]SuiText[/center]"
|
@export_multiline var text: String = "[center]SuiText[/center]"
|
||||||
## The size your text should have.
|
|
||||||
@export var font_size: int = 25
|
@export var font_size: int = 25
|
||||||
|
@export_category("Debugging")
|
||||||
|
@export var editor_process: bool = true
|
||||||
|
@export var runtime_process: bool = true
|
||||||
|
|
||||||
## Emitted when some interactive BBCode tag (e.g. url) is clicked
|
func _ready() -> void:
|
||||||
signal meta_clicked
|
# Free unused children
|
||||||
## Emitted when some interactive BBCode tag (e.g. url) is hovered over
|
logger.diag("<" + name + "> Freeing ToolScript")
|
||||||
signal meta_hover_started
|
get_child(0).queue_free()
|
||||||
## Emitted when some interactive BBCode tag (e.g. url) is no longer being hovered over
|
|
||||||
signal meta_hover_ended
|
|
||||||
|
|
||||||
func _ready():
|
func _process(_delta: float) -> void:
|
||||||
super()
|
if !runtime_process: return
|
||||||
if in_editor():
|
update_element()
|
||||||
$Text.connect("meta_clicked", func(meta: Variant) -> void: emit_signal("meta_clicked", meta))
|
|
||||||
$Text.connect("meta_hover_started", func(meta: Variant) -> void: emit_signal("meta_hover_started", meta))
|
|
||||||
$Text.connect("meta_hover_ended", func(meta: Variant) -> void: emit_signal("meta_hover_ended", meta))
|
|
||||||
|
|
||||||
func update_element() -> void:
|
func update_element() -> void:
|
||||||
# Update sizes
|
# Update sizes
|
||||||
|
|
|
@ -1,54 +1,40 @@
|
||||||
# STAROPENSOURCE UI SOURCE FILE
|
extends Control
|
||||||
# Copyright (c) 2024 The StarOpenSource Project & Contributors
|
|
||||||
# Licensed under the GNU Affero General Public License v3
|
@onready var logger: CoreLoggerInstance = get_node("/root/CORE").logger.get_instance("SUI/src/SuiTextButton.gd")
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
@tool
|
|
||||||
extends SuiBaseClass
|
|
||||||
|
|
||||||
@export_category("Base Configuration")
|
@export_category("Base Configuration")
|
||||||
@export_subgroup("Button")
|
@export_subgroup("Button")
|
||||||
## Makes the button unable to be interacted with.
|
|
||||||
@export var disabled: bool = false
|
@export var disabled: bool = false
|
||||||
## Makes the button toggleable.
|
|
||||||
@export var toggle_mode: bool = false
|
@export var toggle_mode: bool = false
|
||||||
## Forwarded from the internal [Button]. Will be overriden with the internal button's value, any changes to this variable will not be reflected.
|
|
||||||
@export var button_pressed: bool = false
|
@export var button_pressed: bool = false
|
||||||
@export_subgroup("RichTextLabel")
|
@export_subgroup("RichTextLabel")
|
||||||
## Enables support for BBCode.
|
|
||||||
@export var bbcode_support: bool = true
|
@export var bbcode_support: bool = true
|
||||||
## The text you want to display.
|
|
||||||
@export_multiline var text: String = "[center]SuiTextButton[/center]"
|
@export_multiline var text: String = "[center]SuiTextButton[/center]"
|
||||||
## The size your text should have.
|
|
||||||
@export var font_size: int = 35
|
@export var font_size: int = 35
|
||||||
|
@export_category("Debugging")
|
||||||
|
@export var editor_process: bool = true
|
||||||
|
@export var runtime_process: bool = true
|
||||||
|
|
||||||
## Emitted when the button is pressed.
|
|
||||||
signal down
|
signal down
|
||||||
## Emitted when the button is released.
|
|
||||||
signal up
|
signal up
|
||||||
## Emitted when the button has been pressed.
|
|
||||||
signal pressed
|
signal pressed
|
||||||
## Emitted when the button has been toggled.
|
|
||||||
signal toggled
|
signal toggled
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
super()
|
# Free unused children
|
||||||
if !in_editor():
|
logger.diag("<" + name + "> Freeing ToolScript")
|
||||||
$Button.connect("button_down", func() -> void: emit_signal("down"))
|
get_child(0).queue_free()
|
||||||
$Button.connect("button_up", func() -> void: emit_signal("up"))
|
|
||||||
$Button.connect("pressed", func() -> void: emit_signal("pressed"))
|
# Add signals
|
||||||
$Button.connect("toggled", func(toggled_on: bool) -> void: emit_signal("toggled", toggled_on))
|
logger.diag("<" + name + "> Adding signals")
|
||||||
|
$Button.connect("button_down", func() -> void: emit_signal("down"))
|
||||||
|
$Button.connect("button_up", func() -> void: emit_signal("up"))
|
||||||
|
$Button.connect("pressed", func() -> void: emit_signal("pressed"))
|
||||||
|
$Button.connect("toggled", func(toggled_on: bool) -> void: emit_signal("toggled", toggled_on))
|
||||||
|
|
||||||
|
func _process(_delta: float) -> void:
|
||||||
|
if !runtime_process: return
|
||||||
|
update_element()
|
||||||
|
|
||||||
func update_element() -> void:
|
func update_element() -> void:
|
||||||
# Update sizes
|
# Update sizes
|
||||||
|
@ -68,6 +54,3 @@ func update_element() -> void:
|
||||||
$Text.add_theme_font_size_override("italics_font_size", font_size)
|
$Text.add_theme_font_size_override("italics_font_size", font_size)
|
||||||
$Text.add_theme_font_size_override("bold_italics_font_size", font_size)
|
$Text.add_theme_font_size_override("bold_italics_font_size", font_size)
|
||||||
$Text.add_theme_font_size_override("mono_font_size", font_size)
|
$Text.add_theme_font_size_override("mono_font_size", font_size)
|
||||||
|
|
||||||
func update_pressed(is_pressed: bool) -> void:
|
|
||||||
$Button.button_pressed = is_pressed
|
|
||||||
|
|
26
src/SuiTextButtonTool.gd
Normal file
26
src/SuiTextButtonTool.gd
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
@tool
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
func _process(_delta: float):
|
||||||
|
if !get_parent().editor_process: return
|
||||||
|
var parent: Control = get_parent()
|
||||||
|
var button: Button = parent.get_node("Button")
|
||||||
|
var text: RichTextLabel = parent.get_node("Text")
|
||||||
|
|
||||||
|
# Update sizes
|
||||||
|
button.size = parent.size
|
||||||
|
text.size = parent.size
|
||||||
|
|
||||||
|
# Update Button stuff
|
||||||
|
button.disabled = parent.disabled
|
||||||
|
button.toggle_mode = parent.toggle_mode
|
||||||
|
button.button_pressed = parent.button_pressed
|
||||||
|
|
||||||
|
# Update RichTextLabel stuff
|
||||||
|
text.bbcode_enabled = parent.bbcode_support
|
||||||
|
text.text = parent.text
|
||||||
|
text.add_theme_font_size_override("normal_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("bold_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("italics_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("bold_italics_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("mono_font_size", parent.font_size)
|
19
src/SuiTextTool.gd
Normal file
19
src/SuiTextTool.gd
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
@tool
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
func _process(_delta: float):
|
||||||
|
if !get_parent().editor_process: return
|
||||||
|
var parent: Control = get_parent()
|
||||||
|
var text: RichTextLabel = parent.get_node("Text")
|
||||||
|
|
||||||
|
# Update sizes
|
||||||
|
text.size = parent.size
|
||||||
|
|
||||||
|
# Update RichTextLabel stuff
|
||||||
|
text.bbcode_enabled = parent.bbcode_support
|
||||||
|
text.text = parent.text
|
||||||
|
text.add_theme_font_size_override("normal_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("bold_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("italics_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("bold_italics_font_size", parent.font_size)
|
||||||
|
text.add_theme_font_size_override("mono_font_size", parent.font_size)
|
|
@ -1,38 +0,0 @@
|
||||||
# STAROPENSOURCE UI SOURCE FILE
|
|
||||||
# Copyright (c) 2024 The StarOpenSource Project & Contributors
|
|
||||||
# Licensed under the GNU Affero General Public License v3
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
extends Node
|
|
||||||
class_name SuiTypes
|
|
||||||
|
|
||||||
## Used for determining the visibility of scroll bars.
|
|
||||||
enum ScrollVisibility {
|
|
||||||
AUTO,
|
|
||||||
SHOWN,
|
|
||||||
HIDDEN
|
|
||||||
}
|
|
||||||
## Used for determining how to get the result of various things.
|
|
||||||
enum ScrollMode {
|
|
||||||
MULTIPLY_VIEWPORT,
|
|
||||||
MULTIPLY_CUSTOM_VALUE,
|
|
||||||
CUSTOM_VALUE
|
|
||||||
}
|
|
||||||
## Indicates some scrolling direction.
|
|
||||||
enum ScrollDirection {
|
|
||||||
UP,
|
|
||||||
DOWN,
|
|
||||||
LEFT,
|
|
||||||
RIGHT
|
|
||||||
}
|
|
|
@ -2,33 +2,17 @@
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wtmj3"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wtmj3"]
|
||||||
bg_color = Color(1, 0.368627, 0.392157, 1)
|
bg_color = Color(1, 0.368627, 0.392157, 1)
|
||||||
corner_radius_top_left = 16
|
|
||||||
corner_radius_top_right = 16
|
|
||||||
corner_radius_bottom_right = 16
|
|
||||||
corner_radius_bottom_left = 16
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_3w3dx"]
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_3w3dx"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_u0wf7"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_u0wf7"]
|
||||||
bg_color = Color(0.945098, 0.0313726, 0.227451, 1)
|
bg_color = Color(0.992157, 0.0470588, 0.243137, 1)
|
||||||
corner_radius_top_left = 16
|
|
||||||
corner_radius_top_right = 16
|
|
||||||
corner_radius_bottom_right = 16
|
|
||||||
corner_radius_bottom_left = 16
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_d8ye5"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_d8ye5"]
|
||||||
bg_color = Color(0.839216, 0.0196078, 0.196078, 1)
|
bg_color = Color(0.839216, 0.0196078, 0.196078, 1)
|
||||||
corner_radius_top_left = 16
|
|
||||||
corner_radius_top_right = 16
|
|
||||||
corner_radius_bottom_right = 16
|
|
||||||
corner_radius_bottom_left = 16
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ng1ub"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ng1ub"]
|
||||||
bg_color = Color(0.658824, 0.00784314, 0.145098, 1)
|
bg_color = Color(0.658824, 0.00784314, 0.145098, 1)
|
||||||
corner_radius_top_left = 16
|
|
||||||
corner_radius_top_right = 16
|
|
||||||
corner_radius_bottom_right = 16
|
|
||||||
corner_radius_bottom_left = 16
|
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
Button/styles/disabled = SubResource("StyleBoxFlat_wtmj3")
|
Button/styles/disabled = SubResource("StyleBoxFlat_wtmj3")
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
[gd_resource type="Theme" load_steps=4 format=3 uid="uid://bfln8p0ov8enx"]
|
|
||||||
|
|
||||||
[ext_resource type="FontFile" uid="uid://d3cdnrnmplqa2" path="res://addons/SUI/fonts/Jost/Jost-Medium.ttf" id="1_5nv4j"]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nesmb"]
|
|
||||||
bg_color = Color(0.997878, 0.337467, 0.369875, 1)
|
|
||||||
corner_radius_top_left = 8
|
|
||||||
corner_radius_top_right = 8
|
|
||||||
corner_radius_bottom_right = 8
|
|
||||||
corner_radius_bottom_left = 8
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1awnp"]
|
|
||||||
bg_color = Color(0.839216, 0.0196078, 0.196078, 1)
|
|
||||||
corner_radius_top_left = 8
|
|
||||||
corner_radius_top_right = 8
|
|
||||||
corner_radius_bottom_right = 8
|
|
||||||
corner_radius_bottom_left = 8
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
ProgressBar/colors/font_color = Color(1, 1, 1, 1)
|
|
||||||
ProgressBar/fonts/font = ExtResource("1_5nv4j")
|
|
||||||
ProgressBar/styles/background = SubResource("StyleBoxFlat_nesmb")
|
|
||||||
ProgressBar/styles/fill = SubResource("StyleBoxFlat_1awnp")
|
|
|
@ -1,3 +0,0 @@
|
||||||
[gd_resource type="Theme" format=3 uid="uid://jg7l68yqa6n2"]
|
|
||||||
|
|
||||||
[resource]
|
|
Loading…
Reference in a new issue