Open a menu with the mouse

This commit is contained in:
Yohann D'ANELLO
2020-12-11 17:40:56 +01:00
parent bbe37eab97
commit d50f6701f4
3 changed files with 24 additions and 1 deletions

View File

@ -41,6 +41,13 @@ class MenuDisplay(Display):
self.height - 2 + self.y,
self.width - 2 + self.x)
def handle_click(self, y: int, x: int) -> None:
"""
We can select a menu item with the mouse.
"""
self.menu.position = y - 1
curses.ungetch('\n')
@property
def truewidth(self) -> int:
return max([len(str(a)) for a in self.values])
@ -99,6 +106,14 @@ class MainMenuDisplay(Display):
menuy, menux, min(self.menudisplay.preferred_height,
self.height - menuy), menuwidth)
def handle_click(self, y: int, x: int) -> None:
menuwidth = min(self.menudisplay.preferred_width, self.width)
menuy, menux = len(self.title) + 8, self.width // 2 - menuwidth // 2 - 1
menuheight = min(self.menudisplay.preferred_height, self.height - menuy)
if menuy <= y < menuy + menuheight and menux <= x < menux + menuwidth:
self.menudisplay.handle_click(y - menuy, x - menux)
class InventoryDisplay(MenuDisplay):
def update_pad(self) -> None: