Browse Source

Add PageUp/Down for rom list

hi80482 3 years ago
parent
commit
875b8feed9
1 changed files with 47 additions and 8 deletions
  1. 47 8
      sys.py/UI/Emulator/rom_list_page.py

+ 47 - 8
sys.py/UI/Emulator/rom_list_page.py

@@ -114,6 +114,7 @@ class RomListPage(Page):
 
     _RomSoConfirmDownloadPage = None
 
+    _Backspace = False
 
     def __init__(self):
         Page.__init__(self)
@@ -433,7 +434,9 @@ class RomListPage(Page):
         if cur_time - self._Screen._LastKeyDown > 0.3:
             self._ScrollStep = 1 
 
-    def KeyDown(self,event):
+    # def KeyDown(self,event):
+    # fast: fast display mode
+    def KeyDown(self, event, fast = False):
 
         if IsKeyMenuOrB(event.key): 
             self.ReturnToUpLevelPage()
@@ -441,22 +444,49 @@ class RomListPage(Page):
             self._Screen.SwapAndShow()
 
         if event.key == CurKeys["Right"]:
-            self._Screen.PushCurPage()
-            self._Screen.SetCurPage(self._Parent.FavListPage)
+            # self._Screen.PushCurPage()
+            # self._Screen.SetCurPage(self._Parent.FavListPage)
+            if not self._Backspace:
+                self._Screen.PushCurPage()
+                self._Screen.SetCurPage(self._Parent.FavListPage)
+            else:
+                move = 6
+                pagedown = pygame.event.Event(pygame.KEYDOWN, key = CurKeys["Down"])
+
+                for i in range(move):
+                    self.KeyDown(pagedown, True)
+
             self._Screen.Draw()
             self._Screen.SwapAndShow()
-        
+
+        if event.key == CurKeys["Left"]:
+            if self._Backspace:
+                move = 6
+                pageup = pygame.event.Event(pygame.KEYDOWN, key = CurKeys["Up"])
+
+                for i in range(move):
+                    self.KeyDown(pageup, True)
+
+            self._Screen.Draw()
+            self._Screen.SwapAndShow()
+
         if event.key == CurKeys["Up"]:
             self.SpeedScroll(event.key)
             self.ScrollUp()
-            self._Screen.Draw()
-            self._Screen.SwapAndShow()
+            # self._Screen.Draw()
+            # self._Screen.SwapAndShow()
+            if not fast:
+                self._Screen.Draw()
+                self._Screen.SwapAndShow()
 
         if event.key == CurKeys["Down"]:
             self.SpeedScroll(event.key)
             self.ScrollDown()
-            self._Screen.Draw()
-            self._Screen.SwapAndShow()
+            # self._Screen.Draw()
+            # self._Screen.SwapAndShow()
+            if not fast:
+                self._Screen.Draw()
+                self._Screen.SwapAndShow()
 
         if IsKeyStartOrA(event.key):
             self.Click()
@@ -502,6 +532,15 @@ class RomListPage(Page):
                 self._Screen.SetCurPage(self._Parent.DeleteConfirmPage)
                 self._Screen.Draw()
                 self._Screen.SwapAndShow()
+
+        if event.key == CurKeys["Backspace"]:   # Shift + Menu
+            self._Backspace = not self._Backspace
+            if self._Backspace:
+                self._Screen._MsgBox.SetText("Page Up/Down: ON")
+            else:
+                self._Screen._MsgBox.SetText("Page Up/Down: OFF")
+            self._Screen._MsgBox.Draw()
+            self._Screen.SwapAndShow()
             
     def Draw(self):
         self.ClearCanvas()