annotate Mac/Tools/IDE/PythonIDEMain.py @ 27737:4367f805db09 legacy-trunk

Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now used everywhere).
author Jack Jansen <jack.jansen@cwi.nl>
date Thu, 06 Feb 2003 22:32:35 +0000
parents 43143d4dd6b1
children 5d2d24a73825
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20836
c1ebc0285a5e removed import display hackery
Just van Rossum <just@letterror.com>
parents: 19488
diff changeset
1 # copyright 1997-2001 Just van Rossum, Letterror. just@letterror.com
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
2
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
3 import Splash
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
4
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
5 import FrameWork
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
6 import Wapplication
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
7 import W
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
8 import os
22672
86ce9ee14045 Allow file without filetype as long as they end in ".py".
Jack Jansen <jack.jansen@cwi.nl>
parents: 21867
diff changeset
9 import sys
21772
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
10 import MacOS
27408
ea5ee3e7bfb1 Use new file dialogs.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26346
diff changeset
11 import EasyDialogs
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
12 from Carbon import File
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
13 from Carbon import Files
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
14
21772
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
15 if MacOS.runtimemodel == 'macho':
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
16 ELIPSES = '...'
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
17 else:
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
18 ELIPSES = '\xc9'
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
19
21867
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
20 def runningOnOSX():
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
21 from gestalt import gestalt
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
22 gestaltMenuMgrAquaLayoutBit = 1 # menus have the Aqua 1.0 layout
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
23 gestaltMenuMgrAquaLayoutMask = (1L << gestaltMenuMgrAquaLayoutBit)
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
24 value = gestalt("menu") & gestaltMenuMgrAquaLayoutMask
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
25 return not not value
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
26
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
27 def getmodtime(file):
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
28 file = File.FSRef(file)
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
29 catinfo, d1, d2, d3 = file.FSGetCatalogInfo(Files.kFSCatInfoContentMod)
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
30 return catinfo.contentModDate
21867
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
31
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
32 class PythonIDE(Wapplication.Application):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
33
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
34 def __init__(self):
24226
62d8f974811f fixed wrong classic MacOS pathname assumption
Just van Rossum <just@letterror.com>
parents: 22675
diff changeset
35 self.preffilepath = os.path.join("Python", "PythonIDE preferences")
10322
a87cfea30b04 changed creator to 'Pide' -- jvr
Just van Rossum <just@lettererror.com>
parents: 10310
diff changeset
36 Wapplication.Application.__init__(self, 'Pide')
19488
42b2f1936254 Import the MacOS toolbox modules from the Carbon package.
Jack Jansen <jack.jansen@cwi.nl>
parents: 18167
diff changeset
37 from Carbon import AE
42b2f1936254 Import the MacOS toolbox modules from the Carbon package.
Jack Jansen <jack.jansen@cwi.nl>
parents: 18167
diff changeset
38 from Carbon import AppleEvents
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
39
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
40 AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEOpenApplication,
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
41 self.ignoreevent)
17015
3c650d9c38e7 Handle the ReopenApplication event (by ignoring it).
Jack Jansen <jack.jansen@cwi.nl>
parents: 15284
diff changeset
42 AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEReopenApplication,
3c650d9c38e7 Handle the ReopenApplication event (by ignoring it).
Jack Jansen <jack.jansen@cwi.nl>
parents: 15284
diff changeset
43 self.ignoreevent)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
44 AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEPrintDocuments,
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
45 self.ignoreevent)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
46 AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEOpenDocuments,
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
47 self.opendocsevent)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
48 AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEQuitApplication,
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
49 self.quitevent)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
50 import PyConsole, PyEdit
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
51 Splash.wait()
25869
2bcb41611fae cd to users home dir if no current dir has been set. Fixes bug #625734
Just van Rossum <just@letterror.com>
parents: 25224
diff changeset
52 if sys.platform == "darwin":
2bcb41611fae cd to users home dir if no current dir has been set. Fixes bug #625734
Just van Rossum <just@letterror.com>
parents: 25224
diff changeset
53 if sys.argv and sys.argv[0].startswith("-psn"):
2bcb41611fae cd to users home dir if no current dir has been set. Fixes bug #625734
Just van Rossum <just@letterror.com>
parents: 25224
diff changeset
54 home = os.getenv("HOME")
2bcb41611fae cd to users home dir if no current dir has been set. Fixes bug #625734
Just van Rossum <just@letterror.com>
parents: 25224
diff changeset
55 if home:
2bcb41611fae cd to users home dir if no current dir has been set. Fixes bug #625734
Just van Rossum <just@letterror.com>
parents: 25224
diff changeset
56 os.chdir(home)
22672
86ce9ee14045 Allow file without filetype as long as they end in ".py".
Jack Jansen <jack.jansen@cwi.nl>
parents: 21867
diff changeset
57 # With -D option (OSX command line only) keep stderr, for debugging the IDE
86ce9ee14045 Allow file without filetype as long as they end in ".py".
Jack Jansen <jack.jansen@cwi.nl>
parents: 21867
diff changeset
58 # itself.
86ce9ee14045 Allow file without filetype as long as they end in ".py".
Jack Jansen <jack.jansen@cwi.nl>
parents: 21867
diff changeset
59 debug_stderr = None
22675
57811c355f3a repair damage: now works again as a CFM app.
Just van Rossum <just@letterror.com>
parents: 22672
diff changeset
60 if len(sys.argv) >= 2 and sys.argv[1] == '-D':
22672
86ce9ee14045 Allow file without filetype as long as they end in ".py".
Jack Jansen <jack.jansen@cwi.nl>
parents: 21867
diff changeset
61 debug_stderr = sys.stderr
86ce9ee14045 Allow file without filetype as long as they end in ".py".
Jack Jansen <jack.jansen@cwi.nl>
parents: 21867
diff changeset
62 del sys.argv[1]
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
63 PyConsole.installoutput()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
64 PyConsole.installconsole()
22672
86ce9ee14045 Allow file without filetype as long as they end in ".py".
Jack Jansen <jack.jansen@cwi.nl>
parents: 21867
diff changeset
65 if debug_stderr:
86ce9ee14045 Allow file without filetype as long as they end in ".py".
Jack Jansen <jack.jansen@cwi.nl>
parents: 21867
diff changeset
66 sys.stderr = debug_stderr
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
67 for path in sys.argv[1:]:
26346
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
68 if path.startswith("-p"):
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
69 # process number added by the OS
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
70 continue
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
71 self.opendoc(path)
26346
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
72 self.mainloop()
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
73
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
74 def makeusermenus(self):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
75 m = Wapplication.Menu(self.menubar, "File")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
76 newitem = FrameWork.MenuItem(m, "New", "N", 'new')
21772
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
77 openitem = FrameWork.MenuItem(m, "Open"+ELIPSES, "O", 'open')
27697
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
78 openbynameitem = FrameWork.MenuItem(m, "Open File by Name"+ELIPSES, "D", 'openbyname')
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
79 FrameWork.Separator(m)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
80 closeitem = FrameWork.MenuItem(m, "Close", "W", 'close')
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
81 saveitem = FrameWork.MenuItem(m, "Save", "S", 'save')
21772
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
82 saveasitem = FrameWork.MenuItem(m, "Save as"+ELIPSES, None, 'save_as')
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
83 FrameWork.Separator(m)
21772
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
84 saveasappletitem = FrameWork.MenuItem(m, "Save as Applet"+ELIPSES, None, 'save_as_applet')
21867
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
85 if not runningOnOSX():
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
86 # On OSX there's a special "magic" quit menu, so we shouldn't add
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
87 # it to the File menu.
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
88 FrameWork.Separator(m)
da008b5c5035 Don't append quit menu when on OSX, it is special and automatic there.
Just van Rossum <just@letterror.com>
parents: 21772
diff changeset
89 quititem = FrameWork.MenuItem(m, "Quit", "Q", 'quit')
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
90
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
91 m = Wapplication.Menu(self.menubar, "Edit")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
92 undoitem = FrameWork.MenuItem(m, "Undo", 'Z', "undo")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
93 FrameWork.Separator(m)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
94 cutitem = FrameWork.MenuItem(m, "Cut", 'X', "cut")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
95 copyitem = FrameWork.MenuItem(m, "Copy", "C", "copy")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
96 pasteitem = FrameWork.MenuItem(m, "Paste", "V", "paste")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
97 FrameWork.MenuItem(m, "Clear", None, "clear")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
98 FrameWork.Separator(m)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
99 selallitem = FrameWork.MenuItem(m, "Select all", "A", "selectall")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
100 sellineitem = FrameWork.MenuItem(m, "Select line", "L", "selectline")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
101 FrameWork.Separator(m)
21772
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
102 finditem = FrameWork.MenuItem(m, "Find"+ELIPSES, "F", "find")
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
103 findagainitem = FrameWork.MenuItem(m, "Find again", 'G', "findnext")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
104 enterselitem = FrameWork.MenuItem(m, "Enter search string", "E", "entersearchstring")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
105 replaceitem = FrameWork.MenuItem(m, "Replace", None, "replace")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
106 replacefinditem = FrameWork.MenuItem(m, "Replace & find again", 'T', "replacefind")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
107 FrameWork.Separator(m)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
108 shiftleftitem = FrameWork.MenuItem(m, "Shift left", "[", "shiftleft")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
109 shiftrightitem = FrameWork.MenuItem(m, "Shift right", "]", "shiftright")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
110
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
111 m = Wapplication.Menu(self.menubar, "Python")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
112 runitem = FrameWork.MenuItem(m, "Run window", "R", 'run')
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
113 runselitem = FrameWork.MenuItem(m, "Run selection", None, 'runselection')
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
114 FrameWork.Separator(m)
21772
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
115 moditem = FrameWork.MenuItem(m, "Module browser"+ELIPSES, "M", self.domenu_modulebrowser)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
116 FrameWork.Separator(m)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
117 mm = FrameWork.SubMenu(m, "Preferences")
21772
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
118 FrameWork.MenuItem(mm, "Set Scripts folder"+ELIPSES, None, self.do_setscriptsfolder)
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
119 FrameWork.MenuItem(mm, "Editor default settings"+ELIPSES, None, self.do_editorprefs)
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
120 FrameWork.MenuItem(mm, "Set default window font"+ELIPSES, None, self.do_setwindowfont)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
121
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
122 self.openwindowsmenu = Wapplication.Menu(self.menubar, 'Windows')
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
123 self.makeopenwindowsmenu()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
124 self._menustocheck = [closeitem, saveitem, saveasitem, saveasappletitem,
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
125 undoitem, cutitem, copyitem, pasteitem,
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
126 selallitem, sellineitem,
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
127 finditem, findagainitem, enterselitem, replaceitem, replacefinditem,
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
128 shiftleftitem, shiftrightitem,
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
129 runitem, runselitem]
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
130
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
131 prefs = self.getprefs()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
132 try:
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
133 fsr, d = File.Alias(rawdata=prefs.scriptsfolder).FSResolveAlias(None)
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
134 self.scriptsfolder = fsr.FSNewAliasMinimal()
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
135 except:
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
136 path = os.path.join(os.getcwd(), "Mac", "IDE scripts")
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
137 if not os.path.exists(path):
11325
c702a12d318d 1 - added "set default window font" menu
Just van Rossum <just@lettererror.com>
parents: 11031
diff changeset
138 path = os.path.join(os.getcwd(), "Scripts")
c702a12d318d 1 - added "set default window font" menu
Just van Rossum <just@lettererror.com>
parents: 11031
diff changeset
139 if not os.path.exists(path):
c702a12d318d 1 - added "set default window font" menu
Just van Rossum <just@lettererror.com>
parents: 11031
diff changeset
140 os.mkdir(path)
21772
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
141 f = open(os.path.join(path, "Place your scripts here"+ELIPSES), "w")
11325
c702a12d318d 1 - added "set default window font" menu
Just van Rossum <just@lettererror.com>
parents: 11031
diff changeset
142 f.close()
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
143 fsr = File.FSRef(path)
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
144 self.scriptsfolder = fsr.FSNewAliasMinimal()
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
145 self.scriptsfoldermodtime = getmodtime(fsr)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
146 else:
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
147 self.scriptsfoldermodtime = getmodtime(fsr)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
148 prefs.scriptsfolder = self.scriptsfolder.data
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
149 self._scripts = {}
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
150 self.scriptsmenu = None
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
151 self.makescriptsmenu()
25084
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
152 self.makehelpmenu()
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
153
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
154 def quitevent(self, theAppleEvent, theReply):
19488
42b2f1936254 Import the MacOS toolbox modules from the Carbon package.
Jack Jansen <jack.jansen@cwi.nl>
parents: 18167
diff changeset
155 from Carbon import AE
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
156 AE.AEInteractWithUser(50000000)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
157 self._quit()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
158
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
159 def suspendresume(self, onoff):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
160 if onoff:
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
161 fsr, changed = self.scriptsfolder.FSResolveAlias(None)
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
162 modtime = getmodtime(fsr)
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
163 if self.scriptsfoldermodtime <> modtime or changed:
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
164 self.scriptsfoldermodtime = modtime
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
165 W.SetCursor('watch')
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
166 self.makescriptsmenu()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
167
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
168 def ignoreevent(self, theAppleEvent, theReply):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
169 pass
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
170
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
171 def opendocsevent(self, theAppleEvent, theReply):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
172 W.SetCursor('watch')
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
173 import aetools
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
174 parameters, args = aetools.unpackevent(theAppleEvent)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
175 docs = parameters['----']
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
176 if type(docs) <> type([]):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
177 docs = [docs]
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
178 for doc in docs:
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
179 fsr, a = doc.FSResolveAlias(None)
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
180 path = fsr.as_pathname()
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
181 self.opendoc(path)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
182
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
183 def opendoc(self, path):
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
184 fcreator, ftype = MacOS.GetCreatorAndType(path)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
185 if ftype == 'TEXT':
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
186 self.openscript(path)
22672
86ce9ee14045 Allow file without filetype as long as they end in ".py".
Jack Jansen <jack.jansen@cwi.nl>
parents: 21867
diff changeset
187 elif ftype == '\0\0\0\0' and path[-3:] == '.py':
86ce9ee14045 Allow file without filetype as long as they end in ".py".
Jack Jansen <jack.jansen@cwi.nl>
parents: 21867
diff changeset
188 self.openscript(path)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
189 else:
18167
c5ac6f055c62 Some long overdue maintainance. Made all IDE sources 7-bit-clean, to avoid any further encoding conversion troubles.
Just van Rossum <just@letterror.com>
parents: 17844
diff changeset
190 W.Message("Can't open file of type '%s'." % ftype)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
191
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
192 def getabouttext(self):
21772
ec750e37671b Changes by Donovan Preston (and a few minor ones by me) to make IDE run under
Jack Jansen <jack.jansen@cwi.nl>
parents: 20836
diff changeset
193 return "About Python IDE"+ELIPSES
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
194
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
195 def do_about(self, id, item, window, event):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
196 Splash.about()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
197
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
198 def do_setscriptsfolder(self, *args):
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
199 fsr = EasyDialogs.AskFolder(message="Select Scripts Folder",
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
200 wanted=File.FSRef)
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
201 if fsr:
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
202 prefs = self.getprefs()
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
203 alis = fsr.FSNewAliasMinimal()
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
204 prefs.scriptsfolder = alis.data
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
205 self.scriptsfolder = alis
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
206 self.makescriptsmenu()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
207 prefs.save()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
208
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
209 def domenu_modulebrowser(self, *args):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
210 W.SetCursor('watch')
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
211 import ModuleBrowser
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
212 ModuleBrowser.ModuleBrowser()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
213
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
214 def domenu_open(self, *args):
27408
ea5ee3e7bfb1 Use new file dialogs.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26346
diff changeset
215 filename = EasyDialogs.AskFileForOpen(typeList=("TEXT",))
ea5ee3e7bfb1 Use new file dialogs.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26346
diff changeset
216 if filename:
ea5ee3e7bfb1 Use new file dialogs.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26346
diff changeset
217 self.openscript(filename)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
218
27697
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
219 def domenu_openbyname(self, *args):
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
220 # Open a file by name. If the clipboard contains a filename
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
221 # use that as the default.
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
222 from Carbon import Scrap
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
223 try:
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
224 sc = Scrap.GetCurrentScrap()
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
225 dft = sc.GetScrapFlavorData("TEXT")
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
226 except Scrap.Error:
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
227 dft = ""
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
228 else:
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
229 if not os.path.exists(dft):
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
230 dft = ""
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
231 filename = EasyDialogs.AskString("Open File Named:", default=dft, ok="Open")
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
232 if filename:
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
233 self.openscript(filename)
43143d4dd6b1 Added "Open File by Name" command which presens a filename dialog. If
Jack Jansen <jack.jansen@cwi.nl>
parents: 27408
diff changeset
234
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
235 def domenu_new(self, *args):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
236 W.SetCursor('watch')
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
237 import PyEdit
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
238 return PyEdit.Editor()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
239
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
240 def makescriptsmenu(self):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
241 W.SetCursor('watch')
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
242 if self._scripts:
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
243 for id, item in self._scripts.keys():
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
244 if self.menubar.menus.has_key(id):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
245 m = self.menubar.menus[id]
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
246 m.delete()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
247 self._scripts = {}
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
248 if self.scriptsmenu:
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
249 if hasattr(self.scriptsmenu, 'id') and self.menubar.menus.has_key(self.scriptsmenu.id):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
250 self.scriptsmenu.delete()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
251 self.scriptsmenu = FrameWork.Menu(self.menubar, "Scripts")
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
252 #FrameWork.MenuItem(self.scriptsmenu, "New script", None, self.domenu_new)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
253 #self.scriptsmenu.addseparator()
27737
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
254 fsr, d1 = self.scriptsfolder.FSResolveAlias(None)
4367f805db09 Got rid of macfs and FSSpecs in general (pathnames or FSRefs are now
Jack Jansen <jack.jansen@cwi.nl>
parents: 27697
diff changeset
255 self.scriptswalk(fsr.as_pathname(), self.scriptsmenu)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
256
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
257 def makeopenwindowsmenu(self):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
258 for i in range(len(self.openwindowsmenu.items)):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
259 self.openwindowsmenu.menu.DeleteMenuItem(1)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
260 self.openwindowsmenu.items = []
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
261 windows = []
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
262 self._openwindows = {}
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
263 for window in self._windows.keys():
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
264 title = window.GetWTitle()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
265 if not title:
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
266 title = "<no title>"
11949
5e48d83c0fce Fixed multi-arg appends.
Jack Jansen <jack.jansen@cwi.nl>
parents: 11325
diff changeset
267 windows.append((title, window))
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
268 windows.sort()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
269 for title, window in windows:
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
270 if title == "Python Interactive": # ugly but useful hack by Joe Strout
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
271 shortcut = '0'
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
272 else:
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
273 shortcut = None
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
274 item = FrameWork.MenuItem(self.openwindowsmenu, title, shortcut, callback = self.domenu_openwindows)
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
275 self._openwindows[item.item] = window
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
276 self._openwindowscheckmark = 0
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
277 self.checkopenwindowsmenu()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
278
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
279 def domenu_openwindows(self, id, item, window, event):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
280 w = self._openwindows[item]
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
281 w.ShowWindow()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
282 w.SelectWindow()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
283
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
284 def domenu_quit(self):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
285 self._quit()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
286
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
287 def domenu_save(self, *args):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
288 print "Save"
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
289
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
290 def _quit(self):
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
291 import PyConsole, PyEdit
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
292 for window in self._windows.values():
11031
8b7f65b0db18 mod from Joe Strout: when quitting, catch errors in window.close() methods and ignore them. Otherwise one can never quit.
Just van Rossum <just@lettererror.com>
parents: 10322
diff changeset
293 try:
8b7f65b0db18 mod from Joe Strout: when quitting, catch errors in window.close() methods and ignore them. Otherwise one can never quit.
Just van Rossum <just@lettererror.com>
parents: 10322
diff changeset
294 rv = window.close() # ignore any errors while quitting
8b7f65b0db18 mod from Joe Strout: when quitting, catch errors in window.close() methods and ignore them. Otherwise one can never quit.
Just van Rossum <just@lettererror.com>
parents: 10322
diff changeset
295 except:
8b7f65b0db18 mod from Joe Strout: when quitting, catch errors in window.close() methods and ignore them. Otherwise one can never quit.
Just van Rossum <just@lettererror.com>
parents: 10322
diff changeset
296 rv = 0 # (otherwise, we can get stuck!)
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
297 if rv and rv > 0:
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
298 return
26346
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
299 try:
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
300 PyConsole.console.writeprefs()
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
301 PyConsole.output.writeprefs()
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
302 PyEdit.searchengine.writeprefs()
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
303 except:
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
304 # Write to __stderr__ so the msg end up in Console.app and has
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
305 # at least _some_ chance of getting read...
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
306 # But: this is a workaround for way more serious problems with
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
307 # the Python 2.2 Jaguar addon.
547de407c133 workaround so the (otherwise still broken) IDE can at least quit in the Python 2.2 Jaguar addon install
Just van Rossum <just@letterror.com>
parents: 25869
diff changeset
308 sys.__stderr__.write("*** PythonIDE: Can't write preferences ***\n")
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
309 self.quitting = 1
25084
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
310
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
311 def makehelpmenu(self):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
312 docs = self.installdocumentation()
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
313 self.helpmenu = m = self.gethelpmenu()
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
314 docitem = FrameWork.MenuItem(m, "Python Documentation", None, self.domenu_localdocs)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
315 docitem.enable(docs)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
316 finditem = FrameWork.MenuItem(m, "Lookup in Python Documentation", None, 'lookuppython')
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
317 finditem.enable(docs)
25156
bf90fb71aa76 Reorganized order of help menu, and don't show Carbon documentation
Jack Jansen <jack.jansen@cwi.nl>
parents: 25084
diff changeset
318 if runningOnOSX():
bf90fb71aa76 Reorganized order of help menu, and don't show Carbon documentation
Jack Jansen <jack.jansen@cwi.nl>
parents: 25084
diff changeset
319 FrameWork.Separator(m)
bf90fb71aa76 Reorganized order of help menu, and don't show Carbon documentation
Jack Jansen <jack.jansen@cwi.nl>
parents: 25084
diff changeset
320 doc2item = FrameWork.MenuItem(m, "Apple Developer Documentation", None, self.domenu_appledocs)
bf90fb71aa76 Reorganized order of help menu, and don't show Carbon documentation
Jack Jansen <jack.jansen@cwi.nl>
parents: 25084
diff changeset
321 find2item = FrameWork.MenuItem(m, "Lookup in Carbon Documentation", None, 'lookupcarbon')
25084
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
322 FrameWork.Separator(m)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
323 webitem = FrameWork.MenuItem(m, "Python Documentation on the Web", None, self.domenu_webdocs)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
324 web2item = FrameWork.MenuItem(m, "Python on the Web", None, self.domenu_webpython)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
325 web3item = FrameWork.MenuItem(m, "MacPython on the Web", None, self.domenu_webmacpython)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
326
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
327 def domenu_localdocs(self, *args):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
328 from Carbon import AH
25224
e709a3c8bfec Pass None to AHGotoPage().
Jack Jansen <jack.jansen@cwi.nl>
parents: 25156
diff changeset
329 AH.AHGotoPage("Python Help", None, None)
25084
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
330
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
331 def domenu_appledocs(self, *args):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
332 from Carbon import AH, AppleHelp
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
333 try:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
334 AH.AHGotoMainTOC(AppleHelp.kAHTOCTypeDeveloper)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
335 except AH.Error, arg:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
336 if arg[0] == -50:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
337 W.Message("Developer documentation not installed")
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
338 else:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
339 W.Message("AppleHelp Error: %s" % `arg`)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
340
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
341 def domenu_lookuppython(self, *args):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
342 from Carbon import AH
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
343 searchstring = self._getsearchstring()
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
344 if not searchstring:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
345 return
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
346 try:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
347 AH.AHSearch("Python Help", searchstring)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
348 except AH.Error, arg:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
349 W.Message("AppleHelp Error: %s" % `arg`)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
350
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
351 def domenu_lookupcarbon(self, *args):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
352 from Carbon import AH
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
353 searchstring = self._getsearchstring()
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
354 if not searchstring:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
355 return
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
356 try:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
357 AH.AHSearch("Carbon", searchstring)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
358 except AH.Error, arg:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
359 W.Message("AppleHelp Error: %s" % `arg`)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
360
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
361 def _getsearchstring(self):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
362 import PyEdit
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
363 editor = PyEdit.findeditor(None, fromtop=1)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
364 if editor:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
365 text = editor.getselectedtext()
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
366 if text:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
367 return text
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
368 # This is a cop-out. We should have disabled the menus
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
369 # if there is no selection, but the can_ methods only seem
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
370 # to work for Windows. Or not for the Help menu, maybe?
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
371 text = EasyDialogs.AskString("Search documentation for", ok="Search")
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
372 return text
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
373
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
374 def domenu_webdocs(self, *args):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
375 import webbrowser
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
376 major, minor, micro, state, nano = sys.version_info
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
377 if state in ('alpha', 'beta'):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
378 docversion = 'dev/doc/devel'
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
379 elif micro == 0:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
380 docversion = 'doc/%d.%d' % (major, minor)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
381 else:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
382 docversion = 'doc/%d.%d.%d' % (major, minor, micro)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
383 webbrowser.open("http://www.python.org/%s" % docversion)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
384
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
385 def domenu_webpython(self, *args):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
386 import webbrowser
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
387 webbrowser.open("http://www.python.org/")
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
388
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
389 def domenu_webmacpython(self, *args):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
390 import webbrowser
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
391 webbrowser.open("http://www.cwi.nl/~jack/macpython.html")
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
392
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
393 def installdocumentation(self):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
394 # This is rather much of a hack. Someone has to tell the Help Viewer
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
395 # about the Python documentation, so why not us. The documentation
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
396 # is located in the framework, but there's a symlink in Python.app.
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
397 # And as AHRegisterHelpBook wants a bundle (with the right bits in
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
398 # the plist file) we refer it to Python.app
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
399 python_app = os.path.join(sys.prefix, 'Resources/Python.app')
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
400 doc_source = os.path.join(python_app, 'Contents/Resources/English.lproj/Documentation')
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
401 if not os.path.isdir(doc_source):
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
402 return 0
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
403 try:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
404 from Carbon import AH
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
405 AH.AHRegisterHelpBook(python_app)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
406 except (ImportError, MacOS.Error), arg:
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
407 W.Message("Cannot register Python documentation: %s" % `arg`)
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
408 return 0
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
409 return 1
b337ef16c0d2 Implemented the Help menu. The Python manual can be viewed (if installed)
Jack Jansen <jack.jansen@cwi.nl>
parents: 24226
diff changeset
410
10047
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
411
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
412 PythonIDE()
a0b06891d286 First Checked In.
Just van Rossum <just@lettererror.com>
parents:
diff changeset
413