From f1a77361fb371da0aed078f762189efa95194863 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Sat, 10 Jul 2021 09:22:27 +0100 Subject: [PATCH] shortcuts in constructor --- examples/calculator.py | 8 ++------ src/textual/layouts/grid.py | 22 +++++++++++++++++++++- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/examples/calculator.py b/examples/calculator.py index e0f76872f..ef3eb04cb 100644 --- a/examples/calculator.py +++ b/examples/calculator.py @@ -11,7 +11,7 @@ class GridTest(App): async def on_startup(self, event: events.Startup) -> None: - layout = GridLayout() + layout = GridLayout(gap=1, gutter=1, align=("center", "center")) await self.push_view(View(layout=layout)) layout.add_column(name="col", max_size=20, repeat=4) @@ -32,9 +32,5 @@ class GridTest(App): equals=Placeholder(name="="), ) - layout.set_gap(1) - layout.set_gutter(1) - layout.set_align("center", "center") - -GridTest.run(title="Calculator Test") \ No newline at end of file +GridTest.run(title="Calculator Test") diff --git a/src/textual/layouts/grid.py b/src/textual/layouts/grid.py index 13c7e69c5..af1c358e3 100644 --- a/src/textual/layouts/grid.py +++ b/src/textual/layouts/grid.py @@ -38,7 +38,12 @@ class GridArea(NamedTuple): class GridLayout(Layout): - def __init__(self) -> None: + def __init__( + self, + gap: tuple[int, int] | int | None = None, + gutter: tuple[int, int] | int | None = None, + align: tuple[GridAlign, GridAlign] | None = None, + ) -> None: self.columns: list[GridOptions] = [] self.rows: list[GridOptions] = [] self.areas: dict[str, GridArea] = {} @@ -52,6 +57,21 @@ class GridLayout(Layout): self.column_gutter: int = 0 self.row_gutter: int = 0 + if gap is not None: + if isinstance(gap, tuple): + self.set_gap(*gap) + else: + self.set_gap(gap) + + if gutter is not None: + if isinstance(gutter, tuple): + self.set_gutter(*gutter) + else: + self.set_gutter(gutter) + + if align is not None: + self.set_align(*align) + super().__init__() def add_column(