diff --git a/boot/freeldr/freeldr/bootmgr.c b/boot/freeldr/freeldr/bootmgr.c index b0494083d75..5a5d8335df7 100644 --- a/boot/freeldr/freeldr/bootmgr.c +++ b/boot/freeldr/freeldr/bootmgr.c @@ -427,8 +427,8 @@ VOID RunLoader(VOID) for (;;) { - /* Redraw the backdrop */ - UiDrawBackdrop(); + /* Redraw the backdrop, but don't overwrite boot options */ + UiDrawBackdrop(UiGetScreenHeight() - 2); /* Show the operating system list menu */ if (!UiDisplayMenu("Please select the operating system to start:", diff --git a/boot/freeldr/freeldr/include/ui.h b/boot/freeldr/freeldr/include/ui.h index cedc2fa922a..1ee72572ae4 100644 --- a/boot/freeldr/freeldr/include/ui.h +++ b/boot/freeldr/freeldr/include/ui.h @@ -53,7 +53,7 @@ extern const PCSTR UiMonthNames[12]; BOOLEAN UiInitialize(BOOLEAN ShowUi); // Initialize User-Interface VOID UiUnInitialize(PCSTR BootText); // Un-initialize User-Interface -VOID UiDrawBackdrop(VOID); // Fills the entire screen with a backdrop +VOID UiDrawBackdrop(ULONG DrawHeight); // Fills the entire screen with a backdrop VOID UiFillArea(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, CHAR FillChar, UCHAR Attr /* Color Attributes */); // Fills the area specified with FillChar and Attr VOID UiDrawShadow(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom); // Draws a shadow on the bottom and right sides of the area specified VOID UiDrawBox(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, UCHAR VertStyle, UCHAR HorzStyle, BOOLEAN Fill, BOOLEAN Shadow, UCHAR Attr); // Draws a box around the area specified @@ -254,7 +254,7 @@ typedef struct tagUIVTBL BOOLEAN (*Initialize)(VOID); VOID (*UnInitialize)(VOID); - VOID (*DrawBackdrop)(VOID); + VOID (*DrawBackdrop)(ULONG DrawHeight); VOID (*FillArea)(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, CHAR FillChar, UCHAR Attr); VOID (*DrawShadow)(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom); VOID (*DrawBox)(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, UCHAR VertStyle, UCHAR HorzStyle, BOOLEAN Fill, BOOLEAN Shadow, UCHAR Attr); diff --git a/boot/freeldr/freeldr/include/ui/minitui.h b/boot/freeldr/freeldr/include/ui/minitui.h index 6db89b41cc0..e8743835d42 100644 --- a/boot/freeldr/freeldr/include/ui/minitui.h +++ b/boot/freeldr/freeldr/include/ui/minitui.h @@ -10,7 +10,7 @@ /* Textual User Interface Functions ******************************************/ -VOID MiniTuiDrawBackdrop(VOID); +VOID MiniTuiDrawBackdrop(ULONG DrawHeight); VOID MiniTuiDrawStatusText(PCSTR StatusText); VOID diff --git a/boot/freeldr/freeldr/include/ui/noui.h b/boot/freeldr/freeldr/include/ui/noui.h index ac6524dec54..99d66ceb341 100644 --- a/boot/freeldr/freeldr/include/ui/noui.h +++ b/boot/freeldr/freeldr/include/ui/noui.h @@ -13,7 +13,7 @@ BOOLEAN NoUiInitialize(VOID); VOID NoUiUnInitialize(VOID); -VOID NoUiDrawBackdrop(VOID); +VOID NoUiDrawBackdrop(ULONG DrawHeight); VOID NoUiFillArea(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, CHAR FillChar, UCHAR Attr); VOID NoUiDrawShadow(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom); VOID NoUiDrawBox(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, UCHAR VertStyle, UCHAR HorzStyle, BOOLEAN Fill, BOOLEAN Shadow, UCHAR Attr); diff --git a/boot/freeldr/freeldr/include/ui/tui.h b/boot/freeldr/freeldr/include/ui/tui.h index 4a3f3e25ef9..ee0c756d526 100644 --- a/boot/freeldr/freeldr/include/ui/tui.h +++ b/boot/freeldr/freeldr/include/ui/tui.h @@ -37,7 +37,7 @@ TuiTruncateStringEllipsis( BOOLEAN TuiInitialize(VOID); // Initialize User-Interface VOID TuiUnInitialize(VOID); // Un-initialize User-Interface -VOID TuiDrawBackdrop(VOID); // Fills the entire screen with a backdrop +VOID TuiDrawBackdrop(ULONG DrawHeight); // Fills the entire screen with a backdrop VOID TuiFillArea(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, CHAR FillChar, UCHAR Attr /* Color Attributes */); // Fills the area specified with FillChar and Attr VOID TuiDrawShadow(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom); // Draws a shadow on the bottom and right sides of the area specified diff --git a/boot/freeldr/freeldr/linuxboot.c b/boot/freeldr/freeldr/linuxboot.c index e7f81d699d8..3cd90237fc8 100644 --- a/boot/freeldr/freeldr/linuxboot.c +++ b/boot/freeldr/freeldr/linuxboot.c @@ -114,7 +114,7 @@ LoadAndBootLinux( else strcpy(LinuxBootDescription, "Loading Linux..."); - UiDrawBackdrop(); + UiDrawBackdrop(UiGetScreenHeight()); UiDrawStatusText(LinuxBootDescription); UiDrawProgressBarCenter(LinuxBootDescription); diff --git a/boot/freeldr/freeldr/ntldr/setupldr.c b/boot/freeldr/freeldr/ntldr/setupldr.c index 576222378f7..57931fc841e 100644 --- a/boot/freeldr/freeldr/ntldr/setupldr.c +++ b/boot/freeldr/freeldr/ntldr/setupldr.c @@ -531,7 +531,7 @@ LoadReactOSSetup( } /* Let the user know we started loading */ - UiDrawBackdrop(); + UiDrawBackdrop(UiGetScreenHeight()); UiDrawStatusText("Setup is loading..."); UiDrawProgressBarCenter("Loading ReactOS Setup..."); diff --git a/boot/freeldr/freeldr/ntldr/winldr.c b/boot/freeldr/freeldr/ntldr/winldr.c index 5dc97f2acb5..198c673d962 100644 --- a/boot/freeldr/freeldr/ntldr/winldr.c +++ b/boot/freeldr/freeldr/ntldr/winldr.c @@ -1030,7 +1030,7 @@ LoadAndBootWindows( } /* Let the user know we started loading */ - UiDrawBackdrop(); + UiDrawBackdrop(UiGetScreenHeight()); UiDrawStatusText("Loading..."); UiDrawProgressBarCenter("Loading NT..."); diff --git a/boot/freeldr/freeldr/options.c b/boot/freeldr/freeldr/options.c index 27eb1dda090..1b07ec64cda 100644 --- a/boot/freeldr/freeldr/options.c +++ b/boot/freeldr/freeldr/options.c @@ -108,7 +108,7 @@ VOID DoOptionsMenu(IN OperatingSystemItem* OperatingSystem) } /* Clear the backdrop */ - UiDrawBackdrop(); + UiDrawBackdrop(UiGetScreenHeight()); switch (SelectedMenuItem) { diff --git a/boot/freeldr/freeldr/ui/directui.c b/boot/freeldr/freeldr/ui/directui.c index 7788fa1e84d..54b4debb1ca 100644 --- a/boot/freeldr/freeldr/ui/directui.c +++ b/boot/freeldr/freeldr/ui/directui.c @@ -35,7 +35,7 @@ UiInitialize(IN BOOLEAN ShowUi) MachVideoGetDisplaySize(&UiScreenWidth, &UiScreenHeight, &Depth); /* Clear the screen */ - UiDrawBackdrop(); + UiDrawBackdrop(UiGetScreenHeight()); return TRUE; } @@ -47,7 +47,7 @@ UiUnInitialize(IN PCSTR BootText) } VOID -UiDrawBackdrop(VOID) +UiDrawBackdrop(ULONG DrawHeight) { /* Clear the screen */ MachVideoClearScreen(ATTR(COLOR_WHITE, COLOR_BLACK)); diff --git a/boot/freeldr/freeldr/ui/minitui.c b/boot/freeldr/freeldr/ui/minitui.c index 1ca4e8b5062..8742244940b 100644 --- a/boot/freeldr/freeldr/ui/minitui.c +++ b/boot/freeldr/freeldr/ui/minitui.c @@ -53,10 +53,10 @@ BOOLEAN MiniTuiInitialize(VOID) return TRUE; } -VOID MiniTuiDrawBackdrop(VOID) +VOID MiniTuiDrawBackdrop(ULONG DrawHeight) { /* Fill in a black background */ - TuiFillArea(0, 0, UiScreenWidth - 1, UiScreenHeight - 3, + TuiFillArea(0, 0, UiScreenWidth - 1, DrawHeight - 1, UiBackdropFillStyle, ATTR(UiBackdropFgColor, UiBackdropBgColor)); @@ -64,6 +64,12 @@ VOID MiniTuiDrawBackdrop(VOID) VideoCopyOffScreenBufferToVRAM(); } +VOID MiniTuiFadeInBackdrop(VOID) +{ + /* No fade-in effect in MiniTui */ + MiniTuiDrawBackdrop(UiScreenHeight); +} + VOID MiniTuiDrawStatusText(PCSTR StatusText) { /* Minimal UI doesn't have a status bar */ @@ -186,7 +192,7 @@ MiniTuiDrawMenu( ULONG i; /* Draw the backdrop */ - UiDrawBackdrop(); + UiDrawBackdrop(UiGetScreenHeight()); /* No GUI status bar text, just minimal text. Show the menu header. */ if (MenuInfo->MenuHeader) @@ -250,7 +256,7 @@ const UIVTBL MiniTuiVtbl = TuiEditBox, TuiTextToColor, TuiTextToFillStyle, - MiniTuiDrawBackdrop, /* no FadeIn */ + MiniTuiFadeInBackdrop, TuiFadeOut, TuiDisplayMenu, MiniTuiDrawMenu, diff --git a/boot/freeldr/freeldr/ui/noui.c b/boot/freeldr/freeldr/ui/noui.c index 80fefea0c9a..b465acff575 100644 --- a/boot/freeldr/freeldr/ui/noui.c +++ b/boot/freeldr/freeldr/ui/noui.c @@ -17,7 +17,7 @@ VOID NoUiUnInitialize(VOID) { } -VOID NoUiDrawBackdrop(VOID) +VOID NoUiDrawBackdrop(ULONG DrawHeight) { } diff --git a/boot/freeldr/freeldr/ui/tui.c b/boot/freeldr/freeldr/ui/tui.c index 80c5e3b0100..732c2a622d6 100644 --- a/boot/freeldr/freeldr/ui/tui.c +++ b/boot/freeldr/freeldr/ui/tui.c @@ -269,13 +269,13 @@ VOID TuiUnInitialize(VOID) MachVideoHideShowTextCursor(TRUE); } -VOID TuiDrawBackdrop(VOID) +VOID TuiDrawBackdrop(ULONG DrawHeight) { /* Fill in the background (excluding title box & status bar) */ TuiFillArea(0, TUI_TITLE_BOX_CHAR_HEIGHT, UiScreenWidth - 1, - UiScreenHeight - 3, + DrawHeight - 2, UiBackdropFillStyle, ATTR(UiBackdropFgColor, UiBackdropBgColor)); @@ -996,7 +996,7 @@ VOID TuiFadeInBackdrop(VOID) } // Draw the backdrop and title box - TuiDrawBackdrop(); + TuiDrawBackdrop(UiGetScreenHeight()); if (UiUseSpecialEffects && ! MachVideoIsPaletteFixed() && TuiFadePalette != NULL) { diff --git a/boot/freeldr/freeldr/ui/tuimenu.c b/boot/freeldr/freeldr/ui/tuimenu.c index ff6f95e1128..b3a7e3f5ef9 100644 --- a/boot/freeldr/freeldr/ui/tuimenu.c +++ b/boot/freeldr/freeldr/ui/tuimenu.c @@ -202,7 +202,7 @@ TuiDrawMenu( // FIXME: Theme-specific /* Draw the backdrop */ - UiDrawBackdrop(); + UiDrawBackdrop(UiGetScreenHeight()); /* Draw the menu box */ TuiDrawMenuBox(MenuInfo); diff --git a/boot/freeldr/freeldr/ui/ui.c b/boot/freeldr/freeldr/ui/ui.c index 3496921cb53..946b49f4354 100644 --- a/boot/freeldr/freeldr/ui/ui.c +++ b/boot/freeldr/freeldr/ui/ui.c @@ -223,16 +223,16 @@ BOOLEAN UiInitialize(BOOLEAN ShowUi) VOID UiUnInitialize(PCSTR BootText) { - UiDrawBackdrop(); + UiDrawBackdrop(UiGetScreenHeight()); UiDrawStatusText(BootText); UiInfoBox(BootText); UiVtbl.UnInitialize(); } -VOID UiDrawBackdrop(VOID) +VOID UiDrawBackdrop(ULONG DrawHeight) { - UiVtbl.DrawBackdrop(); + UiVtbl.DrawBackdrop(DrawHeight); } VOID UiFillArea(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, CHAR FillChar, UCHAR Attr /* Color Attributes */)