| # Test waste module. |
| # 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 waste |
| import WASTEconst |
| import os |
| |
| class WasteWindow(Window): |
| def open(self, name): |
| r = (40, 40, 400, 300) |
| w = Win.NewWindow(r, name, 1, 0, -1, 1, 0x55555555) |
| r2 = (0, 0, 400-40-16, 300-40-16) |
| Qd.SetPort(w) |
| flags = WASTEconst.weDoAutoScroll | WASTEconst.weDoOutlineHilite | \ |
| WASTEconst.weDoMonoStyled |
| self.ted = waste.WENew(r2, r2, flags) |
| w.DrawGrowIcon() |
| self.wid = w |
| self.do_postopen() |
| |
| def do_idle(self): |
| self.ted.WEIdle() |
| |
| def do_activate(self, onoff, evt): |
| if onoff: |
| self.ted.WEActivate() |
| else: |
| self.ted.WEDeactivate() |
| |
| def do_update(self, wid, event): |
| Qd.EraseRect(wid.GetWindowPort().portRect) |
| self.ted.WEUpdate(wid.GetWindowPort().visRgn) |
| |
| def do_contentclick(self, local, modifiers, evt): |
| (what, message, when, where, modifiers) = evt |
| self.ted.WEClick(local, modifiers, when) |
| |
| def do_char(self, ch, event): |
| (what, message, when, where, modifiers) = event |
| self.ted.WEKey(ord(ch), modifiers) |
| |
| class TestWaste(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 = WasteWindow(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 the WASTE interface. |
| Simple window in which you can type""") |
| |
| def do_idle(self, *args): |
| for l in self.listoflists: |
| l.do_idle() |
| |
| def main(): |
| print 'Open app' |
| App = TestWaste() |
| print 'run' |
| App.mainloop() |
| |
| if __name__ == '__main__': |
| main() |
| |