- Implement generic list PageUp/PageDown
[reactos.git] / reactos / base / setup / usetup / interface / usetup.c
index f3c6031..9fbd0af 100644 (file)
@@ -621,21 +621,37 @@ LanguagePage(PINPUT_RECORD Ir)
         if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
             (Ir->Event.KeyEvent.wVirtualKeyCode == VK_DOWN))  /* DOWN */
         {
-#if 0 //Dynamically update user interface
-            SelectedLanguageId = (PWCHAR)LanguageList->CurrentEntry->UserData;
+#if 0
+            SelectedLanguageId = (PWCHAR)GetListEntryUserData(GetCurrentListEntry(LanguageList));
+
+            /* Redraw language selection page in native language */
             MUIDisplayPage(LANGUAGE_PAGE);
 #endif
+
             ScrollDownGenericList (LanguageList);
         }
         else if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
                  (Ir->Event.KeyEvent.wVirtualKeyCode == VK_UP))  /* UP */
         {
 #if 0
-            SelectedLanguageId = (PWCHAR)LanguageList->CurrentEntry->UserData;
+            SelectedLanguageId = (PWCHAR)GetListEntryUserData(GetCurrentListEntry(LanguageList));
+
+            /* Redraw language selection page in native language */
             MUIDisplayPage(LANGUAGE_PAGE);
 #endif
+
             ScrollUpGenericList (LanguageList);
         }
+        if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
+            (Ir->Event.KeyEvent.wVirtualKeyCode == VK_NEXT))  /* PAGE DOWN */
+        {
+            ScrollPageDownGenericList (LanguageList);
+        }
+        else if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
+                 (Ir->Event.KeyEvent.wVirtualKeyCode == VK_PRIOR))  /* PAGE UP */
+        {
+            ScrollPageUpGenericList (LanguageList);
+        }
         else if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
                  (Ir->Event.KeyEvent.wVirtualKeyCode == VK_F3))  /* F3 */
         {
@@ -1269,6 +1285,16 @@ LayoutSettingsPage(PINPUT_RECORD Ir)
         {
             ScrollUpGenericList (LayoutList);
         }
+        if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
+            (Ir->Event.KeyEvent.wVirtualKeyCode == VK_NEXT))  /* PAGE DOWN */
+        {
+            ScrollPageDownGenericList (LayoutList);
+        }
+        else if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
+                 (Ir->Event.KeyEvent.wVirtualKeyCode == VK_PRIOR))  /* PAGE UP */
+        {
+            ScrollPageUpGenericList (LayoutList);
+        }
         else if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
                  (Ir->Event.KeyEvent.wVirtualKeyCode == VK_F3))  /* F3 */
         {
@@ -1287,6 +1313,11 @@ LayoutSettingsPage(PINPUT_RECORD Ir)
         {
             return DEVICE_SETTINGS_PAGE;
         }
+        else if ((Ir->Event.KeyEvent.uChar.AsciiChar > 0x60) && (Ir->Event.KeyEvent.uChar.AsciiChar < 0x7b))
+        {
+            /* a-z */
+            GenericListKeyPress (LayoutList , Ir->Event.KeyEvent.uChar.AsciiChar);
+        }
     }
 
     return DISPLAY_SETTINGS_PAGE;