def paintBars(self,canvas): if self.size[0]-1 > 0 and self.size[1] -1 > 0: canvas.drawLine((self.size[0]-1,0), height=self.size[1]-1, char='a') canvas.drawLine((0,self.size[1]-1), width=self.size[0]-1, char='a') offset = mul(self.offset, (-1,-1)) hs = (self.contentSize.min[0]+offset[0])/float(self.size[0]-1) he = ((offset[0]+(self.size[0]-1))-self.contentSize.max[0])/float(self.size[0]-1) vs = (self.contentSize.min[1]+offset[1])/float(self.size[1]-1) ve = ((offset[1]+(self.size[1]-1))-self.contentSize.max[1])/float(self.size[1]-1) if ve <= 0: canvas.drawLine((self.size[0]-1,int(vs)), height=int(math.ceil(ve-vs+(self.size[1]-1))), char='{') if he <= 0: canvas.drawLine((int(hs),self.size[1]-1), width=int(math.ceil(he-hs+(self.size[0]-1))), char='{')
def onCommand(self, command): offset = mul(self.offset, (-1,-1)) print command if command == self.canvas.terminfo.tigets('kcuu1'):#up print 'u' if offset[1] > self.contentSize.min[1]: self.offset[1] += 1 elif command == self.canvas.terminfo.tigets('kcud1'):#down print 'd' if offset[1]+self.size[1]-1 < self.contentSize.max[1]: self.offset[1] -= 1 elif command == self.canvas.terminfo.tigets('kcub1'):#left print 'l' if offset[0] > self.contentSize.min[0]: self.offset[0] += 1 elif command == self.canvas.terminfo.tigets('kcuf1'):#right print 'r' if offset[0]+self.size[0]-1 < self.contentSize.max[0]: self.offset[0] -= 1 self.repaint()