diff --git a/.efrocachemap b/.efrocachemap index a2b7dab9..c4d83915 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -432,7 +432,7 @@ "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": "3e6465ea91f3a3c057a7697e8a48121c", + "build/assets/ba_data/data/langdata.json": "0c39b1e1a3d4ceb9edcb7b28aa4e0d10", "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": "a8f1d5549dbbec0600499884028669a1", @@ -453,8 +453,8 @@ "build/assets/ba_data/data/languages/indonesian.json": "6688762f3dac583099f2c529bbb95c5f", "build/assets/ba_data/data/languages/italian.json": "efddc0d1740328da9655e4bc68693ce9", "build/assets/ba_data/data/languages/korean.json": "360760d72832863e1a3451b0a514cb08", - "build/assets/ba_data/data/languages/malay.json": "0212e18e54efa202c17505376e5b82fb", - "build/assets/ba_data/data/languages/persian.json": "1b6067334b9ade0dd76c02145b924291", + "build/assets/ba_data/data/languages/malay.json": "b2dd732c51d51aae17156939b2719f06", + "build/assets/ba_data/data/languages/persian.json": "6caed8dedf82fd38a6a224cfdcd12d95", "build/assets/ba_data/data/languages/piratespeak.json": "e93ca3bed6c5218e4788021514dbde76", "build/assets/ba_data/data/languages/polish.json": "993b612c5854fc42a78726ed09c65251", "build/assets/ba_data/data/languages/portuguese.json": "e5ecf78e1ab728218fb062d9e9852602", @@ -462,14 +462,14 @@ "build/assets/ba_data/data/languages/russian.json": "7164b2e1f9f2c16604a0c6eac968577c", "build/assets/ba_data/data/languages/serbian.json": "623fa4129a1154c2f32ed7867e56ff6a", "build/assets/ba_data/data/languages/slovak.json": "c11c29708b3742cdc2a92b4fa0d6d29f", - "build/assets/ba_data/data/languages/spanish.json": "db3e3c994d264914a148068084c3587c", + "build/assets/ba_data/data/languages/spanish.json": "09da297fbcec8822d64c95d7f08cdeef", "build/assets/ba_data/data/languages/swedish.json": "3b179e7333183c70adb0811246b09959", "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": "2e6877453e200d91ed5df5bfe6289020", "build/assets/ba_data/data/languages/venetian.json": "d9ce5b0e0fd816e88a9c849e74a684af", - "build/assets/ba_data/data/languages/vietnamese.json": "cc578c670bfb9855f93bbdc51922d267", + "build/assets/ba_data/data/languages/vietnamese.json": "ef7eca4f8ea88bb0950976f5b8c72322", "build/assets/ba_data/data/maps/big_g.json": "1dd301d490643088a435ce75df971054", "build/assets/ba_data/data/maps/bridgit.json": "6aea74805f4880cc11237c5734a24422", "build/assets/ba_data/data/maps/courtyard.json": "4b836554c8949bcd2ae382f5e3c1a9cc", @@ -4179,14 +4179,14 @@ "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "9f65c6d211c7ad6ca28f6f3544233a09", "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "933d66de7813a923d34ee1ad8e0ca83f", "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "8ecef6678c1a9c37741e821f234d1e86", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "7b82a8bc5d3c9e216492f98297271f2c", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "315a7f0a6fa55950b3d819530f69f281", "build/prefab/full/mac_arm64_gui/release/ballisticakit": "9a5b2e4469381395f300a762ebddc76a", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "fb6563fb5412297f58716e673ccf778d", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "3fa80b810f329766ed598135a6b67ede", "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "272761b36230978bfad9c7c6c8068f4e", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "59a040f9d29444bcc71cdf0f2d1b4975", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "93ad1adb64a611b3ed0583ea623a9a87", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "ed004eebe22ed066dcdc5614834115d6", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "2deb70e2bcf58f4b047af25e094c8b8f", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "44e4f2948a413c94d78a110d76e93fc8", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "5da210877ab03acf76b30e2bad60c964", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "e73664d139fc60b6e58d1dc99d316ae8", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "79546734a9d1a4617236de583e097fbd", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "5c7b118a1780cbf24c8b4bf6fd30ddb0", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "69a28ff5f0d1fb79a012449c90e3c0d0", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "5c7b118a1780cbf24c8b4bf6fd30ddb0", @@ -4199,14 +4199,14 @@ "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "593606fabbdd503bab555d49b7963ad1", "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "07143cfbe795a2cbaa47a09daf1261b3", "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "593606fabbdd503bab555d49b7963ad1", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "e6fce8239badb16cfb3c651a63b6e9e3", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "a38542bd6ecd715624fba536485a099a", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "112414666c91ca6fc1e20a7c2dfbe839", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "0b7047ad1d01537b3bf1998c6a0e35d1", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "7d274904b8f1a7828443c7a7d52185c6", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "678af1f4fb9ec555535ce9da654a1d34", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "465838856daf466202d1826d4fc6dcff", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "100d7b57e42e6ac559cd0a6edce4f814", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "8f49dc4a477954ac1592eff78604bb76", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "c08c749c55fca2b7cf90f0bce4370770", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "8c04cc059fb54eb24e485c0d1e9bed78", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "6b37775267cd1c1a84f838fb4881ad44", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "def65f8742ace0c5e516b3b300f6b25c", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "66a046bce7679b4e58f13d7aed895156", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "fc82fe80fec6e3587acd492ca31d53eb", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "9683cbdebc677ed37f3e434082b547f5", "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/settings/remoteapp.py b/src/assets/ba_data/python/bauiv1lib/settings/remoteapp.py index d9719b3c..0c124d7f 100644 --- a/src/assets/ba_data/python/bauiv1lib/settings/remoteapp.py +++ b/src/assets/ba_data/python/bauiv1lib/settings/remoteapp.py @@ -20,11 +20,30 @@ class RemoteAppSettingsWindow(bui.MainWindow): self._r = 'connectMobileDevicesWindow' app = bui.app uiscale = app.ui_v1.uiscale - width = 800 if uiscale is bui.UIScale.SMALL else 700 - height = 480 if uiscale is bui.UIScale.SMALL else 390 - yoffs = -48 if uiscale is bui.UIScale.SMALL else 0 + width = 1200 if uiscale is bui.UIScale.SMALL else 700 + height = 800 if uiscale is bui.UIScale.SMALL else 390 + # yoffs = -48 if uiscale is bui.UIScale.SMALL else 0 spacing = 40 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.3 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(width - 60, screensize[0] / scale) + target_height = min(height - 70, 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 * height + 0.5 * target_height + 30.0 + super().__init__( root_widget=bui.containerwidget( size=(width, height), @@ -33,17 +52,12 @@ class RemoteAppSettingsWindow(bui.MainWindow): if uiscale is bui.UIScale.SMALL else 'menu_full' ), - scale=( - 1.75 - if uiscale is bui.UIScale.SMALL - else 1.3 if uiscale is bui.UIScale.MEDIUM else 1.0 - ), - stack_offset=( - (0, 0) 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: bui.containerwidget( @@ -53,26 +67,23 @@ class RemoteAppSettingsWindow(bui.MainWindow): else: btn = bui.buttonwidget( parent=self._root_widget, - position=(40, height - 67 + yoffs), - size=(140, 65), + position=(40, yoffs - 67), + size=(60, 60), scale=0.8, - label=bui.Lstr(resource='backText'), - button_type='back', + label=bui.charstr(bui.SpecialChar.BACK), + button_type='backSmall', text_scale=1.1, autoselect=True, on_activate_call=self.main_window_back, ) bui.containerwidget(edit=self._root_widget, cancel_button=btn) - bui.buttonwidget( - edit=btn, - button_type='backSmall', - size=(60, 60), - label=bui.charstr(bui.SpecialChar.BACK), - ) bui.textwidget( parent=self._root_widget, - position=(width * 0.5, height - 42 + yoffs), + position=( + width * 0.5, + yoffs - (62 if uiscale is bui.UIScale.SMALL else 42), + ), size=(0, 0), text=bui.Lstr(resource=f'{self._r}.titleText'), maxwidth=370, @@ -82,11 +93,12 @@ class RemoteAppSettingsWindow(bui.MainWindow): v_align='center', ) - v = height - 70.0 + # Generally center the rest of our contents vertically. + v = height * 0.5 + 140.0 v -= spacing * 1.2 bui.textwidget( parent=self._root_widget, - position=(15, v - 26 + yoffs), + position=(15, v - 26), size=(width - 30, 30), maxwidth=width * 0.95, color=(0.7, 0.9, 0.7, 1.0), @@ -107,7 +119,7 @@ class RemoteAppSettingsWindow(bui.MainWindow): # Update: now we just show link to the remote webpage. bui.textwidget( parent=self._root_widget, - position=(width * 0.5, v + 5 + yoffs), + position=(width * 0.5, v + 5), size=(0, 0), color=(0.7, 0.9, 0.7, 1.0), scale=1.4, @@ -121,20 +133,20 @@ class RemoteAppSettingsWindow(bui.MainWindow): bui.textwidget( parent=self._root_widget, - position=(width * 0.5, v - 35 + yoffs), + position=(width * 0.5, v - 35), size=(0, 0), color=(0.7, 0.9, 0.7, 0.8), scale=0.65, text=bui.Lstr(resource=f'{self._r}.bestResultsText'), maxwidth=width * 0.95, - max_height=height * 0.19, + max_height=100, h_align='center', v_align='center', ) bui.checkboxwidget( parent=self._root_widget, - position=(width * 0.5 - 150, v - 116 + yoffs), + position=(width * 0.5 - 150, v - 116), size=(300, 30), maxwidth=300, scale=0.8,