42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
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
|
|
cwin.addstr(self.y + y, self.x + x, s, self.attrs)
|
|
except:
|
|
v = (y, self.x, x, self.string, self.attrs)
|
|
raise Exception, "cwin.addstr(%d, %d + %d, %r, %r) failed" % v
|