def __init__(self,keyboard,row,col,title1,title2,cb,ccb): self.input='' self.title1=title1 self.title2=title2 self.titlelen=max(len(title1),len(title2)) self.cb=cb self.ccb=ccb keyboard.register(self.onkey,self.oncontrolkey,None) col=int((config.columns-4-self.titlelen)/2) if row+6 > config.rows: row=config.rows-6 self.row=row self.col=col vte.unsetcursor() vte.setcolors(0,15) vte.setunderline(0) bl=' '*(self.titlelen+4) for i in range(6): vte.moveto(row+i,col) vte.drawstring(bl) vte.moveto(row+1,col+2) vte.drawstring(self.title1) vte.moveto(row+2,col+2) vte.drawstring(self.title2) vte.setcolors(15,0) vte.moveto(row+4,col+2) vte.drawstring(' '*self.titlelen) vte.moveto(row+4,col+2) vte.setcursor()
def drawheadercenter(row, text): vte.setcolors(0, 15) vte.setunderline(1) col = int((config.columns - len(text)) / 2) if col < 0: col = 0 vte.moveto(0, col) vte.drawstring(text)
def oncontrolkey(self,code): if code==117: vte.unsetcursor() self.input='' vte.moveto(self.row+4,self.col+2) vte.drawstring(' '*self.titlelen) vte.moveto(self.row+4,self.col+2) vte.setcursor()
def onkey(self,code): if code==8: if not len(self.input): return vte.unsetcursor() self.input=self.input[:-1] vte.moveto(self.row+4,self.col+2+len(self.input)) vte.drawstring(' ') vte.moveto(self.row+4,self.col+2+len(self.input)) vte.setcursor() elif code==27: keyboard.clear() self.ccb() elif code==13: keyboard.clear() self.cb() else: if len(self.input)<self.titlelen: vte.drawstring('*') vte.setcursor() self.input+=chr(code)
def draw(self): self.isactive=1 if not self.issorted: self.sort() self.keyboard.register(self.onkey,None,self.onpointer) r=2 vte.unsetcursor() vte.clear() misc.drawheaderleft(0,self.title) for it in self.list: it[3]=r it[4]=1 it[5]=1+2+len(it[1]) vte.moveto(r,1); r+=1 vte.setcolors(15,0) vte.setunderline(0) vte.drawstring(it[0]) vte.drawstring(": ") vte.setcolors(4,0) vte.setunderline(1) vte.drawstring(it[1]) return 0
def debug(s): vte.moveto(config.rows - 1, 0) vte.clearlines() vte.drawstring("Script output [ ") vte.drawstring(s) vte.drawstring(" ]")
def drawheaderleft(row, text): vte.setcolors(0, 15) vte.setunderline(1) vte.moveto(0, 0) vte.drawstring(text)