parameters: (root, flist)
docstring: Replace the Tk root menu by something that is more appropriate for
      IDLE with an Aqua Tk.
docstring_summary: Replace the Tk root menu by something that is more appropriate for
      IDLE with an Aqua Tk.
docstring_tokens: Replace the Tk root menu by something that is more appropriate for IDLE with an Aqua Tk .
function: def overrideRootMenu(root, flist):
      """
      Replace the Tk root menu by something that is more appropriate for
      IDLE with an Aqua Tk.
      """
      # The menu that is attached to the Tk root (".") is also used by AquaTk for
      # all windows that don't specify a menu of their own. The default menubar
      # contains a number of menus, none of which are appropriate for IDLE. The
      # Most annoying of those is an 'About Tck/Tk...' menu in the application
      # menu.
      #
      # This function replaces the default menubar by a mostly empty one, it
      # should only contain the correct application menu and the window menu.
      #
      # Due to a (mis-)feature of TkAqua the user will also see an empty Help
      # menu.
      from tkinter import Menu
      from idlelib import mainmenu
      from idlelib import window
  
      closeItem = mainmenu.menudefs[0][1][-2]
  
      # Remove the last 3 items of the file menu: a separator, close window and
      # quit. Close window will be reinserted just above the save item, where
      # it should be according to the HIG. Quit is in the application menu.
      del mainmenu.menudefs[0][1][-3:]
      mainmenu.menudefs[0][1].insert(6, closeItem)
  
      # Remove the 'About' entry from the help menu, it is in the application
      # menu
      del mainmenu.menudefs[-1][1][0:2]
      # Remove the 'Configure Idle' entry from the options menu, it is in the
      # application menu as 'Preferences'
      del mainmenu.menudefs[-3][1][0:2]
      menubar = Menu(root)
      root.configure(menu=menubar)
      menudict = {}
  
      menudict['window'] = menu = Menu(menubar, name='window', tearoff=0)
      menubar.add_cascade(label='Window', menu=menu, underline=0)
  
      def postwindowsmenu(menu=menu):
          end = menu.index('end')
          if end is None:
              end = -1
  
          if end > 0:
              menu.delete(0, end)
          window.add_windows_to_menu(menu)
      window.register_callback(postwindowsmenu)
  
      def about_dialog(event=None):
          "Handle Help 'About IDLE' event."
          # Synchronize with editor.EditorWindow.about_dialog.
          from idlelib import help_about
          help_about.AboutDialog(root)
  
      def config_dialog(event=None):
          "Handle Options 'Configure IDLE' event."
          # Synchronize with editor.EditorWindow.config_dialog.
          from idlelib import configdialog
  
          # Ensure that the root object has an instance_dict attribute,
          # mirrors code in EditorWindow (although that sets the attribute
          # on an EditorWindow instance that is then passed as the first
          # argument to ConfigDialog)
          root.instance_dict = flist.inversedict
          configdialog.ConfigDialog(root, 'Settings')
  
      def help_dialog(event=None):
          "Handle Help 'IDLE Help' event."
          # Synchronize with editor.EditorWindow.help_dialog.
          from idlelib import help
          help.show_idlehelp(root)
  
      root.bind('<<about-idle>>', about_dialog)
      root.bind('<<open-config-dialog>>', config_dialog)
      root.createcommand('::tk::mac::ShowPreferences', config_dialog)
      if flist:
          root.bind('<<close-all-windows>>', flist.close_all_callback)
  
          # The binding above doesn't reliably work on all versions of Tk
          # on macOS. Adding command definition below does seem to do the
          # right thing for now.
          root.createcommand('exit', flist.close_all_callback)
  
      if isCarbonTk():
          # for Carbon AquaTk, replace the default Tk apple menu
          menudict['application'] = menu = Menu(menubar, name='apple',
                                                tearoff=0)
          menubar.add_cascade(label='IDLE', menu=menu)
          mainmenu.menudefs.insert(0,
              ('application', [
                  ('About IDLE', '<<about-idle>>'),
                      None,
                  ]))
      if isCocoaTk():
          # replace default About dialog with About IDLE one
          root.createcommand('tkAboutDialog', about_dialog)
          # replace default "Help" item in Help menu
          root.createcommand('::tk::mac::ShowHelp', help_dialog)
          # remove redundant "IDLE Help" from menu
          del mainmenu.menudefs[-1][1][0]
function_tokens: def overrideRootMenu ( root , flist ) : # The menu that is attached to the Tk root (".") is also used by AquaTk for # all windows that don't specify a menu of their own. The default menubar # contains a number of menus, none of which are appropriate for IDLE. The # Most annoying of those is an 'About Tck/Tk...' menu in the application # menu. # # This function replaces the default menubar by a mostly empty one, it # should only contain the correct application menu and the window menu. # # Due to a (mis-)feature of TkAqua the user will also see an empty Help # menu. from tkinter import Menu from idlelib import mainmenu from idlelib import window closeItem = mainmenu . menudefs [ 0 ] [ 1 ] [ - 2 ] # Remove the last 3 items of the file menu: a separator, close window and # quit. Close window will be reinserted just above the save item, where # it should be according to the HIG. Quit is in the application menu. del mainmenu . menudefs [ 0 ] [ 1 ] [ - 3 : ] mainmenu . menudefs [ 0 ] [ 1 ] . insert ( 6 , closeItem ) # Remove the 'About' entry from the help menu, it is in the application # menu del mainmenu . menudefs [ - 1 ] [ 1 ] [ 0 : 2 ] # Remove the 'Configure Idle' entry from the options menu, it is in the # application menu as 'Preferences' del mainmenu . menudefs [ - 3 ] [ 1 ] [ 0 : 2 ] menubar = Menu ( root ) root . configure ( menu = menubar ) menudict = { } menudict [ 'window' ] = menu = Menu ( menubar , name = 'window' , tearoff = 0 ) menubar . add_cascade ( label = 'Window' , menu = menu , underline = 0 ) def postwindowsmenu ( menu = menu ) : end = menu . index ( 'end' ) if end is None : end = - 1 if end > 0 : menu . delete ( 0 , end ) window . add_windows_to_menu ( menu ) window . register_callback ( postwindowsmenu ) def about_dialog ( event = None ) : "Handle Help 'About IDLE' event." # Synchronize with editor.EditorWindow.about_dialog. from idlelib import help_about help_about . AboutDialog ( root ) def config_dialog ( event = None ) : "Handle Options 'Configure IDLE' event." # Synchronize with editor.EditorWindow.config_dialog. from idlelib import configdialog # Ensure that the root object has an instance_dict attribute, # mirrors code in EditorWindow (although that sets the attribute # on an EditorWindow instance that is then passed as the first # argument to ConfigDialog) root . instance_dict = flist . inversedict configdialog . ConfigDialog ( root , 'Settings' ) def help_dialog ( event = None ) : "Handle Help 'IDLE Help' event." # Synchronize with editor.EditorWindow.help_dialog. from idlelib import help help . show_idlehelp ( root ) root . bind ( '<<about-idle>>' , about_dialog ) root . bind ( '<<open-config-dialog>>' , config_dialog ) root . createcommand ( '::tk::mac::ShowPreferences' , config_dialog ) if flist : root . bind ( '<<close-all-windows>>' , flist . close_all_callback ) # The binding above doesn't reliably work on all versions of Tk # on macOS. Adding command definition below does seem to do the # right thing for now. root . createcommand ( 'exit' , flist . close_all_callback ) if isCarbonTk ( ) : # for Carbon AquaTk, replace the default Tk apple menu menudict [ 'application' ] = menu = Menu ( menubar , name = 'apple' , tearoff = 0 ) menubar . add_cascade ( label = 'IDLE' , menu = menu ) mainmenu . menudefs . insert ( 0 , ( 'application' , [ ( 'About IDLE' , '<<about-idle>>' ) , None , ] ) ) if isCocoaTk ( ) : # replace default About dialog with About IDLE one root . createcommand ( 'tkAboutDialog' , about_dialog ) # replace default "Help" item in Help menu root . createcommand ( '::tk::mac::ShowHelp' , help_dialog ) # remove redundant "IDLE Help" from menu del mainmenu . menudefs [ - 1 ] [ 1 ] [ 0 ]