net-testing window is now screen-size-responsive

This commit is contained in:
Eric Froemling 2025-01-27 11:09:17 -08:00
parent ebbee0b429
commit 02e2519f6a
No known key found for this signature in database
7 changed files with 88 additions and 69 deletions

54
.efrocachemap generated
View File

@ -432,10 +432,10 @@
"build/assets/ba_data/audio/zoeOw.ogg": "b2d705c31c9dcc1efdc71394764c3beb",
"build/assets/ba_data/audio/zoePickup01.ogg": "e9366dc2d2b8ab8b0c4e2c14c02d0789",
"build/assets/ba_data/audio/zoeScream01.ogg": "903e0e45ee9b3373e9d9ce20c814374e",
"build/assets/ba_data/data/langdata.json": "2e943cae780ddba2b1ca27ec3c1a6b2a",
"build/assets/ba_data/data/langdata.json": "2d45fb57151526c2b175ae4eb3e5e6be",
"build/assets/ba_data/data/languages/arabic.json": "d95c590f7db91a9e8b7df4b9b58c8529",
"build/assets/ba_data/data/languages/belarussian.json": "009b452aa308bf2b2f7e92d9b78ba5ff",
"build/assets/ba_data/data/languages/chinese.json": "5363a79f843e6be7ef47a840f47cc17d",
"build/assets/ba_data/data/languages/chinese.json": "7ff14b51d741bb3c8e7c902d85eb8dcd",
"build/assets/ba_data/data/languages/chinesetraditional.json": "bea0f9c17324591b8261015cbd80a265",
"build/assets/ba_data/data/languages/croatian.json": "f36e1c6f20f2ce0d1fa8adb9c3cbf509",
"build/assets/ba_data/data/languages/czech.json": "3418bee44e69be13b7f72996abe96921",
@ -467,7 +467,7 @@
"build/assets/ba_data/data/languages/tamil.json": "ead39b864228696a9b0d19344bc4b5ec",
"build/assets/ba_data/data/languages/thai.json": "383540a1e9c7c131ac579f51afc87471",
"build/assets/ba_data/data/languages/turkish.json": "457b05da532950390e19e7e5ce7f1d3f",
"build/assets/ba_data/data/languages/ukrainian.json": "0db55824759119aca74d2ee8ffe6daae",
"build/assets/ba_data/data/languages/ukrainian.json": "2e6877453e200d91ed5df5bfe6289020",
"build/assets/ba_data/data/languages/venetian.json": "acea003316bef657925d776dd460e713",
"build/assets/ba_data/data/languages/vietnamese.json": "cc578c670bfb9855f93bbdc51922d267",
"build/assets/ba_data/data/maps/big_g.json": "1dd301d490643088a435ce75df971054",
@ -4174,22 +4174,22 @@
"build/assets/windows/Win32/ucrtbased.dll": "bfd1180c269d3950b76f35a63655e9e1",
"build/assets/windows/Win32/vc_redist.x86.exe": "15a5f1f876503885adbdf5b3989b3718",
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "361a2a072cd9783816ec073b9d54f576",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "d318e35eff35b758f125dfab317f4573",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "45220e04a0db2fec434fe52c907079f4",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "0b1dca00b854aee3ebab2ab2b0e53476",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "1a1c5116969fbfdcfff3bb12fbf0bac1",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "df3aaa767747f59376821e58a9e1c84f",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "84ba732a0f8782ac1c058de7c83923b3",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "b06d290cf6440334fb2f9009956fadce",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "0b1e8820b31f988350d33c23253a516c",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "17d57a302bb261b744bd39aece04e6bb",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "dbdea9264fd2c4aa78bf2147fede4ceb",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "df86bfc9a1d5a49e18d88682c48db5b2",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "80e4c921ddfa5b683cb5cd37873e0778",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "f16aaf99696639ff5347f02f8983ca0e",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "ae97c523b56caf8cb262528e7013ec2a",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "427543084f3948f85c18dfc99ee0d8bd",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "25a987a498d65d0f5ab2c8c9067e86f6",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "2059b78a747f80ee86388133b0e9c592",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "96b3a761ebabc1e000322220e656afd8",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "78363822c8934bf3d7a331ba3fa00416",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "49e5535ea3dbd652a1a5a77d2a57f9a2",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "d062c0b7211747c1c3257c887d3c7692",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "c6db9b6eb6577cb5b601fe4161973c81",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "e78f28148d12dafb3299874d8aa30d24",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "88f308a74316d5501527c1dd59656fc9",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "7f3bb93bc72f78deaa46a2d55242715b",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "035a6eb518b861b0cc5610210430f580",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "916c9df38d54451efb784b391bbbed8e",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "5beb3d60e0208d808eb4bcc2cccf83ba",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "e72f9e84f4671eee445ef83404664673",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "c0c655aa391070d44ccb3c15fd1c9d19",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "1201690dddae30dc112941f260cb37ef",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "2ee184af9b80d60afea7f97aba29cb16",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "37c5f795ccbaeffeb5d6ede4fe9f3c19",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "2ee184af9b80d60afea7f97aba29cb16",
@ -4202,14 +4202,14 @@
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "d258789fd7bdc5092aab87ccb4601921",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "314516411d5ac8e991a6f742f399d4de",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "d258789fd7bdc5092aab87ccb4601921",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "e921a853645f35ddea3c346e4a08191b",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "dbe77550cafe948486d0c47bae7f1103",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "a156a0dad723eefc972bdc8686be352a",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "d79da22f29268cc0bca185ff73ff2313",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "7de0f6794c804b3ac2deee09b7c73178",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "6ab2bde7ae061ada40fbd4f41bc6ae3a",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "3a2ad0a173eb85ff96bc6c27c379c47e",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "9d4ebc74437edade46380227aa770324",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "300c12423b206062bfce1b5fcf6c2e64",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "5595169d9d757cc1c42548efd3874bdf",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "6975dcc3655b7201df6f2226fc49d085",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "49f142b145c2284bb7c5bd2d2c8e0f8a",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "92916a5d6548c8b9f9f27a2243669fe8",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "b530d8de1a0bf4a8171e8941ecb6debf",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "c6f51447573050163104f546d31f5e05",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "114ff9455657ce2d7a4360f489079360",
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
"src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad",
"src/ballistica/base/mgen/pyembed/binding_base.inc": "06042d31df0ff9af96b99477162e2a91",

View File

@ -1,4 +1,4 @@
### 1.7.37 (build 22256, api 9, 2025-01-26)
### 1.7.37 (build 22257, api 9, 2025-01-26)
- Bumping api version to 9. As you'll see below, there's some UI changes that
will require a bit of work for any UI mods to adapt to. If your mods don't
touch UI stuff at all you can simply bump your api version and call it a day.

View File

@ -53,7 +53,7 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be
# using.
TARGET_BALLISTICA_BUILD = 22256
TARGET_BALLISTICA_BUILD = 22257
TARGET_BALLISTICA_VERSION = '1.7.37'

View File

@ -42,7 +42,7 @@ class AdvancedSettingsWindow(bui.MainWindow):
self._height = (
490.0
if uiscale is bui.UIScale.SMALL
else 450.0 if uiscale is bui.UIScale.MEDIUM else 550.0
else 450.0 if uiscale is bui.UIScale.MEDIUM else 600.0
)
self._lang_status_text: bui.Widget | None = None
@ -56,7 +56,7 @@ class AdvancedSettingsWindow(bui.MainWindow):
scale = (
2.2
if uiscale is bui.UIScale.SMALL
else 1.3 if uiscale is bui.UIScale.MEDIUM else 1.0
else 1.3 if uiscale is bui.UIScale.MEDIUM else 0.9
)
# Calc screen size in our local container space and clamp to a

View File

@ -31,21 +31,43 @@ class NetTestingWindow(bui.MainWindow):
origin_widget: bui.Widget | None = None,
):
uiscale = bui.app.ui_v1.uiscale
self._width = 820
self._height = 500 if uiscale is bui.UIScale.SMALL else 500
yoffs = -50 if uiscale is bui.UIScale.SMALL else 0
self._width = 1200 if uiscale is bui.UIScale.SMALL else 820
self._height = (
800
if uiscale is bui.UIScale.SMALL
else 550 if uiscale is bui.UIScale.MEDIUM else 650
)
self._printed_lines: list[str] = []
assert bui.app.classic is not None
# Do some fancy math to fill all available screen area up to the
# size of our backing container. This lets us fit to the exact
# screen shape at small ui scale.
screensize = bui.get_virtual_screen_size()
scale = (
1.75
if uiscale is bui.UIScale.SMALL
else 1.0 if uiscale is bui.UIScale.MEDIUM else 0.75
)
# Calc screen size in our local container space and clamp to a
# bit smaller than our container size.
target_width = min(self._width - 90, screensize[0] / scale)
target_height = min(self._height - 90, screensize[1] / scale)
# To get top/left coords, go to the center of our window and
# offset by half the width/height of our target area.
yoffs = 0.5 * self._height + 0.5 * target_height + 30.0
scroll_width = target_width
scroll_height = target_height - 52
scroll_bottom = yoffs - 82 - scroll_height
super().__init__(
root_widget=bui.containerwidget(
size=(self._width, self._height),
scale=(
1.75
if uiscale is bui.UIScale.SMALL
else 1.2 if uiscale is bui.UIScale.MEDIUM else 0.8
),
stack_offset=(0, -4 if uiscale is bui.UIScale.SMALL else 0.0),
scale=scale,
toolbar_visibility=(
'menu_minimal'
if uiscale is bui.UIScale.SMALL
@ -54,17 +76,19 @@ class NetTestingWindow(bui.MainWindow):
),
transition=transition,
origin_widget=origin_widget,
# We're affected by screen size only at small ui-scale.
refresh_on_screen_size_changes=uiscale is bui.UIScale.SMALL,
)
self._done_button: bui.Widget | None
self._back_button: bui.Widget | None
if uiscale is bui.UIScale.SMALL:
bui.containerwidget(
edit=self._root_widget, on_cancel_call=self.main_window_back
)
self._done_button = None
self._back_button = None
else:
self._done_button = bui.buttonwidget(
self._back_button = bui.buttonwidget(
parent=self._root_widget,
position=(46, self._height - 77 + yoffs),
position=(46, yoffs - 77),
size=(60, 60),
scale=0.9,
label=bui.charstr(bui.SpecialChar.BACK),
@ -73,15 +97,19 @@ class NetTestingWindow(bui.MainWindow):
on_activate_call=self.main_window_back,
)
bui.containerwidget(
edit=self._root_widget, cancel_button=self._done_button
edit=self._root_widget, cancel_button=self._back_button
)
# Avoid squads button on small mode.
xinset = -50 if uiscale is bui.UIScale.SMALL else 0
# xinset = -50 if uiscale is bui.UIScale.SMALL else 0
xextra = -80 if uiscale is bui.UIScale.SMALL else 0
self._copy_button = bui.buttonwidget(
parent=self._root_widget,
position=(self._width - 200 + xinset, self._height - 77 + yoffs),
position=(
self._width * 0.5 + scroll_width * 0.5 - 210 + 80 + xextra,
yoffs - 79,
),
size=(100, 60),
scale=0.8,
autoselect=True,
@ -91,7 +119,10 @@ class NetTestingWindow(bui.MainWindow):
self._settings_button = bui.buttonwidget(
parent=self._root_widget,
position=(self._width - 100 + xinset, self._height - 77 + yoffs),
position=(
self._width * 0.5 + scroll_width * 0.5 - 110 + 80 + xextra,
yoffs - 77,
),
size=(60, 60),
scale=0.8,
autoselect=True,
@ -99,30 +130,24 @@ class NetTestingWindow(bui.MainWindow):
on_activate_call=self._show_val_testing,
)
twidth = self._width - 540
bui.textwidget(
parent=self._root_widget,
position=(self._width * 0.5, self._height - 55 + yoffs),
position=(self._width * 0.5, yoffs - 55),
size=(0, 0),
text=bui.Lstr(resource='settingsWindowAdvanced.netTestingText'),
color=(0.8, 0.8, 0.8, 1.0),
h_align='center',
v_align='center',
maxwidth=twidth,
maxwidth=250,
)
self._scroll = bui.scrollwidget(
parent=self._root_widget,
position=(
50,
(140 if uiscale is bui.UIScale.SMALL else 50) + yoffs,
),
size=(
self._width - 100,
self._height - (220 if uiscale is bui.UIScale.SMALL else 140),
),
size=(scroll_width, scroll_height),
position=(self._width * 0.5 - scroll_width * 0.5, scroll_bottom),
capture_arrows=True,
autoselect=True,
border_opacity=0.4,
)
self._rows = bui.columnwidget(parent=self._scroll)

View File

@ -79,18 +79,12 @@ class TestingWindow(bui.MainWindow):
parent=self._root_widget,
autoselect=True,
position=(35, yoffs - 59),
size=(130, 60),
size=(60, 60),
scale=0.8,
text_scale=1.2,
label=bui.Lstr(resource='backText'),
button_type='back',
on_activate_call=self.main_window_back,
)
bui.buttonwidget(
edit=self._back_button,
button_type='backSmall',
size=(60, 60),
label=bui.charstr(bui.SpecialChar.BACK),
button_type='backSmall',
on_activate_call=self.main_window_back,
)
bui.containerwidget(edit=self._root_widget, cancel_button=btn)

View File

@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
namespace ballistica {
// These are set automatically via script; don't modify them here.
const int kEngineBuildNumber = 22256;
const int kEngineBuildNumber = 22257;
const char* kEngineVersion = "1.7.37";
const int kEngineApiVersion = 9;