diff --git a/.efrocachemap b/.efrocachemap index bb458aaf..869672b0 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -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", diff --git a/src/assets/ba_data/python/bauiv1lib/account/settings.py b/src/assets/ba_data/python/bauiv1lib/account/settings.py index 8e2c36f1..cae1dccb 100644 --- a/src/assets/ba_data/python/bauiv1lib/account/settings.py +++ b/src/assets/ba_data/python/bauiv1lib/account/settings.py @@ -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,