Example #1
0
 def test_setupapp(self):
     "Call setupApp with each possible graphics type."
     root = self.root
     flist = FileList(root)
     for tktype in alltypes:
         with self.subTest(tktype=tktype):
             macosx._tk_type = tktype
             macosx.setupApp(root, flist)
Example #2
0
 def test_setupapp(self, overrideRootMenu):
     "Call setupApp with each possible graphics type."
     root = self.root
     flist = FileList(root)
     for tktype in alltypes:
         with self.subTest(tktype=tktype):
             macosx._tk_type = tktype
             macosx.setupApp(root, flist)
             if tktype in ('carbon', 'cocoa'):
                 self.assertTrue(overrideRootMenu.called)
             overrideRootMenu.reset_mock()
Example #3
0
 def test_setupapp(self, overrideRootMenu):
     "Call setupApp with each possible graphics type."
     root = self.root
     flist = FileList(root)
     for tktype in alltypes:
         with self.subTest(tktype=tktype):
             macosx._tk_type = tktype
             macosx.setupApp(root, flist)
             if tktype in ('carbon', 'cocoa'):
                 self.assertTrue(overrideRootMenu.called)
             overrideRootMenu.reset_mock()
Example #4
0
    def setUpClass(cls):
        requires('gui')

        cls.root = root = tk.Tk()
        root.withdraw()

        fix_scaling(root)
        fixwordbreaks(root)
        fix_x11_paste(root)

        cls.flist = flist = PyShellFileList(root)
        macosx.setupApp(root, flist)
        root.update_idletasks()

        cls.init_shell()
 def setUpClass(cls):
     requires('gui')
     cls.root = Tk()
     macosx.setupApp(cls.root, None)
     cls.text = Text(cls.root)
     cls.editor = DummyEditwin(cls.root, cls.text)
Example #6
0
 def setUpClass(cls):
     requires('gui')
     cls.root = Tk()
     macosx.setupApp(cls.root, None)
     cls.text = Text(cls.root)
     cls.editor = DummyEditwin(cls.root, cls.text)
Example #7
0
def main():
    import getopt
    from platform import system
    from idlelib import testing
    from idlelib import macosx
    global flist, root, use_subprocess
    capture_warnings(True)
    use_subprocess = True
    enable_shell = False
    enable_edit = False
    debug = False
    cmd = None
    script = None
    startup = False
    try:
        opts, args = getopt.getopt(sys.argv[1:], 'c:deihnr:st:')
    except getopt.error as msg:
        print('Error: %s\n%s' % (msg, usage_msg), file=sys.stderr)
        sys.exit(2)
    for o, a in opts:
        if o == '-c':
            cmd = a
            enable_shell = True
        if o == '-d':
            debug = True
            enable_shell = True
        if o == '-e':
            enable_edit = True
        if o == '-h':
            sys.stdout.write(usage_msg)
            sys.exit()
        if o == '-i':
            enable_shell = True
        if o == '-n':
            print(' Warning: running IDLE without a subprocess is deprecated.',
                  file=sys.stderr)
            use_subprocess = False
        if o == '-r':
            script = a
            if os.path.isfile(script):
                pass
            else:
                print('No script file: ', script)
                sys.exit()
            enable_shell = True
        if o == '-s':
            startup = True
            enable_shell = True
        if o == '-t':
            PyShell.shell_title = a
            enable_shell = True
    if args and args[0] == '-':
        cmd = sys.stdin.read()
        enable_shell = True
    for i in range(len(sys.path)):
        sys.path[i] = os.path.abspath(sys.path[i])
    if args and args[0] == '-':
        sys.argv = [''] + args[1:]
    elif cmd:
        sys.argv = ['-c'] + args
    elif script:
        sys.argv = [script] + args
    elif args:
        enable_edit = True
        pathx = []
        for filename in args:
            pathx.append(os.path.dirname(filename))
        for dir in pathx:
            dir = os.path.abspath(dir)
            if not dir in sys.path:
                sys.path.insert(0, dir)
    else:
        dir = os.getcwd()
        if dir not in sys.path:
            sys.path.insert(0, dir)
    edit_start = idleConf.GetOption('main',
                                    'General',
                                    'editor-on-startup',
                                    type='bool')
    enable_edit = enable_edit or edit_start
    enable_shell = enable_shell or not enable_edit
    if use_subprocess and not testing:
        NoDefaultRoot()
    root = Tk(className='Idle')
    root.withdraw()
    icondir = os.path.join(os.path.dirname(__file__), 'Icons')
    if system() == 'Windows':
        iconfile = os.path.join(icondir, 'idle.ico')
        root.wm_iconbitmap(default=iconfile)
    else:
        ext = '.png' if TkVersion >= 8.6 else '.gif'
        iconfiles = [
            os.path.join(icondir, 'idle_%d%s' % (size, ext))
            for size in (16, 32, 48)
        ]
        icons = [
            PhotoImage(master=root, file=iconfile) for iconfile in iconfiles
        ]
        root.wm_iconphoto(True, *icons)
    fixwordbreaks(root)
    fix_x11_paste(root)
    flist = PyShellFileList(root)
    macosx.setupApp(root, flist)
    if enable_edit:
        if not (cmd or script):
            for filename in args[:]:
                if flist.open(filename) is None:
                    args.remove(filename)
            if not args:
                flist.new()
    if enable_shell:
        shell = flist.open_shell()
        if not shell:
            return
        if macosx.isAquaTk() and flist.dict:
            shell.top.lower()
    else:
        shell = flist.pyshell
    if debug:
        shell.open_debugger()
    if startup:
        filename = os.environ.get('IDLESTARTUP') or os.environ.get(
            'PYTHONSTARTUP')
        if filename and os.path.isfile(filename):
            shell.interp.execfile(filename)
    if cmd or script:
        shell.interp.runcommand("""if 1:
            import sys as _sys
            _sys.argv = %r
            del _sys
            
""" % (sys.argv, ))
        if cmd:
            shell.interp.execsource(cmd)
        elif script:
            shell.interp.prepend_syspath(script)
            shell.interp.execfile(script)
    elif shell:
        tkversionwarning = macosx.tkVersionWarning(root)
        if tkversionwarning:
            shell.interp.runcommand("print('%s')" % tkversionwarning)
    while flist.inversedict:
        root.mainloop()
    root.destroy()
    capture_warnings(False)