| # basewin.py |
| |
| import stdwin |
| import mainloop |
| from stdwinevents import * |
| |
| class BaseWindow: |
| |
| def init(self, title): |
| self.win = stdwin.open(title) |
| self.win.dispatch = self.dispatch |
| mainloop.register(self.win) |
| return self |
| |
| # def reopen(self): |
| # title = self.win.gettitle() |
| # winpos = self.win.getwinpos() |
| # winsize = self.win.getwinsize() |
| # origin = self.win.getorigin() |
| # docsize = self.win.getdocsize() |
| # mainloop.unregister(self.win) |
| # del self.win.dispatch |
| # self.win.close() |
| # stdwin.setdefwinpos(winpos) |
| # stdwin.setdefwinsize(winsize) |
| # self.win = stdwin.open(title) |
| # stdwin.setdefwinpos(0, 0) |
| # stdwin.setdefwinsize(0, 0) |
| # self.win.setdocsize(docsize) |
| # self.win.setorigin(origin) |
| # self.win.dispatch = self.dispatch |
| # mainloop.register(self.win) |
| |
| def popup(self): |
| if self.win is not stdwin.getactive(): |
| self.win.setactive() |
| |
| def close(self): |
| mainloop.unregister(self.win) |
| del self.win.dispatch |
| self.win.close() |
| |
| def dispatch(self, event): |
| type, win, detail = event |
| if type == WE_CHAR: |
| self.char(detail) |
| elif type == WE_COMMAND: |
| self.command(detail) |
| elif type == WE_MOUSE_DOWN: |
| self.mouse_down(detail) |
| elif type == WE_MOUSE_MOVE: |
| self.mouse_move(detail) |
| elif type == WE_MOUSE_UP: |
| self.mouse_up(detail) |
| elif type == WE_DRAW: |
| self.draw(detail) |
| elif type == WE_CLOSE: |
| self.close() |
| |
| def no_op(self, detail): |
| pass |
| char = command = mouse_down = mouse_move = mouse_up = draw = no_op |
| |
| def refreshall(self): |
| self.win.change((-10, 0), (10000, 30000)) |