tuikit/core/window.py
changeset 119 dd91747504dd
parent 114 26c02bd94bd9
equal deleted inserted replaced
118:8c7970520632 119:dd91747504dd
    39         """Resize buffer when window gets resized."""
    39         """Resize buffer when window gets resized."""
    40         Container.resize(self, w, h)
    40         Container.resize(self, w, h)
    41         self.buffer.resize(w, h)
    41         self.buffer.resize(w, h)
    42         self.redraw()
    42         self.redraw()
    43 
    43 
    44     def redraw(self):
    44     def draw_content_if_needed(self):
    45         self.buffer.reset_origin()
    45         """Draw window contents into its own buffer."""
    46         Container.draw(self, self.buffer)
    46         buffer = self.buffer
    47 #        self.buffer.puts('{0.w} {0.h}'.format(self.size), 10, 5)
    47         buffer.reset_origin()
    48 #        self.buffer.frame()
    48         for child in self._widgets:
       
    49             with buffer.moved_origin(child.x, child.y):
       
    50                 with buffer.clip(buffer.origin.x, buffer.origin.y,
       
    51                                  child.width, child.height):
       
    52                     child.draw_if_needed(buffer)
       
    53 
       
    54     def draw_if_needed(self, buffer):
       
    55         """Refresh window content and draw it into `buffer` if required."""
       
    56         self.draw_content_if_needed()
       
    57         # Draw window unconditionally (for now)
       
    58         self.draw(buffer)
    49 
    59 
    50     def draw(self, buffer):
    60     def draw(self, buffer):
    51         """Draw this window into `buffer`."""
    61         """Draw window buffer into given`buffer`."""
    52         self.redraw()
       
    53         buffer.draw(self.buffer)
    62         buffer.draw(self.buffer)
    54 
    63 
    55 
    64 
    56 class WindowManager(Container):
    65 class WindowManager(Container):
    57 
    66