3 * Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
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.
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.
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.
24 extern U32 UiScreenWidth
; // Screen Width
25 extern U32 UiScreenHeight
; // Screen Height
27 extern UCHAR UiStatusBarFgColor
; // Status bar foreground color
28 extern UCHAR UiStatusBarBgColor
; // Status bar background color
29 extern UCHAR UiBackdropFgColor
; // Backdrop foreground color
30 extern UCHAR UiBackdropBgColor
; // Backdrop background color
31 extern UCHAR UiBackdropFillStyle
; // Backdrop fill style
32 extern UCHAR UiTitleBoxFgColor
; // Title box foreground color
33 extern UCHAR UiTitleBoxBgColor
; // Title box background color
34 extern UCHAR UiMessageBoxFgColor
; // Message box foreground color
35 extern UCHAR UiMessageBoxBgColor
; // Message box background color
36 extern UCHAR UiMenuFgColor
; // Menu foreground color
37 extern UCHAR UiMenuBgColor
; // Menu background color
38 extern UCHAR UiTextColor
; // Normal text color
39 extern UCHAR UiSelectedTextColor
; // Selected text color
40 extern UCHAR UiSelectedTextBgColor
; // Selected text background color
41 extern UCHAR UiEditBoxTextColor
; // Edit box text color
42 extern UCHAR UiEditBoxBgColor
; // Edit box text background color
44 extern UCHAR UiTitleBoxTitleText
[260]; // Title box's title text
46 extern BOOL UserInterfaceUp
; // Tells us if the user interface is displayed
48 extern BOOL UiUseSpecialEffects
; // Tells us if we should use fade effects
50 extern UCHAR UiMonthNames
[12][15];
52 ///////////////////////////////////////////////////////////////////////////////////////
54 // User Interface Functions
56 ///////////////////////////////////////////////////////////////////////////////////////
57 BOOL
UiInitialize(BOOLEAN ShowGui
); // Initialize User-Interface
58 VOID
UiUnInitialize(PUCHAR BootText
); // Un-initialize User-Interface
59 VOID
UiDrawBackdrop(VOID
); // Fills the entire screen with a backdrop
60 VOID
UiFillArea(U32 Left
, U32 Top
, U32 Right
, U32 Bottom
, UCHAR FillChar
, UCHAR Attr
/* Color Attributes */); // Fills the area specified with FillChar and Attr
61 VOID
UiDrawShadow(U32 Left
, U32 Top
, U32 Right
, U32 Bottom
); // Draws a shadow on the bottom and right sides of the area specified
62 VOID
UiDrawBox(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
63 VOID
UiDrawText(U32 X
, U32 Y
, PUCHAR Text
, UCHAR Attr
); // Draws text at coordinates specified
64 VOID
UiDrawCenteredText(U32 Left
, U32 Top
, U32 Right
, U32 Bottom
, PUCHAR TextString
, UCHAR Attr
); // Draws centered text at the coordinates specified and clips the edges
65 VOID
UiDrawStatusText(PUCHAR StatusText
); // Draws text at the very bottom line on the screen
66 VOID
UiUpdateDateTime(VOID
); // Updates the date and time
67 VOID
UiInfoBox(PUCHAR MessageText
); // Displays a info box on the screen
68 VOID
UiMessageBox(PUCHAR MessageText
); // Displays a message box on the screen with an ok button
69 VOID
UiMessageBoxCritical(PUCHAR MessageText
); // Displays a message box on the screen with an ok button using no system resources
70 VOID
UiDrawProgressBarCenter(U32 Position
, U32 Range
, PUCHAR ProgressText
); // Draws the progress bar showing nPos percent filled
71 VOID
UiDrawProgressBar(U32 Left
, U32 Top
, U32 Right
, U32 Bottom
, U32 Position
, U32 Range
, PUCHAR ProgressText
); // Draws the progress bar showing nPos percent filled
72 VOID
UiShowMessageBoxesInSection(PUCHAR SectionName
); // Displays all the message boxes in a given section
73 VOID
UiEscapeString(PUCHAR String
); // Processes a string and changes all occurances of "\n" to '\n'
74 BOOL
UiEditBox(PUCHAR MessageText
, PUCHAR EditTextBuffer
, U32 Length
);
76 UCHAR
UiTextToColor(PUCHAR ColorText
); // Converts the text color into it's equivalent color value
77 UCHAR
UiTextToFillStyle(PUCHAR FillStyleText
); // Converts the text fill into it's equivalent fill value
79 VOID
UiTruncateStringEllipsis(PUCHAR StringText
, U32 MaxChars
); // Truncates a string to MaxChars by adding an ellipsis on the end '...'
81 VOID
UiFadeInBackdrop(VOID
); // Draws the backdrop and fades the screen in
82 VOID
UiFadeOut(VOID
); // Fades the screen out
84 ///////////////////////////////////////////////////////////////////////////////////////
88 ///////////////////////////////////////////////////////////////////////////////////////
89 typedef BOOL (*UiMenuKeyPressFilterCallback
)(U32 KeyPress
);
91 BOOL
UiDisplayMenu(PUCHAR MenuItemList
[], U32 MenuItemCount
, U32 DefaultMenuItem
, S32 MenuTimeOut
, U32
* SelectedMenuItem
, BOOL CanEscape
, UiMenuKeyPressFilterCallback KeyPressFilter
);
95 #endif // #defined __UI_H