Menu
BifrOSt
publicLatest change 557d1b90e285bbc40606eb989e796973e2cab034 - Build BifrOSt Icelandic COSMIC installer by Ólafur Búi Ólafsson
Window.SetBackgroundTopColor(0.027, 0.067, 0.122);
Window.SetBackgroundBottomColor(0.051, 0.133, 0.200);
logo.image = Image("watermark.png");
logo.sprite = Sprite(logo.image);
logo.sprite.SetPosition(
Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2,
Window.GetY() + Window.GetHeight() * 0.40 - logo.image.GetHeight() / 2,
10
);
progress.track.image = Image("progress-track.png");
progress.track.sprite = Sprite(progress.track.image);
progress.x = Window.GetX() + Window.GetWidth() / 2 - progress.track.image.GetWidth() / 2;
progress.y = Window.GetY() + Window.GetHeight() * 0.67;
progress.track.sprite.SetPosition(progress.x, progress.y, 10);
progress.fill.original = Image("progress-fill.png");
progress.fill.sprite = Sprite();
progress.fill.sprite.SetPosition(progress.x + 2, progress.y + 1, 11);
progress.target = 0.015;
progress.visible = 0.015;
progress.width = 0;
status = "normal";
fun refresh_callback()
{
if (status == "normal")
{
progress.visible += (progress.target - progress.visible) * 0.12;
local.width = Math.Int(progress.fill.original.GetWidth() * progress.visible);
if (local.width < 1)
local.width = 1;
if (local.width != progress.width)
{
progress.width = local.width;
progress.fill.image = progress.fill.original.Scale(local.width, progress.fill.original.GetHeight());
progress.fill.sprite.SetImage(progress.fill.image);
}
}
}
Plymouth.SetRefreshFunction(refresh_callback);
fun progress_callback(duration, fraction)
{
if (fraction > progress.target)
progress.target = fraction;
}
Plymouth.SetBootProgressFunction(progress_callback);
fun dialog_setup()
{
dialog.prompt.image = Image("password-prompt.png");
dialog.prompt.sprite = Sprite(dialog.prompt.image);
dialog.prompt.sprite.SetPosition(
Window.GetX() + Window.GetWidth() / 2 - dialog.prompt.image.GetWidth() / 2,
Window.GetY() + Window.GetHeight() * 0.59,
100
);
}
fun dialog_opacity(opacity)
{
if (dialog.prompt.sprite)
dialog.prompt.sprite.SetOpacity(opacity);
}
fun display_normal_callback()
{
status = "normal";
dialog_opacity(0);
progress.track.sprite.SetOpacity(1);
progress.fill.sprite.SetOpacity(1);
}
fun display_password_callback(prompt, bullets)
{
status = "password";
if (!dialog.prompt.sprite)
dialog_setup();
# The field deliberately does not echo typed characters.
dialog_opacity(1);
progress.track.sprite.SetOpacity(0);
progress.fill.sprite.SetOpacity(0);
}
Plymouth.SetDisplayNormalFunction(display_normal_callback);
Plymouth.SetDisplayPasswordFunction(display_password_callback);
message.sprite = Sprite();
message.sprite.SetPosition(Window.GetX() + 24, Window.GetY() + 24, 1000);
fun display_message_callback(text)
{
message.image = Image.Text(text, 0.75, 0.86, 0.91);
message.sprite.SetImage(message.image);
}
fun hide_message_callback(text)
{
message.sprite.SetImage(Image.Text("", 1, 1, 1));
}
Plymouth.SetDisplayMessageFunction(display_message_callback);
Plymouth.SetHideMessageFunction(hide_message_callback);
fun quit_callback()
{
progress.target = 1;
}
Plymouth.SetQuitFunction(quit_callback);