Loading poolpay/ui/pygame/play.py +4 −2 Original line number Diff line number Diff line from poolpay.ui.Play import Play from poolpay.ui.pygame.scenes.Balance import Balance from poolpay.ui.pygame.scenes.Idle import Idle from poolpay.ui.pygame.scenes.PaymentFailure import PaymentFailure from poolpay.ui.pygame.scenes.PaymentSuccess import PaymentSuccess from poolpay.ui.pygame.scenes.WaitForCard import WaitForCard play = Play( Idle=Idle, PaymentSuccess=PaymentSuccess, PaymentFailure=PaymentFailure, Balance=Balance, # TODO Fill with missing screens Balance=..., Reversal=..., WaitForCard=..., WaitForCard=WaitForCard, ) __all__ = ["play"] poolpay/ui/pygame/scenes/Balance.py 0 → 100644 +31 −0 Original line number Diff line number Diff line from dataclasses import dataclass from typing import cast from babel.numbers import format_currency from poolpay.display.PygameDisplay import PygameDisplay from poolpay.ui.pygame.colors import white from poolpay.ui.pygame.resources import fira_sans, fira_sans_large from poolpay.ui.scenes.Balance import Balance as BalanceBase @dataclass(frozen=True) class Balance(BalanceBase): def present(self) -> None: balance = format_currency(self.balance_cents / 100, "EUR", locale="de_DE") # We expect the director's display to be a PyGame display (after all, this is a PyGame scene) display = cast(PygameDisplay, self.director.display) display.surface.fill((120, 0, 0)) display.surface.blit( fira_sans.render(f"Hallo {self.person_name}!", True, white), (180, 70), ) display.surface.blit( fira_sans_large.render(f"Kontostand: {balance}", True, white), (110, 110), ) display.refresh() poolpay/ui/pygame/scenes/WaitForCard.py 0 → 100644 +25 −0 Original line number Diff line number Diff line from dataclasses import dataclass from typing import cast from poolpay.display.PygameDisplay import PygameDisplay from poolpay.ui.pygame.colors import white from poolpay.ui.pygame.resources import fira_sans, fira_sans_large from poolpay.ui.scenes.WaitForCard import WaitForCard as WaitForCardBase @dataclass(frozen=True) class WaitForCard(WaitForCardBase): def present(self) -> None: # We expect the director's display to be a PyGame display (after all, this is a PyGame scene) display = cast(PygameDisplay, self.director.display) display.surface.fill((0, 0, 0)) display.surface.blit( fira_sans_large.render("Poolkarte auflegen", True, white), (120, 110), ) display.surface.blit( fira_sans.render("Um Kontostand einzusehen", True, white), (120, 155), ) display.refresh() Loading
poolpay/ui/pygame/play.py +4 −2 Original line number Diff line number Diff line from poolpay.ui.Play import Play from poolpay.ui.pygame.scenes.Balance import Balance from poolpay.ui.pygame.scenes.Idle import Idle from poolpay.ui.pygame.scenes.PaymentFailure import PaymentFailure from poolpay.ui.pygame.scenes.PaymentSuccess import PaymentSuccess from poolpay.ui.pygame.scenes.WaitForCard import WaitForCard play = Play( Idle=Idle, PaymentSuccess=PaymentSuccess, PaymentFailure=PaymentFailure, Balance=Balance, # TODO Fill with missing screens Balance=..., Reversal=..., WaitForCard=..., WaitForCard=WaitForCard, ) __all__ = ["play"]
poolpay/ui/pygame/scenes/Balance.py 0 → 100644 +31 −0 Original line number Diff line number Diff line from dataclasses import dataclass from typing import cast from babel.numbers import format_currency from poolpay.display.PygameDisplay import PygameDisplay from poolpay.ui.pygame.colors import white from poolpay.ui.pygame.resources import fira_sans, fira_sans_large from poolpay.ui.scenes.Balance import Balance as BalanceBase @dataclass(frozen=True) class Balance(BalanceBase): def present(self) -> None: balance = format_currency(self.balance_cents / 100, "EUR", locale="de_DE") # We expect the director's display to be a PyGame display (after all, this is a PyGame scene) display = cast(PygameDisplay, self.director.display) display.surface.fill((120, 0, 0)) display.surface.blit( fira_sans.render(f"Hallo {self.person_name}!", True, white), (180, 70), ) display.surface.blit( fira_sans_large.render(f"Kontostand: {balance}", True, white), (110, 110), ) display.refresh()
poolpay/ui/pygame/scenes/WaitForCard.py 0 → 100644 +25 −0 Original line number Diff line number Diff line from dataclasses import dataclass from typing import cast from poolpay.display.PygameDisplay import PygameDisplay from poolpay.ui.pygame.colors import white from poolpay.ui.pygame.resources import fira_sans, fira_sans_large from poolpay.ui.scenes.WaitForCard import WaitForCard as WaitForCardBase @dataclass(frozen=True) class WaitForCard(WaitForCardBase): def present(self) -> None: # We expect the director's display to be a PyGame display (after all, this is a PyGame scene) display = cast(PygameDisplay, self.director.display) display.surface.fill((0, 0, 0)) display.surface.blit( fira_sans_large.render("Poolkarte auflegen", True, white), (120, 110), ) display.surface.blit( fira_sans.render("Um Kontostand einzusehen", True, white), (120, 155), ) display.refresh()