--- a/tuikit/core/window.py Fri Mar 28 19:58:59 2014 +0100
+++ b/tuikit/core/window.py Wed Sep 03 19:08:21 2014 +0200
@@ -17,6 +17,8 @@
"""New buffer for the window will be created unless given existing
`buffer` as parameter."""
Container.__init__(self)
+ self.allow_focus = True
+ self.trap_focus = True
self._buffer = None
self.buffer = buffer or Buffer()
@@ -57,8 +59,16 @@
Container.__init__(self)
self.timer = timer
+ def draw(self, buffer):
+ Container.draw(self, buffer)
+ self.log.debug('%s has focus.', self.get_focused_widget().name)
+
def resize(self, w, h):
- self.children[0].resize(w, h)
+ self._widgets[0].resize(w, h)
+
+ def keypress(self, keyname, char, mod):
+ self.log.debug('keypress(%r, %r, %r)', keyname, char, mod)
+ return Container.keypress(self, keyname, char, mod)
def handle_event(self, event_name, *args):
"""Handle input event to managed windows."""
@@ -67,3 +77,12 @@
handler(*args)
else:
raise Exception('Unknown event: %r %r' % (event_name, args))
+
+ def get_focused_widget(self):
+ """Traverse the widget hierarchy to bottom
+ and return actually focused Widget."""
+ node = self
+ while isinstance(node, Container) and node.focus_widget:
+ node = node.focus_widget
+ return node
+