From 1b467c4d4af2f435be12c6e5e1a2ec2450a0935c Mon Sep 17 00:00:00 2001 From: Robert Jelic <36573031+NoryiE@users.noreply.github.com> Date: Fri, 20 Jun 2025 21:30:18 +0200 Subject: [PATCH] Added :onSelect to Tables --- src/elements/Program.lua | 1 + src/elements/Table.lua | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/elements/Program.lua b/src/elements/Program.lua index 39557bb..e752a93 100644 --- a/src/elements/Program.lua +++ b/src/elements/Program.lua @@ -159,6 +159,7 @@ function BasaltProgram:resume(event, ...) if errorCallback then local trace = debug.traceback(self.coroutine, result) trace = trace == nil and "" or trace + result = result or "Unknown error" local _result = errorCallback(self.program, result, trace:gsub(result, "")) if(_result==false)then self.filter = nil diff --git a/src/elements/Table.lua b/src/elements/Table.lua index ee55b8a..4c57384 100644 --- a/src/elements/Table.lua +++ b/src/elements/Table.lua @@ -144,13 +144,19 @@ function Table:mouse_click(button, x, y) if relY > 1 then local rowIndex = relY - 2 + self.get("scrollOffset") if rowIndex >= 0 and rowIndex < #self.get("data") then - self.set("selectedRow", rowIndex + 1) + local newIndex = rowIndex + 1 + self.set("selectedRow", newIndex) + self:fireEvent("select", newIndex, self.get("data")[newIndex]) end end - return true end +function Table:onSelect(callback) + self:registerCallback("select", callback) + return self +end + --- @shortDescription Handles scrolling through the table data --- @param direction number The scroll direction (-1 up, 1 down) --- @param x number The x position of the scroll