Module userland.scripts.nua

New user application script

Functions

async def main(cx: SSHContext) ‑> str | None
Expand source code
async def main(cx: SSHContext) -> str | None:
    cx.console.set_window_title("new user application")
    return await NuaApp(
        cx,
        art_path=path.join("userland", "artwork", "nua.ans"),
        art_encoding="amiga",
        alt="79 Columns // New user application",
    ).run_async()

Classes

class NuaApp (context: SSHContext,
art_path: str,
art_encoding: str,
alt: str,
**kwargs)
Expand source code
class NuaApp(BannerApp[str]):
    """New user application"""

    BANNER_PADDING = 2
    CSS_PATH = path.join(path.dirname(__file__), "nua.tcss")

    def compose(self) -> ComposeResult:
        for widget in super(NuaApp, self).compose():
            yield widget

        with Center():
            with Horizontal(id="buttons_wrapper"):
                yield Button(
                    "Continue as guest",
                    flat=True,
                    variant="success",
                    id="guest",
                )
                yield Button(
                    "Create an account",
                    flat=True,
                    variant="primary",
                    id="create",
                )
                yield Button(
                    "Log off",
                    flat=True,
                    variant="error",
                    id="logoff",
                )

    async def on_button_pressed(self, event: Button.Pressed) -> None:
        self.exit(result=event.button.id)

    async def on_key(self, event: events.Key) -> None:
        if event.key != "escape":
            return

        self.exit(result="logoff")

New user application

Ancestors

  • BannerApp
  • XthuluApp
  • textual.app.App
  • typing.Generic
  • textual.dom.DOMNode
  • textual.message_pump.MessagePump

Class variables

var CSS_PATH

Methods

def compose(self) ‑> Iterable[textual.widget.Widget]
Expand source code
def compose(self) -> ComposeResult:
    for widget in super(NuaApp, self).compose():
        yield widget

    with Center():
        with Horizontal(id="buttons_wrapper"):
            yield Button(
                "Continue as guest",
                flat=True,
                variant="success",
                id="guest",
            )
            yield Button(
                "Create an account",
                flat=True,
                variant="primary",
                id="create",
            )
            yield Button(
                "Log off",
                flat=True,
                variant="error",
                id="logoff",
            )
async def on_button_pressed(self, event: textual.widgets._button.Button.Pressed) ‑> None
Expand source code
async def on_button_pressed(self, event: Button.Pressed) -> None:
    self.exit(result=event.button.id)
async def on_key(self, event: textual.events.Key) ‑> None
Expand source code
async def on_key(self, event: events.Key) -> None:
    if event.key != "escape":
        return

    self.exit(result="logoff")

Inherited members