120 lines
No EOL
3.1 KiB
Text
120 lines
No EOL
3.1 KiB
Text
// BastionGuard Plymouth Theme
|
|
|
|
Window.SetBackgroundTopColor(0.10, 0.10, 0.18);
|
|
Window.SetBackgroundBottomColor(0.10, 0.10, 0.18);
|
|
|
|
screen_width = Window.GetWidth();
|
|
screen_height = Window.GetHeight();
|
|
|
|
bg_image = Image("bastionguard-wallpapers.png");
|
|
bg_sprite = Sprite(bg_image);
|
|
bg_sprite.SetZ(-100);
|
|
|
|
bg_w = bg_image.GetWidth();
|
|
bg_h = bg_image.GetHeight();
|
|
|
|
if (bg_w > 0 && bg_h > 0) {
|
|
scale_x = screen_width / bg_w;
|
|
scale_y = screen_height / bg_h;
|
|
scale = scale_x;
|
|
|
|
if (scale_y > scale_x)
|
|
scale = scale_y;
|
|
|
|
bg_sprite.SetScale(scale, scale);
|
|
bg_sprite.SetX((screen_width - bg_w * scale) / 2);
|
|
bg_sprite.SetY((screen_height - bg_h * scale) / 2);
|
|
}
|
|
|
|
logo_image = Image("bastionguard-backup.png");
|
|
logo_sprite = Sprite(logo_image);
|
|
logo_sprite.SetZ(10);
|
|
|
|
logo_w = logo_image.GetWidth();
|
|
logo_h = logo_image.GetHeight();
|
|
|
|
logo_sprite.SetX((screen_width - logo_w) / 2);
|
|
logo_sprite.SetY((screen_height / 2) - 140);
|
|
|
|
title_text = "Starting BastionGuard Recovery";
|
|
title_color = 0xffffffff;
|
|
title_font = "Sans 18";
|
|
|
|
title = Image.Text(title_text, title_color, title_font);
|
|
title_sprite = Sprite(title);
|
|
title_sprite.SetZ(20);
|
|
title_sprite.SetX((screen_width - title.GetWidth()) / 2);
|
|
title_sprite.SetY((screen_height / 2) + 20);
|
|
|
|
message_color = 0xffffffff;
|
|
message_font = "Sans 12";
|
|
|
|
message = Image.Text("", message_color, message_font);
|
|
message_sprite = Sprite(message);
|
|
message_sprite.SetZ(20);
|
|
message_sprite.SetX((screen_width - 300) / 2);
|
|
message_sprite.SetY((screen_height / 2) + 55);
|
|
|
|
progress_box_image = Image("progress_box.png");
|
|
progress_bar_image = Image("progress_bar.png");
|
|
|
|
progress_box_sprite = Sprite(progress_box_image);
|
|
progress_bar_sprite = Sprite(progress_bar_image);
|
|
|
|
progress_box_sprite.SetZ(15);
|
|
progress_bar_sprite.SetZ(16);
|
|
|
|
box_w = progress_box_image.GetWidth();
|
|
box_h = progress_box_image.GetHeight();
|
|
|
|
progress_x = (screen_width - box_w) / 2;
|
|
progress_y = (screen_height / 2) + 85;
|
|
|
|
progress_box_sprite.SetX(progress_x);
|
|
progress_box_sprite.SetY(progress_y);
|
|
|
|
progress_bar_sprite.SetX(progress_x);
|
|
progress_bar_sprite.SetY(progress_y);
|
|
|
|
progress = 0;
|
|
|
|
fun refresh_progress() {
|
|
bar_w = progress_bar_image.GetWidth();
|
|
if (bar_w < 1)
|
|
bar_w = 1;
|
|
|
|
progress_bar_sprite.SetScale(progress, 1.0);
|
|
}
|
|
|
|
fun set_message(text) {
|
|
message = Image.Text(text, message_color, message_font);
|
|
message_sprite.SetImage(message);
|
|
message_sprite.SetX((screen_width - message.GetWidth()) / 2);
|
|
}
|
|
|
|
fun on_boot_progress_callback(duration, percent) {
|
|
progress = percent;
|
|
refresh_progress();
|
|
}
|
|
|
|
fun on_message_callback(text) {
|
|
set_message(text);
|
|
}
|
|
|
|
fun on_root_mounted_callback() {
|
|
set_message("Loading BastionGuard Recovery environment...");
|
|
}
|
|
|
|
fun on_boot_complete_callback() {
|
|
set_message("BastionGuard Recovery Ready");
|
|
progress = 1.0;
|
|
refresh_progress();
|
|
}
|
|
|
|
Plymouth.SetBootProgressFunction(on_boot_progress_callback);
|
|
Plymouth.SetMessageFunction(on_message_callback);
|
|
Plymouth.SetRootMountedFunction(on_root_mounted_callback);
|
|
Plymouth.SetBootCompleteFunction(on_boot_complete_callback);
|
|
|
|
set_message("Starting services...");
|
|
refresh_progress(); |