| 
									
										
										
										
											2009-01-28 14:41:10 +00:00
										 |  |  | import tkinter | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_tk_root(): | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         root = tkinter._default_root | 
					
						
							|  |  |  |     except AttributeError: | 
					
						
							|  |  |  |         # it is possible to disable default root in Tkinter, although | 
					
						
							|  |  |  |         # I haven't seen people doing it (but apparently someone did it | 
					
						
							|  |  |  |         # here). | 
					
						
							|  |  |  |         root = None | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if root is None: | 
					
						
							|  |  |  |         # create a new master only if there isn't one already | 
					
						
							|  |  |  |         root = tkinter.Tk() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return root | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-02 01:02:20 +00:00
										 |  |  | def root_deiconify(): | 
					
						
							|  |  |  |     root = get_tk_root() | 
					
						
							|  |  |  |     root.deiconify() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def root_withdraw(): | 
					
						
							|  |  |  |     root = get_tk_root() | 
					
						
							|  |  |  |     root.withdraw() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-28 14:41:10 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | def simulate_mouse_click(widget, x, y): | 
					
						
							|  |  |  |     """Generate proper events to click at the x, y position (tries to act
 | 
					
						
							|  |  |  |     like an X server)."""
 | 
					
						
							|  |  |  |     widget.event_generate('<Enter>', x=0, y=0) | 
					
						
							|  |  |  |     widget.event_generate('<Motion>', x=x, y=y) | 
					
						
							|  |  |  |     widget.event_generate('<ButtonPress-1>', x=x, y=y) | 
					
						
							|  |  |  |     widget.event_generate('<ButtonRelease-1>', x=x, y=y) |