Author: hbelusca
Date: Mon May 4 20:50:51 2015
New Revision: 67546
URL:
http://svn.reactos.org/svn/reactos?rev=67546&view=rev
Log:
[USETUP]: Instead of defining a special function "DrawInputField" just to draw
an input field for entering the partition size number, just use the already existing
CONSOLE_SetInputTextXY function (and adapt the calling code because the string buffer for
the SetInputTextXY function wants a unicode string). We now have a consistent input UI for
usetup.
CORE-9453 #resolve #comment I committed a more elegant solution to this problem.
Modified:
trunk/reactos/base/setup/usetup/interface/consup.h
trunk/reactos/base/setup/usetup/interface/usetup.c
Modified: trunk/reactos/base/setup/usetup/interface/consup.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/interfac…
==============================================================================
--- trunk/reactos/base/setup/usetup/interface/consup.h [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/interface/consup.h [iso-8859-1] Mon May 4 20:50:51
2015
@@ -146,13 +146,6 @@
IN LPCWSTR Text);
VOID
-CONSOLE_SetInputTextXY(
- IN SHORT x,
- IN SHORT y,
- IN SHORT len,
- IN LPCWSTR Text);
-
-VOID
CONSOLE_SetInvertedTextXY(
IN SHORT x,
IN SHORT y,
Modified: trunk/reactos/base/setup/usetup/interface/usetup.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/interfac…
==============================================================================
--- trunk/reactos/base/setup/usetup/interface/usetup.c [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/interface/usetup.c [iso-8859-1] Mon May 4 20:50:51
2015
@@ -392,7 +392,7 @@
Result = TRUE;
break;
}
- else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
+ else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
{
Result = FALSE;
break;
@@ -701,7 +701,7 @@
else if ((Ir->Event.KeyEvent.uChar.AsciiChar > 0x60) &&
(Ir->Event.KeyEvent.uChar.AsciiChar < 0x7b))
{
/* a-z */
- GenericListKeyPress (LanguageList, Ir->Event.KeyEvent.uChar.AsciiChar);
+ GenericListKeyPress(LanguageList, Ir->Event.KeyEvent.uChar.AsciiChar);
RefreshPage = TRUE;
}
@@ -1678,30 +1678,6 @@
}
-static VOID
-DrawInputField(ULONG FieldLength,
- SHORT Left,
- SHORT Top,
- PCHAR FieldContent)
-{
- CHAR buf[100];
- COORD coPos;
- DWORD Written;
-
- coPos.X = Left;
- coPos.Y = Top;
- memset(buf, '_', sizeof(buf));
- buf[FieldLength - strlen(FieldContent)] = 0;
- strcat(buf, FieldContent);
-
- WriteConsoleOutputCharacterA(StdOutput,
- buf,
- strlen(buf),
- coPos,
- &Written);
-}
-
-
#define PARTITION_SIZE_INPUT_FIELD_LENGTH 6
/* Restriction for MaxSize: pow(10, PARTITION_SIZE_INPUT_FIELD_LENGTH)-1 */
#define PARTITION_MAXSIZE 999999
@@ -1720,8 +1696,9 @@
COORD coPos;
DWORD Written;
CHAR Buffer[100];
+ WCHAR PartitionSizeBuffer[100];
ULONG Index;
- CHAR ch;
+ WCHAR ch;
SHORT iLeft;
SHORT iTop;
@@ -1742,7 +1719,7 @@
WriteConsoleOutputCharacterA(StdOutput,
Buffer,
- strlen (Buffer),
+ strlen(Buffer),
coPos,
&Written);
@@ -1751,16 +1728,16 @@
coPos.Y = iTop;
WriteConsoleOutputCharacterA(StdOutput,
Buffer,
- strlen (Buffer),
+ strlen(Buffer),
coPos,
&Written);
- sprintf(Buffer, "%lu", MaxSize);
- Index = strlen(Buffer);
- DrawInputField(PARTITION_SIZE_INPUT_FIELD_LENGTH,
- iLeft,
- iTop,
- Buffer);
+ swprintf(PartitionSizeBuffer, L"%lu", MaxSize);
+ Index = wcslen(PartitionSizeBuffer);
+ CONSOLE_SetInputTextXY(iLeft,
+ iTop,
+ PARTITION_SIZE_INPUT_FIELD_LENGTH,
+ PartitionSizeBuffer);
while (TRUE)
{
@@ -1772,52 +1749,53 @@
if (Quit != NULL)
*Quit = TRUE;
- Buffer[0] = 0;
+ PartitionSizeBuffer[0] = 0;
break;
}
- else if (Ir.Event.KeyEvent.wVirtualKeyCode == VK_RETURN) /* ENTER */
+ else if (Ir.Event.KeyEvent.wVirtualKeyCode == VK_RETURN) /* ENTER */
{
break;
}
- else if (Ir.Event.KeyEvent.wVirtualKeyCode == VK_ESCAPE) /* ESCAPE */
+ else if (Ir.Event.KeyEvent.wVirtualKeyCode == VK_ESCAPE) /* ESCAPE */
{
if (Cancel != NULL)
*Cancel = TRUE;
- Buffer[0] = 0;
+ PartitionSizeBuffer[0] = 0;
break;
}
else if ((Ir.Event.KeyEvent.wVirtualKeyCode == VK_BACK) && /* BACKSPACE
*/
(Index > 0))
{
Index--;
- Buffer[Index] = 0;
-
- DrawInputField(PARTITION_SIZE_INPUT_FIELD_LENGTH,
- iLeft,
- iTop,
- Buffer);
+ PartitionSizeBuffer[Index] = 0;
+
+ CONSOLE_SetInputTextXY(iLeft,
+ iTop,
+ PARTITION_SIZE_INPUT_FIELD_LENGTH,
+ PartitionSizeBuffer);
}
else if ((Ir.Event.KeyEvent.uChar.AsciiChar != 0x00) &&
(Index < PARTITION_SIZE_INPUT_FIELD_LENGTH))
{
- ch = Ir.Event.KeyEvent.uChar.AsciiChar;
-
- if ((ch >= '0') && (ch <= '9'))
- {
- Buffer[Index] = ch;
+ ch = (WCHAR)Ir.Event.KeyEvent.uChar.AsciiChar;
+
+ if ((ch >= L'0') && (ch <= L'9'))
+ {
+ PartitionSizeBuffer[Index] = ch;
Index++;
- Buffer[Index] = 0;
-
- DrawInputField(PARTITION_SIZE_INPUT_FIELD_LENGTH,
- iLeft,
- iTop,
- Buffer);
- }
- }
- }
-
- strcpy(InputBuffer, Buffer);
+ PartitionSizeBuffer[Index] = 0;
+
+ CONSOLE_SetInputTextXY(iLeft,
+ iTop,
+ PARTITION_SIZE_INPUT_FIELD_LENGTH,
+ PartitionSizeBuffer);
+ }
+ }
+ }
+
+ /* Convert UNICODE --> ANSI the poor man's way */
+ sprintf(InputBuffer, "%S", PartitionSizeBuffer);
}
@@ -3910,7 +3888,7 @@
break;
}
- else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
+ else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
{
if (Line == 12)
{
@@ -3958,7 +3936,7 @@
break;
}
- else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
+ else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
{
if (DoesFileExist(L"\\Device\\Floppy0", L"\\") == FALSE)
{