Quellcode durchsuchen

add RestoreScrolled in Warehouse

cuu vor 4 Jahren
Ursprung
Commit
987587c5af
1 geänderte Dateien mit 40 neuen und 8 gelöschten Zeilen
  1. 40 8
      Menu/GameShell/21_Warehouse/__init__.py

+ 40 - 8
Menu/GameShell/21_Warehouse/__init__.py

@@ -544,7 +544,9 @@ class GameStorePage(Page):
     _aria2_db = "aria2tasks.db"
     _warehouse_db = "warehouse.db"
     _GobjTimer = -1
-    
+
+    _Scrolled_cnt = 0
+
     def __init__(self):
         Page.__init__(self)
         self._Icons = {}
@@ -671,10 +673,7 @@ class GameStorePage(Page):
             
             self._MyList.append(li)
             
-            if self._PsIndex > len(self._MyList) - 1:
-                self._PsIndex = len(self._MyList) - 1
-            if self._PsIndex < 0:
-                self._PsIndex = 0   
+        self.RefreshPsIndex()
             
         
     def Init(self):
@@ -724,7 +723,7 @@ class GameStorePage(Page):
 
         self._PreviewPage = ImageDownloadProcessPage()
         self._PreviewPage._Screen = self._Screen
-        self._PreviewPage._Name = "preview"
+        self._PreviewPage._Name = "Preview"
         self._PreviewPage.Init()
 
         self._LoadHousePage = LoadHousePage()
@@ -1002,7 +1001,6 @@ class GameStorePage(Page):
         self.SyncList()
  
     def OnReturnBackCb(self):
-
         if self._MyStack.Length() == 1:
             self._FootMsg[2] = "Remove"
             self._FootMsg[1] = "Update"
@@ -1011,6 +1009,8 @@ class GameStorePage(Page):
             self._FootMsg[1] = "Preview"
 
         self.SyncList()
+        self.RestoreScrolled()
+
         self._Screen.Draw()
         self._Screen.SwapAndShow()
        
@@ -1019,6 +1019,34 @@ class GameStorePage(Page):
         self._Screen.Draw()
         self._Screen.SwapAndShow()
         """
+
+    def ScrollDown(self):
+        if len(self._MyList) == 0:
+            return
+        self._PsIndex += 1
+        if self._PsIndex >= len(self._MyList):
+            self._PsIndex = len(self._MyList)-1
+
+        cur_li = self._MyList[self._PsIndex]
+        if cur_li._PosY+cur_li._Height > self._Height:
+            for i in range(0, len(self._MyList)):
+                self._MyList[i]._PosY -= self._MyList[i]._Height
+
+            self._Scrolled_cnt -= self._MyList[i]._Height
+
+    def ScrollUp(self):
+        if len(self._MyList) == 0:
+            return
+        self._PsIndex -= 1
+        if self._PsIndex < 0:
+            self._PsIndex = 0
+        cur_li = self._MyList[self._PsIndex]
+        if cur_li._PosY < 0:
+            for i in range(0, len(self._MyList)):
+                self._MyList[i]._PosY += self._MyList[i]._Height
+
+            self._Scrolled_cnt += self._MyList[i]._Height
+
     def KeyDown(self,event):
         if IsKeyMenuOrB(event.key):
 
@@ -1091,12 +1119,16 @@ class GameStorePage(Page):
             self.ScrollUp()
             self._Screen.Draw()
             self._Screen.SwapAndShow()
+
         if event.key == CurKeys["Down"]:
             self.ScrollDown()
             self._Screen.Draw()
             self._Screen.SwapAndShow()
 
-    
+    def RestoreScrolled(self):
+        for i in range(0, len(self._MyList)):
+            self._MyList[i]._PosY += self._Scrolled_cnt
+
     def Draw(self):
 
         self.ClearCanvas()