Contexts

Interface

Properties

Lua property Brief description Equivalent C++ functions
dimensions Gets/sets the dimensions of the context. GetDimensions(), SetDimensions()
documents Retrieves a document within the interface. GetDocument(), GetNumDocuments()
focus_element Retrieves the context's focus element. GetFocusElement()
hover_element Retrieves the element under the context's cursor. GetHoverElement()
root_element Retrieves the context's root element. GetRootElement()
name Retrieves the context's name. GetName()

Retrieving documents

The documents property on the context is a proxy table in regards to the C++ interface with Lua, accessed by both string and integer keys.

for key, doc in ipairs(context.documents) do
    print doc.title
end

It is also possible to access them as a dictionary, looking documents up by their ID:

document = context.documents["highscores"]
if document == nil then
    print ("No document found!")
end

Or accessing documents as attributes on the documents property itself:

document = context.documents.highscores
if document == nil then
    print "No document found!"
end

Methods

The following methods are exported from the C++ interface.

Lua method Brief description
AddEventListener() Attaches an inline event listener to the root of the context.
AddMouseCursor() Adds a previously-loaded mouse cursor to the document.
CreateDocument() Creates a new document.
LoadDocument() Loads a document from an external RML file.
LoadMouseCursor() Loads a mouse cursor from an external RML file.
Render() Renders the context.
ShowMouseCursor() Shows or hides the mouse cursor.
UnloadAllDocuments() Unloads all loaded documents within the context.
UnloadAllMouseCursors() Unloads all of the context's mouse cursors.
UnloadDocument() Unloads one of the context's documents.
UnloadMouseCursor() Unloads one of the context's cursors.
Update() Updates the context.

Creating contexts

Contexts can be created in Lua with the CreateContext() function in the rocket table. This function takes the name of the context as a string and the dimensions as a Vector2i type.

new_context = rocket.CreateContext("hud", Vector2i.new(1024, 768))

Accessing contexts

Existing contexts can be accessed in Lua via the contexts member on the rocket table. They can then be accessed via name or index.

context = rocket.contexts["hud"]

List all contexts

for key,context in ipairs(rocket.contexts) do
  print context.name
end