diff --git a/gui_helper.py b/gui_helper.py index 9319aeb..f9f2b73 100644 --- a/gui_helper.py +++ b/gui_helper.py @@ -1,51 +1,6 @@ import tkinter as tk import util -# easy way to communicate across events -class Communication: - def __init__(self): - self.__messages = {} - - # send a message tagged with name and containing content, adds to the beginning of the list of messages with the same tag by default - def send(self, name, content, reverse_order=True): - if name in self.__messages: - if reverse_order: - self.__messages[name] = [content] + self.__messages[name] - else: - self.__messages[name] = self.__messages[name] + [content] - else: - self.__messages[name] = [content] - - # get the content of the first message tagged with name, removes the returned message by default - def get(self, name, remove=True): - if name in self.__messages and len(self.__messages[name])>0: - if remove: - content = self.__messages[name].pop(0) - if len(self.__messages[name])==0: - del self.__messages[name] - return content - else: - return self.__messages[name][0] - else: - return None - - # get the contents for all messages tagged with name - def get_all(self, name, clear=False): - if name in self.__messages and len(self.__messages[name])>0: - contents = self.__messages[name] - if clear: - del self.__messages[name] - return contents - - # deletes all messages tagged with name - def clear(self, name): - if name in self.__messages: - del self.__messages[name] - - def __del__(self): - if len(self.__messages)>0: - util.warn("__messages not empty upon destruction of Communitation object:\n"+str(self.__messages)) - def not_implemented(): util.warn("Not implemented!") diff --git a/util.py b/util.py index 0961c76..cb8eea7 100644 --- a/util.py +++ b/util.py @@ -3,6 +3,51 @@ import sys, traceback EXIT_SUCCESS=0 EXIT_ERROR=1 +# easy way to communicate across events +class Communication: + def __init__(self): + self.__messages = {} + + # send a message tagged with name and containing content, adds to the beginning of the list of messages with the same tag by default + def send(self, name, content, reverse_order=True): + if name in self.__messages: + if reverse_order: + self.__messages[name] = [content] + self.__messages[name] + else: + self.__messages[name] = self.__messages[name] + [content] + else: + self.__messages[name] = [content] + + # get the content of the first message tagged with name, removes the returned message by default + def get(self, name, remove=True): + if name in self.__messages and len(self.__messages[name])>0: + if remove: + content = self.__messages[name].pop(0) + if len(self.__messages[name])==0: + del self.__messages[name] + return content + else: + return self.__messages[name][0] + else: + return None + + # get the contents for all messages tagged with name + def get_all(self, name, clear=False): + if name in self.__messages and len(self.__messages[name])>0: + contents = self.__messages[name] + if clear: + del self.__messages[name] + return contents + + # deletes all messages tagged with name + def clear(self, name): + if name in self.__messages: + del self.__messages[name] + + def __del__(self): + if len(self.__messages)>0: + util.warn("__messages not empty upon destruction of Communitation object:\n"+str(self.__messages)) + def info(message): # print info to sys.stderr because it isn’t really output, just debug information print("INFO: "+str(message), file=sys.stderr)