Lua API:Interface

From The Powder Toy
Revision as of 21:35, 1 September 2012 by Simon (talk | contribs) (Add Label and Window)
Jump to: navigation, search

The Interface API includes objects for UI components such as buttons, labels and checkboxes and methods for access to the very primitive window manager and input events.

Classes

Component

Abstract class, no constructor

Component:size

number, number Component:size()

Returns the width and height of the component

nil Component:size(number width, number height)

Sets the size of the component to be width by height

Component:position

number, number Component:position()

Returns the x and y coord of the component

nil Component:position(number x, number y)

Sets the position of the component to be x, y

Button

Button Button:new(number x, number y, number width, number height, [string text = "", [string tooltip = ""]])

Extends Component, fires "action" when clicked

Button:action

nil Button:action(function(sender) actionListener)

Sets the listener for button actions Example:

local newButton = Button:new(10, 10, 100, 17, "Press to change text")
newButton:action(function(sender) sender:text("Text changed") end)
interface.addComponent(newButton)

Button:text

string Button:text()

Returns the button text

nil Button:text(string text)

Sets the text of the button

Label

Label Label:new(number x, number y, number width, number height, [string text = ""])

Extends Component, is a simple selectable, readonly text field

Label:text

string Button:text()

Returns the label text

nil Button:text(string text)

Sets the text of the label

Window

Window Window:new(number x, number y, number width, number height)

A modal form to display components, using -1 for either x or y values will centre the Window on that axis.

Window:addComponent

nil Window:addComponent(Component newComponent)

Add a component to the window (The component must not have already been added to another Window object)

Window:removeComponent

nil Window:removeComponent(Component newComponent)

Remove a component from the window

Methods

interface.addComponent

nil interface.addComponent(Component newComponent)

Add a component to master game window.

interface.removeComponent

nil interface.removeComponent(Component newComponent)

Remove a component from the master game window.