# Objects 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