Pop.Box/docs/Pop.md
2016-04-04 01:16:32 -07:00

2.0 KiB

Pop Module

This is the main module that allows you to access everything else in Pop.Box. Simply require it (local pop = require "pop") and define LÖVE callbacks for:

  • pop.update(dt)
  • pop.draw()
  • pop.mousemoved(x, y, dx, dy) (when using LÖVE 0.10.0 or later)
  • pop.mousepressed(x, y, button)
  • pop.mousereleased(x, y, button)
  • pop.keypressed(key)
  • pop.keyreleased(key)
  • pop.textinput(text)

Every callback returns true/false for whether or not the event was handled. For example, using the mousepressed event handler:

function love.mousepressed(x, y, button)
    local handled = pop.mousepressed(x, y, button)
    if not handled then
        -- do something useful
    end
end

Creating Elements

Once pop has been required, you can create Elements and interact with them. Most elements can be created like this: local box = pop.box(...)

However, if an element's name clashes with a function name used in Pop.Box, you will have to use pop.create(type, ...) where type is a string naming the element type.

When creating an element, the first argument is its parent element. If the first argument is not an element, it will be treated as the second argument. If it is false, then an element with no parent will be created. When no parent is specified, an element's parent is pop.screen, which is the top-level element of Pop.Box.

(This behavior can be modified by elements themselves. No standard element does this, but if you use an element created by someone else, check its documentation first.)

Skinning Elements

See the Skins documentation.

Custom Elements/Skins/Extensions

Any .lua file placed in the elements, skins, and extensions directories within the module will be loaded and available as appropriate. See the documentation on each for how to make them:

Also of use, there is a separate set of docs about how Pop.Box works under the surface: Pop Module (dev)