diff --git a/source/compiler.lua b/source/compiler.lua index 6ab2b69..ea97af6 100644 --- a/source/compiler.lua +++ b/source/compiler.lua @@ -1,67 +1,7 @@ local basaltFileName = "basalt.lua" -local absoluteFilePath = "source" +local absolutePath = "source" +local basalt = dofile(fs.combine(absolutePath, "packager.lua")) -- path to packager -local requiredFiles = { - "mainTop.lua", - "mainBottom.lua", - "Frame.lua", - "Object.lua", - "defaultTheme.lua", - "lib/drawHelper.lua", - "lib/eventSystem.lua", - "lib/process.lua", - "lib/utils.lua", -} - -local basalt = "" - -for k,v in pairs(requiredFiles)do - assert(fs.exists(fs.combine(absoluteFilePath, v)), "File "..v.." doesn't exists!") -end - -local lib = fs.list(fs.combine(absoluteFilePath, "lib")) -local objects = fs.list(fs.combine(absoluteFilePath, "objects")) - -local file = fs.open(fs.combine(absoluteFilePath, "mainTop.lua"), "r") -basalt = basalt..file.readAll().."\n" -file.close() - -local file = fs.open(fs.combine(absoluteFilePath, "defaultTheme.lua"), "r") -basalt = basalt..file.readAll().."\n" -file.close() - -for _,v in pairs(lib)do - local path = fs.combine(fs.combine(absoluteFilePath, "lib"), v) - if not(fs.isDir(path))then - local file = fs.open(path, "r") - basalt = basalt..file.readAll().."\n" - file.close() - end -end - -local file = fs.open(fs.combine(absoluteFilePath, "Object.lua"), "r") -basalt = basalt..file.readAll().."\n" -file.close() - -for _,v in pairs(objects)do - if(v~="example.lua")then - local path = fs.combine(fs.combine(absoluteFilePath, "objects"), v) - if not(fs.isDir(path))then - local file = fs.open(path, "r") - basalt = basalt..file.readAll().."\n" - file.close() - end - end -end - -local file = fs.open(fs.combine(absoluteFilePath, "Frame.lua"), "r") -basalt = basalt..file.readAll().."\n" -file.close() - -local file = fs.open(fs.combine(absoluteFilePath, "mainBottom.lua"), "r") -basalt = basalt..file.readAll().."\n" -file.close() - -local b = fs.open(fs.combine(absoluteFilePath, "basalt.lua"), "w") +local b = fs.open(fs.combine(absolutePath, "basalt.lua"), "w") b.write(basalt) b.close() \ No newline at end of file diff --git a/source/loader.lua b/source/loader.lua new file mode 100644 index 0000000..8036ccb --- /dev/null +++ b/source/loader.lua @@ -0,0 +1,4 @@ +local absolutePath = "source" +local basalt = dofile(fs.combine(absolutePath, "packager.lua")) + +return (load(basalt, "t")()) \ No newline at end of file diff --git a/source/packager.lua b/source/packager.lua new file mode 100644 index 0000000..0be5f59 --- /dev/null +++ b/source/packager.lua @@ -0,0 +1,68 @@ +local basaltFileName = "basalt.lua" +local absoluteFilePath = "source/project" + +local requiredFiles = { + "mainTop.lua", + "mainBottom.lua", + "Frame.lua", + "Object.lua", + "defaultTheme.lua", + "lib/drawHelper.lua", + "lib/eventSystem.lua", + "lib/process.lua", + "lib/utils.lua", +} + +local basalt = "" + +for k,v in pairs(requiredFiles)do + assert(fs.exists(fs.combine(absoluteFilePath, v)), "File "..v.." doesn't exists!") +end + +local lib = fs.list(fs.combine(absoluteFilePath, "lib")) +local objects = fs.list(fs.combine(absoluteFilePath, "objects")) + +local file = fs.open(fs.combine(absoluteFilePath, "mainTop.lua"), "r") +basalt = basalt..file.readAll().."\n" +file.close() + +local file = fs.open(fs.combine(absoluteFilePath, "defaultTheme.lua"), "r") +basalt = basalt..file.readAll().."\n" +file.close() + +for _,v in pairs(lib)do + local path = fs.combine(fs.combine(absoluteFilePath, "lib"), v) + if not(fs.isDir(path))then + local file = fs.open(path, "r") + basalt = basalt..file.readAll().."\n" + file.close() + end +end + +local file = fs.open(fs.combine(absoluteFilePath, "Object.lua"), "r") +basalt = basalt..file.readAll().."\n" +file.close() + +for _,v in pairs(objects)do + if(v~="example.lua")then + local path = fs.combine(fs.combine(absoluteFilePath, "objects"), v) + if not(fs.isDir(path))then + local file = fs.open(path, "r") + basalt = basalt..file.readAll().."\n" + file.close() + end + end +end + +local file = fs.open(fs.combine(absoluteFilePath, "Frame.lua"), "r") +basalt = basalt..file.readAll().."\n" +file.close() + +local file = fs.open(fs.combine(absoluteFilePath, "mainBottom.lua"), "r") +basalt = basalt..file.readAll().."\n" +file.close() + +--local b = fs.open(fs.combine(absoluteFilePath, "basalt.lua"), "w") +--b.write(basalt) +--b.close() +return basalt \ No newline at end of file diff --git a/source/Frame.lua b/source/project/Frame.lua similarity index 98% rename from source/Frame.lua rename to source/project/Frame.lua index f16b99c..c2859db 100644 --- a/source/Frame.lua +++ b/source/project/Frame.lua @@ -78,15 +78,12 @@ local function Frame(name, parent) return false end - ---@class Frame object = { barActive = false, barBackground = colors.gray, barTextcolor = colors.black, barText = "New Frame", barTextAlign = "left", - isMovable = false, - ---@deprecated deprecated in favor of Frame#isMovable isMoveable = false, getType = function(self) @@ -152,19 +149,13 @@ local function Frame(name, parent) return self end; - setMovable = function(self, movable) - self.isMovable = movable or not self.isMovable - self:setVisualChanged() - return self; - end; - - ---@deprecated deprecated in favor of @see Frame#setMovable setMoveable = function(self, moveable) self.isMoveable = moveable or not self.isMoveable self:setVisualChanged() return self; end; + showBar = function(self, showIt) self.barActive = showIt or not self.barActive self:setVisualChanged() diff --git a/source/Object.lua b/source/project/Object.lua similarity index 100% rename from source/Object.lua rename to source/project/Object.lua diff --git a/source/defaultTheme.lua b/source/project/defaultTheme.lua similarity index 100% rename from source/defaultTheme.lua rename to source/project/defaultTheme.lua diff --git a/source/lib/drawHelper.lua b/source/project/lib/drawHelper.lua similarity index 98% rename from source/lib/drawHelper.lua rename to source/project/lib/drawHelper.lua index ae0370e..2e6aec9 100644 --- a/source/lib/drawHelper.lua +++ b/source/project/lib/drawHelper.lua @@ -170,6 +170,8 @@ local function basaltDrawHelper() end terminal.setCursorBlink(isBlinking) terminal.setCursorPos(xC, yC) + terminal.setBackgroundColor(colors.black) + terminal.setTextColor(colors.red) end; setTerm = function(newTerm) diff --git a/source/lib/eventSystem.lua b/source/project/lib/eventSystem.lua similarity index 100% rename from source/lib/eventSystem.lua rename to source/project/lib/eventSystem.lua diff --git a/source/lib/process.lua b/source/project/lib/process.lua similarity index 100% rename from source/lib/process.lua rename to source/project/lib/process.lua diff --git a/source/lib/utils.lua b/source/project/lib/utils.lua similarity index 100% rename from source/lib/utils.lua rename to source/project/lib/utils.lua diff --git a/source/mainBottom.lua b/source/project/mainBottom.lua similarity index 95% rename from source/mainBottom.lua rename to source/project/mainBottom.lua index 71dc01b..aff54cd 100644 --- a/source/mainBottom.lua +++ b/source/project/mainBottom.lua @@ -32,7 +32,11 @@ function basalt.autoUpdate(isActive) drawHelper.update() while updaterActive do local event, p1, p2, p3, p4 = os.pullEventRaw() -- change to raw later - basaltUpdateEvent(event, p1, p2, p3, p4) + local ok, err = pcall(basaltUpdateEvent(event, p1, p2, p3, p4)) + if not(ok)then + parentTerminal.clear() + error(err) + end end end diff --git a/source/mainTop.lua b/source/project/mainTop.lua similarity index 100% rename from source/mainTop.lua rename to source/project/mainTop.lua diff --git a/source/objects/Animation.lua b/source/project/objects/Animation.lua similarity index 100% rename from source/objects/Animation.lua rename to source/project/objects/Animation.lua diff --git a/source/objects/Button.lua b/source/project/objects/Button.lua similarity index 100% rename from source/objects/Button.lua rename to source/project/objects/Button.lua diff --git a/source/objects/Checkbox.lua b/source/project/objects/Checkbox.lua similarity index 100% rename from source/objects/Checkbox.lua rename to source/project/objects/Checkbox.lua diff --git a/source/objects/Dropdown.lua b/source/project/objects/Dropdown.lua similarity index 100% rename from source/objects/Dropdown.lua rename to source/project/objects/Dropdown.lua diff --git a/source/objects/Image.lua b/source/project/objects/Image.lua similarity index 100% rename from source/objects/Image.lua rename to source/project/objects/Image.lua diff --git a/source/objects/Input.lua b/source/project/objects/Input.lua similarity index 100% rename from source/objects/Input.lua rename to source/project/objects/Input.lua diff --git a/source/objects/Label.lua b/source/project/objects/Label.lua similarity index 100% rename from source/objects/Label.lua rename to source/project/objects/Label.lua diff --git a/source/objects/List.lua b/source/project/objects/List.lua similarity index 100% rename from source/objects/List.lua rename to source/project/objects/List.lua diff --git a/source/objects/Menubar.lua b/source/project/objects/Menubar.lua similarity index 100% rename from source/objects/Menubar.lua rename to source/project/objects/Menubar.lua diff --git a/source/objects/Pane.lua b/source/project/objects/Pane.lua similarity index 100% rename from source/objects/Pane.lua rename to source/project/objects/Pane.lua diff --git a/source/objects/Program.lua b/source/project/objects/Program.lua similarity index 100% rename from source/objects/Program.lua rename to source/project/objects/Program.lua diff --git a/source/objects/Progressbar.lua b/source/project/objects/Progressbar.lua similarity index 100% rename from source/objects/Progressbar.lua rename to source/project/objects/Progressbar.lua diff --git a/source/objects/Radio.lua b/source/project/objects/Radio.lua similarity index 100% rename from source/objects/Radio.lua rename to source/project/objects/Radio.lua diff --git a/source/objects/Scrollbar.lua b/source/project/objects/Scrollbar.lua similarity index 100% rename from source/objects/Scrollbar.lua rename to source/project/objects/Scrollbar.lua diff --git a/source/objects/Slider.lua b/source/project/objects/Slider.lua similarity index 100% rename from source/objects/Slider.lua rename to source/project/objects/Slider.lua diff --git a/source/objects/Switch.lua b/source/project/objects/Switch.lua similarity index 100% rename from source/objects/Switch.lua rename to source/project/objects/Switch.lua diff --git a/source/objects/Textfield.lua b/source/project/objects/Textfield.lua similarity index 100% rename from source/objects/Textfield.lua rename to source/project/objects/Textfield.lua diff --git a/source/objects/Thread.lua b/source/project/objects/Thread.lua similarity index 100% rename from source/objects/Thread.lua rename to source/project/objects/Thread.lua diff --git a/source/objects/Timer.lua b/source/project/objects/Timer.lua similarity index 100% rename from source/objects/Timer.lua rename to source/project/objects/Timer.lua diff --git a/source/objects/example.lua b/source/project/objects/example.lua similarity index 100% rename from source/objects/example.lua rename to source/project/objects/example.lua