Screen is resizable (but please be nice with it)
This commit is contained in:
		@@ -10,6 +10,7 @@ class Display:
 | 
			
		||||
    y: int
 | 
			
		||||
    width: int
 | 
			
		||||
    height: int
 | 
			
		||||
    pad: Any
 | 
			
		||||
 | 
			
		||||
    def __init__(self, screen: Any, pack: Optional[TexturePack] = None):
 | 
			
		||||
        self.screen = screen
 | 
			
		||||
@@ -23,6 +24,8 @@ class Display:
 | 
			
		||||
        self.y = y
 | 
			
		||||
        self.width = width
 | 
			
		||||
        self.height = height
 | 
			
		||||
        if self.pad:
 | 
			
		||||
            self.pad.resize(height - 1, width - 1)
 | 
			
		||||
 | 
			
		||||
    def refresh(self, *args) -> None:
 | 
			
		||||
        if len(args) == 4:
 | 
			
		||||
 
 | 
			
		||||
@@ -34,14 +34,13 @@ class DisplayManager:
 | 
			
		||||
                                      self.rows // 5, self.cols)
 | 
			
		||||
        if self.game.state == GameMode.MAINMENU:
 | 
			
		||||
            self.mainmenudisplay.refresh(0, 0, self.rows, self.cols)
 | 
			
		||||
        self.resize_window()
 | 
			
		||||
 | 
			
		||||
    def ensure_resized(self, *pads) -> bool:
 | 
			
		||||
    def resize_window(self) -> bool:
 | 
			
		||||
        """
 | 
			
		||||
        If the window got resized, ensure that the pads are also resized.
 | 
			
		||||
        If the window got resized, ensure that the screen size got updated.
 | 
			
		||||
        """
 | 
			
		||||
        y, x = self.screen.getmaxyx() if self.screen else (0, 0)
 | 
			
		||||
        for pad in pads:
 | 
			
		||||
            pad.resize(y, x)
 | 
			
		||||
        if self.screen and curses.is_term_resized(self.rows, self.cols):
 | 
			
		||||
            curses.resizeterm(y, x)
 | 
			
		||||
            return True
 | 
			
		||||
 
 | 
			
		||||
@@ -44,8 +44,8 @@ class MenuDisplay(Display):
 | 
			
		||||
                             self.width + self.x)
 | 
			
		||||
        self.update_pad()
 | 
			
		||||
        self.pad.refresh(cornery, 0, self.y + 1, self.x + 2,
 | 
			
		||||
                         self.height - 1 + self.y,
 | 
			
		||||
                         self.width - 1 + self.x)
 | 
			
		||||
                         self.height - 2 + self.y,
 | 
			
		||||
                         self.width - 2 + self.x)
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def preferred_width(self) -> int:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user