made the names of variables and functions as well as the name of the class itself for Communication more generic
							parent
							
								
									3d62f1fabb
								
							
						
					
					
						commit
						a33dbea7c8
					
				|  | @ -1,55 +1,50 @@ | |||
| import tkinter as tk | ||||
| import util | ||||
| 
 | ||||
| # easy way to get data out of window events | ||||
| class Window_Interaction_Handler: | ||||
|     # constructor | ||||
| # easy way to communicate across events | ||||
| class Communication: | ||||
|     def __init__(self): | ||||
|         self.__window_interactions = {} | ||||
|         self.__messages = {} | ||||
| 
 | ||||
|     # add a result for an interaction event, saves results in reverse order by default, can optionally call another function | ||||
|     def interact(self, name, result, reverse_order=True, additional_action=None, additional_action_parameters=()): | ||||
|         if name in self.__window_interactions: | ||||
|     # 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.__window_interactions[name] = [result] + self.__window_interactions[name] | ||||
|                 self.__messages[name] = [content] + self.__messages[name] | ||||
|             else: | ||||
|                 self.__window_interactions[name] = self.__window_interactions[name] + [result] | ||||
|                 self.__messages[name] = self.__messages[name] + [content] | ||||
|         else: | ||||
|             self.__window_interactions[name] = [result] | ||||
|             self.__messages[name] = [content] | ||||
| 
 | ||||
|         if not additional_action==None: | ||||
|             additional_action(*additional_action_parameters) | ||||
| 
 | ||||
|     # get first result for a given event from the list of results (newest (default) or oldest), removes the returned result from the list by default | ||||
|     def get_result(self, name, remove=True): | ||||
|         if name in self.__window_interactions and len(self.__window_interactions[name])>0: | ||||
|     # 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: | ||||
|                 result = self.__window_interactions[name].pop(0) | ||||
|                 if len(self.__window_interactions[name])==0: | ||||
|                     del self.__window_interactions[name] | ||||
|                 return result | ||||
|                 content = self.__messages[name].pop(0) | ||||
|                 if len(self.__messages[name])==0: | ||||
|                     del self.__messages[name] | ||||
|                 return content | ||||
|             else: | ||||
|                 return self.__window_interactions[name][0] | ||||
|                 return self.__messages[name][0] | ||||
|         else: | ||||
|             return None | ||||
| 
 | ||||
|     # get all results for a given event | ||||
|     def get_results(self, name, clear=False): | ||||
|         if name in self.__window_interactions and len(self.__window_interactions[name])>0: | ||||
|             results = self.__window_interactions[name] | ||||
|     # 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.__window_interactions[name] | ||||
|             return results | ||||
|                 del self.__messages[name] | ||||
|             return contents | ||||
| 
 | ||||
|     # clear results for a given event | ||||
|     # deletes all messages tagged with name | ||||
|     def clear(self, name): | ||||
|         if name in self.__window_interactions: | ||||
|             del self.__window_interactions[name] | ||||
|         if name in self.__messages: | ||||
|             del self.__messages[name] | ||||
| 
 | ||||
|     # destructor | ||||
|     def __del__(self): | ||||
|         if len(self.__window_interactions)>0: | ||||
|             util.warn("__window_interactions not empty upon destruction of Window_Interaction_Handler:\n"+str(self.__window_interactions)) | ||||
|         if len(self.__messages)>0: | ||||
|             util.warn("__messages not empty upon destruction of Communitation object:\n"+str(self.__messages)) | ||||
| 
 | ||||
| 
 | ||||
| def not_implemented(): | ||||
|  |  | |||
		Reference in New Issue
	
	 BodgeMaster
						BodgeMaster