diff --git a/docs/api/coordinate.md b/docs/api/coordinate.md new file mode 100644 index 000000000..e45badfed --- /dev/null +++ b/docs/api/coordinate.md @@ -0,0 +1 @@ +::: textual.coordinate.Coordinate diff --git a/docs/widgets/data_table.md b/docs/widgets/data_table.md index c687b5522..a593dc4c2 100644 --- a/docs/widgets/data_table.md +++ b/docs/widgets/data_table.md @@ -22,32 +22,31 @@ The example below populates a table with CSV data. ## Reactive Attributes -| Name | Type | Default | Description | -|-----------------|--------------|--------------------|---------------------------------------------------------| -| `show_header` | `bool` | `True` | Show the table header | -| `fixed_rows` | `int` | `0` | Number of fixed rows (rows which do not scroll) | -| `fixed_columns` | `int` | `0` | Number of fixed columns (columns which do not scroll) | -| `zebra_stripes` | `bool` | `False` | Display alternating colors on rows | -| `header_height` | `int` | `1` | Height of header row | -| `show_cursor` | `bool` | `True` | Show the cursor | -| `cursor_type` | `str` | `"cell"` | One of `"cell"`, `"row"`, `"column"`, or `"none"` | -| `cursor_cell` | `Coordinate` | `Coordinate(0, 0)` | The coordinates of the cell the cursor is currently on | -| `hover_cell` | `Coordinate` | `Coordinate(0, 0)` | The coordinates of the cell the _mouse_ cursor is above | +| Name | Type | Default | Description | +|-----------------|---------------------------------------------|--------------------|---------------------------------------------------------| +| `show_header` | `bool` | `True` | Show the table header | +| `fixed_rows` | `int` | `0` | Number of fixed rows (rows which do not scroll) | +| `fixed_columns` | `int` | `0` | Number of fixed columns (columns which do not scroll) | +| `zebra_stripes` | `bool` | `False` | Display alternating colors on rows | +| `header_height` | `int` | `1` | Height of header row | +| `show_cursor` | `bool` | `True` | Show the cursor | +| `cursor_type` | `str` | `"cell"` | One of `"cell"`, `"row"`, `"column"`, or `"none"` | +| `cursor_cell` | [Coordinate][textual.coordinate.Coordinate] | `Coordinate(0, 0)` | The coordinates of the cell the cursor is currently on | +| `hover_cell` | [Coordinate][textual.coordinate.Coordinate] | `Coordinate(0, 0)` | The coordinates of the cell the _mouse_ cursor is above | ## Messages -### CellHighlighted +### ::: textual.widgets.DataTable.CellHighlighted -The `DataTable.CellHighlighted` message is emitted by the `DataTable` widget when the cursor moves -to highlight a new cell. It's also emitted when the cell cursor is re-enabled (by setting `show_cursor=True`), -and when the cursor type is changed to `"cell"`. +### ::: textual.widgets.DataTable.CellSelected -#### Attributes +### ::: textual.widgets.DataTable.RowHighlighted -| Attribute | Type | Description | -|--------------|----------------------------------------------|----------------------------------| -| `value` | `CellType` | The value contained in the cell. | -| `coordinate` | [Coordinate][textual.coordinates.Coordinate] | The coordinate of the cell. | +### ::: textual.widgets.DataTable.RowSelected + +### ::: textual.widgets.DataTable.ColumnHighlighted + +### ::: textual.widgets.DataTable.ColumnSelected ## See Also diff --git a/mkdocs.yml b/mkdocs.yml index 24914866c..ff57ee7ba 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -148,6 +148,7 @@ nav: - "api/checkbox.md" - "api/color.md" - "api/containers.md" + - "api/coordinate.md" - "api/data_table.md" - "api/directory_tree.md" - "api/dom_node.md" @@ -253,6 +254,8 @@ plugins: handlers: python: options: + show_root_heading: true + show_root_full_path: false show_source: false filters: - "!^_" diff --git a/src/textual/coordinate.py b/src/textual/coordinate.py index 9429cc5b6..16b5103ce 100644 --- a/src/textual/coordinate.py +++ b/src/textual/coordinate.py @@ -4,43 +4,43 @@ from typing import NamedTuple class Coordinate(NamedTuple): - """An object representing a row/column coordinate.""" + """An object representing a row/column coordinate within a grid.""" row: int column: int def left(self) -> Coordinate: - """Get coordinate to the left. + """Get the coordinate to the left. Returns: - Coordinate: The coordinate. + Coordinate: The coordinate to the left. """ row, column = self return Coordinate(row, column - 1) def right(self) -> Coordinate: - """Get coordinate to the right. + """Get the coordinate to the right. Returns: - Coordinate: The coordinate. + Coordinate: The coordinate to the right. """ row, column = self return Coordinate(row, column + 1) def up(self) -> Coordinate: - """Get coordinate above. + """Get the coordinate above. Returns: - Coordinate: The coordinate. + Coordinate: The coordinate above. """ row, column = self return Coordinate(row - 1, column) def down(self) -> Coordinate: - """Get coordinate below. + """Get the coordinate below. Returns: - Coordinate: The coordinate. + Coordinate: The coordinate below. """ row, column = self return Coordinate(row + 1, column) diff --git a/src/textual/widgets/_data_table.py b/src/textual/widgets/_data_table.py index fcf2021ba..a0b7ae0ec 100644 --- a/src/textual/widgets/_data_table.py +++ b/src/textual/widgets/_data_table.py @@ -896,8 +896,10 @@ class DataTable(ScrollView, Generic[CellType], can_focus=True): self.emit_no_wait(DataTable.ColumnSelected(self, column)) class CellHighlighted(Message, bubble=True): - """Emitted when the cursor moves to a new cell. This message is only emitted when the - cursor_type is set to `"cell"`. + """Emitted when the cursor moves to highlight a new cell. + It's only relevant when the `cursor_type` is `"cell"`. + It's also emitted when the cell cursor is re-enabled (by setting `show_cursor=True`), + and when the cursor type is changed to `"cell"`. Attributes: sender (DataTable): The DataTable the cell was highlighted in. @@ -918,8 +920,8 @@ class DataTable(ScrollView, Generic[CellType], can_focus=True): yield "coordinate", self.coordinate class CellSelected(Message, bubble=True): - """Emitted when a cell is selected. This message is only emitted when the - cursor_type is set to `"cell"`. + """Emitted by the `DataTable` widget when a cell is selected. + It's only relevant when the `cursor_type` is `"cell"`. Attributes: sender (DataTable): The DataTable the cell was selected in.