diff --git a/config.lua b/config.lua index 04c4031..2727bf1 100644 --- a/config.lua +++ b/config.lua @@ -1,148 +1,148 @@ return { ["files"] = { - ["src/libraries/expect.lua"] = { - ["name"] = "expect", - ["path"] = "libraries/expect.lua", - }, - ["src/elements/Tree.lua"] = { - ["name"] = "Tree", - ["path"] = "elements/Tree.lua", - }, - ["src/elementManager.lua"] = { - ["name"] = "elementManager", - ["path"] = "elementManager.lua", - }, - ["src/plugins/state.lua"] = { - ["name"] = "state", - ["path"] = "plugins/state.lua", - }, - ["src/elements/Frame.lua"] = { - ["name"] = "Frame", - ["path"] = "elements/Frame.lua", - }, - ["src/plugins/theme.lua"] = { - ["name"] = "theme", - ["path"] = "plugins/theme.lua", - }, - ["src/elements/Table.lua"] = { - ["name"] = "Table", - ["path"] = "elements/Table.lua", - }, - ["src/elements/Slider.lua"] = { - ["name"] = "Slider", - ["path"] = "elements/Slider.lua", - }, - ["src/plugins/debug.lua"] = { - ["name"] = "debug", - ["path"] = "plugins/debug.lua", - }, - ["src/elements/List.lua"] = { - ["name"] = "List", - ["path"] = "elements/List.lua", - }, - ["src/plugins/pluginTemplate.lua"] = { - ["name"] = "pluginTemplate", - ["path"] = "plugins/pluginTemplate.lua", - }, - ["src/elements/Button.lua"] = { - ["name"] = "Button", - ["path"] = "elements/Button.lua", - }, - ["src/elements/Input.lua"] = { - ["name"] = "Input", - ["path"] = "elements/Input.lua", - }, - ["src/elements/Label.lua"] = { - ["name"] = "Label", - ["path"] = "elements/Label.lua", - }, - ["src/elements/VisualElement.lua"] = { - ["name"] = "VisualElement", - ["path"] = "elements/VisualElement.lua", - }, - ["src/elements/Program.lua"] = { - ["name"] = "Program", - ["path"] = "elements/Program.lua", - }, - ["src/elements/Menu.lua"] = { - ["name"] = "Menu", - ["path"] = "elements/Menu.lua", - }, - ["src/plugins/animation.lua"] = { - ["name"] = "animation", - ["path"] = "plugins/animation.lua", - }, - ["src/elements/Container.lua"] = { - ["name"] = "Container", - ["path"] = "elements/Container.lua", - }, - ["src/LuaLS.lua"] = { - ["name"] = "LuaLS", - ["path"] = "LuaLS.lua", - }, - ["src/libraries/utils.lua"] = { - ["name"] = "utils", - ["path"] = "libraries/utils.lua", - }, - ["src/log.lua"] = { - ["name"] = "log", - ["path"] = "log.lua", - }, - ["src/main.lua"] = { - ["name"] = "main", - ["path"] = "main.lua", - }, - ["src/render.lua"] = { - ["name"] = "render", - ["path"] = "render.lua", + ["src/elements/BaseElement.lua"] = { + ["name"] = "BaseElement", + ["path"] = "elements/BaseElement.lua", }, ["src/elements/Dropdown.lua"] = { ["name"] = "Dropdown", ["path"] = "elements/Dropdown.lua", }, + ["src/plugins/reactive.lua"] = { + ["name"] = "reactive", + ["path"] = "plugins/reactive.lua", + }, + ["src/plugins/state.lua"] = { + ["name"] = "state", + ["path"] = "plugins/state.lua", + }, + ["src/elementManager.lua"] = { + ["name"] = "elementManager", + ["path"] = "elementManager.lua", + }, ["src/errorManager.lua"] = { ["name"] = "errorManager", ["path"] = "errorManager.lua", }, - ["src/elements/Flexbox.lua"] = { - ["name"] = "Flexbox", - ["path"] = "elements/Flexbox.lua", - }, - ["src/init.lua"] = { - ["name"] = "init", - ["path"] = "init.lua", - }, ["src/elements/BaseFrame.lua"] = { ["name"] = "BaseFrame", ["path"] = "elements/BaseFrame.lua", }, - ["src/propertySystem.lua"] = { - ["name"] = "propertySystem", - ["path"] = "propertySystem.lua", - }, - ["src/libraries/colorHex.lua"] = { - ["name"] = "colorHex", - ["path"] = "libraries/colorHex.lua", - }, - ["src/plugins/benchmark.lua"] = { - ["name"] = "benchmark", - ["path"] = "plugins/benchmark.lua", - }, - ["src/plugins/xml.lua"] = { - ["name"] = "xml", - ["path"] = "plugins/xml.lua", + ["src/plugins/theme.lua"] = { + ["name"] = "theme", + ["path"] = "plugins/theme.lua", }, ["src/elements/ProgressBar.lua"] = { ["name"] = "ProgressBar", ["path"] = "elements/ProgressBar.lua", }, - ["src/plugins/reactive.lua"] = { - ["name"] = "reactive", - ["path"] = "plugins/reactive.lua", + ["src/elements/Flexbox.lua"] = { + ["name"] = "Flexbox", + ["path"] = "elements/Flexbox.lua", }, - ["src/elements/BaseElement.lua"] = { - ["name"] = "BaseElement", - ["path"] = "elements/BaseElement.lua", + ["src/LuaLS.lua"] = { + ["name"] = "LuaLS", + ["path"] = "LuaLS.lua", + }, + ["src/plugins/benchmark.lua"] = { + ["name"] = "benchmark", + ["path"] = "plugins/benchmark.lua", + }, + ["src/elements/List.lua"] = { + ["name"] = "List", + ["path"] = "elements/List.lua", + }, + ["src/libraries/utils.lua"] = { + ["name"] = "utils", + ["path"] = "libraries/utils.lua", + }, + ["src/elements/Slider.lua"] = { + ["name"] = "Slider", + ["path"] = "elements/Slider.lua", + }, + ["src/elements/Button.lua"] = { + ["name"] = "Button", + ["path"] = "elements/Button.lua", + }, + ["src/elements/Container.lua"] = { + ["name"] = "Container", + ["path"] = "elements/Container.lua", + }, + ["src/plugins/debug.lua"] = { + ["name"] = "debug", + ["path"] = "plugins/debug.lua", + }, + ["src/log.lua"] = { + ["name"] = "log", + ["path"] = "log.lua", + }, + ["src/render.lua"] = { + ["name"] = "render", + ["path"] = "render.lua", + }, + ["src/elements/Tree.lua"] = { + ["name"] = "Tree", + ["path"] = "elements/Tree.lua", + }, + ["src/plugins/pluginTemplate.lua"] = { + ["name"] = "pluginTemplate", + ["path"] = "plugins/pluginTemplate.lua", + }, + ["src/libraries/colorHex.lua"] = { + ["name"] = "colorHex", + ["path"] = "libraries/colorHex.lua", + }, + ["src/elements/VisualElement.lua"] = { + ["name"] = "VisualElement", + ["path"] = "elements/VisualElement.lua", + }, + ["src/elements/Input.lua"] = { + ["name"] = "Input", + ["path"] = "elements/Input.lua", + }, + ["src/libraries/expect.lua"] = { + ["name"] = "expect", + ["path"] = "libraries/expect.lua", + }, + ["src/elements/Frame.lua"] = { + ["name"] = "Frame", + ["path"] = "elements/Frame.lua", + }, + ["src/init.lua"] = { + ["name"] = "init", + ["path"] = "init.lua", + }, + ["src/elements/Program.lua"] = { + ["name"] = "Program", + ["path"] = "elements/Program.lua", + }, + ["src/elements/Table.lua"] = { + ["name"] = "Table", + ["path"] = "elements/Table.lua", + }, + ["src/elements/Menu.lua"] = { + ["name"] = "Menu", + ["path"] = "elements/Menu.lua", + }, + ["src/main.lua"] = { + ["name"] = "main", + ["path"] = "main.lua", + }, + ["src/plugins/xml.lua"] = { + ["name"] = "xml", + ["path"] = "plugins/xml.lua", + }, + ["src/plugins/animation.lua"] = { + ["name"] = "animation", + ["path"] = "plugins/animation.lua", + }, + ["src/propertySystem.lua"] = { + ["name"] = "propertySystem", + ["path"] = "propertySystem.lua", + }, + ["src/elements/Label.lua"] = { + ["name"] = "Label", + ["path"] = "elements/Label.lua", }, ["src/elements/Checkbox.lua"] = { ["name"] = "Checkbox", diff --git a/release/basalt.lua b/release/basalt.lua index 01b38d8..6084185 100644 --- a/release/basalt.lua +++ b/release/basalt.lua @@ -1285,9 +1285,11 @@ self:fireEvent("mouse_click",cb,self:getRelativePosition(db,_c))return true end; false end function _b:mouse_up(cb,db,_c)self.set("clicked",false)if self:isInBounds(db,_c)then self:fireEvent("mouse_up",cb,db,_c)return true end -self:fireEvent("mouse_release",cb,self:getRelativePosition(db,_c))end;function _b:mouse_release()self.set("clicked",false)end;function _b:focus() -self:fireEvent("focus")end;function _b:blur()self:fireEvent("blur") -self:setCursor(1,1,false)end +self:fireEvent("mouse_release",cb,self:getRelativePosition(db,_c))end +function _b:mouse_release(cb,db,_c) +if self.get("clicked")then +self:fireEvent("mouse_release",cb,self:getRelativePosition(db,_c))self.set("clicked",false)return true end;return false end;function _b:focus()self:fireEvent("focus")end;function _b:blur() +self:fireEvent("blur")self:setCursor(1,1,false)end function _b:getAbsolutePosition(cb,db) local _c,ac=self.get("x"),self.get("y")if(cb~=nil)then _c=_c+cb-1 end;if(db~=nil)then ac=ac+db-1 end local bc=self.parent;while bc do local cc,dc=bc.get("x"),bc.get("y")_c=_c+cc-1;ac=ac+dc-1 diff --git a/src/LuaLS.lua b/src/LuaLS.lua index a0b23d1..1f72fc8 100644 --- a/src/LuaLS.lua +++ b/src/LuaLS.lua @@ -749,9 +749,10 @@ end ---@field height number ---@field background color ---@field foreground color ----@field clicked boole +---@field clicked boolean ---@field backgroundEnabled boolean ---@field focused boolean +---@field visible boolean local VisualElement = {} --- Gets the x position of the element @@ -883,7 +884,7 @@ end --- Gets the false element is currently clicked ---@generic Element: VisualElement ---@param self Element ----@return boole +---@return boolean function VisualElement:getClicked() return self.clicked end @@ -891,7 +892,7 @@ end --- Sets the false element is currently clicked ---@generic Element: VisualElement ---@param self Element ----@param clicked boole +---@param clicked boolean ---@return Element function VisualElement:setClicked(clicked) self.clicked = clicked @@ -933,3 +934,21 @@ function VisualElement:setFocused(focused) self.focused = focused return self end + +--- Gets the whether the element is visible +---@generic Element: VisualElement +---@param self Element +---@return boolean +function VisualElement:getVisible() + return self.visible +end + +--- Sets the whether the element is visible +---@generic Element: VisualElement +---@param self Element +---@param visible boolean +---@return Element +function VisualElement:setVisible(visible) + self.visible = visible + return self +end