mirror of
https://github.com/kepler155c/opus
synced 2024-11-15 13:14:49 +00:00
52 lines
937 B
Lua
52 lines
937 B
Lua
|
local class = require('class')
|
||
|
local UI = require('ui')
|
||
|
|
||
|
--[[-- SlideOut --]]--
|
||
|
UI.SlideOut = class(UI.Window)
|
||
|
UI.SlideOut.defaults = {
|
||
|
UIElement = 'SlideOut',
|
||
|
pageType = 'modal',
|
||
|
}
|
||
|
function UI.SlideOut:setParent()
|
||
|
-- TODO: size should be set at this point
|
||
|
self:layout()
|
||
|
self.canvas = self:addLayer()
|
||
|
|
||
|
UI.Window.setParent(self)
|
||
|
end
|
||
|
|
||
|
function UI.SlideOut:enable()
|
||
|
end
|
||
|
|
||
|
function UI.SlideOut:show(...)
|
||
|
self:addTransition('expandUp')
|
||
|
self.canvas:raise()
|
||
|
self.canvas:setVisible(true)
|
||
|
UI.Window.enable(self, ...)
|
||
|
self:draw()
|
||
|
self:capture(self)
|
||
|
self:focusFirst()
|
||
|
end
|
||
|
|
||
|
function UI.SlideOut:disable()
|
||
|
self.canvas:setVisible(false)
|
||
|
UI.Window.disable(self)
|
||
|
end
|
||
|
|
||
|
function UI.SlideOut:hide()
|
||
|
self:disable()
|
||
|
self:release(self)
|
||
|
self:refocus()
|
||
|
end
|
||
|
|
||
|
function UI.SlideOut:eventHandler(event)
|
||
|
if event.type == 'slide_show' then
|
||
|
self:show()
|
||
|
return true
|
||
|
|
||
|
elseif event.type == 'slide_hide' then
|
||
|
self:hide()
|
||
|
return true
|
||
|
end
|
||
|
end
|