Source code for bauiv1lib.connect

# Released under the MIT License. See LICENSE for details.
#
"""UI functionality related to master-server connectivity."""

from __future__ import annotations

from typing import TYPE_CHECKING

import bauiv1 as bui

if TYPE_CHECKING:
    from typing import Callable, Any


[docs] class ConnectWindow(bui.Window): """Window for preparing to connect to a game. Shows progress while wrangling credentials, asks for password, or anything else necessary to prepare for a connection. """ def __init__( self, ) -> None: self._width = 650 self._height = 300 super().__init__( root_widget=bui.containerwidget( size=(self._width, self._height), transition='in_scale', parent=bui.get_special_widget('overlay_stack'), ) ) bui.textwidget( parent=self._root_widget, position=(self._width * 0.5, self._height * 0.7), size=(0, 0), scale=1.2, h_align='center', v_align='center', text=bui.Lstr(resource='internal.connectingToPartyText'), maxwidth=self._width * 0.9, ) self._spinner = bui.spinnerwidget( parent=self._root_widget, position=(self._width * 0.5, self._height * 0.54), style='bomb', size=48, ) self._info_text = bui.textwidget( parent=self._root_widget, position=(self._width * 0.5, self._height * 0.4), size=(0, 0), color=(0.6, 0.5, 0.6), flatness=1.0, shadow=0.0, scale=0.75, h_align='center', v_align='center', text='HELLO THERE', maxwidth=self._width * 0.9, ) self._info_text_str = '' cancel_button = bui.buttonwidget( parent=self._root_widget, autoselect=True, position=(50, 30), size=(150, 50), label=bui.Lstr(resource='cancelText'), on_activate_call=self._cancel, ) bui.containerwidget(edit=self._root_widget, cancel_button=cancel_button) self._update_timer = bui.AppTimer( 0.113, bui.WeakCall(self._update), repeat=True ) def _update(self) -> None: print('updating...') def _cancel(self) -> None: if not self._root_widget or self._root_widget.transitioning_out: return bui.containerwidget( edit=self._root_widget, transition=('out_scale'), )
# Docs-generation hack; import some stuff that we likely only forward-declared # in our actual source code so that docs tools can find it. from typing import (Coroutine, Any, Literal, Callable, Generator, Awaitable, Sequence, Self) import asyncio from concurrent.futures import Future