96 lines
2.5 KiB
Lua
96 lines
2.5 KiB
Lua
Particles = { }
|
|
|
|
-- private variables
|
|
local particlesWindow
|
|
local particlesButton
|
|
|
|
-- private functions
|
|
local function onExtendedParticles(protocol, opcode, buffer)
|
|
|
|
end
|
|
|
|
-- public functions
|
|
function Particles.init()
|
|
particlesWindow = g_ui.displayUI('particles.otui')
|
|
particlesButton = TopMenu.addLeftButton('particlesButton', tr('Particles Manager'), 'particles.png', Particles.toggle)
|
|
|
|
local particlesList = particlesWindow:getChildById('particlesList')
|
|
g_keyboard.bindKeyPress('Up', function() particlesList:focusPreviousChild(KeyboardFocusReason) end, particlesWindow)
|
|
g_keyboard.bindKeyPress('Down', function() particlesList:focusNextChild(KeyboardFocusReason) end, particlesWindow)
|
|
|
|
Extended.register(ExtendedParticles, onExtendedParticles)
|
|
end
|
|
|
|
function Particles.terminate()
|
|
particlesWindow:destroy()
|
|
particlesWindow = nil
|
|
|
|
particlesButton:destroy()
|
|
particlesButton = nil
|
|
|
|
Extended.unregister(ExtendedParticles)
|
|
end
|
|
|
|
function Particles.show()
|
|
Particles.refreshList()
|
|
particlesWindow:show()
|
|
particlesWindow:raise()
|
|
particlesWindow:focus()
|
|
end
|
|
|
|
function Particles.hide()
|
|
particlesWindow:hide()
|
|
end
|
|
|
|
function Particles.toggle()
|
|
if particlesWindow:isVisible() then
|
|
Particles.hide()
|
|
else
|
|
Particles.show()
|
|
end
|
|
end
|
|
|
|
function Particles.refreshInfo()
|
|
local particlesList = particlesWindow:getChildById('particlesList')
|
|
local widget = particlesList:getFocusedChild()
|
|
|
|
local name = particlesWindow:getChildById('name')
|
|
name:setText(widget.effect:getName())
|
|
|
|
local location = particlesWindow:getChildById('location')
|
|
location:setText(widget.effect:getFile())
|
|
|
|
local description = particlesWindow:getChildById('description')
|
|
description:setText(widget.effect:getDescription())
|
|
end
|
|
|
|
function Particles.refreshList()
|
|
local particlesList = particlesWindow:getChildById('particlesList')
|
|
particlesList.onChildFocusChange = nil
|
|
particlesList:destroyChildren()
|
|
|
|
local firstChild = nil
|
|
local effects = g_particles.getEffectsTypes()
|
|
for name,effect in pairs(effects) do
|
|
local label = g_ui.createWidget('ParticlesListLabel', particlesList)
|
|
label:setText(name)
|
|
label.effect = effect
|
|
|
|
if not firstChild then
|
|
firstChild = label
|
|
end
|
|
end
|
|
|
|
particlesList.onChildFocusChange = Particles.refreshInfo
|
|
if firstChild then
|
|
firstChild:focus()
|
|
end
|
|
end
|
|
|
|
function Particles.start()
|
|
local particlesList = particlesWindow:getChildById('particlesList')
|
|
local focusedEffect = particlesList:getFocusedChild()
|
|
local preview = particlesWindow:getChildById('preview')
|
|
preview:addEffect(focusedEffect:getText())
|
|
end
|