Source code for gaphas.painter.chain
from __future__ import annotations
from typing import Collection
from cairo import Context as CairoContext
from gaphas.item import Item
from gaphas.painter.painter import Painter
[docs]
class PainterChain:
"""Chain up a set of painters."""
def __init__(self) -> None:
self._painters: list[Painter] = []
[docs]
def append(self, painter: Painter) -> PainterChain:
"""Add a painter to the list of painters."""
self._painters.append(painter)
return self
[docs]
def prepend(self, painter: Painter) -> PainterChain:
"""Add a painter to the beginning of the list of painters."""
self._painters.insert(0, painter)
return self
def paint(self, items: Collection[Item], cairo: CairoContext) -> None:
"""See Painter.paint()."""
for painter in self._painters:
painter.paint(items, cairo)