implement table row click callbacks for individual cells

update docs
This commit is contained in:
louisnw
2023-10-04 19:32:46 +01:00
parent f5ad8613f4
commit ab251a7600
6 changed files with 80 additions and 26 deletions

View File

@ -23,7 +23,7 @@ class Row(dict):
self._table = table
self.id = id
self.meta = {}
self.run_script(f'{self._table.id}.newRow("{self.id}")')
self.run_script(f'{self._table.id}.newRow("{self.id}", {jbool(table.return_clicked_cells)})')
for key, val in items.items():
self[key] = val
@ -56,14 +56,20 @@ class Table(Pane, dict):
alignments: tuple = None, position='left', draggable: bool = False,
background_color: str = '#121417', border_color: str = 'rgb(70, 70, 70)',
border_width: int = 1, heading_text_colors: tuple = None,
heading_background_colors: tuple = None, func: callable = None
heading_background_colors: tuple = None, return_clicked_cells: bool = False,
func: callable = None
):
dict.__init__(self)
Pane.__init__(self, window)
self._formatters = {}
self.headings = headings
self.is_shown = True
self.win.handlers[self.id] = lambda rId: func(self[rId])
if return_clicked_cells:
self.win.handlers[self.id] = lambda rId, cId: func(self[rId], cId)
else:
self.win.handlers[self.id] = lambda rId: func(self[rId])
self.return_clicked_cells = return_clicked_cells
headings = list(headings)
widths = list(widths) if widths else []
alignments = list(alignments) if alignments else []