2009-01-28 10:41:10 -04: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-01 21:02:20 -04:00
|
|
|
def root_deiconify():
|
|
|
|
root = get_tk_root()
|
|
|
|
root.deiconify()
|
|
|
|
|
|
|
|
def root_withdraw():
|
|
|
|
root = get_tk_root()
|
|
|
|
root.withdraw()
|
|
|
|
|
2009-01-28 10:41:10 -04: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)
|