Use autodoc for DataTable Messages reference

This commit is contained in:
Darren Burns
2023-01-17 13:00:01 +00:00
parent 23eb13d12d
commit be45db4573
5 changed files with 38 additions and 33 deletions

1
docs/api/coordinate.md Normal file
View File

@@ -0,0 +1 @@
::: textual.coordinate.Coordinate

View File

@@ -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

View File

@@ -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:
- "!^_"

View File

@@ -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)

View File

@@ -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.