import webcolors
from PIL import Image
from pydantic import Field
from todays_paper_web.widgets import registerView, View
from todays_paper_web.widgets.params import Color
from .layout import BoxParams, BoxView
[docs]
class ScreenParams(BoxParams):
color: Color = Field(
default_factory=lambda: webcolors.name_to_rgb("white"), description="Background fill color."
)
@registerView("screen")
class ScreenView(BoxView):
Params = ScreenParams
def render(self):
img = Image.new("RGB", (self.params.width, self.params.height), self.params.color)
box = super().render()
ScreenView.paste(img, box, (0, 0))
return img