Module Druid

Druid UI Component Framework.

# Overview #

Druid - powerful Defold component UI library. Use basic and extended Druid components or make your own game-specific components to make amazing GUI in your games.

To start using Druid, please refer to the Usage section below.

# Notes #

• Each Druid instance maintains the self context from the constructor and passes it to each Druid callback.

See next: DruidInstance

Usage:

    local druid = require("druid.druid")
    
    local function on_play(self)
        print("Gonna play!")
    end
    
    function init(self)
        self.druid = druid.new(self)
        self.druid:new_button("button_play", on_play)
    end
    
    function final(self)
        self.druid:final()
    end
    
    function update(self, dt)
        self.druid:update(dt)
    end
    
    function on_message(self, message_id, message, sender)
        self.druid:on_message(message_id, message, sender)
    end
    
    function on_input(self, action_id, action)
        return self.druid:on_input(action_id, action)
    end
    

Functions

druid.new(context[, style]) Create a new Druid instance for creating GUI components.
druid.on_language_change() Call this function when the game language changes.
druid.on_window_callback(event) Set the window callback to enable on_focus_gain and on_focus_lost functions.
druid.register(name, module) Register a new external Druid component.
druid.set_default_style(style) Set your own default style for all Druid instances.
druid.set_sound_function(callback) Set the Druid sound function to play UI sounds if used.
druid.set_text_function(callback) Set the text function for the LangText component.


Functions

druid.new(context[, style])
Create a new Druid instance for creating GUI components.

Parameters:

  • context table The Druid context. Usually, this is the self of the gui_script. It is passed into all Druid callbacks.
  • style table The Druid style table to override style parameters for this Druid instance. (optional)

Returns:

    druid_instance The Druid instance DruidInstance.

Usage:

    local druid = require("druid.druid")
    
    function init(self)
       self.druid = druid.new(self)
    end
druid.on_language_change()
Call this function when the game language changes.

This function will translate all current LangText components.

Usage:

    druid.on_language_change()
druid.on_window_callback(event)
Set the window callback to enable on_focus_gain and on_focus_lost functions.

This is used to trigger the on_focus_lost and on_focus_gain functions in Druid components.

Parameters:

  • event string Event param from window listener

Usage:

    window.set_listener(function(_, event)
       druid.on_window_callback(event)
    end)
druid.register(name, module)
Register a new external Druid component.

You can register your own components to make new alias: the druid:new_{name} function. For example, if you want to register a component called "my_component", you can create it using druid:new_my_component(...). This can be useful if you have your own "basic" components that you don't want to re-create each time.

Parameters:

  • name string module name
  • module table lua table with component

Usage:

    local my_component = require("path.to.my.component")
    druid.register("my_component", my_component)
    ...
    local druid = druid.new(self)
    local component_instance = self.druid:new_my_component(...)
druid.set_default_style(style)
Set your own default style for all Druid instances.

To create your own style file, copy the default style file and make changes to it. Register the new style before creating your Druid instances.

Parameters:

  • style table Druid style module

Usage:

    local my_style = require("path.to.my.style")
    druid.set_default_style(my_style)
druid.set_sound_function(callback)
Set the Druid sound function to play UI sounds if used.

Set a function to play a sound given a sound_id. This function is used for button clicks to play the "click" sound. It can also be used to play sounds in your custom components (see the default Druid style file for an example).

Parameters:

  • callback function Sound play callback

Usage:

    druid.set_sound_function(function(sound_id)
        sound.play(sound_id) -- Replace with your real function
    end)
druid.set_text_function(callback)
Set the text function for the LangText component.

The Druid locale component will call this function to get translated text. After setting the text function, all existing locale components will be updated.

Parameters:

  • callback function Get localized text function

Usage:

    druid.set_text_function(function(text_id)
       return lang_data[text_id] -- Replace with your real function
    end)
generated by LDoc TESTING Last updated 2015-01-01 12:00:00