# Test FrameWork scrollbars # Draw a window in which the user can type. # # This test expects Win, Evt and FrameWork (and anything used by those) # to work. # # Actually, it is more a test of FrameWork by now.... from FrameWork import * import Win import Qd import TE import os class MyWindow(ScrolledWindow): def open(self, name): r = (40, 40, 400, 300) w = Win.NewWindow(r, name, 1, 0, -1, 1, 0x55555555) self.ourrect = 0, 0, 360-SCROLLBARWIDTH-1, 260-SCROLLBARWIDTH-1 Qd.SetPort(w) w.DrawGrowIcon() self.wid = w self.do_postopen() self.vx = self.vy = 0 self.scrollbars() def getscrollbarvalues(self): return self.vx, self.vy def scrollbar_callback(self, which, what, value): if what == '-': delta = -1 elif what == '--': delta = -100 elif what == '+': delta = 1 elif what == '++': delta = 100 if which == 'x': if value: self.vx = value else: self.vx = self.vx + delta else: if value: self.vy = value else: self.vy = self.vy + delta Win.InvalWindowRect(self.ourrect) def do_update(self, wid, event): Qd.EraseRect(self.ourrect) Qd.MoveTo(40, 40) Qd.DrawString("x=%d, y=%d"%(self.vx, self.vy)) class TestSW(Application): def __init__(self): Application.__init__(self) self.num = 0 self.listoflists = [] def makeusermenus(self): self.filemenu = m = Menu(self.menubar, "File") self.newitem = MenuItem(m, "New window...", "O", self.open) self.quititem = MenuItem(m, "Quit", "Q", self.quit) def open(self, *args): w = MyWindow(self) w.open('Window %d'%self.num) self.num = self.num + 1 self.listoflists.append(w) def quit(self, *args): raise self def do_about(self, id, item, window, event): EasyDialogs.Message("""Test scrolling FrameWork windows""") def main(): App = TestSW() App.mainloop() if __name__ == '__main__': main()