From 31cda3d672b1024ef8833deb88a25c09f892930f Mon Sep 17 00:00:00 2001 From: Robert Jelic <36573031+NoryiE@users.noreply.github.com> Date: Wed, 5 Jul 2023 15:49:52 +0200 Subject: [PATCH] small frames-docs update updated frames example fixed bug in process for programs --- Basalt/libraries/process.lua | 1 + docs/objects/Frame.md | 28 +++++++++++++--------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/Basalt/libraries/process.lua b/Basalt/libraries/process.lua index fb5b76d..bf2cd4d 100644 --- a/Basalt/libraries/process.lua +++ b/Basalt/libraries/process.lua @@ -6,6 +6,7 @@ local newPackage = dofile("rom/modules/main/cc/require.lua").make function process:new(path, window, newEnv, ...) local args = {...} + newEnv = newEnv or {} local newP = setmetatable({ path = path }, { __index = self }) newP.window = window window.current = term.current diff --git a/docs/objects/Frame.md b/docs/objects/Frame.md index 9d030f4..db19fbb 100644 --- a/docs/objects/Frame.md +++ b/docs/objects/Frame.md @@ -83,19 +83,19 @@ when the focus gets lost we simply change the position to "parent.w" As you can see we add :setZIndex(25) - this makes sure the sidebar frame is always more important than our normal sub frames. :setScrollable just makes the sidebar frame scrollable (in case you're adding more frames) ]] -local sidebar = main:addFrame():setBackground(colors.gray):setPosition("parent.w", 1):setSize(15, "parent.h"):setZIndex(25):setScrollable() +local sidebar = main:addFrame():setBackground(colors.gray):setPosition("{parent.w}", 1):setSize(15, "{parent.h}"):setZIndex(25):setScrollable() :onGetFocus(function(self) - self:setPosition("parent.w - (self.w-1)") + self:setPosition("{parent.w - (self.w-1)}") end) :onLoseFocus(function(self) - self:setPosition("parent.w") + self:setPosition("{parent.w}") end) -- Once again we add 3 frames, the first one should be immediatly visible local sub = { - main:addFrame():setPosition(1, 1):setSize("parent.w", "parent.h"), - main:addFrame():setPosition(1, 1):setSize("parent.w", "parent.h"):hide(), - main:addFrame():setPosition(1, 1):setSize("parent.w", "parent.h"):hide(), + main:addFrame():setPosition(1, 1):setSize("{parent.w}", "{parent.h}"), + main:addFrame():setPosition(1, 1):setSize("{parent.w}", "{parent.h}"):hide(), + main:addFrame():setPosition(1, 1):setSize("{parent.w}", "{parent.h}"):hide(), } --This part of the code adds buttons based on the sub table. @@ -104,7 +104,7 @@ for k,v in pairs(sub)do sidebar:addButton():setText("Example "..k) -- creating the button and adding a name k is just the index :setBackground(colors.black) :setForeground(colors.lightGray) - :setSize("parent.w - 2", 3) + :setSize("{parent.w - 2}", 3) :setPosition(2, y) :onClick(function() -- here we create a on click event which hides ALL sub frames and then shows the one which is linked to the button for a, b in pairs(sub)do @@ -138,7 +138,6 @@ In this example, we will demonstrate how to create movable frames with a program
Click here to show code - ```lua local basalt = require("basalt") @@ -150,19 +149,18 @@ local processes = {} local function openProgram(path, title, x, y, w, h) local pId = id id = id + 1 - local f = main:addFrame() - :setMovable() + local f = main:addMovableFrame() :setSize(w or 30, h or 12) :setPosition(x or math.random(2, 12), y or math.random(2, 8)) f:addLabel() - :setSize("parent.w", 1) + :setSize("{parent.w}", 1) :setBackground(colors.black) :setForeground(colors.lightGray) :setText(title or "New Program") f:addProgram() - :setSize("parent.w", "parent.h - 1") + :setSize("{parent.w-1}", "{parent.h - 2}") :setPosition(1, 2) :execute(path or "rom/programs/shell.lua") @@ -171,7 +169,7 @@ local function openProgram(path, title, x, y, w, h) :setText("X") :setBackground(colors.black) :setForeground(colors.red) - :setPosition("parent.w", 1) + :setPosition("{parent.w-1}", 1) :onClick(function() f:remove() processes[pId] = nil @@ -182,7 +180,7 @@ end openProgram("rom/programs/fun/worm.lua") -main:addButton():setPosition("parent.w - 16", 2):setText("Open"):onClick(function() +main:addButton():setPosition("{parent.w - 16}", 2):setText("Open"):onClick(function() openProgram() end) @@ -218,7 +216,7 @@ local function makeResizeable(frame, minW, minH, maxW, maxH) maxW = maxW or 99 maxH = maxH or 99 local btn = frame:addButton() - :setPosition("parent.w", "parent.h") + :setPosition("{parent.w-1}", "{parent.h-1}") :setSize(1, 1) :setText("/") :setForeground(colors.blue)