def yview_scroll(self, *args): # mouse wheel or arrow keys up and down args = (1, 'units'), (-1, 'units') # page up and down keys (1, 'pages')(13, 'units') # (-1, 'pages')(-13, 'units') # end key args = "jumping to End" # home key args = "jumping to Home" height = self.winfo_height() - self.headerHeight #print 'yview_scroll', args #height = int(self.canvas['height']) - self.headerHeight if self.nbLines * self.nodeHeight <= height: return if args[1] == "pages": # FIXME we scroll the whole thing one page linesPerPage = int(args[0]) * (height / self.nodeHeight) self.yview_scroll(linesPerPage, "units") else: # it is a unit scroll of args[0] units v = self.scrollView(int(args[0])) if v: ScrolledCanvas.yview_scroll(self, *args) self.redraw() self.redrawHeader(args)