Lua API:Interface

From The Powder Toy
Revision as of 23:06, 2 September 2012 by Simon (talk | contribs) (Add some of the new methods on Component and add Textbox)
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:visible

boolean Component:visible()

Returns the visibility of the component

nil Component:visible(boolean visible)

Sets the visibility of the component

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

Button:enabled

boolean Button:enabled()

Returns the enabled state of the button

nil Button:enabled(boolean enabled)

Sets the enabled state 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 Label:text()

Returns the label text

nil Label:text(string text)

Sets the text of the label

Textbox

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

Extends Component, is a text input field, the placeholder text is shown if the component is no focused and contains no text

Textbox:onTextChanged

nil Textbox:onTextChanged(function(sender) textChangedListener)

Sets the listener for text changed actions

Textbox:text

string Textbox:text()

Returns the text in the field

nil Textbox:text(string text)

Sets the text of the field

Textbox:readonly

boolean Textbox:readonly()

Returns the readonly status of the field.

nil Textbox:readonly(boolean readonly)

Sets the readonly status of the field.

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.

interface.showWindow

nil interface.showWindow(Window newWindow)

Push a Window into the top of the modal stack

interface.closeWindow

nil interface.closeWindow(Window newWindow)

Pop a Window off the top of the modal stack. If the given Window is not the top item in the stack, this will have no effect,