scroll mode for very long start menus
[reactos.git] / freeldr / freeldr / ui / gui.h
1 /*
2 * FreeLoader
3 * Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 */
19
20 #ifndef __GUI_H
21 #define __GUI_H
22
23 #define TUI_SCREEN_MEM 0xB8000
24 #define TITLE_BOX_CHAR_HEIGHT 5
25
26 ///////////////////////////////////////////////////////////////////////////////////////
27 //
28 // Graphical User Interface Functions
29 //
30 ///////////////////////////////////////////////////////////////////////////////////////
31 VOID GuiDrawBackdrop(VOID); // Fills the entire screen with a backdrop
32 VOID GuiFillArea(U32 Left, U32 Top, U32 Right, U32 Bottom, UCHAR FillChar, UCHAR Attr /* Color Attributes */); // Fills the area specified with FillChar and Attr
33 VOID GuiDrawShadow(U32 Left, U32 Top, U32 Right, U32 Bottom); // Draws a shadow on the bottom and right sides of the area specified
34 VOID GuiDrawBox(U32 Left, U32 Top, U32 Right, U32 Bottom, UCHAR VertStyle, UCHAR HorzStyle, BOOL Fill, BOOL Shadow, UCHAR Attr); // Draws a box around the area specified
35 VOID GuiDrawText(U32 X, U32 Y, PUCHAR Text, UCHAR Attr); // Draws text at coordinates specified
36 VOID GuiDrawStatusText(PUCHAR StatusText); // Draws text at the very bottom line on the screen
37 VOID GuiUpdateDateTime(VOID); // Updates the date and time
38 VOID GuiSaveScreen(PUCHAR Buffer); // Saves the screen so that it can be restored later
39 VOID GuiRestoreScreen(PUCHAR Buffer); // Restores the screen from a previous save
40 VOID GuiMessageBox(PUCHAR MessageText); // Displays a message box on the screen with an ok button
41 VOID GuiMessageBoxCritical(PUCHAR MessageText); // Displays a message box on the screen with an ok button using no system resources
42 VOID GuiDrawProgressBar(U32 Position, U32 Range); // Draws the progress bar showing nPos percent filled
43
44 UCHAR GuiTextToColor(PUCHAR ColorText); // Converts the text color into it's equivalent color value
45 UCHAR GuiTextToFillStyle(PUCHAR FillStyleText); // Converts the text fill into it's equivalent fill value
46
47 ///////////////////////////////////////////////////////////////////////////////////////
48 //
49 // Menu Functions
50 //
51 ///////////////////////////////////////////////////////////////////////////////////////
52 BOOL GuiDisplayMenu(PUCHAR MenuItemList[], U32 MenuItemCount, U32 DefaultMenuItem, S32 MenuTimeOut, U32* SelectedMenuItem);
53
54
55
56 #endif // #defined __GUI_H