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"):
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
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)
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()
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