- Show full filename while copying files. automatically move "copying file" when...
[reactos.git] / reactos / base / setup / usetup / interface / consup.c
index c34c93f..87300eb 100644 (file)
@@ -203,44 +203,6 @@ CONSOLE_ClearScreen(VOID)
                &Written);
 }
 
-VOID
-CONSOLE_SetStatusText(
-       IN LPCSTR fmt, ...)
-{
-       CHAR Buffer[128];
-       va_list ap;
-       COORD coPos;
-       DWORD Written;
-
-       va_start(ap, fmt);
-       vsprintf(Buffer, fmt, ap);
-       va_end(ap);
-
-       coPos.X = 0;
-       coPos.Y = yScreen - 1;
-
-       FillConsoleOutputAttribute(
-               StdOutput,
-               BACKGROUND_WHITE,
-               xScreen,
-               coPos,
-               &Written);
-
-       FillConsoleOutputCharacterA(
-               StdOutput,
-               ' ',
-               xScreen,
-               coPos,
-               &Written);
-
-       WriteConsoleOutputCharacterA(
-               StdOutput,
-               Buffer,
-               (ULONG)strlen(Buffer),
-               coPos,
-               &Written);
-}
-
 VOID
 CONSOLE_InvertTextXY(
        IN SHORT x,
@@ -390,6 +352,110 @@ CONSOLE_SetUnderlinedTextXY(
                &Written);
 }
 
+VOID
+CONSOLE_SetStatusText(
+       IN LPCSTR fmt, ...)
+{
+       CHAR Buffer[128];
+       va_list ap;
+       COORD coPos;
+       DWORD Written;
+
+       va_start(ap, fmt);
+       vsprintf(Buffer, fmt, ap);
+       va_end(ap);
+
+       coPos.X = 0;
+       coPos.Y = yScreen - 1;
+
+       FillConsoleOutputAttribute(
+               StdOutput,
+               BACKGROUND_WHITE,
+               xScreen,
+               coPos,
+               &Written);
+
+       FillConsoleOutputCharacterA(
+               StdOutput,
+               ' ',
+               xScreen,
+               coPos,
+               &Written);
+
+       WriteConsoleOutputCharacterA(
+               StdOutput,
+               Buffer,
+               (ULONG)strlen(Buffer),
+               coPos,
+               &Written);
+}
+
+VOID
+CONSOLE_SetStatusTextX(
+    IN SHORT x,
+       IN LPCSTR fmt, ...)
+{
+       CHAR Buffer[128];
+       va_list ap;
+       COORD coPos;
+       DWORD Written;
+
+       va_start(ap, fmt);
+       vsprintf(Buffer, fmt, ap);
+       va_end(ap);
+
+       coPos.X = 0;
+       coPos.Y = yScreen - 1;
+
+       FillConsoleOutputAttribute(
+               StdOutput,
+               BACKGROUND_WHITE,
+               xScreen,
+               coPos,
+               &Written);
+
+       FillConsoleOutputCharacterA(
+               StdOutput,
+               ' ',
+               xScreen,
+               coPos,
+               &Written);
+
+    coPos.X = x;
+
+       WriteConsoleOutputCharacterA(
+               StdOutput,
+               Buffer,
+               (ULONG)strlen(Buffer),
+               coPos,
+               &Written);
+}
+
+VOID
+CONSOLE_SetStatusTextAutoFitX(
+    IN SHORT x,
+       IN LPCSTR fmt, ...)
+{
+       CHAR Buffer[128];
+    DWORD Length;
+       va_list ap;
+
+       va_start(ap, fmt);
+       vsprintf(Buffer, fmt, ap);
+       va_end(ap);
+
+    Length = (ULONG)strlen(Buffer);
+
+    if (Length + x <= 79)
+    {
+        CONSOLE_SetStatusTextX (x , Buffer);
+    }
+    else
+    {
+        CONSOLE_SetStatusTextX (79 - Length , Buffer);
+    }
+}
+
 VOID
 CONSOLE_SetInvertedTextXY(
        IN SHORT x,
@@ -537,49 +603,55 @@ CONSOLE_SetStyledText(
 
     if (Flags & TEXT_TYPE_STATUS)
        {
+               coPos.X = x;
                coPos.Y = yScreen - 1;
-               coPos.X = 0;
        }
     else /* TEXT_TYPE_REGULAR (Default) */
     {
-               coPos.X = x;
+        coPos.X = x;
                coPos.Y = y;
     }
 
-       if (Flags & TEXT_ALIGN_LEFT)
+    if (Flags & TEXT_ALIGN_CENTER)
+       {
+               coPos.X = (xScreen - Length) /2; 
+       }
+    else if(Flags & TEXT_ALIGN_RIGHT)
        {
-               coPos.X = 0;
-       
+               coPos.X = coPos.X - Length; 
+
                if (Flags & TEXT_PADDING_SMALL)
                {
-                       coPos.X += 1;
+                       coPos.X -= 1;
+               }
+               else if (Flags & TEXT_PADDING_MEDIUM)
+               {
+                       coPos.X -= 2; 
                }
                else if (Flags & TEXT_PADDING_BIG)
                {
-                       coPos.X += 2; 
+                       coPos.X -= 3;
                }
        }
-    else if (Flags & TEXT_ALIGN_RIGHT)
+       else /* TEXT_ALIGN_LEFT (Default) */
        {
-               coPos.X = coPos.X - Length; 
-
                if (Flags & TEXT_PADDING_SMALL)
                {
-                       coPos.X -= 1;
+                       coPos.X += 1;
                }
+               else if (Flags & TEXT_PADDING_MEDIUM)
+               {
+                       coPos.X += 2; 
+               }               
                else if (Flags & TEXT_PADDING_BIG)
                {
-                       coPos.X -= 2; 
+                       coPos.X += 3;
                }
        }
-    else if (Flags & TEXT_ALIGN_CENTER)
-       {
-               coPos.X = (xScreen - Length) /2; 
-       }
 
        if (Flags & TEXT_TYPE_STATUS)
        {
-        CONSOLE_SetStatusText(Text);
+        CONSOLE_SetStatusTextX(coPos.X, Text);
        }
     else /* TEXT_TYPE_REGULAR (Default) */
     {