diff -r 0c2e0c09ba5c -r 105b1affc3c2 tuikit/widgets/textfield.py --- a/tuikit/widgets/textfield.py Fri Mar 28 19:58:59 2014 +0100 +++ b/tuikit/widgets/textfield.py Wed Sep 03 19:08:21 2014 +0200 @@ -7,10 +7,9 @@ def __init__(self, value=''): Widget.__init__(self) + self.allow_focus = True self.sizereq.update(10, 1) - self.allow_focus = True - self.code = locale.getpreferredencoding() if not isinstance(value, str): value = str(value, self.code) @@ -25,11 +24,9 @@ def resize(self, w, h): self.tw = self.width - 2 - def set_theme(self, theme): - self.color = theme.normal - def draw(self, buffer): - with buffer.attr(self.color): + color = self.theme.active if self.has_focus() else self.theme.normal + with buffer.attr(color): # draw value val = self.value + ' ' * self.tw # add spaces to fill rest of field val = val[self.ofs : self.ofs + self.tw] # cut value - begin from ofs, limit to tw chars @@ -49,8 +46,7 @@ self._cursor = (1 + self.curspos - self.ofs, 0) def keypress(self, keyname, char, mod=0): - Widget.keypress(self, keyname, char, mod) - accepted = True + consumed = True if keyname == 'left': self.move_left() elif keyname == 'right': @@ -62,16 +58,17 @@ elif keyname == 'delete': self.del_char() else: - accepted = False + consumed = False if char: self.add_char(char) self.move_right() - accepted = True + consumed = True - #if accepted: + if consumed: #self.redraw() - return accepted + return True + Widget.keypress(self, keyname, char, mod) def move_left(self): if self.curspos - self.ofs > 1 or (self.ofs == 0 and self.curspos == 1):