[ros-diffs] [frik85] 33491: improve visual scroll behavior (arrow-up/-down hints) of the generic list (first step setup)

frik85 at svn.reactos.org frik85 at svn.reactos.org
Tue May 13 10:04:59 CEST 2008


Author: frik85
Date: Tue May 13 03:04:59 2008
New Revision: 33491

URL: http://svn.reactos.org/svn/reactos?rev=33491&view=rev
Log:
improve visual scroll behavior (arrow-up/-down hints) of the generic list (first step setup)

Modified:
    trunk/reactos/base/setup/usetup/genlist.c

Modified: trunk/reactos/base/setup/usetup/genlist.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/genlist.c?rev=33491&r1=33490&r2=33491&view=diff
==============================================================================
--- trunk/reactos/base/setup/usetup/genlist.c [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/genlist.c [iso-8859-1] Tue May 13 03:04:59 2008
@@ -238,7 +238,25 @@
         ListEntry = CONTAINING_RECORD (Entry, GENERIC_LIST_ENTRY, Entry);
 
         if (coPos.Y == GenericList->Bottom)
+        {
+            coPos.X = GenericList->Right - 4;
+            coPos.Y = GenericList->Top;
+            WriteConsoleOutputCharacterA (StdOutput,
+                                         (LPCTSTR)"(\x18)",
+                                         3,
+                                         coPos,
+                                         &Written);
+
+            coPos.X = GenericList->Right - 4;
+            coPos.Y = GenericList->Bottom;
+            WriteConsoleOutputCharacterA (StdOutput,
+                                         (LPCTSTR)"(\x19)",
+                                         3,
+                                         coPos,
+                                         &Written);
             break;
+        }
+
         GenericList->LastShown = Entry;
 
         FillConsoleOutputAttribute (StdOutput,
@@ -311,12 +329,26 @@
 ScrollDownGenericList (PGENERIC_LIST List)
 {
     PLIST_ENTRY Entry;
+    COORD coPos;
+    DWORD Written;
 
     if (List->CurrentEntry == NULL)
         return;
 
     if (List->CurrentEntry->Entry.Flink != &List->ListHead)
     {
+        if (List->LastShown != &List->ListHead)
+        {
+            /* Draw lower edge */
+            coPos.X = List->Left + 1;
+            coPos.Y = List->Bottom;
+            FillConsoleOutputCharacterA (StdOutput,
+                                         0xC4, // '-',
+                                         List->Right - List->Left - 1,
+                                         coPos,
+                                         &Written);
+        }
+
         Entry = List->CurrentEntry->Entry.Flink;
         if (List->LastShown == &List->CurrentEntry->Entry)
         {
@@ -333,6 +365,8 @@
 ScrollUpGenericList (PGENERIC_LIST List)
 {
     PLIST_ENTRY Entry;
+    COORD coPos;
+    DWORD Written;
 
     if (List->CurrentEntry == NULL)
         return;
@@ -348,6 +382,17 @@
         List->CurrentEntry = CONTAINING_RECORD (Entry, GENERIC_LIST_ENTRY, Entry);
         DrawListEntries(List);
     }
+    else
+    {
+        /* Draw upper edge */
+        coPos.X = List->Left + 1;
+        coPos.Y = List->Top;
+        FillConsoleOutputCharacterA (StdOutput,
+                                     0xC4, // '-', 
+                                     List->Right - List->Left - 1,
+                                     coPos,
+                                     &Written);
+    }
 }
 
 



More information about the Ros-diffs mailing list