""" A number of function that enhance IDLE on MacOSX when it used as a normal GUI application (as opposed to an X11 application). """ import sys def runningAsOSXApp(): """ Returns True iff running from the IDLE.app bundle on OSX """ return (sys.platform == 'darwin' and 'IDLE.app' in sys.argv[0]) def addOpenEventSupport(root, flist): """ This ensures that the application will respont to open AppleEvents, which makes is feaseable to use IDLE as the default application for python files. """ def doOpenFile(*args): for fn in args: flist.open(fn) # The command below is a hook in aquatk that is called whenever the app # receives a file open event. The callback can have multiple arguments, # one for every file that should be opened. root.createcommand("::tk::mac::OpenDocument", doOpenFile) def hideTkConsole(root): root.tk.call('console', 'hide') def setupApp(root, flist): """ Perform setup for the OSX application bundle. """ if not runningAsOSXApp(): return hideTkConsole(root) addOpenEventSupport(root, flist)