from typing import Dict from tkinter import Canvas from line import Line from cell import CellWallLabels, CellWall class Graphics(Canvas): def __init__(self, container, background="white", width=800, height=800) -> None: super().__init__(container) self.config( bg=background, width=width, height=height, ) def redraw(self) -> None: """ redraw redraws all the graphics in the window. """ self.update_idletasks() self.update() def draw_line( self, line: Line, fill_colour: str = "black", width: int = 2 ) -> None: """ draws a line onto the canvas. """ self.create_line( line.point_a.x, line.point_a.y, line.point_b.x, line.point_b.y, fill=fill_colour, width=width, ) def draw_cell_walls(self, walls: Dict[CellWallLabels, CellWall]) -> None: """ draws the walls of a cell onto the canvas. """ for label in CellWallLabels: self.draw_line( line=walls[label].get_line(), fill_colour=walls[label].get_line_colour(), )