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 | |
| 9 | def init(self, title): |
| 10 | self.win = stdwin.open(title) |
| 11 | self.win.dispatch = self.dispatch |
| 12 | mainloop.register(self.win) |
| 13 | return self |
| 14 | |
| 15 | # def reopen(self): |
| 16 | # title = self.win.gettitle() |
| 17 | # winpos = self.win.getwinpos() |
| 18 | # winsize = self.win.getwinsize() |
| 19 | # origin = self.win.getorigin() |
| 20 | # docsize = self.win.getdocsize() |
| 21 | # mainloop.unregister(self.win) |
| 22 | # del self.win.dispatch |
| 23 | # self.win.close() |
| 24 | # stdwin.setdefwinpos(winpos) |
| 25 | # stdwin.setdefwinsize(winsize) |
| 26 | # self.win = stdwin.open(title) |
| 27 | # stdwin.setdefwinpos(0, 0) |
| 28 | # stdwin.setdefwinsize(0, 0) |
| 29 | # self.win.setdocsize(docsize) |
| 30 | # self.win.setorigin(origin) |
| 31 | # self.win.dispatch = self.dispatch |
| 32 | # mainloop.register(self.win) |
| 33 | |
| 34 | def popup(self): |
| 35 | if self.win is not stdwin.getactive(): |
| 36 | self.win.setactive() |
| 37 | |
| 38 | def close(self): |
| 39 | mainloop.unregister(self.win) |
| 40 | del self.win.dispatch |
| 41 | self.win.close() |
| 42 | |
| 43 | def dispatch(self, event): |
| 44 | type, win, detail = event |
| 45 | if type == WE_CHAR: |
| 46 | self.char(detail) |
| 47 | elif type == WE_COMMAND: |
| 48 | self.command(detail) |
| 49 | elif type == WE_MOUSE_DOWN: |
| 50 | self.mouse_down(detail) |
| 51 | elif type == WE_MOUSE_MOVE: |
| 52 | self.mouse_move(detail) |
| 53 | elif type == WE_MOUSE_UP: |
| 54 | self.mouse_up(detail) |
| 55 | elif type == WE_DRAW: |
| 56 | self.draw(detail) |
| 57 | elif type == WE_CLOSE: |
| 58 | self.close() |
| 59 | |
| 60 | def no_op(self, detail): |
| 61 | pass |
| 62 | char = command = mouse_down = mouse_move = mouse_up = draw = no_op |
| 63 | |
| 64 | def refreshall(self): |
| 65 | self.win.change((-10, 0), (10000, 30000)) |