X-Git-Url: https://plomlompom.com/repos/?p=plomrogue2;a=blobdiff_plain;f=plomrogue_client%2Ftui.py;fp=plomrogue_client%2Ftui.py;h=3ed1b62772d0e635db5574a7e2f804f0f26b1c51;hp=9f28a04c542ba586ad3650679c43c70b3fd24734;hb=253f4ce3544c6e9982ba5296c4b28f5fc1888db5;hpb=b69f30da99f9096834f4389a13dd4ffac26e7a80 diff --git a/plomrogue_client/tui.py b/plomrogue_client/tui.py index 9f28a04..3ed1b62 100644 --- a/plomrogue_client/tui.py +++ b/plomrogue_client/tui.py @@ -33,24 +33,17 @@ class TUI: self.size = self.size - YX(self.size.y % 4, 0) self.size = self.size - YX(0, self.size.x % 4) + def log(self, msg): + self._log += [msg] + self.do_refresh = True + def init_loop(self): curses.curs_set(0) # hide cursor self.stdscr.timeout(10) self.reset_size() - def run_loop(self, stdscr): - self.stdscr = stdscr - self.init_loop() - while True: - try: - self.loop() - except AbortOnGetkey: - continue - self.do_refresh = True - - def log(self, msg): - self._log += [msg] - self.do_refresh = True + def draw_screen(self): + self.stdscr.clear() def get_key_and_keycode(self): try: @@ -69,6 +62,24 @@ class TUI: raise AbortOnGetkey return key, keycode + def run_loop(self, stdscr): + self.stdscr = stdscr + self.init_loop() + while True: + self.on_each_loop_start() + for msg in self.socket.get_message(): + self.handle_server_message(msg) + if self.do_refresh: + self.draw_screen() + self.do_refresh = False + try: + key, keycode = self.get_key_and_keycode() + except AbortOnGetkey: + continue + self.on_key(key, keycode) + self.do_refresh = True + + def msg_into_lines_of_width(msg, width): chunk = ''