account window is now dynamically sized

This commit is contained in:
Eric Froemling 2025-01-21 17:06:16 -08:00
parent 44b06b680b
commit a786c4e25a
No known key found for this signature in database
2 changed files with 49 additions and 35 deletions

28
.efrocachemap generated
View File

@ -4182,14 +4182,14 @@
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "9ce287d7714226daa851880f79c38d05",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "a53442bb694a34052bc5de9cc8a27f59",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "69b314b2d8528d226ef1b40f5b02e711",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "f4448524003199a8f6fd1c66d240dbe9",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "5321c1204fa17516585e38ed666f1780",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "008d0196de947e99620005d158880336",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "ccfed29721cca9748a473957c2d57fcf",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "9a886a68cdeed63295c390b60569908d",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "36a30c52a024f465d9c40f5fc42323e1",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "205909a0d2f91557908b0a99c27163bb",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "8ac60ee6e0551da954015b2278e96449",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "16aaa268f377a611b2c4bfe96d9ad344",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "19fdfd7932251e4d2ee83e6f6d0cb1d9",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "58af78df373616cb036378bde97b7156",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "67586111ab10332c67950f59da204727",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "807305abf012d74fdae2135a45f722b5",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "7508d7247ab006ba404042f84fcf36d7",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "4d70703c4eba1a402fbc2d997d84aa93",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "bb64e2182b1a533679f93c5997f14584",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "4d70703c4eba1a402fbc2d997d84aa93",
@ -4202,14 +4202,14 @@
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "116b500c2d57caf06619408b2176e83b",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "e3e9d9c7a94f8cd22939839fd8fbc178",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "116b500c2d57caf06619408b2176e83b",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "ad452ac0c63ea52de6a3914d34c3b97e",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "610158c9a1175306789fe9e9b010515b",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "500cbb053cf1a6a11a39cd0939e96d98",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "1c4c1149b4265dd35ee35fd827cc1c31",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "a6537b7bf427da76fcc3ae44ccb8d6f1",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "639e1adc00d658a4d04f1dbb0581d427",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "f6a576d54a58fba69cb256058668c326",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "f0ee73e6f148075fd7de48b78a8bedd2",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "02852ae5c8a085e5a2ba4fda0168d900",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "470ba5671d23d3305ae57dd944266555",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "21f0264a92a57ac971e6d320210cfe2e",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "450e24f24e377bc4cee7045d600e6dab",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "38190b24b4d579e9cf6d2109ce8576cc",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "7bbabb2f5741f7ac84ebb8c64e3894fd",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "0fcf45e01c140cbfe3c5ec16f24f326b",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "ea7347fd38385a1dcc857445ea7b17d1",
"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

@ -32,6 +32,7 @@ class AccountSettingsWindow(bui.MainWindow):
close_once_signed_in: bool = False,
):
# pylint: disable=too-many-statements
# pylint: disable=too-many-locals
plus = bui.app.plus
assert plus is not None
@ -62,18 +63,37 @@ class AccountSettingsWindow(bui.MainWindow):
uiscale = app.ui_v1.uiscale
self._width = 980 if uiscale is bui.UIScale.SMALL else 660
x_offs = 70 if uiscale is bui.UIScale.SMALL else 0
self._height = (
430
600
if uiscale is bui.UIScale.SMALL
else 430 if uiscale is bui.UIScale.MEDIUM else 490
)
# 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.72
if uiscale is bui.UIScale.SMALL
else 1.4 if uiscale is bui.UIScale.MEDIUM else 1.0
)
# Calc screen size in our local container space and clamp to a
# bit smaller than our container size.
target_width = min(self._width - 80, screensize[0] / scale)
target_height = min(self._height - 80, 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
self._scroll_width = target_width
self._scroll_height = target_height - 33
scroll_y = yoffs - 61 - self._scroll_height
self._sign_in_button = None
self._sign_in_text = None
self._scroll_width = self._width - (100 + x_offs * 2)
self._scroll_height = self._height - 120
self._sub_width = self._scroll_width - 20
# Determine which sign-in/sign-out buttons we should show.
@ -93,26 +113,20 @@ class AccountSettingsWindow(bui.MainWindow):
if bui.app.config.resolve('Show Deprecated Login Types'):
self._show_sign_in_buttons.append('Device')
top_extra = 26 if uiscale is bui.UIScale.SMALL else 0
super().__init__(
root_widget=bui.containerwidget(
size=(self._width, self._height + top_extra),
size=(self._width, self._height),
toolbar_visibility=(
'menu_minimal'
if uiscale is bui.UIScale.SMALL
else 'menu_full'
),
scale=(
1.72
if uiscale is bui.UIScale.SMALL
else 1.4 if uiscale is bui.UIScale.MEDIUM else 1.0
),
stack_offset=(
(0, 8) if uiscale is bui.UIScale.SMALL else (0, 0)
),
scale=scale,
),
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,
)
if uiscale is bui.UIScale.SMALL:
self._back_button = None
@ -122,7 +136,7 @@ class AccountSettingsWindow(bui.MainWindow):
else:
self._back_button = btn = bui.buttonwidget(
parent=self._root_widget,
position=(51 + x_offs, self._height - 62),
position=(51, yoffs - 52.0),
size=(120, 60),
scale=0.8,
text_scale=1.2,
@ -139,11 +153,14 @@ class AccountSettingsWindow(bui.MainWindow):
label=bui.charstr(bui.SpecialChar.BACK),
)
titleyoffs = -9 if uiscale is bui.UIScale.SMALL else 0
titleyoffs = -45.0 if uiscale is bui.UIScale.SMALL else -28.0
titlescale = 0.7 if uiscale is bui.UIScale.SMALL else 1.0
bui.textwidget(
parent=self._root_widget,
position=(self._width * 0.5, self._height - 41 + titleyoffs),
position=(
self._width * 0.5,
yoffs + titleyoffs,
),
size=(0, 0),
text=bui.Lstr(resource=f'{self._r}.titleText'),
color=app.ui_v1.title_color,
@ -156,11 +173,8 @@ class AccountSettingsWindow(bui.MainWindow):
self._scrollwidget = bui.scrollwidget(
parent=self._root_widget,
highlight=False,
position=(
(self._width - self._scroll_width) * 0.5,
self._height - 65 - self._scroll_height,
),
size=(self._scroll_width, self._scroll_height),
position=(self._width * 0.5 - self._scroll_width * 0.5, scroll_y),
claims_left_right=True,
selection_loops_to_parent=True,
border_opacity=0.4,