This is the base class of all visual objects. This means, if you create a button, label, frame or something else visual (no timers, threads or animations) the following list can be used: ## show shows the object (only if the parent frame is already visible) ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local button = mainFrame:addButton("myFirstButton") button:show() ``` **parameters:** -
**returns:** self
## hide hides the object ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local button = mainFrame:addButton("myFirstButton"):setText("Close"):onClick(function() mainFrame:hide() end) button:show() ``` **parameters:** -
**returns:** self
## setPosition Changes the position relative to its parent frame ```lua local mainFrame = basalt.createFrame("myFirstFrame"):setPosition(2,3) ``` **parameters:** number x, number y[, boolean relative], if relative is set to true it will add/remove instead of set x, y
**returns:** self
## setBackground Changes the object background color ```lua local mainFrame = basalt.createFrame("myFirstFrame"):setBackground(colors.lightGray) ``` **parameters:** number color
**returns:** self
## setForeground Changes the object text color ```lua local mainFrame = basalt.createFrame("myFirstFrame"):setForeground(colors.black) ``` **parameters:** number color
**returns:** self
## setSize Changes the object size ```lua local mainFrame = basalt.createFrame("myFirstFrame"):setSize(15,5) ``` **parameters:** number width, number length
**returns:** self
## setFocus sets the object to be the focused object. If you click on a object, it's normaly automatically the focused object. As example, if you :show() a frame and you want this particular frame to be in the foreground, you have to use :setFocus() ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aButton = mainFrame:addButton("myFirstButton"):setFocus():show() ``` **parameters:** -
**returns:** self
## setZIndex changes the z index (higher z index do have higher draw/event priority) 10 is more important than 5 or 1. You are also able to add multiple objects to the same z index, which means if you create a couple of buttons, you set their z index to 10, everything below 10 is less important, everything above 10 is more important. On the same z index: the last object which gets created is the most important one. ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aButton = mainFrame:addButton("myFirstButton"):setZIndex(1):show() ``` **parameters:** number index
**returns:** self
## setParent changes the frame parent of that object ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aRandomFrame = basalt.createFrame("aRandomFrame"):show() local aButton = mainFrame:addButton("myFirstButton"):onClick(function() aRandomFrame:setParent(mainFrame) end):show() ``` **parameters:** frame object
**returns:** self
## isFocused returns if the object is currently the focused object of the parent frame ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aButton = mainFrame:addButton("myFirstButton"):show() basalt.debug(aButton:isFocused()) -- shows true or false as a debug message ``` **parameters:** -
**returns:** boolean
## getAnchorPosition converts the x,y coordinates into the anchor coordinates of that object ```lua local mainFrame = basalt.createFrame("myFirstFrame"):setSize(15,15):show() local aButton = mainFrame:addButton("myFirstButton"):setAnchor("right","bottom"):setSize(8,1):setPosition(1,1):show() basalt.debug(aButton:getAnchorPosition()) -- returns 7,14 (framesize - own size) instead of 1,1 ``` **parameters:** number x, number y - or nothing (if nothing it uses the object's x, y)
**returns:** number x, number y (converted)
## setAnchor sets the anchor of that object ```lua local mainFrame = basalt.createFrame("myFirstFrame"):setAnchor("right"):show() local aButton = mainFrame:addButton("myFirstButton"):setAnchor("bottom","right"):setSize(8,1):setPosition(1,1):show() ``` **parameters:** string sides - ("left", "right", "top", "bottom") you can stack positions like so ..:setAnchor("right", "bottom")
**returns:** self
## getAbsolutePosition converts the relative coordinates into absolute coordinates ```lua local mainFrame = basalt.createFrame("myFirstFrame"):setPosition(3,3):show() local aButton = mainFrame:addButton("myFirstButton"):setSize(8,1):setPosition(4,2):show() basalt.debug(aButton:getAbsolutePosition()) -- returns 7,5 (frame coords + own coords) instead of 4,2 ``` **parameters:** number x, number y - or nothing (if nothing it uses the object's x, y)
**returns:** self
## setTextAlign sets the text align of the object (for example buttons) ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aButton = mainFrame:addButton("myFirstButton"):setSize(12,3):setTextAlign("right", "center"):setText("Dont't..."):show() ``` **parameters:** string horizontal, string vertical - ("left", "center", "right")
**returns:** self
## setValue sets the value of that object (input, label, checkbox, textfield, scrollbar,...) ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aCheckbox = mainFrame:addCheckbox("myFirstCheckbox"):setValue(true):show() ``` **parameters:** any value
**returns:** self
## getValue returns the currently saved value ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aCheckbox = mainFrame:addCheckbox("myFirstCheckbox"):setValue(true):show() basalt.debug(aCheckbox:getValue()) -- returns true ``` **parameters:**-
**returns:** any value
## getHeight/getWidth returns the height or width ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aButton = mainFrame:addButton("myFirstButton"):setSize(5,8):show() basalt.debug(aButton:getHeight()) -- returns 8 ``` **parameters:**-
**returns:** number height/width
## isVisible returns if the object is currently visible ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aButton = mainFrame:addButton("myFirstButton"):setSize(5,8):show() basalt.debug(aButton:isVisible()) -- returns true ``` **parameters:**-
**returns:** boolean
## getName returns the given name of that object ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() basalt.debug(mainFrame:getName()) -- returns myFirstFrame ``` **parameters:**-
**returns:** string name
# Object Events These object events are available for all objects, if a object got some unique events, you can see them in their own category ## onClick creates a mouse_click event ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aButton = mainFrame:addButton("myFirstButton"):setSize(10,3):onClick(function(self,event,button,x,y) basalt.debug("Hellooww UwU") end):show() ``` **parameters:** function func
**returns:** self
## onClickUp creates a click_up event ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aButton = mainFrame:addButton("myFirstButton"):setSize(10,3):onClickUp(function(self,event,button,x,y) basalt.debug("Byeeeee UwU") end):show() ``` **parameters:** function func
**returns:** self
## onMouseDrag creates a mouse_drag event ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aButton = mainFrame:addButton("myFirstButton"):setSize(10,3):onClickUp(function(self,event,button,x,y) basalt.debug("Byeeeee UwU") end):show() ``` **parameters:** function func
**returns:** self
## onChange creates a change event (fires as soon as the value gets changed) ```lua local mainFrame = basalt.createFrame("myFirstFrame"):show() local aCheckbox = mainFrame:addCheckbox("myFirstCheckbox"):onChange(function(self) basalt.debug("i got changed into "..self:getValue()) end):show() ``` **parameters:** function func
**returns:** self
## onKey creates a key(board) - event can be key or char ```lua local mainFrame = basalt.createFrame("myFirstFrame"):onKey(function(self,event,key) basalt.debug("you clicked "..key) end):show() ``` **parameters:** function func
**returns:** self
## onLoseFocus creates a lose focus event ```lua local mainFrame = basalt.createFrame("myFirstFrame"):onLoseFocus(function(self) basalt.debug("please come back..") end):show() ``` **parameters:** function func
**returns:** self
## onGetFocus creates a get focus event ```lua local mainFrame = basalt.createFrame("myFirstFrame"):onGetFocus(function(self) basalt.debug("thanks!") end):show() ``` **parameters:** function func
**returns:** self