From b91031afbc08510dc2dbea794e5c67800247e38f Mon Sep 17 00:00:00 2001 From: Robert Jelic <36573031+NoryiE@users.noreply.github.com> Date: Mon, 14 Apr 2025 02:39:54 +0200 Subject: [PATCH] Fixed animation Fixed eventsystem not registering its parent events --- src/elements/BarChart.lua | 1 + src/elements/BaseElement.lua | 4 ++-- src/elements/BaseFrame.lua | 1 + src/elements/BigFont.lua | 1 + src/elements/Button.lua | 1 + src/elements/Checkbox.lua | 1 + src/elements/Container.lua | 1 + src/elements/Display.lua | 1 + src/elements/Dropdown.lua | 1 + src/elements/Flexbox.lua | 1 + src/elements/Frame.lua | 1 + src/elements/Graph.lua | 1 + src/elements/Image.lua | 1 + src/elements/Input.lua | 1 + src/elements/Label.lua | 1 + src/elements/LineChart.lua | 1 + src/elements/List.lua | 1 + src/elements/Menu.lua | 1 + src/elements/Program.lua | 1 + src/elements/ProgressBar.lua | 1 + src/elements/Scrollbar.lua | 1 + src/elements/Slider.lua | 1 + src/elements/Switch.lua | 1 + src/elements/Table.lua | 1 + src/elements/TextBox.lua | 1 + src/elements/Tree.lua | 1 + src/elements/VisualElement.lua | 1 + src/plugins/animation.lua | 4 ++-- 28 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/elements/BarChart.lua b/src/elements/BarChart.lua index 19d475a..4635c03 100644 --- a/src/elements/BarChart.lua +++ b/src/elements/BarChart.lua @@ -27,6 +27,7 @@ BarChart.__index = BarChart --- @private function BarChart.new() local self = setmetatable({}, BarChart):__init() + self.class = BarChart return self end diff --git a/src/elements/BaseElement.lua b/src/elements/BaseElement.lua index baf786b..da72ada 100644 --- a/src/elements/BaseElement.lua +++ b/src/elements/BaseElement.lua @@ -6,7 +6,6 @@ local uuid = require("libraries/utils").uuid --- @class BaseElement : PropertySystem local BaseElement = setmetatable({}, PropertySystem) BaseElement.__index = BaseElement -BaseElement._events = {} --- @property type string BaseElement The type identifier of the element BaseElement.defineProperty(BaseElement, "type", {default = {"BaseElement"}, type = "string", setter=function(self, value) @@ -72,6 +71,7 @@ end --- @private function BaseElement.new() local self = setmetatable({}, BaseElement):__init() + self.class = BaseElement return self end @@ -93,7 +93,7 @@ function BaseElement:init(props, basalt) local currentClass = getmetatable(self).__index local events = {} - currentClass = self + currentClass = self.class while currentClass do if type(currentClass) == "table" and currentClass._eventConfigs then diff --git a/src/elements/BaseFrame.lua b/src/elements/BaseFrame.lua index 091525c..e4ea184 100644 --- a/src/elements/BaseFrame.lua +++ b/src/elements/BaseFrame.lua @@ -57,6 +57,7 @@ end}) --- @private function BaseFrame.new() local self = setmetatable({}, BaseFrame):__init() + self.class = BaseFrame return self end diff --git a/src/elements/BigFont.lua b/src/elements/BigFont.lua index afdaea9..7847738 100644 --- a/src/elements/BigFont.lua +++ b/src/elements/BigFont.lua @@ -167,6 +167,7 @@ end}) --- @private function BigFont.new() local self = setmetatable({}, BigFont):__init() + self.class = BigFont self.set("width", 16) self.set("height", 3) self.set("z", 5) diff --git a/src/elements/Button.lua b/src/elements/Button.lua index e5145ee..fe13885 100644 --- a/src/elements/Button.lua +++ b/src/elements/Button.lua @@ -19,6 +19,7 @@ Button.defineEvent(Button, "mouse_up") --- @private function Button.new() local self = setmetatable({}, Button):__init() + self.class = Button self.set("width", 10) self.set("height", 3) self.set("z", 5) diff --git a/src/elements/Checkbox.lua b/src/elements/Checkbox.lua index 8c45d63..2ded6f7 100644 --- a/src/elements/Checkbox.lua +++ b/src/elements/Checkbox.lua @@ -45,6 +45,7 @@ end --- @protected function Checkbox:init(props, basalt) VisualElement.init(self, props, basalt) + self.class = Checkbox self.set("type", "Checkbox") end diff --git a/src/elements/Container.lua b/src/elements/Container.lua index 1fa1e63..7acf7ca 100644 --- a/src/elements/Container.lua +++ b/src/elements/Container.lua @@ -91,6 +91,7 @@ end --- @private function Container.new() local self = setmetatable({}, Container):__init() + self.class = Container return self end diff --git a/src/elements/Display.lua b/src/elements/Display.lua index 38053d2..af5e053 100644 --- a/src/elements/Display.lua +++ b/src/elements/Display.lua @@ -19,6 +19,7 @@ Display.__index = Display --- @private function Display.new() local self = setmetatable({}, Display):__init() + self.class = Display self.set("width", 25) self.set("height", 8) self.set("z", 5) diff --git a/src/elements/Dropdown.lua b/src/elements/Dropdown.lua index f13e229..0b70472 100644 --- a/src/elements/Dropdown.lua +++ b/src/elements/Dropdown.lua @@ -31,6 +31,7 @@ Dropdown.defineProperty(Dropdown, "dropSymbol", {default = "\31", type = "string --- @private function Dropdown.new() local self = setmetatable({}, Dropdown):__init() + self.class = Dropdown self.set("width", 16) self.set("height", 1) self.set("z", 8) diff --git a/src/elements/Flexbox.lua b/src/elements/Flexbox.lua index b03c89b..b73751a 100644 --- a/src/elements/Flexbox.lua +++ b/src/elements/Flexbox.lua @@ -246,6 +246,7 @@ end --- @private function Flexbox.new() local self = setmetatable({}, Flexbox):__init() + self.class = Flexbox self.set("width", 12) self.set("height", 6) self.set("background", colors.blue) diff --git a/src/elements/Frame.lua b/src/elements/Frame.lua index 15a91de..2fb7e64 100644 --- a/src/elements/Frame.lua +++ b/src/elements/Frame.lua @@ -26,6 +26,7 @@ Frame.defineProperty(Frame, "draggingMap", {default = {{x=1, y=1, width="width", --- @private function Frame.new() local self = setmetatable({}, Frame):__init() + self.class = Frame self.set("width", 12) self.set("height", 6) self.set("background", colors.gray) diff --git a/src/elements/Graph.lua b/src/elements/Graph.lua index 721f18f..8ce4e4e 100644 --- a/src/elements/Graph.lua +++ b/src/elements/Graph.lua @@ -33,6 +33,7 @@ Graph.defineProperty(Graph, "series", {default = {}, type = "table", canTriggerR --- @private function Graph.new() local self = setmetatable({}, Graph):__init() + self.class = Graph return self end diff --git a/src/elements/Image.lua b/src/elements/Image.lua index 68b589e..bf5a819 100644 --- a/src/elements/Image.lua +++ b/src/elements/Image.lua @@ -31,6 +31,7 @@ Image.combineProperties(Image, "offset", "offsetX", "offsetY") --- @private function Image.new() local self = setmetatable({}, Image):__init() + self.class = Image self.set("width", 12) self.set("height", 6) self.set("background", colors.black) diff --git a/src/elements/Input.lua b/src/elements/Input.lua index 4da3aa2..bf3f541 100644 --- a/src/elements/Input.lua +++ b/src/elements/Input.lua @@ -40,6 +40,7 @@ Input.defineEvent(Input, "char") --- @private function Input.new() local self = setmetatable({}, Input):__init() + self.class = Input self.set("width", 8) self.set("z", 3) return self diff --git a/src/elements/Label.lua b/src/elements/Label.lua index 9a6dd72..679a6d7 100644 --- a/src/elements/Label.lua +++ b/src/elements/Label.lua @@ -36,6 +36,7 @@ end}) --- @private function Label.new() local self = setmetatable({}, Label):__init() + self.class = Label self.set("z", 3) self.set("foreground", colors.black) self.set("backgroundEnabled", false) diff --git a/src/elements/LineChart.lua b/src/elements/LineChart.lua index d7f7eea..03e5c93 100644 --- a/src/elements/LineChart.lua +++ b/src/elements/LineChart.lua @@ -27,6 +27,7 @@ LineChart.__index = LineChart --- @private function LineChart.new() local self = setmetatable({}, LineChart):__init() + self.class = LineChart return self end diff --git a/src/elements/List.lua b/src/elements/List.lua index efbdf74..2d63b95 100644 --- a/src/elements/List.lua +++ b/src/elements/List.lua @@ -30,6 +30,7 @@ List.defineEvent(List, "mouse_scroll") --- @private function List.new() local self = setmetatable({}, List):__init() + self.class = List self.set("width", 16) self.set("height", 8) self.set("z", 5) diff --git a/src/elements/Menu.lua b/src/elements/Menu.lua index 3d906a3..d755e97 100644 --- a/src/elements/Menu.lua +++ b/src/elements/Menu.lua @@ -18,6 +18,7 @@ Menu.defineProperty(Menu, "separatorColor", {default = colors.gray, type = "colo --- @private function Menu.new() local self = setmetatable({}, Menu):__init() + self.class = Menu self.set("width", 30) self.set("height", 1) self.set("background", colors.gray) diff --git a/src/elements/Program.lua b/src/elements/Program.lua index 0cd0b9e..af45770 100644 --- a/src/elements/Program.lua +++ b/src/elements/Program.lua @@ -128,6 +128,7 @@ end --- @private function Program.new() local self = setmetatable({}, Program):__init() + self.class = Program self.set("z", 5) self.set("width", 30) self.set("height", 12) diff --git a/src/elements/ProgressBar.lua b/src/elements/ProgressBar.lua index 2df7d7b..abffea8 100644 --- a/src/elements/ProgressBar.lua +++ b/src/elements/ProgressBar.lua @@ -25,6 +25,7 @@ ProgressBar.defineProperty(ProgressBar, "direction", {default = "right", type = --- @private function ProgressBar.new() local self = setmetatable({}, ProgressBar):__init() + self.class = ProgressBar self.set("width", 25) self.set("height", 3) return self diff --git a/src/elements/Scrollbar.lua b/src/elements/Scrollbar.lua index 5baa296..31e9715 100644 --- a/src/elements/Scrollbar.lua +++ b/src/elements/Scrollbar.lua @@ -49,6 +49,7 @@ Scrollbar.defineEvent(Scrollbar, "mouse_scroll") --- @private function Scrollbar.new() local self = setmetatable({}, Scrollbar):__init() + self.class = Scrollbar self.set("width", 1) self.set("height", 10) return self diff --git a/src/elements/Slider.lua b/src/elements/Slider.lua index c6c374d..a94dc56 100644 --- a/src/elements/Slider.lua +++ b/src/elements/Slider.lua @@ -28,6 +28,7 @@ Slider.defineEvent(Slider, "mouse_up") --- @private function Slider.new() local self = setmetatable({}, Slider):__init() + self.class = Slider self.set("width", 8) self.set("height", 1) self.set("backgroundEnabled", false) diff --git a/src/elements/Switch.lua b/src/elements/Switch.lua index b7df6a0..5716cab 100644 --- a/src/elements/Switch.lua +++ b/src/elements/Switch.lua @@ -18,6 +18,7 @@ Switch.defineEvent(Switch, "mouse_up") --- @private function Switch.new() local self = setmetatable({}, Switch):__init() + self.class = Switch self.set("width", 2) self.set("height", 1) self.set("z", 5) diff --git a/src/elements/Table.lua b/src/elements/Table.lua index 3fe1b84..65ceadd 100644 --- a/src/elements/Table.lua +++ b/src/elements/Table.lua @@ -48,6 +48,7 @@ Table.defineEvent(Table, "mouse_scroll") --- @private function Table.new() local self = setmetatable({}, Table):__init() + self.class = Table self.set("width", 30) self.set("height", 10) self.set("z", 5) diff --git a/src/elements/TextBox.lua b/src/elements/TextBox.lua index 66b58b1..985e214 100644 --- a/src/elements/TextBox.lua +++ b/src/elements/TextBox.lua @@ -36,6 +36,7 @@ TextBox.defineEvent(TextBox, "mouse_scroll") --- @private function TextBox.new() local self = setmetatable({}, TextBox):__init() + self.class = TextBox self.set("width", 20) self.set("height", 10) return self diff --git a/src/elements/Tree.lua b/src/elements/Tree.lua index 80b35f0..070d0d7 100644 --- a/src/elements/Tree.lua +++ b/src/elements/Tree.lua @@ -37,6 +37,7 @@ Tree.defineEvent(Tree, "mouse_scroll") --- @private function Tree.new() local self = setmetatable({}, Tree):__init() + self.class = Tree self.set("width", 30) self.set("height", 10) self.set("z", 5) diff --git a/src/elements/VisualElement.lua b/src/elements/VisualElement.lua index ff2be74..d3cfc6b 100644 --- a/src/elements/VisualElement.lua +++ b/src/elements/VisualElement.lua @@ -114,6 +114,7 @@ local max, min = math.max, math.min --- @private function VisualElement.new() local self = setmetatable({}, VisualElement):__init() + self.class = VisualElement return self end diff --git a/src/plugins/animation.lua b/src/plugins/animation.lua index fdc60c6..40d0b05 100644 --- a/src/plugins/animation.lua +++ b/src/plugins/animation.lua @@ -265,6 +265,7 @@ function Animation:event(event, timerId) if #remaining > 0 then self.timer = os.startTimer(0.05) end + return true end end @@ -416,13 +417,12 @@ Animation.registerAnimation("scrollText", { local VisualElement = {hooks={}} ---@private -function VisualElement.hooks.dispatchEvent(self, event, ...) +function VisualElement.hooks.handleEvent(self, event, ...) if event == "timer" then local animation = self.get("animation") if animation then animation:event(event, ...) end - return true end end