myspace / CommonLua /UI /SplashScreen.lua
sirnii's picture
Upload 1816 files
b6a38d7 verified
raw
history blame
3.05 kB
DefineClass.SplashScreen = {
__parents = {"XDialog"},
Background = RGB(0, 0, 0),
HandleMouse = true,
MouseCursor = const.DefaultMouseCursor,
}
function SplashScreen:Init()
XAspectWindow:new({
Id = "idContent",
Fit = "FitInSafeArea",
}, self)
end
function SplashScreen:OnMouseButtonDown(pt, button)
if button == "L" then
self:Close()
end
return "break"
end
function SplashScreen:OnShortcut(shortcut, source, ...)
if shortcut == "ButtonB" or shortcut == "Escape" then
self:Close()
return "break"
end
XDialog.OnShortcut(self, shortcut, source, ...)
end
DefineClass.XSplashImage = {
__parents = { "SplashScreen" },
Id = "idXSplashScreenImage",
}
function XSplashImage:Init()
XImage:new({
Id = "idImage",
Image = self.image,
HAlign = "center",
VAlign = "center",
ImageFit = "smallest",
FadeInTime = self.fadeInTime,
FadeOutTime = self.fadeOutTime,
}, self.idContent)
self:CreateThread("wait", function()
Sleep(self.fadeInTime)
Sleep(self.time)
self.idImage:Close()
Sleep(self.fadeOutTime)
self:Close()
end)
end
DefineClass.XSplashMovie = {
__parents = {"SplashScreen"},
Id = "idXSplashScreenMovie",
}
function XSplashMovie:Init()
local video = XVideo:new({
Id = "idMovie",
ZOrder = -1,
FileName = self.movie,
Sound = self.movie,
}, self.idContent)
video:SetAutoPlay(true)
video.OnEnd = function()
self:Close()
end
end
function SplashImage(image, fadeInTime, fadeOutTime, time, aspect)
local dlg = XSplashImage:new({
image = image,
fadeInTime = fadeInTime,
fadeOutTime = fadeOutTime,
time = time,
aspect = aspect,
}, terminal.desktop)
dlg:Open()
return dlg
end
function SplashMovie(movie, aspect)
local dlg = XSplashMovie:new({movie = movie, aspect = aspect}, terminal.desktop)
dlg:Open()
return dlg
end
DefineClass.XSplashText = {
__parents = { "SplashScreen" },
Id = "idXSplashScreenText",
}
function XSplashText:Init()
XText:new({
Id = "idText",
Text = self.text,
TextStyle = self.style,
Translate = true,
TextHAlign = "center",
HAlign = "center",
VAlign = "center",
Margins = box(300, 0, 300, 0),
FadeInTime = self.fadeInTime,
FadeOutTime = self.fadeOutTime,
}, self.idContent)
XText:new({
Id = "idGamepad",
TextStyle = self.style,
Translate = true,
HAlign = "right",
VAlign = "bottom",
Margins = box(0, 0, 80, 80),
ContextUpdateOnOpen = true,
OnContextUpdate = function(self)
self:SetVisible(GetUIStyleGamepad())
end,
}, self.idContent, "GamepadUIStyleChanged")
self.idGamepad:SetText(T(296331304655, "<style SkipHint><ButtonB> Skip</style>"))
self:CreateThread("wait", function()
Sleep(self.fadeInTime)
Sleep(self.time)
self.idGamepad:Close()
self.idText:Close()
Sleep(self.fadeOutTime)
self:Close()
end)
end
function SplashText(text, style, fadeInTime, fadeOutTime, time)
local dlg = XSplashText:new({
style = style,
fadeInTime = fadeInTime,
fadeOutTime = fadeOutTime,
time = time,
}, terminal.desktop)
dlg:Open()
dlg.idText:SetText(text)
return dlg
end