77import W
88import os
99import macfs
10+ import MacOS
11+
12+ if MacOS .runtimemodel == 'macho' :
13+ ELIPSES = '...'
14+ else :
15+ ELIPSES = '\xc9 '
16+
17+ def runningOnOSX ():
18+ from gestalt import gestalt
19+ gestaltMenuMgrAquaLayoutBit = 1 # menus have the Aqua 1.0 layout
20+ gestaltMenuMgrAquaLayoutMask = (1L << gestaltMenuMgrAquaLayoutBit )
21+ value = gestalt ("menu" ) & gestaltMenuMgrAquaLayoutMask
22+ return not not value
1023
1124
1225class PythonIDE (Wapplication .Application ):
@@ -50,15 +63,18 @@ def __init__(self):
5063 def makeusermenus (self ):
5164 m = Wapplication .Menu (self .menubar , "File" )
5265 newitem = FrameWork .MenuItem (m , "New" , "N" , 'new' )
53- openitem = FrameWork .MenuItem (m , "Open\xc9 " , "O" , 'open' )
66+ openitem = FrameWork .MenuItem (m , "Open" + ELIPSES , "O" , 'open' )
5467 FrameWork .Separator (m )
5568 closeitem = FrameWork .MenuItem (m , "Close" , "W" , 'close' )
5669 saveitem = FrameWork .MenuItem (m , "Save" , "S" , 'save' )
57- saveasitem = FrameWork .MenuItem (m , "Save as\xc9 " , None , 'save_as' )
58- FrameWork .Separator (m )
59- saveasappletitem = FrameWork .MenuItem (m , "Save as Applet\xc9 " , None , 'save_as_applet' )
70+ saveasitem = FrameWork .MenuItem (m , "Save as" + ELIPSES , None , 'save_as' )
6071 FrameWork .Separator (m )
61- quititem = FrameWork .MenuItem (m , "Quit" , "Q" , 'quit' )
72+ saveasappletitem = FrameWork .MenuItem (m , "Save as Applet" + ELIPSES , None , 'save_as_applet' )
73+ if not runningOnOSX ():
74+ # On OSX there's a special "magic" quit menu, so we shouldn't add
75+ # it to the File menu.
76+ FrameWork .Separator (m )
77+ quititem = FrameWork .MenuItem (m , "Quit" , "Q" , 'quit' )
6278
6379 m = Wapplication .Menu (self .menubar , "Edit" )
6480 undoitem = FrameWork .MenuItem (m , "Undo" , 'Z' , "undo" )
@@ -71,7 +87,7 @@ def makeusermenus(self):
7187 selallitem = FrameWork .MenuItem (m , "Select all" , "A" , "selectall" )
7288 sellineitem = FrameWork .MenuItem (m , "Select line" , "L" , "selectline" )
7389 FrameWork .Separator (m )
74- finditem = FrameWork .MenuItem (m , "Find\xc9 " , "F" , "find" )
90+ finditem = FrameWork .MenuItem (m , "Find" + ELIPSES , "F" , "find" )
7591 findagainitem = FrameWork .MenuItem (m , "Find again" , 'G' , "findnext" )
7692 enterselitem = FrameWork .MenuItem (m , "Enter search string" , "E" , "entersearchstring" )
7793 replaceitem = FrameWork .MenuItem (m , "Replace" , None , "replace" )
@@ -84,12 +100,12 @@ def makeusermenus(self):
84100 runitem = FrameWork .MenuItem (m , "Run window" , "R" , 'run' )
85101 runselitem = FrameWork .MenuItem (m , "Run selection" , None , 'runselection' )
86102 FrameWork .Separator (m )
87- moditem = FrameWork .MenuItem (m , "Module browser\xc9 " , "M" , self .domenu_modulebrowser )
103+ moditem = FrameWork .MenuItem (m , "Module browser" + ELIPSES , "M" , self .domenu_modulebrowser )
88104 FrameWork .Separator (m )
89105 mm = FrameWork .SubMenu (m , "Preferences" )
90- FrameWork .MenuItem (mm , "Set Scripts folder\xc9 " , None , self .do_setscriptsfolder )
91- FrameWork .MenuItem (mm , "Editor default settings\xc9 " , None , self .do_editorprefs )
92- FrameWork .MenuItem (mm , "Set default window font\xc9 " , None , self .do_setwindowfont )
106+ FrameWork .MenuItem (mm , "Set Scripts folder" + ELIPSES , None , self .do_setscriptsfolder )
107+ FrameWork .MenuItem (mm , "Editor default settings" + ELIPSES , None , self .do_editorprefs )
108+ FrameWork .MenuItem (mm , "Set default window font" + ELIPSES , None , self .do_setwindowfont )
93109
94110 self .openwindowsmenu = Wapplication .Menu (self .menubar , 'Windows' )
95111 self .makeopenwindowsmenu ()
@@ -110,7 +126,7 @@ def makeusermenus(self):
110126 path = os .path .join (os .getcwd (), "Scripts" )
111127 if not os .path .exists (path ):
112128 os .mkdir (path )
113- f = open (os .path .join (path , "Place your scripts here\xc9 " ), "w" )
129+ f = open (os .path .join (path , "Place your scripts here" + ELIPSES ), "w" )
114130 f .close ()
115131 fss = macfs .FSSpec (path )
116132 self .scriptsfolder = fss .NewAlias ()
@@ -159,7 +175,7 @@ def opendoc(self, path):
159175 W .Message ("Can't open file of type '%s'." % ftype )
160176
161177 def getabouttext (self ):
162- return "About Python IDE\xc9 "
178+ return "About Python IDE" + ELIPSES
163179
164180 def do_about (self , id , item , window , event ):
165181 Splash .about ()
0 commit comments