diff --git a/.efrocachemap b/.efrocachemap index e206f443..aca4202a 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -4135,16 +4135,16 @@ "assets/build/windows/x64/vc_redist.x64.exe": "https://files.ballistica.net/cache/ba1/ea/19/8b8787d81abcdce158ba608cd24f", "assets/build/windows/x64/vcruntime140_1d.dll": "https://files.ballistica.net/cache/ba1/11/d8/ff6344b429b00c24d9a1930d4338", "assets/build/windows/x64/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/20/33/0825e11e6518f87ece3009309933", - "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/7c/92/8e0cbeffff273e5aa40fa584b602", - "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/41/4a/91a9073717d810d978101f035f75", - "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/13/cc/732f4cbdaa5ff318c7041b3cc46e", - "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/95/01/6e4e0ddd1b32d2a24267472811d9", - "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/63/ee/2230562fd122dbc68ace1959440a", - "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/18/0e/6aebdc438215b178618b209b3d38", - "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a6/6e/7041677d14ff3445e678e85ed509", - "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/78/7f/27a790f133b341a47e0d286631f6", - "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/3f/7b/6548e30606ba52f274a72f123473", - "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/df/d8/b1bfd4a2de519276ae8b3498e64d", - "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/56/77/a0fcc90f8be8ac87b677ac0c983d", - "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/45/1e/d1a5697069c1719b962140d4815b" + "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/eb/bc/4dd3903ea7c71defdfc204c6f888", + "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/36/19/3c6dcb2ee2cfc7f089355e9c81a1", + "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/7b/33/ffe405cbec3b823592b8ebf06a59", + "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e2/18/8d125a287dae90ab4623a423443f", + "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/2f/5d/f1fe725d479915bbe3d2e5f6b643", + "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a5/ae/f0e854f7cf68f8ffab4c3a94e403", + "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a7/0d/f8dbfe4faa05379b2330c9f91cab", + "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b9/c6/ac98c7aad5847fea5a37087d5aa0", + "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/4e/59/c8cbb6d6909ab853bfa61a5160ce", + "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/26/cd/737e2615e116d110aac319a3e293", + "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/45/28/ff409cd1913fc71bf9b677b87df0", + "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/a4/15/f823745542ea46f679552669b131" } \ No newline at end of file diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml index 6507a224..a376cbb2 100644 --- a/.idea/dictionaries/ericf.xml +++ b/.idea/dictionaries/ericf.xml @@ -963,6 +963,7 @@ insta installdir instancer + interfacetype interstitials intex intp @@ -1779,6 +1780,7 @@ sline slval smag + smallscale smlh smtpd smtplib diff --git a/CHANGELOG.md b/CHANGELOG.md index c96b13a8..c31c523c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ - Disconnecting an input-device now immediately removes the player instead of doing so in the next cycle; this prevents possible issues where code would try to access player.inputdevice before the removal happens which would lead to errors. - Updated mac prefab builds to point at homebrew's python@3.7 package now that 3.8 has been made the default. - Fixed an issue where adding/deleting UI widgets within certain callbacks could cause a crash. +- Fixed a case where an early fatal error could lead to a hung app and no error dialog. +- Added environment variables which can override UI scale for testing. Set BA_FORCE_UI_SCALE to small, medium or large. +- Added a ba.UIScale enum. The value at ba.app.uiscale replaces the old ba.app.interface_type, ba.app.small_ui, and ba.app.med_ui values. ### 1.5.19 (20123) - Cleaned up some bomb logic to avoid weird corner-cases such as land-mine explosions behaving like punches when set off by punches or bombs potentially resulting in multiple explosions when triggered by multiple other bombs simultaneously. Holler if anything explosion-related seems off now. diff --git a/assets/src/ba_data/python/ba/__init__.py b/assets/src/ba_data/python/ba/__init__.py index 44ed439e..863ea29c 100644 --- a/assets/src/ba_data/python/ba/__init__.py +++ b/assets/src/ba_data/python/ba/__init__.py @@ -46,7 +46,8 @@ from ba._coopgame import CoopGameActivity from ba._coopsession import CoopSession from ba._dependency import (Dependency, DependencyComponent, DependencySet, AssetPackage) -from ba._enums import TimeType, Permission, TimeFormat, SpecialChar, InputType +from ba._enums import (TimeType, Permission, TimeFormat, SpecialChar, + InputType, UIScale) from ba._error import ( print_exception, print_error, ContextError, NotFoundError, PlayerNotFoundError, SessionPlayerNotFoundError, NodeNotFoundError, diff --git a/assets/src/ba_data/python/ba/_activitytypes.py b/assets/src/ba_data/python/ba/_activitytypes.py index d17d391a..065c47e2 100644 --- a/assets/src/ba_data/python/ba/_activitytypes.py +++ b/assets/src/ba_data/python/ba/_activitytypes.py @@ -26,7 +26,7 @@ from typing import TYPE_CHECKING import _ba from ba._activity import Activity from ba._music import setmusic, MusicType -from ba._enums import InputType +from ba._enums import InputType, UIScale # False-positive from pylint due to our class-generics-filter. from ba._player import EmptyPlayer # pylint: disable=W0611 from ba._team import EmptyTeam # pylint: disable=W0611 @@ -191,7 +191,7 @@ class ScoreScreenActivity(Activity[EmptyPlayer, EmptyTeam]): # Pop up a 'press any button to continue' statement after our # min-view-time show a 'press any button to continue..' # thing after a bit. - if _ba.app.interface_type == 'large': + if _ba.app.uiscale is UIScale.LARGE: # FIXME: Need a better way to determine whether we've probably # got a keyboard. sval = _lang.Lstr(resource='pressAnyKeyButtonText') diff --git a/assets/src/ba_data/python/ba/_app.py b/assets/src/ba_data/python/ba/_app.py index fbb88a8a..4bd5e0ad 100644 --- a/assets/src/ba_data/python/ba/_app.py +++ b/assets/src/ba_data/python/ba/_app.py @@ -125,7 +125,7 @@ class App: 'hi': 'Hindi' } - # Special case Chinese: specific variations map to traditional. + # Special case for Chinese: specific variations map to traditional. # (otherwise will map to 'Chinese' which is simplified) if self.locale in ('zh_HANT', 'zh_TW'): language = 'ChineseTraditional' @@ -231,17 +231,9 @@ class App: return CURRENT_API_VERSION @property - def interface_type(self) -> str: - """Interface mode the game is in; can be 'large', 'medium', or 'small'. - - 'large' is used by system such as desktop PC where elements on screen - remain usable even at small sizes, allowing more to be shown. - 'small' is used by small devices such as phones, where elements on - screen must be larger to remain readable and usable. - 'medium' is used by tablets and other middle-of-the-road situations - such as VR or TV. - """ - return self._interface_type + def uiscale(self) -> ba.UIScale: + """Current ui scale for the app.""" + return self._uiscale @property def on_tv(self) -> bool: @@ -269,6 +261,7 @@ class App: """ # pylint: disable=too-many-statements from ba._music import MusicController + from ba._enums import UIScale # Config. self.config_file_healthy = False @@ -305,8 +298,16 @@ class App: assert isinstance(self._platform, str) self._subplatform: str = env['subplatform'] assert isinstance(self._subplatform, str) - self._interface_type: str = env['interface_type'] - assert isinstance(self._interface_type, str) + self._uiscale: ba.UIScale + interfacetype = env['interface_type'] + if interfacetype == 'large': + self._uiscale = UIScale.LARGE + elif interfacetype == 'medium': + self._uiscale = UIScale.MEDIUM + elif interfacetype == 'small': + self._uiscale = UIScale.SMALL + else: + raise RuntimeError('Invalid UIScale value: {interfacetype}') self._on_tv: bool = env['on_tv'] assert isinstance(self._on_tv, bool) self._vr_mode: bool = env['vr_mode'] @@ -427,15 +428,10 @@ class App: self.infotextcolor = (0.7, 0.9, 0.7) self.uicleanupchecks: List[UICleanupCheck] = [] self.uiupkeeptimer: Optional[ba.Timer] = None + self.toolbars = env.get('toolbar_test', True) self.delegate: Optional[ba.AppDelegate] = None - # A few shortcuts. - self.small_ui = env['interface_type'] == 'small' - self.med_ui = env['interface_type'] == 'medium' - self.large_ui = env['interface_type'] == 'large' - self.toolbars = env.get('toolbar_test', True) - def on_app_launch(self) -> None: """Runs after the app finishes bootstrapping. @@ -454,7 +450,7 @@ class App: from bastd import appdelegate from bastd import maps as stdmaps from bastd.actor import spazappearance - from ba._enums import TimeType + from ba._enums import TimeType, UIScale cfg = self.config @@ -482,12 +478,6 @@ class App: and not _ba.is_blessed()): _ba.screenmessage('WARNING: NON-BLESSED BUILD', color=(1, 0, 0)) - # IMPORTANT - if tweaking UI stuff, you need to make sure it behaves - # for small, medium, and large UI modes. (doesn't run off screen, etc). - # Set these to 1 to test with different sizes. Generally small is used - # on phones, medium is used on tablets, and large is on desktops or - # large tablets. - # Kick off our periodic UI upkeep. # FIXME: Can probably kill this if we do immediate UI death checks. self.uiupkeeptimer = _ba.Timer(2.6543, @@ -495,29 +485,31 @@ class App: timetype=TimeType.REAL, repeat=True) - if bool(False): # force-test small UI - self.small_ui = True - self.med_ui = False - with _ba.Context('ui'): - _ba.pushcall(lambda: _ba.screenmessage( - 'FORCING SMALL UI FOR TESTING', color=(1, 0, 1), log=True)) + # IMPORTANT: If tweaking UI stuff, make sure it behaves for small, + # medium, and large UI modes. (doesn't run off screen, etc). + # The overrides below can be used to test with different sizes. + # Generally small is used on phones, medium is used on tablets/tvs, + # and large is on desktop computers or perhaps large tablets. When + # possible, run in windowed mode and resize the window to assure + # this holds true at all aspect ratios. - if bool(False): # force-test medium UI - self.small_ui = False - self.med_ui = True - with _ba.Context('ui'): - _ba.pushcall(lambda: _ba.screenmessage( - 'FORCING MEDIUM UI FOR TESTING', color=(1, 0, 1 - ), log=True)) - if bool(False): # force-test large UI - self.small_ui = False - self.med_ui = False - with _ba.Context('ui'): - _ba.pushcall(lambda: _ba.screenmessage( - 'FORCING LARGE UI FOR TESTING', color=(1, 0, 1), log=True)) + # UPDATE: A better way to test this is now by setting the environment + # variable BA_FORCE_UI_SCALE to "small", "medium", or "large". + # This will affect system UIs not covered by the values below such + # as screen-messages. The below values remain functional, however, + # for cases such as Android where environment variables can't be set + # easily. - # If there's a leftover log file, attempt to upload - # it to the server and/or get rid of it. + if bool(False): # force-test ui scale + self._uiscale = UIScale.SMALL + with _ba.Context('ui'): + _ba.pushcall(lambda: _ba.screenmessage( + f'FORCING UISCALE {self._uiscale.name} FOR TESTING', + color=(1, 0, 1), + log=True)) + + # If there's a leftover log file, attempt to upload it to the + # master-server and/or get rid of it. _apputils.handle_leftover_log_file() # Only do this stuff if our config file is healthy so we don't @@ -545,7 +537,7 @@ class App: # Debugging - make note if we're using the local test server so we # don't accidentally leave it on in a release. - # FIXME - move this to native layer. + # FIXME - should move this to the native layer. server_addr = _ba.get_master_server_address() if 'localhost' in server_addr: _ba.timer(2.0, @@ -582,9 +574,7 @@ class App: # Auto-sign-in to a local account in a moment if we're set to. def do_auto_sign_in() -> None: - if self.headless_build: - _ba.sign_in('Local') - elif cfg.get('Auto Account State') == 'Local': + if self.headless_build or cfg.get('Auto Account State') == 'Local': _ba.sign_in('Local') _ba.pushcall(do_auto_sign_in) @@ -610,6 +600,7 @@ class App: and not _ba.have_connected_clients()): from ba import _gameutils, _lang from ba._nodeactor import NodeActor + # FIXME: Shouldn't be touching scene stuff here; # should just pass the request on to the host-session. with _ba.Context(activity): diff --git a/assets/src/ba_data/python/ba/_enums.py b/assets/src/ba_data/python/ba/_enums.py index 1431686b..19aeed47 100644 --- a/assets/src/ba_data/python/ba/_enums.py +++ b/assets/src/ba_data/python/ba/_enums.py @@ -56,6 +56,31 @@ class InputType(Enum): DOWN_RELEASE = 26 +class UIScale(Enum): + """The overall scale the UI is being rendered for. Note that this is + independent of pixel resolution. For example, a phone and a desktop PC + might render the game at similar pixel resolutions but the size they + display content at will vary significantly. + + Category: Enums + + 'large' is used for devices such as desktop PCs where fine details can + be clearly seen. UI elements are generally smaller on the screen + and more content can be seen at once. + + 'medium' is used for devices such as tablets, TVs, or VR headsets. + This mode strikes a balance between clean readability and amount of + content visible. + + 'small' is used primarily for phones or other small devices where + content needs to be presented as large and clear in order to remain + readable from an average distance. + """ + LARGE = 0 + MEDIUM = 1 + SMALL = 2 + + class TimeType(Enum): """Specifies the type of time for various operations to target/use. diff --git a/assets/src/ba_data/python/ba/_gameutils.py b/assets/src/ba_data/python/ba/_gameutils.py index 7f4588fb..dbe0c6d0 100644 --- a/assets/src/ba_data/python/ba/_gameutils.py +++ b/assets/src/ba_data/python/ba/_gameutils.py @@ -26,7 +26,7 @@ from dataclasses import dataclass from typing import TYPE_CHECKING import _ba -from ba._enums import TimeType, TimeFormat, SpecialChar +from ba._enums import TimeType, TimeFormat, SpecialChar, UIScale from ba._error import ActivityNotFoundError if TYPE_CHECKING: @@ -224,7 +224,7 @@ def show_damage_count(damage: str, position: Sequence[float], # FIXME: Should never vary game elements based on local config. # (connected clients may have differing configs so they won't # get the intended results). - do_big = app.interface_type == 'small' or app.vr_mode + do_big = app.uiscale is UIScale.SMALL or app.vr_mode txtnode = _ba.newnode('text', attrs={ 'text': damage, diff --git a/assets/src/ba_data/python/bastd/activity/multiteamvictory.py b/assets/src/ba_data/python/bastd/activity/multiteamvictory.py index 275e2911..6f0bd926 100644 --- a/assets/src/ba_data/python/bastd/activity/multiteamvictory.py +++ b/assets/src/ba_data/python/bastd/activity/multiteamvictory.py @@ -54,7 +54,7 @@ class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity): from ba.deprecated import get_resource ba.set_analytics_screen('FreeForAll Series Victory Screen' if self. _is_ffa else 'Teams Series Victory Screen') - if ba.app.interface_type == 'large': + if ba.app.uiscale is ba.UIScale.LARGE: sval = ba.Lstr(resource='pressAnyKeyButtonPlayAgainText') else: sval = ba.Lstr(resource='pressAnyButtonPlayAgainText') diff --git a/assets/src/ba_data/python/bastd/game/runaround.py b/assets/src/ba_data/python/bastd/game/runaround.py index 0cecb473..66cd18b0 100644 --- a/assets/src/ba_data/python/bastd/game/runaround.py +++ b/assets/src/ba_data/python/bastd/game/runaround.py @@ -398,9 +398,9 @@ class RunaroundGame(ba.CoopGameActivity[Player, Team]): self._tntspawner = TNTSpawner(position=self._tntspawnpos) # Make sure to stay out of the way of menu/party buttons in the corner. - interface_type = ba.app.interface_type - l_offs = (-80 if interface_type == 'small' else - -40 if interface_type == 'medium' else 0) + uiscale = ba.app.uiscale + l_offs = (-80 if uiscale is ba.UIScale.SMALL else + -40 if uiscale is ba.UIScale.MEDIUM else 0) self._lives_bg = ba.NodeActor( ba.newnode('image', diff --git a/assets/src/ba_data/python/bastd/mainmenu.py b/assets/src/ba_data/python/bastd/mainmenu.py index 4be9c553..cbdb3003 100644 --- a/assets/src/ba_data/python/bastd/mainmenu.py +++ b/assets/src/ba_data/python/bastd/mainmenu.py @@ -65,7 +65,7 @@ class MainMenuActivity(ba.Activity[ba.Player, ba.Team]): color = ((1.0, 1.0, 1.0, 1.0) if vr_mode else (0.5, 0.6, 0.5, 0.6)) # FIXME: Need a node attr for vr-specific-scale. scale = (0.9 if - (app.interface_type == 'small' or vr_mode) else 0.7) + (app.uiscale is ba.UIScale.SMALL or vr_mode) else 0.7) self.my_name = ba.NodeActor( ba.newnode('text', attrs={ @@ -104,7 +104,7 @@ class MainMenuActivity(ba.Activity[ba.Player, ba.Team]): # Any differences need to happen at the engine level so everyone sees # things in their own optimal way. vr_mode = app.vr_mode - interface_type = app.interface_type + uiscale = app.uiscale # In cases where we're doing lots of dev work lets always show the # build number. @@ -127,7 +127,7 @@ class MainMenuActivity(ba.Activity[ba.Player, ba.Team]): ]) else: text = ba.Lstr(value='${V}', subs=[('${V}', app.version)]) - scale = 0.9 if (interface_type == 'small' or vr_mode) else 0.7 + scale = 0.9 if (uiscale is ba.UIScale.SMALL or vr_mode) else 0.7 color = (1, 1, 1, 1) if vr_mode else (0.5, 0.6, 0.5, 0.7) self.version = ba.NodeActor( ba.newnode( @@ -373,7 +373,7 @@ class MainMenuActivity(ba.Activity[ba.Player, ba.Team]): ba.WeakCall(self._change_phrase), repeat=True) - scl = 1.2 if (ba.app.interface_type == 'small' + scl = 1.2 if (ba.app.uiscale is ba.UIScale.SMALL or ba.app.vr_mode) else 0.8 color2 = ((1, 1, 1, 1) if ba.app.vr_mode else diff --git a/assets/src/ba_data/python/bastd/ui/account/link.py b/assets/src/ba_data/python/bastd/ui/account/link.py index f25a3509..506ec979 100644 --- a/assets/src/ba_data/python/bastd/ui/account/link.py +++ b/assets/src/ba_data/python/bastd/ui/account/link.py @@ -49,14 +49,15 @@ class AccountLinkWindow(ba.Window): bg_color = (0.4, 0.4, 0.5) self._width = 560 self._height = 420 - base_scale = (1.65 - if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.1) + uiscale = ba.app.uiscale + base_scale = (1.65 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.1) super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition=transition, scale=base_scale, scale_origin_stack_offset=scale_origin, - stack_offset=(0, -10) if ba.app.small_ui else (0, 0))) + stack_offset=(0, -10) if uiscale is ba.UIScale.SMALL else (0, 0))) self._cancel_button = ba.buttonwidget(parent=self._root_widget, position=(40, self._height - 45), size=(50, 50), @@ -131,11 +132,13 @@ class AccountLinkCodeWindow(ba.Window): def __init__(self, data: Dict[str, Any]): self._width = 350 self._height = 200 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), color=(0.45, 0.63, 0.15), transition='in_scale', - scale=1.8 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0)) + scale=(1.8 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0))) self._data = copy.deepcopy(data) ba.playsound(ba.getsound('cashRegister')) ba.playsound(ba.getsound('swish')) diff --git a/assets/src/ba_data/python/bastd/ui/account/settings.py b/assets/src/ba_data/python/bastd/ui/account/settings.py index db786b1b..56583eb7 100644 --- a/assets/src/ba_data/python/bastd/ui/account/settings.py +++ b/assets/src/ba_data/python/bastd/ui/account/settings.py @@ -77,11 +77,12 @@ class AccountSettingsWindow(ba.Window): self._can_reset_achievements = (account_type == 'Game Center') app = ba.app + uiscale = app.uiscale - self._width = 760 if ba.app.small_ui else 660 - x_offs = 50 if ba.app.small_ui else 0 - self._height = (390 - if ba.app.small_ui else 430 if ba.app.med_ui else 490) + self._width = 760 if uiscale is ba.UIScale.SMALL else 660 + x_offs = 50 if uiscale is ba.UIScale.SMALL else 0 + self._height = (390 if uiscale is ba.UIScale.SMALL else + 430 if uiscale is ba.UIScale.MEDIUM else 490) self._sign_in_button = None self._sign_in_text = None @@ -103,15 +104,16 @@ class AccountSettingsWindow(ba.Window): # exceptions. self._show_sign_in_buttons.append('Local') - top_extra = 15 if ba.app.small_ui else 0 + top_extra = 15 if uiscale is ba.UIScale.SMALL else 0 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + top_extra), transition=transition, toolbar_visibility='menu_minimal', scale_origin_stack_offset=scale_origin, - scale=(2.09 if ba.app.small_ui else 1.4 if ba.app.med_ui else 1.0), - stack_offset=(0, -19) if ba.app.small_ui else (0, 0))) - if ba.app.small_ui and ba.app.toolbars: + scale=(2.09 if uiscale is ba.UIScale.SMALL else + 1.4 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -19) if uiscale is ba.UIScale.SMALL else (0, 0))) + if uiscale is ba.UIScale.SMALL and ba.app.toolbars: self._back_button = None ba.containerwidget(edit=self._root_widget, on_cancel_call=self._back) diff --git a/assets/src/ba_data/python/bastd/ui/account/unlink.py b/assets/src/ba_data/python/bastd/ui/account/unlink.py index 7d20768a..c4b7ec78 100644 --- a/assets/src/ba_data/python/bastd/ui/account/unlink.py +++ b/assets/src/ba_data/python/bastd/ui/account/unlink.py @@ -50,14 +50,15 @@ class AccountUnlinkWindow(ba.Window): self._height = 350 self._scroll_width = 400 self._scroll_height = 200 - base_scale = (2.0 - if ba.app.small_ui else 1.6 if ba.app.med_ui else 1.1) + uiscale = ba.app.uiscale + base_scale = (2.0 if uiscale is ba.UIScale.SMALL else + 1.6 if uiscale is ba.UIScale.MEDIUM else 1.1) super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition=transition, scale=base_scale, scale_origin_stack_offset=scale_origin, - stack_offset=(0, -10) if ba.app.small_ui else (0, 0))) + stack_offset=(0, -10) if uiscale is ba.UIScale.SMALL else (0, 0))) self._cancel_button = ba.buttonwidget(parent=self._root_widget, position=(30, self._height - 50), size=(50, 50), diff --git a/assets/src/ba_data/python/bastd/ui/account/viewer.py b/assets/src/ba_data/python/bastd/ui/account/viewer.py index 5a61b9db..3c9022f5 100644 --- a/assets/src/ba_data/python/bastd/ui/account/viewer.py +++ b/assets/src/ba_data/python/bastd/ui/account/viewer.py @@ -46,13 +46,15 @@ class AccountViewerWindow(popup.PopupWindow): self._account_id = account_id self._profile_id = profile_id + uiscale = ba.app.uiscale if scale is None: - scale = (2.6 if ba.app.small_ui else 1.8 if ba.app.med_ui else 1.4) + scale = (2.6 if uiscale is ba.UIScale.SMALL else + 1.8 if uiscale is ba.UIScale.MEDIUM else 1.4) self._transitioning_out = False self._width = 400 - self._height = (300 - if ba.app.small_ui else 400 if ba.app.med_ui else 450) + self._height = (300 if uiscale is ba.UIScale.SMALL else + 400 if uiscale is ba.UIScale.MEDIUM else 450) self._subcontainer: Optional[ba.Widget] = None bg_color = (0.5, 0.4, 0.6) @@ -159,9 +161,11 @@ class AccountViewerWindow(popup.PopupWindow): choices.append('ban') choices_display.append(ba.Lstr(resource='banThisPlayerText')) + uiscale = ba.app.uiscale popup.PopupMenuWindow( position=self._extras_menu_button.get_screen_space_center(), - scale=2.3 if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23, + scale=(2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23), choices=choices, choices_display=choices_display, current_choice='more', diff --git a/assets/src/ba_data/python/bastd/ui/achievements.py b/assets/src/ba_data/python/bastd/ui/achievements.py index 2583a086..b63ce088 100644 --- a/assets/src/ba_data/python/bastd/ui/achievements.py +++ b/assets/src/ba_data/python/bastd/ui/achievements.py @@ -36,13 +36,14 @@ class AchievementsWindow(popup.PopupWindow): def __init__(self, position: Tuple[float, float], scale: float = None): # pylint: disable=too-many-locals + uiscale = ba.app.uiscale if scale is None: - scale = (2.3 - if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + scale = (2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._transitioning_out = False self._width = 450 - self._height = (300 - if ba.app.small_ui else 370 if ba.app.med_ui else 450) + self._height = (300 if uiscale is ba.UIScale.SMALL else + 370 if uiscale is ba.UIScale.MEDIUM else 450) bg_color = (0.5, 0.4, 0.6) # creates our _root_widget diff --git a/assets/src/ba_data/python/bastd/ui/appinvite.py b/assets/src/ba_data/python/bastd/ui/appinvite.py index a043192f..00eabdd8 100644 --- a/assets/src/ba_data/python/bastd/ui/appinvite.py +++ b/assets/src/ba_data/python/bastd/ui/appinvite.py @@ -42,10 +42,12 @@ class AppInviteWindow(ba.Window): self._width = 650 self._height = 400 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition='in_scale', - scale=1.8 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0)) + scale=(1.8 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0))) self._cancel_button = ba.buttonwidget(parent=self._root_widget, scale=0.8, @@ -172,11 +174,13 @@ class ShowFriendCodeWindow(ba.Window): ba.set_analytics_screen('Friend Promo Code') self._width = 650 self._height = 400 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), color=(0.45, 0.63, 0.15), transition='in_scale', - scale=1.7 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0)) + scale=(1.7 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0))) self._data = copy.deepcopy(data) ba.playsound(ba.getsound('cashRegister')) ba.playsound(ba.getsound('swish')) diff --git a/assets/src/ba_data/python/bastd/ui/characterpicker.py b/assets/src/ba_data/python/bastd/ui/characterpicker.py index 40cbe68d..4952988c 100644 --- a/assets/src/ba_data/python/bastd/ui/characterpicker.py +++ b/assets/src/ba_data/python/bastd/ui/characterpicker.py @@ -48,9 +48,10 @@ class CharacterPicker(popup.PopupWindow): # pylint: disable=too-many-locals from bastd.actor import spazappearance del parent # unused here + uiscale = ba.app.uiscale if scale is None: - scale = (1.85 - if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + scale = (1.85 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._delegate = delegate self._transitioning_out = False @@ -79,7 +80,8 @@ class CharacterPicker(popup.PopupWindow): self._width = (10 + columns * (button_width + 2 * button_buffer_h) * (1.0 / 0.95) * (1.0 / 0.8)) - self._height = self._width * (0.8 if ba.app.small_ui else 1.06) + self._height = self._width * (0.8 + if uiscale is ba.UIScale.SMALL else 1.06) self._scroll_width = self._width * 0.8 self._scroll_height = self._height * 0.8 diff --git a/assets/src/ba_data/python/bastd/ui/colorpicker.py b/assets/src/ba_data/python/bastd/ui/colorpicker.py index 8684c340..21f4328e 100644 --- a/assets/src/ba_data/python/bastd/ui/colorpicker.py +++ b/assets/src/ba_data/python/bastd/ui/colorpicker.py @@ -52,9 +52,10 @@ class ColorPicker(PopupWindow): assert len(c_raw) == 16 self.colors = [c_raw[0:4], c_raw[4:8], c_raw[8:12], c_raw[12:16]] + uiscale = ba.app.uiscale if scale is None: - scale = (2.3 - if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + scale = (2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._parent = parent self._position = position self._scale = scale @@ -190,9 +191,10 @@ class ColorPickerExact(PopupWindow): assert len(c_raw) == 16 self.colors = [c_raw[0:4], c_raw[4:8], c_raw[8:12], c_raw[12:16]] + uiscale = ba.app.uiscale if scale is None: - scale = (2.3 - if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + scale = (2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._delegate = delegate self._transitioning_out = False self._tag = tag diff --git a/assets/src/ba_data/python/bastd/ui/confirm.py b/assets/src/ba_data/python/bastd/ui/confirm.py index 9693b287..b15b1a6d 100644 --- a/assets/src/ba_data/python/bastd/ui/confirm.py +++ b/assets/src/ba_data/python/bastd/ui/confirm.py @@ -68,12 +68,14 @@ class ConfirmWindow: scale_origin = None transition = 'in_right' + uiscale = ba.app.uiscale self.root_widget = ba.containerwidget( size=(width, height), transition=transition, toolbar_visibility='menu_minimal_no_back', parent=_ba.get_special_widget('overlay_stack'), - scale=2.1 if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.0, + scale=(2.1 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0), scale_origin_stack_offset=scale_origin) ba.textwidget(parent=self.root_widget, diff --git a/assets/src/ba_data/python/bastd/ui/coop/browser.py b/assets/src/ba_data/python/bastd/ui/coop/browser.py index 2cbdc6c5..629b782a 100644 --- a/assets/src/ba_data/python/bastd/ui/coop/browser.py +++ b/assets/src/ba_data/python/bastd/ui/coop/browser.py @@ -40,15 +40,17 @@ class CoopBrowserWindow(ba.Window): """Window for browsing co-op levels/games/etc.""" def _update_corner_button_positions(self) -> None: - offs = (-55 if ba.app.small_ui and _ba.is_party_icon_visible() else 0) + uiscale = ba.app.uiscale + offs = (-55 if uiscale is ba.UIScale.SMALL + and _ba.is_party_icon_visible() else 0) if self._league_rank_button is not None: self._league_rank_button.set_position( - (self._width - 282 + offs - self._x_inset, - self._height - 85 - (4 if ba.app.small_ui else 0))) + (self._width - 282 + offs - self._x_inset, self._height - 85 - + (4 if uiscale is ba.UIScale.SMALL else 0))) if self._store_button is not None: self._store_button.set_position( - (self._width - 170 + offs - self._x_inset, - self._height - 85 - (4 if ba.app.small_ui else 0))) + (self._width - 170 + offs - self._x_inset, self._height - 85 - + (4 if uiscale is ba.UIScale.SMALL else 0))) def __init__(self, transition: Optional[str] = 'in_right', @@ -96,12 +98,14 @@ class CoopBrowserWindow(ba.Window): self._hard_button_lock_image: Optional[ba.Widget] = None self._campaign_percent_text: Optional[ba.Widget] = None - self._width = 1320 if app.small_ui else 1120 - self._x_inset = x_inset = 100 if app.small_ui else 0 - self._height = (657 if app.small_ui else 730 if app.med_ui else 800) + uiscale = ba.app.uiscale + self._width = 1320 if uiscale is ba.UIScale.SMALL else 1120 + self._x_inset = x_inset = 100 if uiscale is ba.UIScale.SMALL else 0 + self._height = (657 if uiscale is ba.UIScale.SMALL else + 730 if uiscale is ba.UIScale.MEDIUM else 800) app.main_window = 'Coop Select' self._r = 'coopSelectWindow' - top_extra = 20 if app.small_ui else 0 + top_extra = 20 if uiscale is ba.UIScale.SMALL else 0 self._tourney_data_up_to_date = False @@ -112,18 +116,19 @@ class CoopBrowserWindow(ba.Window): size=(self._width, self._height + top_extra), toolbar_visibility='menu_full', scale_origin_stack_offset=scale_origin, - stack_offset=((0, -15) if app.small_ui else ( - 0, 0) if app.med_ui else (0, 0)), + stack_offset=((0, -15) if uiscale is ba.UIScale.SMALL else ( + 0, 0) if uiscale is ba.UIScale.MEDIUM else (0, 0)), transition=transition, - scale=1.2 if app.small_ui else 0.8 if app.med_ui else 0.75)) + scale=(1.2 if uiscale is ba.UIScale.SMALL else + 0.8 if uiscale is ba.UIScale.MEDIUM else 0.75))) - if app.toolbars and app.small_ui: + if app.toolbars and uiscale is ba.UIScale.SMALL: self._back_button = None else: self._back_button = ba.buttonwidget( parent=self._root_widget, - position=(75 + x_inset, - self._height - 87 - (4 if app.small_ui else 0)), + position=(75 + x_inset, self._height - 87 - + (4 if uiscale is ba.UIScale.SMALL else 0)), size=(120, 60), scale=1.2, autoselect=True, @@ -138,8 +143,8 @@ class CoopBrowserWindow(ba.Window): if not app.toolbars: prb = self._league_rank_button = LeagueRankButton( parent=self._root_widget, - position=(self._width - (282 + x_inset), - self._height - 85 - (4 if app.small_ui else 0)), + position=(self._width - (282 + x_inset), self._height - 85 - + (4 if uiscale is ba.UIScale.SMALL else 0)), size=(100, 60), color=(0.4, 0.4, 0.9), textcolor=(0.9, 0.9, 2.0), @@ -149,8 +154,8 @@ class CoopBrowserWindow(ba.Window): sbtn = self._store_button = StoreButton( parent=self._root_widget, - position=(self._width - (170 + x_inset), - self._height - 85 - (4 if app.small_ui else 0)), + position=(self._width - (170 + x_inset), self._height - 85 - + (4 if uiscale is ba.UIScale.SMALL else 0)), size=(100, 60), color=(0.6, 0.4, 0.7), show_tickets=True, @@ -195,7 +200,8 @@ class CoopBrowserWindow(ba.Window): v = self._height - 95 txt = ba.textwidget( parent=self._root_widget, - position=(self._width * 0.5, v + 40 - (0 if app.small_ui else 0)), + position=(self._width * 0.5, + v + 40 - (0 if uiscale is ba.UIScale.SMALL else 0)), size=(0, 0), text=ba.Lstr(resource='playModes.singlePlayerCoopText', fallback_resource='playModes.coopText'), @@ -205,16 +211,17 @@ class CoopBrowserWindow(ba.Window): maxwidth=500, v_align='center') - if app.toolbars and app.small_ui: + if app.toolbars and uiscale is ba.UIScale.SMALL: ba.textwidget(edit=txt, text='') if self._back_button is not None: - ba.buttonwidget(edit=self._back_button, - button_type='backSmall', - size=(60, 50), - position=(75 + x_inset, self._height - 87 - - (4 if app.small_ui else 0) + 6), - label=ba.charstr(ba.SpecialChar.BACK)) + ba.buttonwidget( + edit=self._back_button, + button_type='backSmall', + size=(60, 50), + position=(75 + x_inset, self._height - 87 - + (4 if uiscale is ba.UIScale.SMALL else 0) + 6), + label=ba.charstr(ba.SpecialChar.BACK)) self._selected_row = cfg.get('Selected Coop Row', None) @@ -225,8 +232,9 @@ class CoopBrowserWindow(ba.Window): self.a_outline_model = ba.getmodel('achievementOutline') self._scroll_width = self._width - (130 + 2 * x_inset) - self._scroll_height = self._height - (190 if app.small_ui - and app.toolbars else 160) + self._scroll_height = ( + self._height - + (190 if uiscale is ba.UIScale.SMALL and app.toolbars else 160)) self._subcontainerwidth = 800.0 self._subcontainerheight = 1400.0 @@ -234,7 +242,8 @@ class CoopBrowserWindow(ba.Window): self._scrollwidget = ba.scrollwidget( parent=self._root_widget, highlight=False, - position=(65 + x_inset, 120) if app.small_ui and app.toolbars else + position=(65 + x_inset, + 120) if uiscale is ba.UIScale.SMALL and app.toolbars else (65 + x_inset, 70), size=(self._scroll_width, self._scroll_height), simple_culling_v=10.0) diff --git a/assets/src/ba_data/python/bastd/ui/coop/level.py b/assets/src/ba_data/python/bastd/ui/coop/level.py index 8a8d60d6..113ca6fc 100644 --- a/assets/src/ba_data/python/bastd/ui/coop/level.py +++ b/assets/src/ba_data/python/bastd/ui/coop/level.py @@ -32,10 +32,12 @@ class CoopLevelLockedWindow(ba.Window): width = 550.0 height = 250.0 lock_tex = ba.gettexture('lock') + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(width, height), transition='in_right', - scale=1.7 if ba.app.small_ui else 1.3 if ba.app.med_ui else 1.0)) + scale=(1.7 if uiscale is ba.UIScale.SMALL else + 1.3 if uiscale is ba.UIScale.MEDIUM else 1.0))) ba.textwidget(parent=self._root_widget, position=(150 - 20, height * 0.63), size=(0, 0), diff --git a/assets/src/ba_data/python/bastd/ui/creditslist.py b/assets/src/ba_data/python/bastd/ui/creditslist.py index cb5ad694..154337c1 100644 --- a/assets/src/ba_data/python/bastd/ui/creditslist.py +++ b/assets/src/ba_data/python/bastd/ui/creditslist.py @@ -51,9 +51,10 @@ class CreditsListWindow(ba.Window): scale_origin = None transition = 'in_right' - width = 870 if ba.app.small_ui else 670 - x_inset = 100 if ba.app.small_ui else 0 - height = 398 if ba.app.small_ui else 500 + uiscale = ba.app.uiscale + width = 870 if uiscale is ba.UIScale.SMALL else 670 + x_inset = 100 if uiscale is ba.UIScale.SMALL else 0 + height = 398 if uiscale is ba.UIScale.SMALL else 500 self._r = 'creditsWindow' super().__init__(root_widget=ba.containerwidget( @@ -61,33 +62,37 @@ class CreditsListWindow(ba.Window): transition=transition, toolbar_visibility='menu_minimal', scale_origin_stack_offset=scale_origin, - scale=(2.0 if ba.app.small_ui else 1.3 if ba.app.med_ui else 1.0), - stack_offset=(0, -8) if ba.app.small_ui else (0, 0))) + scale=(2.0 if uiscale is ba.UIScale.SMALL else + 1.3 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -8) if uiscale is ba.UIScale.SMALL else (0, 0))) - if ba.app.toolbars and ba.app.small_ui: + if ba.app.toolbars and uiscale is ba.UIScale.SMALL: ba.containerwidget(edit=self._root_widget, on_cancel_call=self._back) else: - btn = ba.buttonwidget(parent=self._root_widget, - position=(40 + x_inset, height - - (68 if ba.app.small_ui else 62)), - size=(140, 60), - scale=0.8, - label=ba.Lstr(resource='backText'), - button_type='back', - on_activate_call=self._back, - autoselect=True) + btn = ba.buttonwidget( + parent=self._root_widget, + position=(40 + x_inset, height - + (68 if uiscale is ba.UIScale.SMALL else 62)), + size=(140, 60), + scale=0.8, + label=ba.Lstr(resource='backText'), + button_type='back', + on_activate_call=self._back, + autoselect=True) ba.containerwidget(edit=self._root_widget, cancel_button=btn) - ba.buttonwidget(edit=btn, - button_type='backSmall', - position=(40 + x_inset, height - - (68 if ba.app.small_ui else 62) + 5), - size=(60, 48), - label=ba.charstr(ba.SpecialChar.BACK)) + ba.buttonwidget( + edit=btn, + button_type='backSmall', + position=(40 + x_inset, height - + (68 if uiscale is ba.UIScale.SMALL else 62) + 5), + size=(60, 48), + label=ba.charstr(ba.SpecialChar.BACK)) ba.textwidget(parent=self._root_widget, - position=(0, height - (59 if ba.app.small_ui else 54)), + position=(0, height - + (59 if uiscale is ba.UIScale.SMALL else 54)), size=(width, 30), text=ba.Lstr(resource=self._r + '.titleText', subs=[('${APP_NAME}', @@ -106,7 +111,7 @@ class CreditsListWindow(ba.Window): if ba.app.toolbars: ba.widget(edit=scroll, right_widget=_ba.get_special_widget('party_button')) - if ba.app.small_ui: + if uiscale is ba.UIScale.SMALL: ba.widget(edit=scroll, left_widget=_ba.get_special_widget('back_button')) diff --git a/assets/src/ba_data/python/bastd/ui/debug.py b/assets/src/ba_data/python/bastd/ui/debug.py index 50b8c670..41c864e6 100644 --- a/assets/src/ba_data/python/bastd/ui/debug.py +++ b/assets/src/ba_data/python/bastd/ui/debug.py @@ -38,9 +38,10 @@ class DebugWindow(ba.Window): # pylint: disable=cyclic-import from bastd.ui import popup + uiscale = ba.app.uiscale self._width = width = 580 - self._height = height = (350 if ba.app.small_ui else - 420 if ba.app.med_ui else 520) + self._height = height = (350 if uiscale is ba.UIScale.SMALL else + 420 if uiscale is ba.UIScale.MEDIUM else 520) self._scroll_width = self._width - 100 self._scroll_height = self._height - 120 @@ -54,12 +55,13 @@ class DebugWindow(ba.Window): self._stress_test_round_duration = 30 self._r = 'debugWindow' + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(width, height), transition=transition, - scale=( - 2.35 if ba.app.small_ui else 1.55 if ba.app.med_ui else 1.0), - stack_offset=(0, -30) if ba.app.small_ui else (0, 0))) + scale=(2.35 if uiscale is ba.UIScale.SMALL else + 1.55 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -30) if uiscale is ba.UIScale.SMALL else (0, 0))) self._done_button = btn = ba.buttonwidget( parent=self._root_widget, diff --git a/assets/src/ba_data/python/bastd/ui/feedback.py b/assets/src/ba_data/python/bastd/ui/feedback.py index 303b76a6..d10d9f57 100644 --- a/assets/src/ba_data/python/bastd/ui/feedback.py +++ b/assets/src/ba_data/python/bastd/ui/feedback.py @@ -41,10 +41,12 @@ def ask_for_rating() -> Optional[ba.Widget]: width = 700 height = 400 spacing = 40 + uiscale = ba.app.uiscale dlg = ba.containerwidget( size=(width, height), transition='in_right', - scale=1.6 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0) + scale=(1.6 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0)) v = height - 50 v -= spacing v -= 140 diff --git a/assets/src/ba_data/python/bastd/ui/fileselector.py b/assets/src/ba_data/python/bastd/ui/fileselector.py index d397fb33..a65905a0 100644 --- a/assets/src/ba_data/python/bastd/ui/fileselector.py +++ b/assets/src/ba_data/python/bastd/ui/fileselector.py @@ -45,9 +45,10 @@ class FileSelectorWindow(ba.Window): allow_folders: bool = False): if valid_file_extensions is None: valid_file_extensions = [] - self._width = 700 if ba.app.small_ui else 600 - self._x_inset = x_inset = 50 if ba.app.small_ui else 0 - self._height = 365 if ba.app.small_ui else 418 + uiscale = ba.app.uiscale + self._width = 700 if uiscale is ba.UIScale.SMALL else 600 + self._x_inset = x_inset = 50 if uiscale is ba.UIScale.SMALL else 0 + self._height = 365 if uiscale is ba.UIScale.SMALL else 418 self._callback = callback self._base_path = path self._path: Optional[str] = None @@ -65,8 +66,9 @@ class FileSelectorWindow(ba.Window): super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition='in_right', - scale=(2.23 if ba.app.small_ui else 1.4 if ba.app.med_ui else 1.0), - stack_offset=(0, -35) if ba.app.small_ui else (0, 0))) + scale=(2.23 if uiscale is ba.UIScale.SMALL else + 1.4 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -35) if uiscale is ba.UIScale.SMALL else (0, 0))) ba.textwidget( parent=self._root_widget, position=(self._width * 0.5, self._height - 42), diff --git a/assets/src/ba_data/python/bastd/ui/gather.py b/assets/src/ba_data/python/bastd/ui/gather.py index 5929297d..e4d3185f 100644 --- a/assets/src/ba_data/python/bastd/ui/gather.py +++ b/assets/src/ba_data/python/bastd/ui/gather.py @@ -58,12 +58,13 @@ class GatherWindow(ba.Window): ba.app.main_window = 'Gather' _ba.set_party_icon_always_visible(True) self._public_parties: Dict[str, Dict[str, Any]] = {} - self._width = 1240 if ba.app.small_ui else 1040 - x_offs = 100 if ba.app.small_ui else 0 - self._height = (582 - if ba.app.small_ui else 680 if ba.app.med_ui else 800) + uiscale = ba.app.uiscale + self._width = 1240 if uiscale is ba.UIScale.SMALL else 1040 + x_offs = 100 if uiscale is ba.UIScale.SMALL else 0 + self._height = (582 if uiscale is ba.UIScale.SMALL else + 680 if uiscale is ba.UIScale.MEDIUM else 800) self._current_tab: Optional[str] = None - extra_top = 20 if ba.app.small_ui else 0 + extra_top = 20 if uiscale is ba.UIScale.SMALL else 0 self._r = 'gatherWindow' self._tab_data: Any = None self._internet_local_address: Optional[str] = None @@ -108,11 +109,12 @@ class GatherWindow(ba.Window): transition=transition, toolbar_visibility='menu_minimal', scale_origin_stack_offset=scale_origin, - scale=(1.3 if ba.app.small_ui else 0.97 if ba.app.med_ui else 0.8), - stack_offset=(0, -11) if ba.app.small_ui else ( - 0, 0) if ba.app.med_ui else (0, 0))) + scale=(1.3 if uiscale is ba.UIScale.SMALL else + 0.97 if uiscale is ba.UIScale.MEDIUM else 0.8), + stack_offset=(0, -11) if uiscale is ba.UIScale.SMALL else ( + 0, 0) if uiscale is ba.UIScale.MEDIUM else (0, 0))) - if ba.app.small_ui and ba.app.toolbars: + if uiscale is ba.UIScale.SMALL and ba.app.toolbars: ba.containerwidget(edit=self._root_widget, on_cancel_call=self._back) self._back_button = None @@ -173,7 +175,7 @@ class GatherWindow(ba.Window): if ba.app.toolbars: ba.widget(edit=self._tab_buttons[tabs_def[-1][0]], right_widget=_ba.get_special_widget('party_button')) - if ba.app.small_ui: + if uiscale is ba.UIScale.SMALL: ba.widget(edit=self._tab_buttons[tabs_def[0][0]], left_widget=_ba.get_special_widget('back_button')) diff --git a/assets/src/ba_data/python/bastd/ui/getcurrency.py b/assets/src/ba_data/python/bastd/ui/getcurrency.py index 429cd52b..bfa0a96e 100644 --- a/assets/src/ba_data/python/bastd/ui/getcurrency.py +++ b/assets/src/ba_data/python/bastd/ui/getcurrency.py @@ -65,23 +65,25 @@ class GetCurrencyWindow(ba.Window): self._transition_out = 'out_right' scale_origin = None - self._width = 1000.0 if ba.app.small_ui else 800.0 - x_inset = 100.0 if ba.app.small_ui else 0.0 + uiscale = ba.app.uiscale + self._width = 1000.0 if uiscale is ba.UIScale.SMALL else 800.0 + x_inset = 100.0 if uiscale is ba.UIScale.SMALL else 0.0 self._height = 480.0 self._modal = modal self._from_modal_store = from_modal_store self._r = 'getTicketsWindow' - top_extra = 20 if ba.app.small_ui else 0 + top_extra = 20 if uiscale is ba.UIScale.SMALL else 0 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + top_extra), transition=transition, scale_origin_stack_offset=scale_origin, color=(0.4, 0.37, 0.55), - scale=(1.63 if ba.app.small_ui else 1.2 if ba.app.med_ui else 1.0), - stack_offset=(0, -3) if ba.app.small_ui else (0, 0))) + scale=(1.63 if uiscale is ba.UIScale.SMALL else + 1.2 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -3) if uiscale is ba.UIScale.SMALL else (0, 0))) btn = ba.buttonwidget( parent=self._root_widget, diff --git a/assets/src/ba_data/python/bastd/ui/getremote.py b/assets/src/ba_data/python/bastd/ui/getremote.py index 4474afe1..4d7c6a84 100644 --- a/assets/src/ba_data/python/bastd/ui/getremote.py +++ b/assets/src/ba_data/python/bastd/ui/getremote.py @@ -36,7 +36,9 @@ class GetBSRemoteWindow(popup.PopupWindow): def __init__(self) -> None: position = (0.0, 0.0) - scale = (2.3 if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + uiscale = ba.app.uiscale + scale = (2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._transitioning_out = False self._width = 570 self._height = 350 diff --git a/assets/src/ba_data/python/bastd/ui/helpui.py b/assets/src/ba_data/python/bastd/ui/helpui.py index f9ecfb37..0d36502c 100644 --- a/assets/src/ba_data/python/bastd/ui/helpui.py +++ b/assets/src/ba_data/python/bastd/ui/helpui.py @@ -57,22 +57,25 @@ class HelpWindow(ba.Window): self._r = 'helpWindow' self._main_menu = main_menu - width = 950 if ba.app.small_ui else 750 - x_offs = 100 if ba.app.small_ui else 0 - height = 460 if ba.app.small_ui else 530 if ba.app.med_ui else 600 + uiscale = ba.app.uiscale + width = 950 if uiscale is ba.UIScale.SMALL else 750 + x_offs = 100 if uiscale is ba.UIScale.SMALL else 0 + height = (460 if uiscale is ba.UIScale.SMALL else + 530 if uiscale is ba.UIScale.MEDIUM else 600) super().__init__(root_widget=ba.containerwidget( size=(width, height), transition=transition, toolbar_visibility='menu_minimal', scale_origin_stack_offset=scale_origin, - scale=( - 1.77 if ba.app.small_ui else 1.25 if ba.app.med_ui else 1.0), - stack_offset=(0, -30) if ba.app.small_ui else ( - 0, 15) if ba.app.med_ui else (0, 0))) + scale=(1.77 if uiscale is ba.UIScale.SMALL else + 1.25 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -30) if uiscale is ba.UIScale.SMALL else ( + 0, 15) if uiscale is ba.UIScale.MEDIUM else (0, 0))) ba.textwidget(parent=self._root_widget, - position=(0, height - (50 if ba.app.small_ui else 45)), + position=(0, height - + (50 if uiscale is ba.UIScale.SMALL else 45)), size=(width, 25), text=ba.Lstr(resource=self._r + '.titleText', subs=[('${APP_NAME}', @@ -83,10 +86,10 @@ class HelpWindow(ba.Window): self._scrollwidget = ba.scrollwidget( parent=self._root_widget, - position=(44 + x_offs, 55 if ba.app.small_ui else 55), + position=(44 + x_offs, 55 if uiscale is ba.UIScale.SMALL else 55), simple_culling_v=100.0, size=(width - (88 + 2 * x_offs), - height - 120 + (5 if ba.app.small_ui else 0)), + height - 120 + (5 if uiscale is ba.UIScale.SMALL else 0)), capture_arrows=True) if ba.app.toolbars: @@ -97,7 +100,7 @@ class HelpWindow(ba.Window): # ugly: create this last so it gets first dibs at touch events (since # we have it close to the scroll widget) - if ba.app.small_ui and ba.app.toolbars: + if uiscale is ba.UIScale.SMALL and ba.app.toolbars: ba.containerwidget(edit=self._root_widget, on_cancel_call=self._close) ba.widget(edit=self._scrollwidget, @@ -105,10 +108,12 @@ class HelpWindow(ba.Window): else: btn = ba.buttonwidget( parent=self._root_widget, - position=(x_offs + (40 + 0 if ba.app.small_ui else 70), - height - (59 if ba.app.small_ui else 50)), + position=(x_offs + + (40 + 0 if uiscale is ba.UIScale.SMALL else 70), + height - + (59 if uiscale is ba.UIScale.SMALL else 50)), size=(140, 60), - scale=0.7 if ba.app.small_ui else 0.8, + scale=0.7 if uiscale is ba.UIScale.SMALL else 0.8, label=ba.Lstr( resource='backText') if self._main_menu else 'Close', button_type='back' if self._main_menu else None, @@ -123,8 +128,6 @@ class HelpWindow(ba.Window): size=(60, 55), label=ba.charstr(ba.SpecialChar.BACK)) - # interface_type = ba.app.interface_type - self._sub_width = 660 self._sub_height = 1590 + get_resource( self._r + '.someDaysExtraSpace') + get_resource( diff --git a/assets/src/ba_data/python/bastd/ui/iconpicker.py b/assets/src/ba_data/python/bastd/ui/iconpicker.py index e80708bb..d2cc9794 100644 --- a/assets/src/ba_data/python/bastd/ui/iconpicker.py +++ b/assets/src/ba_data/python/bastd/ui/iconpicker.py @@ -50,9 +50,10 @@ class IconPicker(popup.PopupWindow): del parent # unused here del tint_color # unused_here del tint2_color # unused here + uiscale = ba.app.uiscale if scale is None: - scale = (1.85 - if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + scale = (1.85 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._delegate = delegate self._transitioning_out = False @@ -69,7 +70,8 @@ class IconPicker(popup.PopupWindow): self._width = (10 + columns * (button_width + 2 * button_buffer_h) * (1.0 / 0.95) * (1.0 / 0.8)) - self._height = self._width * (0.8 if ba.app.small_ui else 1.06) + self._height = (self._width * + (0.8 if uiscale is ba.UIScale.SMALL else 1.06)) self._scroll_width = self._width * 0.8 self._scroll_height = self._height * 0.8 diff --git a/assets/src/ba_data/python/bastd/ui/kiosk.py b/assets/src/ba_data/python/bastd/ui/kiosk.py index e344257d..353867f5 100644 --- a/assets/src/ba_data/python/bastd/ui/kiosk.py +++ b/assets/src/ba_data/python/bastd/ui/kiosk.py @@ -311,6 +311,7 @@ class KioskWindow(ba.Window): self._b4 = self._b5 = self._b6 = None self._b7: Optional[ba.Widget] + uiscale = ba.app.uiscale if bool(False): self._b7 = ba.buttonwidget( parent=self._root_widget, @@ -321,8 +322,8 @@ class KioskWindow(ba.Window): scale=0.5, position=((self._width * 0.5 - 37.5, y_extra + 120) if not self._show_multiplayer else - (self._width + 100, - y_extra + (140 if ba.app.small_ui else 120))), + (self._width + 100, y_extra + + (140 if uiscale is ba.UIScale.SMALL else 120))), transition_delay=tdelay, label=ba.Lstr(resource=self._r + '.fullMenuText'), on_activate_call=self._do_full_menu) diff --git a/assets/src/ba_data/python/bastd/ui/league/rankwindow.py b/assets/src/ba_data/python/bastd/ui/league/rankwindow.py index c90f705f..e4844ee2 100644 --- a/assets/src/ba_data/python/bastd/ui/league/rankwindow.py +++ b/assets/src/ba_data/python/bastd/ui/league/rankwindow.py @@ -40,6 +40,7 @@ class LeagueRankWindow(ba.Window): transition: str = 'in_right', modal: bool = False, origin_widget: ba.Widget = None): + # pylint: disable=too-many-statements from ba.internal import get_cached_league_rank_data from ba.deprecated import get_resource ba.set_analytics_screen('League Rank Window') @@ -57,13 +58,14 @@ class LeagueRankWindow(ba.Window): self._transition_out = 'out_right' scale_origin = None - self._width = 1320 if ba.app.small_ui else 1120 - x_inset = 100 if ba.app.small_ui else 0 - self._height = (657 - if ba.app.small_ui else 710 if ba.app.med_ui else 800) + uiscale = ba.app.uiscale + self._width = 1320 if uiscale is ba.UIScale.SMALL else 1120 + x_inset = 100 if uiscale is ba.UIScale.SMALL else 0 + self._height = (657 if uiscale is ba.UIScale.SMALL else + 710 if uiscale is ba.UIScale.MEDIUM else 800) self._r = 'coopSelectWindow' self._rdict = get_resource(self._r) - top_extra = 20 if ba.app.small_ui else 0 + top_extra = 20 if uiscale is ba.UIScale.SMALL else 0 self._league_url_arg = '' @@ -72,17 +74,17 @@ class LeagueRankWindow(ba.Window): super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + top_extra), - stack_offset=(0, -15) if ba.app.small_ui else ( - 0, 10) if ba.app.med_ui else (0, 0), + stack_offset=(0, -15) if uiscale is ba.UIScale.SMALL else ( + 0, 10) if uiscale is ba.UIScale.MEDIUM else (0, 0), transition=transition, scale_origin_stack_offset=scale_origin, - scale=( - 1.2 if ba.app.small_ui else 0.93 if ba.app.med_ui else 0.8))) + scale=(1.2 if uiscale is ba.UIScale.SMALL else + 0.93 if uiscale is ba.UIScale.MEDIUM else 0.8))) self._back_button = btn = ba.buttonwidget( parent=self._root_widget, - position=(75 + x_inset, - self._height - 87 - (4 if ba.app.small_ui else 0)), + position=(75 + x_inset, self._height - 87 - + (4 if uiscale is ba.UIScale.SMALL else 0)), size=(120, 60), scale=1.2, autoselect=True, @@ -106,7 +108,7 @@ class LeagueRankWindow(ba.Window): ba.buttonwidget(edit=btn, button_type='backSmall', position=(75 + x_inset, self._height - 87 - - (2 if ba.app.small_ui else 0)), + (2 if uiscale is ba.UIScale.SMALL else 0)), size=(60, 55), label=ba.charstr(ba.SpecialChar.BACK)) diff --git a/assets/src/ba_data/python/bastd/ui/mainmenu.py b/assets/src/ba_data/python/bastd/ui/mainmenu.py index 1d908fb3..3354bf3d 100644 --- a/assets/src/ba_data/python/bastd/ui/mainmenu.py +++ b/assets/src/ba_data/python/bastd/ui/mainmenu.py @@ -187,7 +187,7 @@ class MainMenuWindow(ba.Window): self._r = 'mainMenu' app = ba.app - self._have_quit_button = (app.interface_type == 'large' + self._have_quit_button = (app.uiscale is ba.UIScale.LARGE or (app.platform == 'windows' and app.subplatform == 'oculus')) @@ -288,8 +288,9 @@ class MainMenuWindow(ba.Window): sale_scale=1.3, transition_delay=self._tdelay) self._store_button = store_button = sbtn.get_button() - icon_size = (55 - if ba.app.small_ui else 55 if ba.app.med_ui else 70) + uiscale = ba.app.uiscale + icon_size = (55 if uiscale is ba.UIScale.SMALL else + 55 if uiscale is ba.UIScale.MEDIUM else 70) ba.imagewidget( parent=self._root_widget, position=(h - icon_size * 0.5, @@ -356,12 +357,13 @@ class MainMenuWindow(ba.Window): b_size = 50.0 b_buffer = 10.0 t_scale = 0.75 - if ba.app.small_ui: + uiscale = ba.app.uiscale + if uiscale is ba.UIScale.SMALL: b_size *= 0.6 b_buffer *= 1.0 v_offs = -40 t_scale = 0.5 - elif ba.app.med_ui: + elif uiscale is ba.UIScale.MEDIUM: v_offs = -70 else: v_offs = -100 @@ -457,7 +459,8 @@ class MainMenuWindow(ba.Window): b_count += 1 if self._have_store_button: b_count += 1 - if ba.app.small_ui: + uiscale = ba.app.uiscale + if uiscale is ba.UIScale.SMALL: root_widget_scale = 1.6 play_button_width = self._button_width * 0.65 play_button_height = self._button_height * 1.1 @@ -466,7 +469,7 @@ class MainMenuWindow(ba.Window): button_y_offs2 = -60.0 self._button_height *= 1.3 button_spacing = 1.04 - elif ba.app.med_ui: + elif uiscale is ba.UIScale.MEDIUM: root_widget_scale = 1.3 play_button_width = self._button_width * 0.65 play_button_height = self._button_height * 1.1 @@ -514,7 +517,9 @@ class MainMenuWindow(ba.Window): on_activate_call=self._demo_menu_press) else: self._demo_menu_button = None - foof = (-1 if ba.app.small_ui else 1 if ba.app.med_ui else 3) + uiscale = ba.app.uiscale + foof = (-1 if uiscale is ba.UIScale.SMALL else + 1 if uiscale is ba.UIScale.MEDIUM else 3) h, v, scale = positions[self._p_index] v = v + foof gather_delay = 0.0 if self._t_delay_play == 0.0 else max( @@ -710,10 +715,12 @@ class MainMenuWindow(ba.Window): # In this case we have a leave *and* a disconnect button. self._height += 50 self._height += 50 * (len(custom_menu_entries)) + uiscale = ba.app.uiscale ba.containerwidget( edit=self._root_widget, size=(self._width, self._height), - scale=2.15 if ba.app.small_ui else 1.6 if ba.app.med_ui else 1.0) + scale=(2.15 if uiscale is ba.UIScale.SMALL else + 1.6 if uiscale is ba.UIScale.MEDIUM else 1.0)) h = 125.0 v = (self._height - 80.0 if self._input_player else self._height - 60) h_offset = 0 diff --git a/assets/src/ba_data/python/bastd/ui/onscreenkeyboard.py b/assets/src/ba_data/python/bastd/ui/onscreenkeyboard.py index 431a123a..4e7cee12 100644 --- a/assets/src/ba_data/python/bastd/ui/onscreenkeyboard.py +++ b/assets/src/ba_data/python/bastd/ui/onscreenkeyboard.py @@ -39,16 +39,18 @@ class OnScreenKeyboardWindow(ba.Window): self._target_text = textwidget self._width = 700 self._height = 400 - top_extra = 20 if ba.app.small_ui else 0 + uiscale = ba.app.uiscale + top_extra = 20 if uiscale is ba.UIScale.SMALL else 0 super().__init__(root_widget=ba.containerwidget( parent=_ba.get_special_widget('overlay_stack'), size=(self._width, self._height + top_extra), transition='in_scale', scale_origin_stack_offset=self._target_text. get_screen_space_center(), - scale=(2.0 if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.0), - stack_offset=(0, 0) if ba.app.small_ui else ( - 0, 0) if ba.app.med_ui else (0, 0))) + scale=(2.0 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, 0) if uiscale is ba.UIScale.SMALL else ( + 0, 0) if uiscale is ba.UIScale.MEDIUM else (0, 0))) self._done_button = ba.buttonwidget(parent=self._root_widget, position=(self._width - 200, 44), size=(140, 60), diff --git a/assets/src/ba_data/python/bastd/ui/party.py b/assets/src/ba_data/python/bastd/ui/party.py index 74c5e540..74e6ad0e 100644 --- a/assets/src/ba_data/python/bastd/ui/party.py +++ b/assets/src/ba_data/python/bastd/ui/party.py @@ -47,8 +47,9 @@ class PartyWindow(ba.Window): self._popup_party_member_client_id: Optional[int] = None self._popup_party_member_is_host: Optional[bool] = None self._width = 500 - self._height = (365 - if ba.app.small_ui else 480 if ba.app.med_ui else 600) + uiscale = ba.app.uiscale + self._height = (365 if uiscale is ba.UIScale.SMALL else + 480 if uiscale is ba.UIScale.MEDIUM else 600) super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition='in_scale', @@ -56,9 +57,10 @@ class PartyWindow(ba.Window): parent=_ba.get_special_widget('overlay_stack'), on_outside_click_call=self.close_with_sound, scale_origin_stack_offset=origin, - scale=(2.0 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0), - stack_offset=(0, -10) if ba.app.small_ui else ( - 240, 0) if ba.app.med_ui else (330, 20))) + scale=(2.0 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -10) if uiscale is ba.UIScale.SMALL else ( + 240, 0) if uiscale is ba.UIScale.MEDIUM else (330, 20))) self._cancel_button = ba.buttonwidget(parent=self._root_widget, scale=0.7, @@ -198,9 +200,11 @@ class PartyWindow(ba.Window): def _on_menu_button_press(self) -> None: is_muted = ba.app.config.resolve('Chat Muted') + uiscale = ba.app.uiscale popup.PopupMenuWindow( position=self._menu_button.get_screen_space_center(), - scale=2.3 if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23, + scale=(2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23), choices=['unmute' if is_muted else 'mute'], choices_display=[ ba.Lstr( @@ -400,9 +404,11 @@ class PartyWindow(ba.Window): 14248): return kick_str = ba.Lstr(resource='kickVoteText') + uiscale = ba.app.uiscale popup.PopupMenuWindow( position=widget.get_screen_space_center(), - scale=2.3 if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23, + scale=(2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23), choices=['kick'], choices_display=[kick_str], current_choice='kick', diff --git a/assets/src/ba_data/python/bastd/ui/partyqueue.py b/assets/src/ba_data/python/bastd/ui/partyqueue.py index 68e1dc73..a6d05cc5 100644 --- a/assets/src/ba_data/python/bastd/ui/partyqueue.py +++ b/assets/src/ba_data/python/bastd/ui/partyqueue.py @@ -223,11 +223,13 @@ class PartyQueueWindow(ba.Window): self._line_image: Optional[ba.Widget] = None self.eyes_model = ba.getmodel('plasticEyesTransparent') self._white_tex = ba.gettexture('white') + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), color=(0.45, 0.63, 0.15), transition='in_scale', - scale=1.4 if ba.app.small_ui else 1.2 if ba.app.med_ui else 1.0)) + scale=(1.4 if uiscale is ba.UIScale.SMALL else + 1.2 if uiscale is ba.UIScale.MEDIUM else 1.0))) self._cancel_button = ba.buttonwidget(parent=self._root_widget, scale=1.0, diff --git a/assets/src/ba_data/python/bastd/ui/play.py b/assets/src/ba_data/python/bastd/ui/play.py index f8e7e6a2..e1c84b25 100644 --- a/assets/src/ba_data/python/bastd/ui/play.py +++ b/assets/src/ba_data/python/bastd/ui/play.py @@ -46,8 +46,9 @@ class PlayWindow(ba.Window): threading.Thread(target=self._preload_modules).start() new_style = True - width = 1000 if ba.app.small_ui else 800 - x_offs = 100 if ba.app.small_ui else 0 + uiscale = ba.app.uiscale + width = 1000 if uiscale is ba.UIScale.SMALL else 800 + x_offs = 100 if uiscale is ba.UIScale.SMALL else 0 height = 550 if new_style else 400 button_width = 400 @@ -67,10 +68,10 @@ class PlayWindow(ba.Window): transition=transition, toolbar_visibility='menu_full', scale_origin_stack_offset=scale_origin, - scale=(1.6 if new_style else 1.52 - ) if ba.app.small_ui else 0.9 if ba.app.med_ui else 0.8, + scale=((1.6 if new_style else 1.52) if uiscale is ba.UIScale.SMALL + else 0.9 if uiscale is ba.UIScale.MEDIUM else 0.8), stack_offset=((0, 0) if new_style else ( - 10, 7)) if ba.app.small_ui else (0, 0))) + 10, 7)) if uiscale is ba.UIScale.SMALL else (0, 0))) self._back_button = back_button = btn = ba.buttonwidget( parent=self._root_widget, position=(55 + x_offs, height - 132) if new_style else @@ -99,14 +100,14 @@ class PlayWindow(ba.Window): button_type='backSmall', size=(60, 60), label=ba.charstr(ba.SpecialChar.BACK)) - if ba.app.toolbars and ba.app.small_ui: + if ba.app.toolbars and uiscale is ba.UIScale.SMALL: ba.textwidget(edit=txt, text='') v = height - (110 if new_style else 60) v -= 100 clr = (0.6, 0.7, 0.6, 1.0) v -= 280 if new_style else 180 - v += 30 if ba.app.toolbars and ba.app.small_ui else 0 + v += 30 if ba.app.toolbars and uiscale is ba.UIScale.SMALL else 0 hoffs = x_offs + 80 if new_style else 0 scl = 1.13 if new_style else 0.68 @@ -134,7 +135,7 @@ class PlayWindow(ba.Window): text_scale=1.13, on_activate_call=self._coop) - if ba.app.toolbars and ba.app.small_ui: + if ba.app.toolbars and uiscale is ba.UIScale.SMALL: ba.widget(edit=btn, left_widget=_ba.get_special_widget('back_button')) ba.widget(edit=btn, @@ -403,7 +404,7 @@ class PlayWindow(ba.Window): maxwidth=scl * button_width * 0.7, color=clr) - if ba.app.toolbars and ba.app.small_ui: + if ba.app.toolbars and uiscale is ba.UIScale.SMALL: back_button.delete() ba.containerwidget(edit=self._root_widget, on_cancel_call=self._back, diff --git a/assets/src/ba_data/python/bastd/ui/playlist/addgame.py b/assets/src/ba_data/python/bastd/ui/playlist/addgame.py index f60827ad..12e12cc0 100644 --- a/assets/src/ba_data/python/bastd/ui/playlist/addgame.py +++ b/assets/src/ba_data/python/bastd/ui/playlist/addgame.py @@ -40,18 +40,20 @@ class PlaylistAddGameWindow(ba.Window): transition: str = 'in_right'): self._editcontroller = editcontroller self._r = 'addGameWindow' - self._width = 750 if ba.app.small_ui else 650 - x_inset = 50 if ba.app.small_ui else 0 - self._height = (346 - if ba.app.small_ui else 380 if ba.app.med_ui else 440) - top_extra = 30 if ba.app.small_ui else 20 + uiscale = ba.app.uiscale + self._width = 750 if uiscale is ba.UIScale.SMALL else 650 + x_inset = 50 if uiscale is ba.UIScale.SMALL else 0 + self._height = (346 if uiscale is ba.UIScale.SMALL else + 380 if uiscale is ba.UIScale.MEDIUM else 440) + top_extra = 30 if uiscale is ba.UIScale.SMALL else 20 self._scroll_width = 210 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + top_extra), transition=transition, - scale=(2.17 if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.0), - stack_offset=(0, 1) if ba.app.small_ui else (0, 0))) + scale=(2.17 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, 1) if uiscale is ba.UIScale.SMALL else (0, 0))) self._back_button = ba.buttonwidget(parent=self._root_widget, position=(58 + x_inset, diff --git a/assets/src/ba_data/python/bastd/ui/playlist/browser.py b/assets/src/ba_data/python/bastd/ui/playlist/browser.py index 85be719a..01961c70 100644 --- a/assets/src/ba_data/python/bastd/ui/playlist/browser.py +++ b/assets/src/ba_data/python/bastd/ui/playlist/browser.py @@ -218,21 +218,22 @@ class PlaylistBrowserWindow(ba.Window): self._selected_playlist = ba.app.config.get(self._pvars.config_name + ' Playlist Selection') - self._width = 900 if ba.app.small_ui else 800 - x_inset = 50 if ba.app.small_ui else 0 - self._height = (480 - if ba.app.small_ui else 510 if ba.app.med_ui else 580) + uiscale = ba.app.uiscale + self._width = 900 if uiscale is ba.UIScale.SMALL else 800 + x_inset = 50 if uiscale is ba.UIScale.SMALL else 0 + self._height = (480 if uiscale is ba.UIScale.SMALL else + 510 if uiscale is ba.UIScale.MEDIUM else 580) - top_extra = 20 if ba.app.small_ui else 0 + top_extra = 20 if uiscale is ba.UIScale.SMALL else 0 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + top_extra), transition=transition, toolbar_visibility='menu_full', scale_origin_stack_offset=scale_origin, - scale=( - 1.69 if ba.app.small_ui else 1.05 if ba.app.med_ui else 0.9), - stack_offset=(0, -26) if ba.app.small_ui else (0, 0))) + scale=(1.69 if uiscale is ba.UIScale.SMALL else + 1.05 if uiscale is ba.UIScale.MEDIUM else 0.9), + stack_offset=(0, -26) if uiscale is ba.UIScale.SMALL else (0, 0))) self._back_button: Optional[ba.Widget] = ba.buttonwidget( parent=self._root_widget, @@ -255,7 +256,7 @@ class PlaylistBrowserWindow(ba.Window): color=ba.app.heading_color, h_align='center', v_align='center') - if ba.app.small_ui and ba.app.toolbars: + if uiscale is ba.UIScale.SMALL and ba.app.toolbars: ba.textwidget(edit=txt, text='') ba.buttonwidget(edit=self._back_button, @@ -264,7 +265,7 @@ class PlaylistBrowserWindow(ba.Window): position=(59 + x_inset, self._height - 67), label=ba.charstr(ba.SpecialChar.BACK)) - if ba.app.small_ui and ba.app.toolbars: + if uiscale is ba.UIScale.SMALL and ba.app.toolbars: self._back_button.delete() self._back_button = None ba.containerwidget(edit=self._root_widget, @@ -273,8 +274,8 @@ class PlaylistBrowserWindow(ba.Window): else: scroll_offs = 0 self._scroll_width = self._width - (100 + 2 * x_inset) - self._scroll_height = self._height - (146 if ba.app.small_ui - and ba.app.toolbars else 136) + self._scroll_height = self._height - ( + 146 if uiscale is ba.UIScale.SMALL and ba.app.toolbars else 136) self._scrollwidget = ba.scrollwidget( parent=self._root_widget, highlight=False, @@ -364,6 +365,7 @@ class PlaylistBrowserWindow(ba.Window): h_offs = 225 if count == 1 else 115 if count == 2 else 0 h_offs_bottom = 0 + uiscale = ba.app.uiscale for y in range(rows): for x in range(columns): name = items[index][0] @@ -378,11 +380,12 @@ class PlaylistBrowserWindow(ba.Window): label='', position=pos) - if x == 0 and ba.app.toolbars and ba.app.small_ui: + if x == 0 and ba.app.toolbars and uiscale is ba.UIScale.SMALL: ba.widget( edit=btn, left_widget=_ba.get_special_widget('back_button')) - if x == columns - 1 and ba.app.toolbars and ba.app.small_ui: + if (x == columns - 1 and ba.app.toolbars + and uiscale is ba.UIScale.SMALL): ba.widget( edit=btn, right_widget=_ba.get_special_widget('party_button')) diff --git a/assets/src/ba_data/python/bastd/ui/playlist/customizebrowser.py b/assets/src/ba_data/python/bastd/ui/playlist/customizebrowser.py index c1beaac5..e72482f5 100644 --- a/assets/src/ba_data/python/bastd/ui/playlist/customizebrowser.py +++ b/assets/src/ba_data/python/bastd/ui/playlist/customizebrowser.py @@ -59,18 +59,20 @@ class PlaylistCustomizeBrowserWindow(ba.Window): self._pvars = playlist.PlaylistTypeVars(sessiontype) self._max_playlists = 30 self._r = 'gameListWindow' - self._width = 750.0 if ba.app.small_ui else 650.0 - x_inset = 50.0 if ba.app.small_ui else 0.0 - self._height = (380.0 if ba.app.small_ui else - 420.0 if ba.app.med_ui else 500.0) - top_extra = 20.0 if ba.app.small_ui else 0.0 + uiscale = ba.app.uiscale + self._width = 750.0 if uiscale is ba.UIScale.SMALL else 650.0 + x_inset = 50.0 if uiscale is ba.UIScale.SMALL else 0.0 + self._height = (380.0 if uiscale is ba.UIScale.SMALL else + 420.0 if uiscale is ba.UIScale.MEDIUM else 500.0) + top_extra = 20.0 if uiscale is ba.UIScale.SMALL else 0.0 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + top_extra), transition=transition, scale_origin_stack_offset=scale_origin, - scale=(2.05 if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.0), - stack_offset=(0, -10) if ba.app.small_ui else (0, 0))) + scale=(2.05 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -10) if uiscale is ba.UIScale.SMALL else (0, 0))) self._back_button = back_button = btn = ba.buttonwidget( parent=self._root_widget, @@ -105,7 +107,8 @@ class PlaylistCustomizeBrowserWindow(ba.Window): self._lock_images: List[ba.Widget] = [] lock_tex = ba.gettexture('lock') - scl = (1.1 if ba.app.small_ui else 1.27 if ba.app.med_ui else 1.57) + scl = (1.1 if uiscale is ba.UIScale.SMALL else + 1.27 if uiscale is ba.UIScale.MEDIUM else 1.57) scl *= 0.63 v -= 65.0 * scl new_button = btn = ba.buttonwidget( diff --git a/assets/src/ba_data/python/bastd/ui/playlist/edit.py b/assets/src/ba_data/python/bastd/ui/playlist/edit.py index 3603963b..610e8bc7 100644 --- a/assets/src/ba_data/python/bastd/ui/playlist/edit.py +++ b/assets/src/ba_data/python/bastd/ui/playlist/edit.py @@ -45,17 +45,19 @@ class PlaylistEditWindow(ba.Window): self._r = 'editGameListWindow' prev_selection = self._editcontroller.get_edit_ui_selection() - self._width = 770 if ba.app.small_ui else 670 - x_inset = 50 if ba.app.small_ui else 0 - self._height = (400 - if ba.app.small_ui else 470 if ba.app.med_ui else 540) + uiscale = ba.app.uiscale + self._width = 770 if uiscale is ba.UIScale.SMALL else 670 + x_inset = 50 if uiscale is ba.UIScale.SMALL else 0 + self._height = (400 if uiscale is ba.UIScale.SMALL else + 470 if uiscale is ba.UIScale.MEDIUM else 540) - top_extra = 20 if ba.app.small_ui else 0 + top_extra = 20 if uiscale is ba.UIScale.SMALL else 0 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + top_extra), transition=transition, - scale=(2.0 if ba.app.small_ui else 1.3 if ba.app.med_ui else 1.0), - stack_offset=(0, -16) if ba.app.small_ui else (0, 0))) + scale=(2.0 if uiscale is ba.UIScale.SMALL else + 1.3 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -16) if uiscale is ba.UIScale.SMALL else (0, 0))) cancel_button = ba.buttonwidget(parent=self._root_widget, position=(35 + x_inset, self._height - 60), @@ -133,7 +135,8 @@ class PlaylistEditWindow(ba.Window): v -= 2.0 v += 63 - scl = (1.03 if ba.app.small_ui else 1.36 if ba.app.med_ui else 1.74) + scl = (1.03 if uiscale is ba.UIScale.SMALL else + 1.36 if uiscale is ba.UIScale.MEDIUM else 1.74) v -= 63.0 * scl add_game_button = ba.buttonwidget( diff --git a/assets/src/ba_data/python/bastd/ui/playlist/editgame.py b/assets/src/ba_data/python/bastd/ui/playlist/editgame.py index 07e590de..bb029ff8 100644 --- a/assets/src/ba_data/python/bastd/ui/playlist/editgame.py +++ b/assets/src/ba_data/python/bastd/ui/playlist/editgame.py @@ -106,9 +106,11 @@ class PlaylistEditGameWindow(ba.Window): self._choice_selections: Dict[str, int] = {} - width = 720 if ba.app.small_ui else 620 - x_inset = 50 if ba.app.small_ui else 0 - height = (365 if ba.app.small_ui else 460 if ba.app.med_ui else 550) + uiscale = ba.app.uiscale + width = 720 if uiscale is ba.UIScale.SMALL else 620 + x_inset = 50 if uiscale is ba.UIScale.SMALL else 0 + height = (365 if uiscale is ba.UIScale.SMALL else + 460 if uiscale is ba.UIScale.MEDIUM else 550) spacing = 52 y_extra = 15 y_extra2 = 21 @@ -118,13 +120,13 @@ class PlaylistEditGameWindow(ba.Window): raise Exception('no map preview tex found for' + self._map) map_tex = ba.gettexture(map_tex_name) - top_extra = 20 if ba.app.small_ui else 0 + top_extra = 20 if uiscale is ba.UIScale.SMALL else 0 super().__init__(root_widget=ba.containerwidget( size=(width, height + top_extra), transition=transition, - scale=( - 2.19 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0), - stack_offset=(0, -17) if ba.app.small_ui else (0, 0))) + scale=(2.19 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -17) if uiscale is ba.UIScale.SMALL else (0, 0))) btn = ba.buttonwidget( parent=self._root_widget, diff --git a/assets/src/ba_data/python/bastd/ui/playlist/mapselect.py b/assets/src/ba_data/python/bastd/ui/playlist/mapselect.py index 62311293..5b3917a1 100644 --- a/assets/src/ba_data/python/bastd/ui/playlist/mapselect.py +++ b/assets/src/ba_data/python/bastd/ui/playlist/mapselect.py @@ -55,16 +55,19 @@ class PlaylistMapSelectWindow(ba.Window): except Exception: self._previous_map = '' - width = 715 if ba.app.small_ui else 615 - x_inset = 50 if ba.app.small_ui else 0 - height = (400 if ba.app.small_ui else 480 if ba.app.med_ui else 600) + uiscale = ba.app.uiscale + width = 715 if uiscale is ba.UIScale.SMALL else 615 + x_inset = 50 if uiscale is ba.UIScale.SMALL else 0 + height = (400 if uiscale is ba.UIScale.SMALL else + 480 if uiscale is ba.UIScale.MEDIUM else 600) - top_extra = 20 if ba.app.small_ui else 0 + top_extra = 20 if uiscale is ba.UIScale.SMALL else 0 super().__init__(root_widget=ba.containerwidget( size=(width, height + top_extra), transition=transition, - scale=(2.17 if ba.app.small_ui else 1.3 if ba.app.med_ui else 1.0), - stack_offset=(0, -27) if ba.app.small_ui else (0, 0))) + scale=(2.17 if uiscale is ba.UIScale.SMALL else + 1.3 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -27) if uiscale is ba.UIScale.SMALL else (0, 0))) self._cancel_button = btn = ba.buttonwidget( parent=self._root_widget, diff --git a/assets/src/ba_data/python/bastd/ui/playlist/share.py b/assets/src/ba_data/python/bastd/ui/playlist/share.py index a6aa7721..e5fcc4d0 100644 --- a/assets/src/ba_data/python/bastd/ui/playlist/share.py +++ b/assets/src/ba_data/python/bastd/ui/playlist/share.py @@ -89,11 +89,13 @@ class SharePlaylistResultsWindow(ba.Window): del origin # unused arg self._width = 450 self._height = 300 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), color=(0.45, 0.63, 0.15), transition='in_scale', - scale=1.8 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0)) + scale=(1.8 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0))) ba.playsound(ba.getsound('cashRegister')) ba.playsound(ba.getsound('swish')) diff --git a/assets/src/ba_data/python/bastd/ui/playoptions.py b/assets/src/ba_data/python/bastd/ui/playoptions.py index bc3b78a8..2e9267d4 100644 --- a/assets/src/ba_data/python/bastd/ui/playoptions.py +++ b/assets/src/ba_data/python/bastd/ui/playoptions.py @@ -149,7 +149,9 @@ class PlayOptionsWindow(popup.PopupWindow): self._height += 40 # Creates our _root_widget. - scale = (1.69 if ba.app.small_ui else 1.1 if ba.app.med_ui else 0.85) + uiscale = ba.app.uiscale + scale = (1.69 if uiscale is ba.UIScale.SMALL else + 1.1 if uiscale is ba.UIScale.MEDIUM else 0.85) super().__init__(position=scale_origin, size=(self._width, self._height), scale=scale) diff --git a/assets/src/ba_data/python/bastd/ui/popup.py b/assets/src/ba_data/python/bastd/ui/popup.py index 538b17e4..77dc2e11 100644 --- a/assets/src/ba_data/python/bastd/ui/popup.py +++ b/assets/src/ba_data/python/bastd/ui/popup.py @@ -291,13 +291,15 @@ class PopupMenu: choices_display: Sequence[ba.Lstr] = None, button_size: Tuple[float, float] = (160.0, 50.0), autoselect: bool = True): + # pylint: disable=too-many-locals if choices_disabled is None: choices_disabled = [] if choices_display is None: choices_display = [] + uiscale = ba.app.uiscale if scale is None: - scale = (2.3 - if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + scale = (2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) if current_choice not in choices: current_choice = None self._choices = list(choices) diff --git a/assets/src/ba_data/python/bastd/ui/profile/browser.py b/assets/src/ba_data/python/bastd/ui/profile/browser.py index 1821ab2c..6190f05e 100644 --- a/assets/src/ba_data/python/bastd/ui/profile/browser.py +++ b/assets/src/ba_data/python/bastd/ui/profile/browser.py @@ -47,10 +47,11 @@ class ProfileBrowserWindow(ba.Window): back_label = ba.Lstr(resource='backText') else: back_label = ba.Lstr(resource='doneText') - self._width = 700.0 if ba.app.small_ui else 600.0 - x_inset = 50.0 if ba.app.small_ui else 0.0 - self._height = (360.0 if ba.app.small_ui else - 385.0 if ba.app.med_ui else 410.0) + uiscale = ba.app.uiscale + self._width = 700.0 if uiscale is ba.UIScale.SMALL else 600.0 + x_inset = 50.0 if uiscale is ba.UIScale.SMALL else 0.0 + self._height = (360.0 if uiscale is ba.UIScale.SMALL else + 385.0 if uiscale is ba.UIScale.MEDIUM else 410.0) # If we're being called up standalone, handle pause/resume ourself. if not self._in_main_menu: @@ -71,14 +72,15 @@ class ProfileBrowserWindow(ba.Window): # Ensure we've got an account-profile in cases where we're signed in. ensure_have_account_player_profile() - top_extra = 20 if ba.app.small_ui else 0 + top_extra = 20 if uiscale is ba.UIScale.SMALL else 0 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + top_extra), transition=transition, scale_origin_stack_offset=scale_origin, - scale=(2.2 if ba.app.small_ui else 1.6 if ba.app.med_ui else 1.0), - stack_offset=(0, -14) if ba.app.small_ui else (0, 0))) + scale=(2.2 if uiscale is ba.UIScale.SMALL else + 1.6 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -14) if uiscale is ba.UIScale.SMALL else (0, 0))) self._back_button = btn = ba.buttonwidget( parent=self._root_widget, @@ -113,7 +115,8 @@ class ProfileBrowserWindow(ba.Window): h = 50 + x_inset b_color = (0.6, 0.53, 0.63) - scl = (1.055 if ba.app.small_ui else 1.18 if ba.app.med_ui else 1.3) + scl = (1.055 if uiscale is ba.UIScale.SMALL else + 1.18 if uiscale is ba.UIScale.MEDIUM else 1.3) v -= 70.0 * scl self._new_button = ba.buttonwidget(parent=self._root_widget, position=(h, v), diff --git a/assets/src/ba_data/python/bastd/ui/profile/edit.py b/assets/src/ba_data/python/bastd/ui/profile/edit.py index d1c520b6..748219dd 100644 --- a/assets/src/ba_data/python/bastd/ui/profile/edit.py +++ b/assets/src/ba_data/python/bastd/ui/profile/edit.py @@ -62,19 +62,21 @@ class EditProfileWindow(ba.Window): # Grab profile colors or pick random ones. self._color, self._highlight = get_player_profile_colors( existing_profile) - self._width = width = 780.0 if ba.app.small_ui else 680.0 - self._x_inset = x_inset = 50.0 if ba.app.small_ui else 0.0 - self._height = height = (350.0 if ba.app.small_ui else - 400.0 if ba.app.med_ui else 450.0) + uiscale = ba.app.uiscale + self._width = width = 780.0 if uiscale is ba.UIScale.SMALL else 680.0 + self._x_inset = x_inset = 50.0 if uiscale is ba.UIScale.SMALL else 0.0 + self._height = height = ( + 350.0 if uiscale is ba.UIScale.SMALL else + 400.0 if uiscale is ba.UIScale.MEDIUM else 450.0) spacing = 40 - self._base_scale = (2.05 if ba.app.small_ui else - 1.5 if ba.app.med_ui else 1.0) - top_extra = 15 if ba.app.small_ui else 15 + self._base_scale = (2.05 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0) + top_extra = 15 if uiscale is ba.UIScale.SMALL else 15 super().__init__(root_widget=ba.containerwidget( size=(width, height + top_extra), transition=transition, scale=self._base_scale, - stack_offset=(0, 15) if ba.app.small_ui else (0, 0))) + stack_offset=(0, 15) if uiscale is ba.UIScale.SMALL else (0, 0))) cancel_button = btn = ba.buttonwidget( parent=self._root_widget, position=(52 + x_inset, height - 60), diff --git a/assets/src/ba_data/python/bastd/ui/profile/upgrade.py b/assets/src/ba_data/python/bastd/ui/profile/upgrade.py index 62cebcf0..83876011 100644 --- a/assets/src/ba_data/python/bastd/ui/profile/upgrade.py +++ b/assets/src/ba_data/python/bastd/ui/profile/upgrade.py @@ -45,19 +45,20 @@ class ProfileUpgradeWindow(ba.Window): self._width = 680 self._height = 350 - self._base_scale = (2.05 if ba.app.small_ui else - 1.5 if ba.app.med_ui else 1.2) + uiscale = ba.app.uiscale + self._base_scale = (2.05 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.2) self._upgrade_start_time: Optional[float] = None self._name = edit_profile_window.getname() self._edit_profile_window = weakref.ref(edit_profile_window) - top_extra = 15 if ba.app.small_ui else 15 + top_extra = 15 if uiscale is ba.UIScale.SMALL else 15 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + top_extra), toolbar_visibility='menu_currency', transition=transition, scale=self._base_scale, - stack_offset=(0, 15) if ba.app.small_ui else (0, 0))) + stack_offset=(0, 15) if uiscale is ba.UIScale.SMALL else (0, 0))) cancel_button = ba.buttonwidget(parent=self._root_widget, position=(52, 30), size=(155, 60), diff --git a/assets/src/ba_data/python/bastd/ui/promocode.py b/assets/src/ba_data/python/bastd/ui/promocode.py index af4aa198..5469dd5a 100644 --- a/assets/src/ba_data/python/bastd/ui/promocode.py +++ b/assets/src/ba_data/python/bastd/ui/promocode.py @@ -53,12 +53,14 @@ class PromoCodeWindow(ba.Window): self._modal = modal self._r = 'promoCodeWindow' + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(width, height), transition=transition, toolbar_visibility='menu_minimal_no_back', scale_origin_stack_offset=scale_origin, - scale=(2.0 if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.0))) + scale=(2.0 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0))) btn = ba.buttonwidget(parent=self._root_widget, scale=0.5, diff --git a/assets/src/ba_data/python/bastd/ui/purchase.py b/assets/src/ba_data/python/bastd/ui/purchase.py index e2dbee60..6189e937 100644 --- a/assets/src/ba_data/python/bastd/ui/purchase.py +++ b/assets/src/ba_data/python/bastd/ui/purchase.py @@ -48,12 +48,14 @@ class PurchaseWindow(ba.Window): self._items = list(items) self._width = 580 self._height = 520 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition=transition, toolbar_visibility='menu_currency', - scale=(1.2 if ba.app.small_ui else 1.1 if ba.app.med_ui else 1.0), - stack_offset=(0, -15) if ba.app.small_ui else (0, 0))) + scale=(1.2 if uiscale is ba.UIScale.SMALL else + 1.1 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -15) if uiscale is ba.UIScale.SMALL else (0, 0))) self._is_double = False self._title_text = ba.textwidget(parent=self._root_widget, position=(self._width * 0.5, diff --git a/assets/src/ba_data/python/bastd/ui/qrcode.py b/assets/src/ba_data/python/bastd/ui/qrcode.py index c695103a..fbe234a1 100644 --- a/assets/src/ba_data/python/bastd/ui/qrcode.py +++ b/assets/src/ba_data/python/bastd/ui/qrcode.py @@ -31,7 +31,9 @@ class QRCodeWindow(popup.PopupWindow): def __init__(self, origin_widget: ba.Widget, qr_tex: ba.Texture): position = origin_widget.get_screen_space_center() - scale = (2.3 if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + uiscale = ba.app.uiscale + scale = (2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._transitioning_out = False self._width = 450 self._height = 400 diff --git a/assets/src/ba_data/python/bastd/ui/report.py b/assets/src/ba_data/python/bastd/ui/report.py index a649b627..afe54852 100644 --- a/assets/src/ba_data/python/bastd/ui/report.py +++ b/assets/src/ba_data/python/bastd/ui/report.py @@ -37,13 +37,14 @@ class ReportPlayerWindow(ba.Window): scale_origin = origin_widget.get_screen_space_center() overlay_stack = _ba.get_special_widget('overlay_stack') + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), parent=overlay_stack, transition='in_scale', scale_origin_stack_offset=scale_origin, - scale=( - 1.8 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0))) + scale=(1.8 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0))) self._cancel_button = ba.buttonwidget(parent=self._root_widget, scale=0.7, position=(40, self._height - 50), diff --git a/assets/src/ba_data/python/bastd/ui/resourcetypeinfo.py b/assets/src/ba_data/python/bastd/ui/resourcetypeinfo.py index eed95a9f..7b3d3cf3 100644 --- a/assets/src/ba_data/python/bastd/ui/resourcetypeinfo.py +++ b/assets/src/ba_data/python/bastd/ui/resourcetypeinfo.py @@ -30,7 +30,9 @@ class ResourceTypeInfoWindow(popup.PopupWindow): """Popup window providing info about resource types.""" def __init__(self, origin_widget: ba.Widget): - scale = (2.3 if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + uiscale = ba.app.uiscale + scale = (2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._transitioning_out = False self._width = 570 self._height = 350 diff --git a/assets/src/ba_data/python/bastd/ui/serverdialog.py b/assets/src/ba_data/python/bastd/ui/serverdialog.py index f8fc48a0..8cdf820d 100644 --- a/assets/src/ba_data/python/bastd/ui/serverdialog.py +++ b/assets/src/ba_data/python/bastd/ui/serverdialog.py @@ -44,10 +44,12 @@ class ServerDialogWindow(ba.Window): txt_scale) self._width = 500 self._height = 130 + min(200, txt_height) + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition='in_scale', - scale=1.8 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0)) + scale=(1.8 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0))) self._starttime = ba.time(ba.TimeType.REAL, ba.TimeFormat.MILLISECONDS) ba.playsound(ba.getsound('swish')) diff --git a/assets/src/ba_data/python/bastd/ui/settings/advanced.py b/assets/src/ba_data/python/bastd/ui/settings/advanced.py index f9205206..dffa1274 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/advanced.py +++ b/assets/src/ba_data/python/bastd/ui/settings/advanced.py @@ -53,20 +53,22 @@ class AdvancedSettingsWindow(ba.Window): self._transition_out = 'out_right' scale_origin = None - self._width = 870.0 if app.small_ui else 670.0 - x_inset = 100 if app.small_ui else 0 - self._height = (390.0 - if app.small_ui else 450.0 if app.med_ui else 520.0) + uiscale = ba.app.uiscale + self._width = 870.0 if uiscale is ba.UIScale.SMALL else 670.0 + x_inset = 100 if uiscale is ba.UIScale.SMALL else 0 + self._height = (390.0 if uiscale is ba.UIScale.SMALL else + 450.0 if uiscale is ba.UIScale.MEDIUM else 520.0) self._spacing = 32 self._menu_open = False - top_extra = 10 if app.small_ui else 0 + top_extra = 10 if uiscale is ba.UIScale.SMALL else 0 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + top_extra), transition=transition, toolbar_visibility='menu_minimal', scale_origin_stack_offset=scale_origin, - scale=2.06 if app.small_ui else 1.4 if app.med_ui else 1.0, - stack_offset=(0, -25) if app.small_ui else (0, 0))) + scale=(2.06 if uiscale is ba.UIScale.SMALL else + 1.4 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -25) if uiscale is ba.UIScale.SMALL else (0, 0))) self._prev_lang = '' self._prev_lang_list: List[str] = [] self._complete_langs_list: Optional[List] = None @@ -96,7 +98,7 @@ class AdvancedSettingsWindow(ba.Window): self._r = 'settingsWindowAdvanced' - if app.toolbars and app.small_ui: + if app.toolbars and uiscale is ba.UIScale.SMALL: ba.containerwidget(edit=self._root_widget, on_cancel_call=self._do_back) self._back_button = None diff --git a/assets/src/ba_data/python/bastd/ui/settings/allsettings.py b/assets/src/ba_data/python/bastd/ui/settings/allsettings.py index cd7686c9..702e3e0a 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/allsettings.py +++ b/assets/src/ba_data/python/bastd/ui/settings/allsettings.py @@ -54,23 +54,25 @@ class AllSettingsWindow(ba.Window): else: self._transition_out = 'out_right' scale_origin = None - width = 900 if ba.app.small_ui else 580 - x_inset = 75 if ba.app.small_ui else 0 + uiscale = ba.app.uiscale + width = 900 if uiscale is ba.UIScale.SMALL else 580 + x_inset = 75 if uiscale is ba.UIScale.SMALL else 0 height = 435 # button_height = 42 self._r = 'settingsWindow' - top_extra = 20 if ba.app.small_ui else 0 + top_extra = 20 if uiscale is ba.UIScale.SMALL else 0 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(width, height + top_extra), transition=transition, toolbar_visibility='menu_minimal', scale_origin_stack_offset=scale_origin, - scale=( - 1.75 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0), - stack_offset=(0, -8) if ba.app.small_ui else (0, 0))) + scale=(1.75 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -8) if uiscale is ba.UIScale.SMALL else (0, 0))) - if ba.app.toolbars and ba.app.small_ui: + if ba.app.toolbars and uiscale is ba.UIScale.SMALL: self._back_button = None ba.containerwidget(edit=self._root_widget, on_cancel_call=self._do_back) @@ -105,10 +107,10 @@ class AllSettingsWindow(ba.Window): v = height - 80 v -= 145 - basew = 280 if ba.app.small_ui else 230 + basew = 280 if uiscale is ba.UIScale.SMALL else 230 baseh = 170 - x_offs = x_inset + (105 - if ba.app.small_ui else 72) - basew # now unused + x_offs = x_inset + (105 if uiscale is ba.UIScale.SMALL else + 72) - basew # now unused x_offs2 = x_offs + basew - 7 x_offs3 = x_offs + 2 * (basew - 7) x_offs4 = x_offs2 diff --git a/assets/src/ba_data/python/bastd/ui/settings/audio.py b/assets/src/ba_data/python/bastd/ui/settings/audio.py index 02c6b25d..c7e8d970 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/audio.py +++ b/assets/src/ba_data/python/bastd/ui/settings/audio.py @@ -74,8 +74,9 @@ class AudioSettingsWindow(ba.Window): show_soundtracks = True height += spacing * 2.0 - base_scale = (2.05 - if ba.app.small_ui else 1.6 if ba.app.med_ui else 1.0) + uiscale = ba.app.uiscale + base_scale = (2.05 if uiscale is ba.UIScale.SMALL else + 1.6 if uiscale is ba.UIScale.MEDIUM else 1.0) popup_menu_scale = base_scale * 1.2 super().__init__(root_widget=ba.containerwidget( @@ -83,7 +84,7 @@ class AudioSettingsWindow(ba.Window): transition=transition, scale=base_scale, scale_origin_stack_offset=scale_origin, - stack_offset=(0, -20) if ba.app.small_ui else (0, 0))) + stack_offset=(0, -20) if uiscale is ba.UIScale.SMALL else (0, 0))) self._back_button = back_button = btn = ba.buttonwidget( parent=self._root_widget, diff --git a/assets/src/ba_data/python/bastd/ui/settings/controls.py b/assets/src/ba_data/python/bastd/ui/settings/controls.py index c90d11ff..283be4d3 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/controls.py +++ b/assets/src/ba_data/python/bastd/ui/settings/controls.py @@ -144,12 +144,14 @@ class ControlsSettingsWindow(ba.Window): if show_xinput_toggle: height += spacing + uiscale = ba.app.uiscale + smallscale = (1.7 if show_keyboard else 2.2) super().__init__(root_widget=ba.containerwidget( size=(width, height), transition=transition, scale_origin_stack_offset=scale_origin, - scale=(1.7 if show_keyboard else 2.2 - ) if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.0)) + scale=(smallscale if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0))) self._back_button = btn = ba.buttonwidget( parent=self._root_widget, position=(35, height - 60), diff --git a/assets/src/ba_data/python/bastd/ui/settings/gamepad.py b/assets/src/ba_data/python/bastd/ui/settings/gamepad.py index 406bee3d..e27ba546 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/gamepad.py +++ b/assets/src/ba_data/python/bastd/ui/settings/gamepad.py @@ -60,11 +60,12 @@ class GamepadSettingsWindow(ba.Window): self._width = 700 if self._is_secondary else 730 self._height = 440 if self._is_secondary else 450 self._spacing = 40 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), - scale=( - 1.63 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0), - stack_offset=(-20, -16) if ba.app.small_ui else (0, 0), + scale=(1.63 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(-20, -16) if uiscale is ba.UIScale.SMALL else (0, 0), transition=transition)) # Don't ask to config joysticks while we're in here. @@ -782,10 +783,12 @@ class AwaitGamepadInputWindow(ba.Window): self._capture_button = button width = 400 height = 150 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( - scale=2.0 if ba.app.small_ui else 1.9 if ba.app.med_ui else 1.0, + scale=(2.0 if uiscale is ba.UIScale.SMALL else + 1.9 if uiscale is ba.UIScale.MEDIUM else 1.0), size=(width, height), - transition='in_scale')) + transition='in_scale'), ) ba.textwidget(parent=self._root_widget, position=(0, (height - 60) if message2 is None else (height - 50)), diff --git a/assets/src/ba_data/python/bastd/ui/settings/gamepadadvanced.py b/assets/src/ba_data/python/bastd/ui/settings/gamepadadvanced.py index 1b12cdfd..d4631aed 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/gamepadadvanced.py +++ b/assets/src/ba_data/python/bastd/ui/settings/gamepadadvanced.py @@ -41,22 +41,23 @@ class GamepadAdvancedSettingsWindow(ba.Window): app = ba.app self._r = parent_window.get_r() - self._width = 900 if ba.app.small_ui else 700 - self._x_inset = x_inset = 100 if ba.app.small_ui else 0 - self._height = 402 if ba.app.small_ui else 512 + uiscale = ba.app.uiscale + self._width = 900 if uiscale is ba.UIScale.SMALL else 700 + self._x_inset = x_inset = 100 if uiscale is ba.UIScale.SMALL else 0 + self._height = 402 if uiscale is ba.UIScale.SMALL else 512 self._textwidgets: Dict[str, ba.Widget] = {} super().__init__(root_widget=ba.containerwidget( transition='in_scale', size=(self._width, self._height), - scale=1.06 * - (1.85 if ba.app.small_ui else 1.35 if ba.app.med_ui else 1.0), - stack_offset=(0, -25) if ba.app.small_ui else (0, 0), + scale=1.06 * (1.85 if uiscale is ba.UIScale.SMALL else + 1.35 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -25) if uiscale is ba.UIScale.SMALL else (0, 0), scale_origin_stack_offset=(parent_window.get_advanced_button(). get_screen_space_center()))) ba.textwidget(parent=self._root_widget, position=(self._width * 0.5, self._height - - (40 if ba.app.small_ui else 34)), + (40 if uiscale is ba.UIScale.SMALL else 34)), size=(0, 0), text=ba.Lstr(resource=self._r + '.advancedTitleText'), maxwidth=320, @@ -67,8 +68,8 @@ class GamepadAdvancedSettingsWindow(ba.Window): back_button = btn = ba.buttonwidget( parent=self._root_widget, autoselect=True, - position=(self._width - (176 + x_inset), - self._height - (60 if ba.app.small_ui else 55)), + position=(self._width - (176 + x_inset), self._height - + (60 if uiscale is ba.UIScale.SMALL else 55)), size=(120, 48), text_scale=0.8, label=ba.Lstr(resource='doneText'), diff --git a/assets/src/ba_data/python/bastd/ui/settings/gamepadselect.py b/assets/src/ba_data/python/bastd/ui/settings/gamepadselect.py index daccdabf..9b063425 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/gamepadselect.py +++ b/assets/src/ba_data/python/bastd/ui/settings/gamepadselect.py @@ -55,8 +55,10 @@ def gamepad_configure_callback(event: Dict[str, Any]) -> None: width = 700 height = 200 button_width = 100 + uiscale = ba.app.uiscale ba.app.main_menu_window = dlg = (ba.containerwidget( - scale=1.7 if ba.app.small_ui else 1.4 if ba.app.med_ui else 1.0, + scale=(1.7 if uiscale is ba.UIScale.SMALL else + 1.4 if uiscale is ba.UIScale.MEDIUM else 1.0), size=(width, height), transition='in_right')) device_name = inputdevice.name @@ -97,10 +99,13 @@ class GamepadSelectWindow(ba.Window): spacing = 40 self._r = 'configGamepadSelectWindow' + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( - scale=2.3 if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.0, + scale=(2.3 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0), size=(width, height), - transition='in_right')) + transition='in_right', + )) btn = ba.buttonwidget(parent=self._root_widget, position=(20, height - 60), diff --git a/assets/src/ba_data/python/bastd/ui/settings/graphics.py b/assets/src/ba_data/python/bastd/ui/settings/graphics.py index 6fe5477e..411b21a6 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/graphics.py +++ b/assets/src/ba_data/python/bastd/ui/settings/graphics.py @@ -57,14 +57,14 @@ class GraphicsSettingsWindow(ba.Window): spacing = 32 self._have_selected_child = False - interface_type = app.interface_type + uiscale = app.uiscale width = 450.0 height = 302.0 self._show_fullscreen = False fullscreen_spacing_top = spacing * 0.2 fullscreen_spacing = spacing * 1.2 - if interface_type == 'large' and app.platform != 'android': + if uiscale == ba.UIScale.LARGE and app.platform != 'android': self._show_fullscreen = True height += fullscreen_spacing + fullscreen_spacing_top @@ -83,8 +83,9 @@ class GraphicsSettingsWindow(ba.Window): show_resolution = (app.platform == 'android' and app.subplatform == 'cardboard') - base_scale = (2.4 - if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.0) + uiscale = ba.app.uiscale + base_scale = (2.4 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0) popup_menu_scale = base_scale * 1.2 v = height - 50 v -= spacing * 1.15 @@ -93,7 +94,7 @@ class GraphicsSettingsWindow(ba.Window): transition=transition, scale_origin_stack_offset=scale_origin, scale=base_scale, - stack_offset=(0, -30) if ba.app.small_ui else (0, 0))) + stack_offset=(0, -30) if uiscale is ba.UIScale.SMALL else (0, 0))) btn = ba.buttonwidget(parent=self._root_widget, position=(35, height - 50), diff --git a/assets/src/ba_data/python/bastd/ui/settings/keyboard.py b/assets/src/ba_data/python/bastd/ui/settings/keyboard.py index 407b4d56..61f02ae2 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/keyboard.py +++ b/assets/src/ba_data/python/bastd/ui/settings/keyboard.py @@ -45,14 +45,16 @@ class ConfigKeyboardWindow(ba.Window): self._displayname = ba.Lstr(translate=('inputDeviceNames', dname_raw)) self._width = 700 if self._unique_id != '#1': - self._height = 450 + self._height = 480 else: - self._height = 345 + self._height = 375 self._spacing = 40 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), - scale=(1.6 if ba.app.small_ui else 1.3 if ba.app.med_ui else 1.0), - stack_offset=(0, -10) if ba.app.small_ui else (0, 0), + scale=(1.6 if uiscale is ba.UIScale.SMALL else + 1.3 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -10) if uiscale is ba.UIScale.SMALL else (0, 0), transition=transition)) self._rebuild_ui() @@ -73,7 +75,7 @@ class ConfigKeyboardWindow(ba.Window): cancel_button = ba.buttonwidget(parent=self._root_widget, autoselect=True, - position=(38, self._height - 65), + position=(38, self._height - 85), size=(170, 60), label=ba.Lstr(resource='cancelText'), scale=0.9, @@ -81,9 +83,9 @@ class ConfigKeyboardWindow(ba.Window): save_button = ba.buttonwidget(parent=self._root_widget, autoselect=True, position=(self._width - 190, - self._height - 65), + self._height - 85), size=(180, 60), - label=ba.Lstr(resource='makeItSoText'), + label=ba.Lstr(resource='saveText'), scale=0.9, text_scale=0.9, on_activate_call=self._save) @@ -94,7 +96,7 @@ class ConfigKeyboardWindow(ba.Window): ba.widget(edit=cancel_button, right_widget=save_button) ba.widget(edit=save_button, left_widget=cancel_button) - v = self._height - 54.0 + v = self._height - 74.0 ba.textwidget(parent=self._root_widget, position=(self._width * 0.5, v + 15), size=(0, 0), @@ -270,10 +272,12 @@ class AwaitKeyboardInputWindow(ba.Window): width = 400 height = 150 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(width, height), transition='in_right', - scale=2.0 if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.0)) + scale=(2.0 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0))) ba.textwidget(parent=self._root_widget, position=(0, height - 60), size=(width, 25), diff --git a/assets/src/ba_data/python/bastd/ui/settings/ps3controller.py b/assets/src/ba_data/python/bastd/ui/settings/ps3controller.py index cc28369d..3598a39a 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/ps3controller.py +++ b/assets/src/ba_data/python/bastd/ui/settings/ps3controller.py @@ -34,10 +34,12 @@ class PS3ControllerSettingsWindow(ba.Window): height = 330 if _ba.is_running_on_fire_tv() else 540 spacing = 40 self._r = 'ps3ControllersWindow' + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(width, height), transition='in_right', - scale=1.35 if ba.app.small_ui else 1.3 if ba.app.med_ui else 1.0)) + scale=(1.35 if uiscale is ba.UIScale.SMALL else + 1.3 if uiscale is ba.UIScale.MEDIUM else 1.0))) btn = ba.buttonwidget(parent=self._root_widget, position=(37, height - 73), diff --git a/assets/src/ba_data/python/bastd/ui/settings/remoteapp.py b/assets/src/ba_data/python/bastd/ui/settings/remoteapp.py index 0db78e6e..d47f54fb 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/remoteapp.py +++ b/assets/src/ba_data/python/bastd/ui/settings/remoteapp.py @@ -34,11 +34,13 @@ class RemoteAppSettingsWindow(ba.Window): width = 700 height = 390 spacing = 40 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(width, height), transition='in_right', - scale=(1.85 if ba.app.small_ui else 1.3 if ba.app.med_ui else 1.0), - stack_offset=(-10, 0) if ba.app.small_ui else (0, 0))) + scale=(1.85 if uiscale is ba.UIScale.SMALL else + 1.3 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(-10, 0) if uiscale is ba.UIScale.SMALL else (0, 0))) btn = ba.buttonwidget(parent=self._root_widget, position=(40, height - 67), size=(140, 65), diff --git a/assets/src/ba_data/python/bastd/ui/settings/testing.py b/assets/src/ba_data/python/bastd/ui/settings/testing.py index be3c17df..63ca41d8 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/testing.py +++ b/assets/src/ba_data/python/bastd/ui/settings/testing.py @@ -39,14 +39,16 @@ class TestingWindow(ba.Window): title: ba.Lstr, entries: List[Dict[str, Any]], transition: str = 'in_right'): + uiscale = ba.app.uiscale self._width = 600 - self._height = 324 if ba.app.small_ui else 400 + self._height = 324 if uiscale is ba.UIScale.SMALL else 400 self._entries = copy.deepcopy(entries) super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition=transition, - scale=(2.5 if ba.app.small_ui else 1.2 if ba.app.med_ui else 1.0), - stack_offset=(0, -28) if ba.app.small_ui else (0, 0))) + scale=(2.5 if uiscale is ba.UIScale.SMALL else + 1.2 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -28) if uiscale is ba.UIScale.SMALL else (0, 0))) self._back_button = btn = ba.buttonwidget( parent=self._root_widget, autoselect=True, diff --git a/assets/src/ba_data/python/bastd/ui/settings/touchscreen.py b/assets/src/ba_data/python/bastd/ui/settings/touchscreen.py index 7dbc3d80..59faf44b 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/touchscreen.py +++ b/assets/src/ba_data/python/bastd/ui/settings/touchscreen.py @@ -45,10 +45,12 @@ class TouchscreenSettingsWindow(ba.Window): _ba.set_touchscreen_editing(True) + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition='in_right', - scale=1.9 if ba.app.small_ui else 1.55 if ba.app.med_ui else 1.2)) + scale=(1.9 if uiscale is ba.UIScale.SMALL else + 1.55 if uiscale is ba.UIScale.MEDIUM else 1.2))) btn = ba.buttonwidget(parent=self._root_widget, position=(55, self._height - 60), diff --git a/assets/src/ba_data/python/bastd/ui/settings/xbox360controller.py b/assets/src/ba_data/python/bastd/ui/settings/xbox360controller.py index ac771431..b65b48ec 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/xbox360controller.py +++ b/assets/src/ba_data/python/bastd/ui/settings/xbox360controller.py @@ -39,10 +39,12 @@ class XBox360ControllerSettingsWindow(ba.Window): width = 700 height = 300 if _ba.is_running_on_fire_tv() else 485 spacing = 40 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(width, height), transition='in_right', - scale=1.4 if ba.app.small_ui else 1.4 if ba.app.med_ui else 1.0)) + scale=(1.4 if uiscale is ba.UIScale.SMALL else + 1.4 if uiscale is ba.UIScale.MEDIUM else 1.0))) btn = ba.buttonwidget(parent=self._root_widget, position=(35, height - 65), diff --git a/assets/src/ba_data/python/bastd/ui/soundtrack/browser.py b/assets/src/ba_data/python/bastd/ui/soundtrack/browser.py index b727122b..a796229b 100644 --- a/assets/src/ba_data/python/bastd/ui/soundtrack/browser.py +++ b/assets/src/ba_data/python/bastd/ui/soundtrack/browser.py @@ -38,6 +38,7 @@ class SoundtrackBrowserWindow(ba.Window): def __init__(self, transition: str = 'in_right', origin_widget: ba.Widget = None): + # pylint: disable=too-many-locals # pylint: disable=too-many-statements # If they provided an origin-widget, scale up from that. @@ -51,10 +52,11 @@ class SoundtrackBrowserWindow(ba.Window): scale_origin = None self._r = 'editSoundtrackWindow' - self._width = 800 if ba.app.small_ui else 600 - x_inset = 100 if ba.app.small_ui else 0 - self._height = (340 - if ba.app.small_ui else 370 if ba.app.med_ui else 440) + uiscale = ba.app.uiscale + self._width = 800 if uiscale is ba.UIScale.SMALL else 600 + x_inset = 100 if uiscale is ba.UIScale.SMALL else 0 + self._height = (340 if uiscale is ba.UIScale.SMALL else + 370 if uiscale is ba.UIScale.MEDIUM else 440) spacing = 40.0 v = self._height - 40.0 v -= spacing * 1.0 @@ -64,10 +66,11 @@ class SoundtrackBrowserWindow(ba.Window): transition=transition, toolbar_visibility='menu_minimal', scale_origin_stack_offset=scale_origin, - scale=(2.3 if ba.app.small_ui else 1.6 if ba.app.med_ui else 1.0), - stack_offset=(0, -18) if ba.app.small_ui else (0, 0))) + scale=(2.3 if uiscale is ba.UIScale.SMALL else + 1.6 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -18) if uiscale is ba.UIScale.SMALL else (0, 0))) - if ba.app.toolbars and ba.app.small_ui: + if ba.app.toolbars and uiscale is ba.UIScale.SMALL: self._back_button = None else: self._back_button = ba.buttonwidget( @@ -98,7 +101,8 @@ class SoundtrackBrowserWindow(ba.Window): lock_tex = ba.gettexture('lock') self._lock_images: List[ba.Widget] = [] - scl = (1.0 if ba.app.small_ui else 1.13 if ba.app.med_ui else 1.4) + scl = (1.0 if uiscale is ba.UIScale.SMALL else + 1.13 if uiscale is ba.UIScale.MEDIUM else 1.4) v -= 60.0 * scl self._new_button = btn = ba.buttonwidget( parent=self._root_widget, diff --git a/assets/src/ba_data/python/bastd/ui/soundtrack/edit.py b/assets/src/ba_data/python/bastd/ui/soundtrack/edit.py index 0895cb83..484757ff 100644 --- a/assets/src/ba_data/python/bastd/ui/soundtrack/edit.py +++ b/assets/src/ba_data/python/bastd/ui/soundtrack/edit.py @@ -43,16 +43,18 @@ class SoundtrackEditWindow(ba.Window): self._r = 'editSoundtrackWindow' self._folder_tex = ba.gettexture('folder') self._file_tex = ba.gettexture('file') - self._width = 848 if ba.app.small_ui else 648 - x_inset = 100 if ba.app.small_ui else 0 - self._height = (395 - if ba.app.small_ui else 450 if ba.app.med_ui else 560) + uiscale = ba.app.uiscale + self._width = 848 if uiscale is ba.UIScale.SMALL else 648 + x_inset = 100 if uiscale is ba.UIScale.SMALL else 0 + self._height = (395 if uiscale is ba.UIScale.SMALL else + 450 if uiscale is ba.UIScale.MEDIUM else 560) super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition=transition, - scale=(2.08 if ba.app.small_ui else 1.5 if ba.app.med_ui else 1.0), - stack_offset=(0, -48) if ba.app.small_ui else ( - 0, 15) if ba.app.med_ui else (0, 0))) + scale=(2.08 if uiscale is ba.UIScale.SMALL else + 1.5 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -48) if uiscale is ba.UIScale.SMALL else ( + 0, 15) if uiscale is ba.UIScale.MEDIUM else (0, 0))) cancel_button = ba.buttonwidget(parent=self._root_widget, position=(38 + x_inset, self._height - 60), diff --git a/assets/src/ba_data/python/bastd/ui/soundtrack/entrytypeselect.py b/assets/src/ba_data/python/bastd/ui/soundtrack/entrytypeselect.py index 22304ea8..b1652672 100644 --- a/assets/src/ba_data/python/bastd/ui/soundtrack/entrytypeselect.py +++ b/assets/src/ba_data/python/bastd/ui/soundtrack/entrytypeselect.py @@ -64,10 +64,12 @@ class SoundtrackEntryTypeSelectWindow(ba.Window): if do_music_folder: self._height += spacing + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition=transition, - scale=1.7 if ba.app.small_ui else 1.4 if ba.app.med_ui else 1.0)) + scale=(1.7 if uiscale is ba.UIScale.SMALL else + 1.4 if uiscale is ba.UIScale.MEDIUM else 1.0))) btn = ba.buttonwidget(parent=self._root_widget, position=(35, self._height - 65), size=(160, 60), diff --git a/assets/src/ba_data/python/bastd/ui/specialoffer.py b/assets/src/ba_data/python/bastd/ui/specialoffer.py index 80c6bf20..8d7d2764 100644 --- a/assets/src/ba_data/python/bastd/ui/specialoffer.py +++ b/assets/src/ba_data/python/bastd/ui/specialoffer.py @@ -91,11 +91,13 @@ class SpecialOfferWindow(ba.Window): self._offer = copy.deepcopy(offer) self._width = 580 self._height = 590 + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition=transition, - scale=(1.2 if ba.app.small_ui else 1.15 if ba.app.med_ui else 1.0), - stack_offset=(0, -15) if ba.app.small_ui else (0, 0))) + scale=(1.2 if uiscale is ba.UIScale.SMALL else + 1.15 if uiscale is ba.UIScale.MEDIUM else 1.0), + stack_offset=(0, -15) if uiscale is ba.UIScale.SMALL else (0, 0))) self._is_bundle_sale = False try: if offer['item'] in ['pro', 'pro_fullprice']: diff --git a/assets/src/ba_data/python/bastd/ui/store/browser.py b/assets/src/ba_data/python/bastd/ui/store/browser.py index d8677e7b..1bf05030 100644 --- a/assets/src/ba_data/python/bastd/ui/store/browser.py +++ b/assets/src/ba_data/python/bastd/ui/store/browser.py @@ -39,9 +39,10 @@ class StoreBrowserWindow(ba.Window): """Window for browsing the store.""" def _update_get_tickets_button_pos(self) -> None: + uiscale = ba.app.uiscale if self._get_tickets_button: pos = (self._width - 252 - - (self._x_inset + (47 if ba.app.small_ui + (self._x_inset + (47 if uiscale is ba.UIScale.SMALL and _ba.is_party_icon_visible() else 0)), self._height - 70) ba.buttonwidget(edit=self._get_tickets_button, position=pos) @@ -59,6 +60,7 @@ class StoreBrowserWindow(ba.Window): from ba import SpecialChar app = ba.app + uiscale = app.uiscale ba.set_analytics_screen('Store Window') @@ -81,11 +83,12 @@ class StoreBrowserWindow(ba.Window): self._on_close_call = on_close_call self._show_tab = show_tab self._modal = modal - self._width = 1240 if app.small_ui else 1040 - self._x_inset = x_inset = 100 if app.small_ui else 0 - self._height = (578 if app.small_ui else 645 if app.med_ui else 800) + self._width = 1240 if uiscale is ba.UIScale.SMALL else 1040 + self._x_inset = x_inset = 100 if uiscale is ba.UIScale.SMALL else 0 + self._height = (578 if uiscale is ba.UIScale.SMALL else + 645 if uiscale is ba.UIScale.MEDIUM else 800) self._current_tab: Optional[str] = None - extra_top = 30 if app.small_ui else 0 + extra_top = 30 if uiscale is ba.UIScale.SMALL else 0 self._request: Any = None self._r = 'store' @@ -95,12 +98,11 @@ class StoreBrowserWindow(ba.Window): size=(self._width, self._height + extra_top), transition=transition, toolbar_visibility='menu_full', - scale=1.3 if app.small_ui else 0.9 if app.med_ui else 0.8, + scale=(1.3 if uiscale is ba.UIScale.SMALL else + 0.9 if uiscale is ba.UIScale.MEDIUM else 0.8), scale_origin_stack_offset=scale_origin, - stack_offset=(0, - -5) if app.small_ui else (0, - 0) if app.med_ui else (0, - 0))) + stack_offset=((0, -5) if uiscale is ba.UIScale.SMALL else ( + 0, 0) if uiscale is ba.UIScale.MEDIUM else (0, 0)))) self._back_button = btn = ba.buttonwidget( parent=self._root_widget, @@ -718,6 +720,8 @@ class StoreBrowserWindow(ba.Window): self._sections = copy.deepcopy(store_data[sdata['tab']]) self._height: Optional[float] = None + uiscale = ba.app.uiscale + # Pre-calc a few things and add them to store-data. for section in self._sections: if self._tab == 'characters': @@ -739,8 +743,9 @@ class StoreBrowserWindow(ba.Window): section['x_offs'] = (130 if self._tab == 'extras' else 270 if self._tab == 'maps' else 0) section['y_offs'] = ( - 55 if (self._tab == 'extras' and ba.app.small_ui) - else -20 if self._tab == 'icons' else 0) + 55 if (self._tab == 'extras' + and uiscale is ba.UIScale.SMALL) else + -20 if self._tab == 'icons' else 0) def instantiate(self, scrollwidget: ba.Widget, tab_button: ba.Widget) -> None: diff --git a/assets/src/ba_data/python/bastd/ui/teamnamescolors.py b/assets/src/ba_data/python/bastd/ui/teamnamescolors.py index 543dce62..a49725f3 100644 --- a/assets/src/ba_data/python/bastd/ui/teamnamescolors.py +++ b/assets/src/ba_data/python/bastd/ui/teamnamescolors.py @@ -43,7 +43,9 @@ class TeamNamesColorsWindow(popup.PopupWindow): self._max_name_length = 16 # Creates our _root_widget. - scale = (1.69 if ba.app.small_ui else 1.1 if ba.app.med_ui else 0.85) + uiscale = ba.app.uiscale + scale = (1.69 if uiscale is ba.UIScale.SMALL else + 1.1 if uiscale is ba.UIScale.MEDIUM else 0.85) super().__init__(position=scale_origin, size=(self._width, self._height), scale=scale) diff --git a/assets/src/ba_data/python/bastd/ui/telnet.py b/assets/src/ba_data/python/bastd/ui/telnet.py index 2d412947..4b7f2737 100644 --- a/assets/src/ba_data/python/bastd/ui/telnet.py +++ b/assets/src/ba_data/python/bastd/ui/telnet.py @@ -34,10 +34,12 @@ class TelnetAccessRequestWindow(ba.Window): height = 100 text = ba.Lstr(resource='telnetAccessText') + uiscale = ba.app.uiscale super().__init__(root_widget=ba.containerwidget( size=(width, height + 40), transition='in_right', - scale=1.7 if ba.app.small_ui else 1.3 if ba.app.med_ui else 1.0)) + scale=(1.7 if uiscale is ba.UIScale.SMALL else + 1.3 if uiscale is ba.UIScale.MEDIUM else 1.0))) padding = 20 ba.textwidget(parent=self._root_widget, position=(padding, padding + 33), diff --git a/assets/src/ba_data/python/bastd/ui/tournamententry.py b/assets/src/ba_data/python/bastd/ui/tournamententry.py index 3fe494a9..49ba780e 100644 --- a/assets/src/ba_data/python/bastd/ui/tournamententry.py +++ b/assets/src/ba_data/python/bastd/ui/tournamententry.py @@ -43,8 +43,9 @@ class TournamentEntryWindow(popup.PopupWindow): scale: float = None, offset: Tuple[float, float] = (0.0, 0.0), on_close_call: Callable[[], Any] = None): - # needs some tidying + # Needs some tidying. # pylint: disable=too-many-branches + # pylint: disable=too-many-locals # pylint: disable=too-many-statements ba.set_analytics_screen('Tournament Entry Window') @@ -77,8 +78,9 @@ class TournamentEntryWindow(popup.PopupWindow): self._on_close_call = on_close_call if scale is None: - scale = (2.3 - if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + uiscale = ba.app.uiscale + scale = (2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._delegate = delegate self._transitioning_out = False diff --git a/assets/src/ba_data/python/bastd/ui/tournamentscores.py b/assets/src/ba_data/python/bastd/ui/tournamentscores.py index e4e6f622..fc34f17a 100644 --- a/assets/src/ba_data/python/bastd/ui/tournamentscores.py +++ b/assets/src/ba_data/python/bastd/ui/tournamentscores.py @@ -53,14 +53,15 @@ class TournamentScoresWindow(popup_ui.PopupWindow): self._tournament_id = tournament_id self._subcontainer: Optional[ba.Widget] = None self._on_close_call = on_close_call + uiscale = ba.app.uiscale if scale is None: - scale = (2.3 - if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + scale = (2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._transitioning_out = False self._width = 400 - self._height = (300 - if ba.app.small_ui else 370 if ba.app.med_ui else 450) + self._height = (300 if uiscale is ba.UIScale.SMALL else + 370 if uiscale is ba.UIScale.MEDIUM else 450) bg_color = (0.5, 0.4, 0.6) diff --git a/assets/src/ba_data/python/bastd/ui/trophies.py b/assets/src/ba_data/python/bastd/ui/trophies.py index 1bdfcea0..4009fc28 100644 --- a/assets/src/ba_data/python/bastd/ui/trophies.py +++ b/assets/src/ba_data/python/bastd/ui/trophies.py @@ -40,9 +40,10 @@ class TrophiesWindow(popup.PopupWindow): scale: float = None): from ba.deprecated import get_resource self._data = data + uiscale = ba.app.uiscale if scale is None: - scale = (2.3 - if ba.app.small_ui else 1.65 if ba.app.med_ui else 1.23) + scale = (2.3 if uiscale is ba.UIScale.SMALL else + 1.65 if uiscale is ba.UIScale.MEDIUM else 1.23) self._transitioning_out = False self._width = 300 self._height = 300 diff --git a/assets/src/ba_data/python/bastd/ui/url.py b/assets/src/ba_data/python/bastd/ui/url.py index 3f287dcc..510513fc 100644 --- a/assets/src/ba_data/python/bastd/ui/url.py +++ b/assets/src/ba_data/python/bastd/ui/url.py @@ -34,14 +34,15 @@ class ShowURLWindow(ba.Window): # in some cases we might want to show it as a qr code # (for long URLs especially) app = ba.app + uiscale = app.uiscale if app.platform == 'android' and app.subplatform == 'alibaba': self._width = 500 self._height = 500 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition='in_right', - scale=(1.25 if ba.app.small_ui else 1.25 if ba.app. - med_ui else 1.25))) + scale=(1.25 if uiscale is ba.UIScale.SMALL else + 1.25 if uiscale is ba.UIScale.MEDIUM else 1.25))) self._cancel_button = ba.buttonwidget( parent=self._root_widget, position=(50, self._height - 30), @@ -68,8 +69,8 @@ class ShowURLWindow(ba.Window): self._root_widget = ba.containerwidget( size=(self._width, self._height + 40), transition='in_right', - scale=1.25 - if ba.app.small_ui else 1.25 if ba.app.med_ui else 1.25) + scale=(1.25 if uiscale is ba.UIScale.SMALL else + 1.25 if uiscale is ba.UIScale.MEDIUM else 1.25)) ba.textwidget(parent=self._root_widget, position=(self._width * 0.5, self._height - 10), size=(0, 0), diff --git a/assets/src/ba_data/python/bastd/ui/watch.py b/assets/src/ba_data/python/bastd/ui/watch.py index f739c1ff..4cb1c0e6 100644 --- a/assets/src/ba_data/python/bastd/ui/watch.py +++ b/assets/src/ba_data/python/bastd/ui/watch.py @@ -60,23 +60,25 @@ class WatchWindow(ba.Window): self._my_replays_rename_window: Optional[ba.Widget] = None self._my_replay_rename_text: Optional[ba.Widget] = None self._r = 'watchWindow' - self._width = 1240 if ba.app.small_ui else 1040 - x_inset = 100 if ba.app.small_ui else 0 - self._height = (578 - if ba.app.small_ui else 670 if ba.app.med_ui else 800) + uiscale = ba.app.uiscale + self._width = 1240 if uiscale is ba.UIScale.SMALL else 1040 + x_inset = 100 if uiscale is ba.UIScale.SMALL else 0 + self._height = (578 if uiscale is ba.UIScale.SMALL else + 670 if uiscale is ba.UIScale.MEDIUM else 800) self._current_tab: Optional[str] = None - extra_top = 20 if ba.app.small_ui else 0 + extra_top = 20 if uiscale is ba.UIScale.SMALL else 0 super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height + extra_top), transition=transition, toolbar_visibility='menu_minimal', scale_origin_stack_offset=scale_origin, - scale=(1.3 if ba.app.small_ui else 0.97 if ba.app.med_ui else 0.8), - stack_offset=(0, -10) if ba.app.small_ui else ( - 0, 15) if ba.app.med_ui else (0, 0))) + scale=(1.3 if uiscale is ba.UIScale.SMALL else + 0.97 if uiscale is ba.UIScale.MEDIUM else 0.8), + stack_offset=(0, -10) if uiscale is ba.UIScale.SMALL else ( + 0, 15) if uiscale is ba.UIScale.MEDIUM else (0, 0))) - if ba.app.small_ui and ba.app.toolbars: + if uiscale is ba.UIScale.SMALL and ba.app.toolbars: ba.containerwidget(edit=self._root_widget, on_cancel_call=self._back) self._back_button = None @@ -122,7 +124,7 @@ class WatchWindow(ba.Window): if ba.app.toolbars: ba.widget(edit=self._tab_buttons[tabs_def[-1][0]], right_widget=_ba.get_special_widget('party_button')) - if ba.app.small_ui: + if uiscale is ba.UIScale.SMALL: bbtn = _ba.get_special_widget('back_button') ba.widget(edit=self._tab_buttons[tabs_def[0][0]], up_widget=bbtn, @@ -172,12 +174,13 @@ class WatchWindow(ba.Window): # switching to a different tab self._tab_data = {} + uiscale = ba.app.uiscale if tab == 'my_replays': c_width = self._scroll_width c_height = self._scroll_height - 20 sub_scroll_height = c_height - 63 self._my_replays_scroll_width = sub_scroll_width = ( - 680 if ba.app.small_ui else 640) + 680 if uiscale is ba.UIScale.SMALL else 640) self._tab_container = cnt = ba.containerwidget( parent=self._root_widget, @@ -202,19 +205,20 @@ class WatchWindow(ba.Window): ba.Lstr(resource='replayNameDefaultText')) ])) - b_width = 140 if ba.app.small_ui else 178 - b_height = (107 - if ba.app.small_ui else 142 if ba.app.med_ui else 190) - b_space_extra = (0 if ba.app.small_ui else - -2 if ba.app.med_ui else -5) + b_width = 140 if uiscale is ba.UIScale.SMALL else 178 + b_height = (107 if uiscale is ba.UIScale.SMALL else + 142 if uiscale is ba.UIScale.MEDIUM else 190) + b_space_extra = (0 if uiscale is ba.UIScale.SMALL else + -2 if uiscale is ba.UIScale.MEDIUM else -5) b_color = (0.6, 0.53, 0.63) b_textcolor = (0.75, 0.7, 0.8) - btnv = c_height - (48 if ba.app.small_ui else - 45 if ba.app.med_ui else 40) - b_height - btnh = 40 if ba.app.small_ui else 40 - smlh = 190 if ba.app.small_ui else 225 - tscl = 1.0 if ba.app.small_ui else 1.2 + btnv = (c_height - (48 if uiscale is ba.UIScale.SMALL else + 45 if uiscale is ba.UIScale.MEDIUM else 40) - + b_height) + btnh = 40 if uiscale is ba.UIScale.SMALL else 40 + smlh = 190 if uiscale is ba.UIScale.SMALL else 225 + tscl = 1.0 if uiscale is ba.UIScale.SMALL else 1.2 self._my_replays_watch_replay_button = btn1 = ba.buttonwidget( parent=cnt, size=(b_width, b_height), @@ -227,7 +231,7 @@ class WatchWindow(ba.Window): label=ba.Lstr(resource=self._r + '.watchReplayButtonText'), autoselect=True) ba.widget(edit=btn1, up_widget=self._tab_buttons[tab]) - if ba.app.small_ui and ba.app.toolbars: + if uiscale is ba.UIScale.SMALL and ba.app.toolbars: ba.widget(edit=btn1, left_widget=_ba.get_special_widget('back_button')) btnv -= b_height + b_space_extra @@ -309,8 +313,10 @@ class WatchWindow(ba.Window): return c_width = 600 c_height = 250 + uiscale = ba.app.uiscale self._my_replays_rename_window = cnt = ba.containerwidget( - scale=1.8 if ba.app.small_ui else 1.55 if ba.app.med_ui else 1.0, + scale=(1.8 if uiscale is ba.UIScale.SMALL else + 1.55 if uiscale is ba.UIScale.MEDIUM else 1.0), size=(c_width, c_height), transition='in_scale') dname = self._get_replay_display_name(self._my_replay_selected) diff --git a/docs/ba_module.md b/docs/ba_module.md index e25260c5..20d09043 100644 --- a/docs/ba_module.md +++ b/docs/ba_module.md @@ -1,5 +1,5 @@ -

last updated on 2020-07-11 for Ballistica version 1.5.20 build 20132

+

last updated on 2020-07-12 for Ballistica version 1.5.20 build 20133

This page documents the Python classes and functions in the 'ba' module, which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please let me know. Happy modding!


@@ -191,6 +191,7 @@
  • ba.SpecialChar
  • ba.TimeFormat
  • ba.TimeType
  • +
  • ba.UIScale
  • Exception Classes