]> git.mar77i.info Git - zenbook_gui/commitdiff
fix method order to be handle_event, update, draw. handle windowexposed and activeeve...
authormar77i <mar77i@protonmail.ch>
Tue, 11 Feb 2025 08:12:24 +0000 (09:12 +0100)
committermar77i <mar77i@protonmail.ch>
Tue, 11 Feb 2025 08:12:24 +0000 (09:12 +0100)
ui/base.py
ui/scroll.py
ui/switch.py

index 117837f0876e80d34ccb10db282d4f1b641bfc20..3eb6a3deb8421d83abcb830c8381f3dd275b50c0 100644 (file)
@@ -137,19 +137,16 @@ class Root(FocusRootMixin, Parent):
         self.stop_event = False
         self.root = self
 
-    def handle_quit(self, _):
+    def handle_quit(self, _=None):
         self.running = False
 
-    def handle_windowexposed(self, _):
-        self.dirty = True
+    KEY_METHODS = {frozenset(set()): {pygame.K_ESCAPE: handle_quit}}
 
-    handle_activeevent = handle_windowexposed
-
-    def key_escape(self):
-        if self.active:
-            self.running = False
-
-    KEY_METHODS = {frozenset(set()): {pygame.K_ESCAPE: key_escape}}
+    def handle_event(self, ev):
+        if ev.type in (pygame.WINDOWEXPOSED, pygame.ACTIVEEVENT):
+            self.dirty = True
+            return
+        super().handle_event(ev)
 
     def draw(self):
         if hasattr(self, "BACKGROUND_COLOR"):
index 577021aa14196012598079f018b44e37536f1847..6a98cf0c0e45b52f27f083e4e8cf16ac258f679d 100644 (file)
@@ -11,6 +11,22 @@ class Scroll(Parent, Child):
         self.scroll_x = 0
         self.scroll_y = 0
 
+    def handle_event(self, ev):
+        if hasattr(ev, "pos"):
+            if not self.rect.collidepoint(ev.pos):
+                return
+            ev = pygame.event.Event(
+                ev.type,
+                {
+                    **ev.__dict__,
+                    "pos": (
+                        ev.pos[0] - self.rect.left + self.scroll_x,
+                        ev.pos[1] - self.rect.top + self.scroll_y,
+                    )
+                },
+            )
+        super().handle_event(ev)
+
     @property
     def surf(self):
         return self._surf
@@ -31,19 +47,3 @@ class Scroll(Parent, Child):
         super().draw()
         pygame.draw.rect(self.parent.surf, "gray", self.rect)
         self.root.surf.blit(self.get_subsurf(), self.rect.topleft)
-
-    def handle_event(self, ev):
-        if hasattr(ev, "pos"):
-            if not self.rect.collidepoint(ev.pos):
-                return
-            ev = pygame.event.Event(
-                ev.type,
-                {
-                    **ev.__dict__,
-                    "pos": (
-                        ev.pos[0] - self.rect.left + self.scroll_x,
-                        ev.pos[1] - self.rect.top + self.scroll_y,
-                    )
-                },
-            )
-        super().handle_event(ev)
index 634ca685cb00c5882387d2a3376ec16fab9cfb84..14279db3bb415ea9bc2cd0b59d607d77bb5eea6a 100644 (file)
@@ -44,6 +44,10 @@ class Switch(Child):
         self.moving_since = nan
         self.flip_again = False
 
+    def update(self):
+        if self.moving_since is not nan:
+            self.dirty = True
+
     def draw(self):
         pygame.draw.rect(self.surf, "gray", self.rect, 8)
         t = time()
@@ -82,10 +86,6 @@ class Switch(Child):
             base_radius
         )
 
-    def update(self):
-        if self.moving_since is not nan:
-            self.dirty = True
-
     def set_value(self, value):
         if value == self.value:
             return