Guido van Rossum | babe2bf | 1992-01-22 22:21:31 +0000 | [diff] [blame] | 1 | # basewin.py |
| 2 | |
| 3 | import stdwin |
| 4 | import mainloop |
| 5 | from stdwinevents import * |
| 6 | |
| 7 | class BaseWindow: |
| 8 | |
Guido van Rossum | 7bc817d | 1993-12-17 15:25:27 +0000 | [diff] [blame^] | 9 | def __init__(self, title): |
Guido van Rossum | babe2bf | 1992-01-22 22:21:31 +0000 | [diff] [blame] | 10 | self.win = stdwin.open(title) |
| 11 | self.win.dispatch = self.dispatch |
| 12 | mainloop.register(self.win) |
Guido van Rossum | babe2bf | 1992-01-22 22:21:31 +0000 | [diff] [blame] | 13 | |
| 14 | # def reopen(self): |
| 15 | # title = self.win.gettitle() |
| 16 | # winpos = self.win.getwinpos() |
| 17 | # winsize = self.win.getwinsize() |
| 18 | # origin = self.win.getorigin() |
| 19 | # docsize = self.win.getdocsize() |
| 20 | # mainloop.unregister(self.win) |
| 21 | # del self.win.dispatch |
| 22 | # self.win.close() |
| 23 | # stdwin.setdefwinpos(winpos) |
| 24 | # stdwin.setdefwinsize(winsize) |
| 25 | # self.win = stdwin.open(title) |
| 26 | # stdwin.setdefwinpos(0, 0) |
| 27 | # stdwin.setdefwinsize(0, 0) |
| 28 | # self.win.setdocsize(docsize) |
| 29 | # self.win.setorigin(origin) |
| 30 | # self.win.dispatch = self.dispatch |
| 31 | # mainloop.register(self.win) |
| 32 | |
| 33 | def popup(self): |
| 34 | if self.win is not stdwin.getactive(): |
| 35 | self.win.setactive() |
| 36 | |
| 37 | def close(self): |
| 38 | mainloop.unregister(self.win) |
| 39 | del self.win.dispatch |
| 40 | self.win.close() |
| 41 | |
| 42 | def dispatch(self, event): |
| 43 | type, win, detail = event |
| 44 | if type == WE_CHAR: |
| 45 | self.char(detail) |
| 46 | elif type == WE_COMMAND: |
| 47 | self.command(detail) |
| 48 | elif type == WE_MOUSE_DOWN: |
| 49 | self.mouse_down(detail) |
| 50 | elif type == WE_MOUSE_MOVE: |
| 51 | self.mouse_move(detail) |
| 52 | elif type == WE_MOUSE_UP: |
| 53 | self.mouse_up(detail) |
| 54 | elif type == WE_DRAW: |
| 55 | self.draw(detail) |
| 56 | elif type == WE_CLOSE: |
| 57 | self.close() |
| 58 | |
| 59 | def no_op(self, detail): |
| 60 | pass |
| 61 | char = command = mouse_down = mouse_move = mouse_up = draw = no_op |
| 62 | |
| 63 | def refreshall(self): |
| 64 | self.win.change((-10, 0), (10000, 30000)) |