| 
									
										
										
										
											2003-01-22 00:23:23 +00:00
										 |  |  | """Define the menu contents, hotkeys, and event bindings.
 | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-01-22 00:23:23 +00:00
										 |  |  | There is additional configuration information in the EditorWindow class (and | 
					
						
							|  |  |  | subclasses): the menus are created there based on the menu_specs (class) | 
					
						
							|  |  |  | variable, and menus not created are silently skipped in the code here.  This | 
					
						
							|  |  |  | makes it possible, for example, to define a Debug menu which is only present in | 
					
						
							|  |  |  | the PythonShell window, and a Format menu which is only present in the Editor | 
					
						
							|  |  |  | windows. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | """
 | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | import sys | 
					
						
							| 
									
										
										
										
											2001-12-03 00:37:28 +00:00
										 |  |  | from configHandler import idleConf | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | menudefs = [ | 
					
						
							|  |  |  |  # underscore prefixes character to underscore | 
					
						
							|  |  |  |  ('file', [ | 
					
						
							| 
									
										
										
										
											2002-12-24 00:51:05 +00:00
										 |  |  |    ('_New Window', '<<open-new-window>>'), | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |    ('_Open...', '<<open-window-from-file>>'), | 
					
						
							| 
									
										
										
										
											2002-12-24 00:51:05 +00:00
										 |  |  |    ('Open _Module...', '<<open-module>>'), | 
					
						
							|  |  |  |    ('Class _Browser', '<<open-class-browser>>'), | 
					
						
							|  |  |  |    ('_Path Browser', '<<open-path-browser>>'), | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |    None, | 
					
						
							|  |  |  |    ('_Save', '<<save-window>>'), | 
					
						
							|  |  |  |    ('Save _As...', '<<save-window-as-file>>'), | 
					
						
							| 
									
										
										
										
											2006-08-16 21:45:59 +00:00
										 |  |  |    ('Save Cop_y As...', '<<save-copy-of-window-as-file>>'), | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |    None, | 
					
						
							| 
									
										
										
										
											2006-08-16 21:45:59 +00:00
										 |  |  |    ('Prin_t Window', '<<print-window>>'), | 
					
						
							| 
									
										
										
										
											2002-06-11 04:45:34 +00:00
										 |  |  |    None, | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |    ('_Close', '<<close-window>>'), | 
					
						
							|  |  |  |    ('E_xit', '<<close-all-windows>>'), | 
					
						
							|  |  |  |   ]), | 
					
						
							|  |  |  |  ('edit', [ | 
					
						
							|  |  |  |    ('_Undo', '<<undo>>'), | 
					
						
							|  |  |  |    ('_Redo', '<<redo>>'), | 
					
						
							|  |  |  |    None, | 
					
						
							| 
									
										
										
										
											2002-02-18 01:45:43 +00:00
										 |  |  |    ('Cu_t', '<<cut>>'), | 
					
						
							|  |  |  |    ('_Copy', '<<copy>>'), | 
					
						
							|  |  |  |    ('_Paste', '<<paste>>'), | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |    ('Select _All', '<<select-all>>'), | 
					
						
							| 
									
										
										
										
											2002-01-04 03:06:08 +00:00
										 |  |  |    None, | 
					
						
							|  |  |  |    ('_Find...', '<<find>>'), | 
					
						
							| 
									
										
										
										
											2002-12-24 00:51:05 +00:00
										 |  |  |    ('Find A_gain', '<<find-again>>'), | 
					
						
							|  |  |  |    ('Find _Selection', '<<find-selection>>'), | 
					
						
							| 
									
										
										
										
											2002-01-04 03:06:08 +00:00
										 |  |  |    ('Find in Files...', '<<find-in-files>>'), | 
					
						
							|  |  |  |    ('R_eplace...', '<<replace>>'), | 
					
						
							| 
									
										
										
										
											2002-12-24 00:51:05 +00:00
										 |  |  |    ('Go to _Line', '<<goto-line>>'), | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |   ]), | 
					
						
							| 
									
										
										
										
											2002-09-14 00:50:44 +00:00
										 |  |  | ('format', [ | 
					
						
							| 
									
										
										
										
											2003-01-22 00:23:23 +00:00
										 |  |  |    ('_Indent Region', '<<indent-region>>'), | 
					
						
							|  |  |  |    ('_Dedent Region', '<<dedent-region>>'), | 
					
						
							|  |  |  |    ('Comment _Out Region', '<<comment-region>>'), | 
					
						
							|  |  |  |    ('U_ncomment Region', '<<uncomment-region>>'), | 
					
						
							|  |  |  |    ('Tabify Region', '<<tabify-region>>'), | 
					
						
							|  |  |  |    ('Untabify Region', '<<untabify-region>>'), | 
					
						
							|  |  |  |    ('Toggle Tabs', '<<toggle-tabs>>'), | 
					
						
							|  |  |  |    ('New Indent Width', '<<change-indentwidth>>'), | 
					
						
							|  |  |  |    ]), | 
					
						
							|  |  |  |  ('run', [ | 
					
						
							| 
									
										
										
										
											2002-12-24 00:51:05 +00:00
										 |  |  |    ('Python Shell', '<<open-python-shell>>'), | 
					
						
							| 
									
										
										
										
											2003-01-22 00:23:23 +00:00
										 |  |  |    ]), | 
					
						
							| 
									
										
										
										
											2003-01-04 01:43:53 +00:00
										 |  |  |  ('shell', [ | 
					
						
							|  |  |  |    ('_View Last Restart', '<<view-restart>>'), | 
					
						
							|  |  |  |    ('_Restart Shell', '<<restart-shell>>'), | 
					
						
							| 
									
										
										
										
											2003-01-22 00:23:23 +00:00
										 |  |  |    ]), | 
					
						
							|  |  |  |  ('debug', [ | 
					
						
							| 
									
										
										
										
											2002-12-24 00:51:05 +00:00
										 |  |  |    ('_Go to File/Line', '<<goto-file-line>>'), | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |    ('!_Debugger', '<<toggle-debugger>>'), | 
					
						
							| 
									
										
										
										
											2003-01-04 01:43:53 +00:00
										 |  |  |    ('_Stack Viewer', '<<open-stack-viewer>>'), | 
					
						
							| 
									
										
										
										
											2003-01-22 00:23:23 +00:00
										 |  |  |    ('!_Auto-open Stack Viewer', '<<toggle-jit-stack-viewer>>'), | 
					
						
							|  |  |  |    ]), | 
					
						
							| 
									
										
										
										
											2003-01-04 01:43:53 +00:00
										 |  |  |  ('options', [ | 
					
						
							| 
									
										
										
										
											2003-01-14 22:03:31 +00:00
										 |  |  |    ('_Configure IDLE...', '<<open-config-dialog>>'), | 
					
						
							| 
									
										
										
										
											2004-04-24 03:01:48 +00:00
										 |  |  |    None, | 
					
						
							| 
									
										
										
										
											2003-01-22 00:23:23 +00:00
										 |  |  |    ]), | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |  ('help', [ | 
					
						
							| 
									
										
										
										
											2003-01-14 22:03:31 +00:00
										 |  |  |    ('_About IDLE', '<<about-idle>>'), | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  |    None, | 
					
						
							| 
									
										
										
										
											2003-01-14 22:03:31 +00:00
										 |  |  |    ('_IDLE Help', '<<help>>'), | 
					
						
							|  |  |  |    ('Python _Docs', '<<python-docs>>'), | 
					
						
							| 
									
										
										
										
											2003-01-22 00:23:23 +00:00
										 |  |  |    ]), | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-06-11 14:33:36 +00:00
										 |  |  | import sys | 
					
						
							|  |  |  | if sys.platform == 'darwin' and '.app' in sys.executable: | 
					
						
							|  |  |  |     # Running as a proper MacOS application bundle. This block restructures | 
					
						
							|  |  |  |     # the menus a little to make them conform better to the HIG. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     quitItem = menudefs[0][1][-1] | 
					
						
							|  |  |  |     closeItem = 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 menudefs[0][1][-3:] | 
					
						
							|  |  |  |     menudefs[0][1].insert(6, closeItem) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-06-11 19:42:51 +00:00
										 |  |  |     # Remove the 'About' entry from the help menu, it is in the application | 
					
						
							| 
									
										
										
										
											2006-06-11 14:33:36 +00:00
										 |  |  |     # menu | 
					
						
							|  |  |  |     del menudefs[-1][1][0:2] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     menudefs.insert(0, | 
					
						
							|  |  |  |             ('application', [ | 
					
						
							|  |  |  |                 ('About IDLE', '<<about-idle>>'), | 
					
						
							|  |  |  |                 None, | 
					
						
							|  |  |  |                 ('_Preferences....', '<<open-config-dialog>>'), | 
					
						
							|  |  |  |             ])) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-19 10:41:51 +00:00
										 |  |  | default_keydefs = idleConf.GetCurrentKeySet() | 
					
						
							| 
									
										
										
										
											2000-08-15 01:13:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | del sys |