branch : pmacs2
This commit is contained in:
moculus 2008-04-10 13:46:10 +00:00
parent bb00a2d48d
commit da994c526c
3 changed files with 32 additions and 17 deletions

View File

@ -653,11 +653,13 @@ class Application(object):
i = slot.y_offset + count
if lm:
(lmargin, lattr) = w.mode.get_lmargin(y, x, ended, cont)
self.win.addstr(i, 0, lmargin, lattr)
groups = w.mode.get_lmargin(y, x, ended, cont)
for (x, lmargin, lattr) in groups:
self.win.addstr(i, x, lmargin, lattr)
if rm:
(rmargin, rattr) = w.mode.get_rmargin(y, x, ended, cont)
self.win.addstr(i, slot.width - rm, rmargin, rattr)
groups = w.mode.get_rmargin(y, x, ended, cont)
for (x, rmargin, rattr) in groups:
self.win.addstr(i, slot.width - rm + x, rmargin, rattr)
def _draw_slot_raw(self, i):
slot = self.bufferlist.slots[i]

View File

@ -223,14 +223,12 @@ class Fundamental(Handler):
self.lmargin = 0
self.rmargin = 1
def _null_margin(self, y, x, ended=False, cont=False):
return ('', color.build('default', 'default'))
def _continuation_margin(self, y, x, ended=False, cont=False):
def get_rmargin(self, y, x, ended=False, cont=False):
if cont:
return ('\\', color.build('red', 'default'))
return ((0, '\\', color.build('red', 'default')),)
else:
return (' ', color.build('red', 'default'))
def _line_number_margin(self, y, x=0, ended=False, cont=False):
return ((0, ' ', color.build('red', 'default')),)
def get_lmargin(self, y, x=0, ended=False, cont=False):
lm = self.lmargin
if ended:
i = int(math.log(y, 10)) + 1
@ -239,10 +237,7 @@ class Fundamental(Handler):
s = ('% *d' % (lm - 1, y + 1))[-lm:] + ' '
else:
s = ' ' * lm
return (s, color.build('default', 'default', 'bold'))
get_lmargin = _line_number_margin
get_rmargin = _continuation_margin
return ((0, s, color.build('default', 'default', 'bold')),)
# get mode name
def name(self):

View File

@ -42,13 +42,31 @@ class Hex(mode.Fundamental):
s = ' -------- '
elif x == 0:
s = '0x%08x ' % (y * 16)
return (s, color.build('cyan', 'default', 'bold'))
return ((0, s, color.build('cyan', 'default', 'bold')),)
def get_rmargin(self, y, x=0, ended=False, cont=False):
if ended:
s = ''
return ((0, '', 0),)
else:
(cx, cy) = self.window.cursor.xy()
s = string.translate(self.window.buffer.rawdata[y], self.ctrans)
return (s, color.build('green', 'default', 'bold'))
if cy == y:
i = None
if cx >= 0 and cx < 8:
i = cx // 2
elif cx >= 9 and cx < 17:
i = (cx - 1) // 2
elif cx >= 18 and cx < 26:
i = (cx - 2) // 2
elif cx >= 27 and cx < 35:
i = (cx - 3) // 2
if i is not None:
return ((0, s[0:i], color.build('green', 'default', 'bold')),
(0, s[i], color.build('green', 'default', 'bold', 'reverse')),
(0, s[i+1:], color.build('green', 'default', 'bold')))
else:
return ((0, s, color.build('green', 'default', 'bold')),)
else:
return ((0, s, color.build('green', 'default', 'bold')),)
class GotoWord(Method):
'''Jump to the specified line number'''