60 if (
strlen(StringText) > MaxChars)
61 strcpy(&StringText[MaxChars - 3],
"...");
120 ULONG LineBreakCount;
121 ULONG BoxWidth, BoxHeight;
122 ULONG RealLeft, RealTop;
127 TextLength =
strlen(TextString);
136 if (TextString[
Index] ==
'\n')
145 if ((
Index - LastIndex) > BoxWidth)
154 BoxHeight = LineBreakCount + 1;
161 RealLeft = (Left + Right - BoxWidth + 1) / 2;
162 RealTop = (
Top +
Bottom - BoxHeight + 1) / 2;
169 if (TextString[
Index] ==
'\n')
178 X = (
ULONG)(RealLeft + LastIndex);
181 Temp[0] = TextString[
Index];
190#define TAG_TUI_SCREENBUFFER 'SiuT'
191#define TAG_TUI_PALETTE 'PiuT'
236 "[Time Remaining: %d]");
339 for (
j = Left;
j <= Right; ++
j)
364 for (; Idx <= Right; ++Idx)
416 UCHAR ULCorner, URCorner;
419 if (HorzStyle ==
HORZ)
421 if (VertStyle ==
VERT)
434 if (VertStyle ==
VERT)
460 UCHAR LLCorner, LRCorner;
463 if (HorzStyle ==
HORZ)
465 if (VertStyle ==
VERT)
478 if (VertStyle ==
VERT)
552 if (TimeInfo->
Year < 1 || 9999 < TimeInfo->
Year ||
553 TimeInfo->
Month < 1 || 12 < TimeInfo->
Month ||
554 TimeInfo->
Day < 1 || 31 < TimeInfo->
Day ||
555 23 < TimeInfo->
Hour ||
564 if (1 == TimeInfo->
Day || 21 == TimeInfo->
Day || 31 == TimeInfo->
Day)
566 else if (2 == TimeInfo->
Day || 22 == TimeInfo->
Day)
568 else if (3 == TimeInfo->
Day || 23 == TimeInfo->
Day)
586 if (TimeInfo->
Hour > 12)
588 TimeInfo->
Hour -= 12;
591 if (TimeInfo->
Hour == 0)
602 PMHour ?
"PM" :
"AM");
662 if (MessageText[
i] ==
'\n')
669 while ((MessageText[
j] !=
'\n') && (MessageText[
j] != 0))
694 if ((MessageText[
i] ==
'\n') || (MessageText[
i] == 0))
702 temp[
j++] = MessageText[
i];
738 ULONG ProgressBarWidth;
739 CHAR ProgressString[256];
766 ULONG ProgressBarWidth;
772 ASSERT(SubPercentTimes100 <= (100 * 100));
779 FillCount = ProgressBarWidth * SubPercentTimes100 / (100 * 100);
817 Right = Left +
Width - 1;
879 if (
_stricmp(ColorText,
"Default") == 0)
896 UCHAR FillStyleValue;
908 if (
_stricmp(FillStyleText, FillStyles[
i].FillStyleName) == 0)
909 return FillStyles[
i].FillStyleValue;
924 if (TuiFadePalette !=
NULL)
950 if (TuiFadePalette !=
NULL)
983 ULONG EditBoxStartX, EditBoxEndX;
985 ULONG EditBoxTextLength, EditBoxTextPosition;
986 INT EditBoxTextDisplayIndex;
998 if (MessageText[
i] ==
'\n')
1005 while ((MessageText[
j] !=
'\n') && (MessageText[
j] != 0))
1030 if ((MessageText[
i] ==
'\n') || (MessageText[
i] == 0))
1038 temp[
j++] = MessageText[
i];
1041 EditBoxTextLength = (
ULONG)
strlen(EditTextBuffer);
1042 EditBoxTextLength =
min(EditBoxTextLength,
Length - 1);
1043 EditBoxTextPosition = 0;
1044 EditBoxLine =
y2 - 2;
1045 EditBoxStartX =
x1 + 3;
1046 EditBoxEndX =
x2 - 3;
1053 EditBoxCursorX = EditBoxStartX;
1091 if ( (EditBoxTextLength > 0) && (EditBoxTextPosition > 0) &&
1092 (EditBoxTextPosition <= EditBoxTextLength) )
1094 EditBoxTextPosition--;
1095 memmove(EditTextBuffer + EditBoxTextPosition,
1096 EditTextBuffer + EditBoxTextPosition + 1,
1097 EditBoxTextLength - EditBoxTextPosition);
1098 EditBoxTextLength--;
1099 EditTextBuffer[EditBoxTextLength] = 0;
1108 if ( (EditBoxTextLength > 0) &&
1109 (EditBoxTextPosition < EditBoxTextLength) )
1111 memmove(EditTextBuffer + EditBoxTextPosition,
1112 EditTextBuffer + EditBoxTextPosition + 1,
1113 EditBoxTextLength - EditBoxTextPosition);
1114 EditBoxTextLength--;
1115 EditTextBuffer[EditBoxTextLength] = 0;
1124 EditBoxTextPosition = 0;
1128 EditBoxTextPosition = EditBoxTextLength;
1132 if (EditBoxTextPosition < EditBoxTextLength)
1133 EditBoxTextPosition++;
1139 if (EditBoxTextPosition > 0)
1140 EditBoxTextPosition--;
1146 if ( (EditBoxTextLength <
Length - 1) &&
1147 (EditBoxTextPosition <
Length - 1) )
1149 memmove(EditTextBuffer + EditBoxTextPosition + 1,
1150 EditTextBuffer + EditBoxTextPosition,
1151 EditBoxTextLength - EditBoxTextPosition);
1152 EditTextBuffer[EditBoxTextPosition] =
key;
1153 EditBoxTextPosition++;
1154 EditBoxTextLength++;
1155 EditTextBuffer[EditBoxTextLength] = 0;
1172 if (EditBoxTextPosition > (EditBoxEndX - EditBoxStartX))
1174 EditBoxTextDisplayIndex = EditBoxTextPosition - (EditBoxEndX - EditBoxStartX);
1175 EditBoxCursorX = EditBoxEndX;
1179 EditBoxTextDisplayIndex = 0;
1180 EditBoxCursorX = EditBoxStartX + EditBoxTextPosition;
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
TIMEINFO * ArcGetTime(VOID)
static LPHIST_ENTRY Bottom
#define MachVideoClearScreen(Attr)
#define MachConsPutChar(Ch)
#define MachVideoSetTextCursorPosition(X, Y)
#define MachVideoSetDisplayMode(Mode, Init)
#define MachVideoHideShowTextCursor(Show)
#define MachVideoIsPaletteFixed()
FORCEINLINE PVOID FrLdrTempAlloc(_In_ SIZE_T Size, _In_ ULONG Tag)
FORCEINLINE VOID FrLdrTempFree(PVOID Allocation, ULONG Tag)
VOID VideoFadeIn(PPALETTE_ENTRY Palette, ULONG ColorCount)
VOID VideoSetAllColorsToBlack(ULONG ColorCount)
VOID VideoFadeOut(ULONG ColorCount)
struct _PALETTE_ENTRY * PPALETTE_ENTRY
VOID VideoFreeOffScreenBuffer(VOID)
VOID VideoRestorePaletteState(PPALETTE_ENTRY Palette, ULONG ColorCount)
PVOID VideoAllocateOffScreenBuffer(VOID)
VOID VideoSavePaletteState(PPALETTE_ENTRY Palette, ULONG ColorCount)
VOID VideoCopyOffScreenBufferToVRAM(VOID)
VOID TuiDrawCenteredText(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom, _In_ PCSTR TextString, _In_ UCHAR Attr)
VOID TuiMessageBox(PCSTR MessageText)
VOID TuiTruncateStringEllipsis(_Inout_z_ PSTR StringText, _In_ ULONG MaxChars)
VOID TuiDrawBox(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom, _In_ UCHAR VertStyle, _In_ UCHAR HorzStyle, _In_ BOOLEAN Fill, _In_ BOOLEAN Shadow, _In_ UCHAR Attr)
VOID TuiDrawShadow(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom)
UCHAR TuiTextToColor(PCSTR ColorText)
VOID TuiUnInitialize(VOID)
static VOID TuiSetProgressBarText(_In_ PCSTR ProgressText)
VOID TuiRestoreScreen(PUCHAR Buffer)
VOID TuiFillArea(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, CHAR FillChar, UCHAR Attr)
UCHAR TuiTextToFillStyle(PCSTR FillStyleText)
VOID TuiDrawText(_In_ ULONG X, _In_ ULONG Y, _In_ PCSTR Text, _In_ UCHAR Attr)
static VOID TuiDrawProgressBar(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom, _In_ PCSTR ProgressText)
VOID TuiDrawBackdrop(VOID)
VOID TuiDrawStatusText(PCSTR StatusText)
#define TAG_TUI_SCREENBUFFER
VOID TuiDrawBoxBottomLine(_In_ ULONG Left, _In_ ULONG Bottom, _In_ ULONG Right, _In_ UCHAR VertStyle, _In_ UCHAR HorzStyle, _In_ UCHAR Attr)
static VOID TuiTickProgressBar(_In_ ULONG SubPercentTimes100)
VOID TuiFadeInBackdrop(VOID)
VOID TuiDrawText2(_In_ ULONG X, _In_ ULONG Y, _In_opt_ ULONG MaxNumChars, _In_reads_or_z_(MaxNumChars) PCSTR Text, _In_ UCHAR Attr)
VOID TuiUpdateDateTime(VOID)
UCHAR MachDefaultTextColor
static VOID TuiDrawProgressBarCenter(_In_ PCSTR ProgressText)
VOID TuiMessageBoxCritical(PCSTR MessageText)
BOOLEAN TuiInitialize(VOID)
BOOLEAN TuiEditBox(PCSTR MessageText, PCHAR EditTextBuffer, ULONG Length)
VOID TuiSaveScreen(PUCHAR Buffer)
VOID TuiDrawBoxTopLine(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ UCHAR VertStyle, _In_ UCHAR HorzStyle, _In_ UCHAR Attr)
INT TuiPrintf(_In_ PCSTR Format,...)
void Fill(HDC hdc, LONG x, LONG y, COLORREF color)
const PCSTR FrLdrVersionString
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define memmove(s1, s2, n)
#define _In_reads_or_z_(size)
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTRSAFEVAPI RtlStringCbPrintfA(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ _Printf_format_string_ NTSTRSAFE_PCSTR pszFormat,...)
NTSTRSAFEAPI RtlStringCbCopyA(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ NTSTRSAFE_PCSTR pszSrc)
VOID TuiDrawMenu(_In_ PUI_MENU_INFO MenuInfo)
#define TUI_TITLE_BOX_CHAR_HEIGHT
BOOLEAN TuiDisplayMenu(IN PCSTR MenuHeader, IN PCSTR MenuFooter OPTIONAL, IN BOOLEAN ShowBootOptions, IN PCSTR MenuItemList[], IN ULONG MenuItemCount, IN ULONG DefaultMenuItem, IN LONG MenuTimeOut, OUT PULONG SelectedMenuItem, IN BOOLEAN CanEscape, IN UiMenuKeyPressFilterCallback KeyPressFilter OPTIONAL, IN PVOID Context OPTIONAL)
#define COLOR_LIGHTMAGENTA
UCHAR UiMessageBoxFgColor
UCHAR UiMessageBoxBgColor
UI_PROGRESS_BAR UiProgressBar
VOID UiDrawText(_In_ ULONG X, _In_ ULONG Y, _In_ PCSTR Text, _In_ UCHAR Attr)
BOOLEAN UiUseSpecialEffects
VOID UiDrawText2(_In_ ULONG X, _In_ ULONG Y, _In_opt_ ULONG MaxNumChars, _In_reads_or_z_(MaxNumChars) PCSTR Text, _In_ UCHAR Attr)
const PCSTR UiMonthNames[12]
#define ATTR(cFore, cBack)
CHAR UiTitleBoxTitleText[260]
UCHAR UiBackdropFillStyle
VOID UiFillArea(ULONG Left, ULONG Top, ULONG Right, ULONG Bottom, CHAR FillChar, UCHAR Attr)
VOID UiDrawStatusText(PCSTR StatusText)
UCHAR UiSelectedTextColor
UCHAR UiSelectedTextBgColor
VOID UiInitProgressBar(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom, _In_ PCSTR ProgressText)
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
void int int ULONGLONG int va_list * ap