fixed bbox property not returning the correct x2 and y2
This commit is contained in:
parent
11476f5de8
commit
59ee20efe5
4 changed files with 12 additions and 11 deletions
4
main.pyw
4
main.pyw
|
@ -14,8 +14,8 @@ class TestScene(Scene):
|
||||||
self.add_widget(FPSDisplay)
|
self.add_widget(FPSDisplay)
|
||||||
label = self.add_widget(Text, text="Hello World !", x=0.5, y=0.5, width=0.5, height=0.5, anchor_x="center", anchor_y="center")
|
label = self.add_widget(Text, text="Hello World !", x=0.5, y=0.5, width=0.5, height=0.5, anchor_x="center", anchor_y="center")
|
||||||
|
|
||||||
label.on_pressed = lambda self, button, modifiers: print("pressed", self, button, modifiers)
|
label.on_pressed = lambda button, modifiers: print("pressed", label, button, modifiers)
|
||||||
label.on_release = lambda self, button, modifiers: print("release", self, button, modifiers)
|
label.on_release = lambda button, modifiers: print("release", label, button, modifiers)
|
||||||
|
|
||||||
|
|
||||||
# Create a new window
|
# Create a new window
|
||||||
|
|
|
@ -59,14 +59,13 @@ class Scene(ABC):
|
||||||
:return: une fonction appelant l'événement original ainsi que ceux des scènes.
|
:return: une fonction appelant l'événement original ainsi que ceux des scènes.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupère la fonction originale. S'il n'y en a pas, renvoie une fonction sans effet.
|
# Récupère la fonction originale. S'il n'y en a pas, renvoie une fonction sans effet.*
|
||||||
try:
|
func = None
|
||||||
func = super().__getattribute__(item)
|
try: func = super().__getattribute__(item)
|
||||||
except AttributeError:
|
except AttributeError: pass
|
||||||
func = lambda *_, **__: "pass" # NOQA E731
|
|
||||||
|
|
||||||
def _func(*args, **kwargs) -> None:
|
def _func(*args, **kwargs) -> None:
|
||||||
func(*args, **kwargs)
|
if func is not None: func(*args, **kwargs)
|
||||||
for widget in self._widgets:
|
for widget in self._widgets:
|
||||||
getattr(widget, item, lambda *_, **__: "pass")(*args, **kwargs)
|
getattr(widget, item, lambda *_, **__: "pass")(*args, **kwargs)
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ class BoxWidget(Widget, ABC):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def bbox(self) -> tuple[int, int, int, int]:
|
def bbox(self) -> tuple[int, int, int, int]:
|
||||||
return self.x, self.y, self.width, self.height
|
return self.x, self.y, self.x + self.width, self.y + self.height
|
||||||
|
|
||||||
# event
|
# event
|
||||||
|
|
||||||
|
|
|
@ -76,10 +76,12 @@ class Window(pyglet.window.Window): # NOQA
|
||||||
:return: une fonction appelant l'événement original ainsi que ceux des scènes.
|
:return: une fonction appelant l'événement original ainsi que ceux des scènes.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
func = super().__getattribute__(item)
|
func = None
|
||||||
|
try: func = super().__getattribute__(item)
|
||||||
|
except AttributeError: pass
|
||||||
|
|
||||||
def _func(*args, **kwargs) -> None:
|
def _func(*args, **kwargs) -> None:
|
||||||
func(*args, **kwargs)
|
if func is not None: func(*args, **kwargs)
|
||||||
for scene in self._scenes:
|
for scene in self._scenes:
|
||||||
getattr(scene, item)(*args, **kwargs)
|
getattr(scene, item)(*args, **kwargs)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue