import curses import color from point import Point class HighlightRegion(object): def __init__(self, w, p1, p2, fg='default', bg='default', match=None, name='lit'): self.window = w self.p1 = p1 self.p2 = p2 self.fg = fg self.bg = bg self.match = match self.name = name def __len__(self): return 5 def __getitem__(self, i): if i == 0: return self.window elif i == 1: return self.p1 elif i == 2: return self.p2 elif i == 3: return self.fg elif i == 4: return self.bg else: raise IndexError class RenderString(object): def __init__(self, s, y=0, x=0, attrs=None): if attrs is None: attrs = color.build('default', 'default') self.string = s self.y = y self.x = x self.attrs = attrs def draw(self, cwin, y, x, x2=None): try: if x2: s = '%-*s' % (x2 - x, self.string) else: s = self.string s2 = s.encode('utf-8') cwin.addstr(self.y + y, self.x + x, s2, self.attrs) except curses.error: raise #v = (self.y, y, self.x, x, self.string, self.attrs, str(e)) #raise Exception, "cwin.addstr(%d + %d, %d + %d, %r, %r) failed:\n%s" % v