1 """StandardFile compatability module: implement macfs StandardFile
2 API calls with Navigation Services"""
14 def _mktypelist(typelist
):
17 data
= 'Pyth' + struct
.pack("hh", 0, len(typelist
))
20 return Res
.Resource(data
)
22 def _StandardGetFile(*typelist
):
23 return apply(_PromptGetFile
, (None,)+typelist
)
25 def _PromptGetFile(prompt
, *typelist
):
28 typehandle
= _mktypelist(typelist
)
30 args
['typeList'] = typehandle
34 args
['message'] = prompt
35 args
['preferenceKey'] = 'PyMC'
37 args
['eventProc'] = None
38 args
['dialogOptionFlags'] = flags
39 _handleSetFolder(args
)
41 rr
= Nav
.NavChooseFile(args
)
43 except Nav
.error
, arg
:
44 if arg
[0] != -128: # userCancelledErr
47 fss
= macfs
.FSSpec(':cancelled')
51 ## typehandle.DisposeHandle()
54 def _StandardPutFile(prompt
, default
=None):
58 args
['message'] = prompt
59 args
['preferenceKey'] = 'PyMC'
61 args
['eventProc'] = None
63 args
['savedFileName'] = default
64 args
['dialogOptionFlags'] = flags
65 _handleSetFolder(args
)
67 rr
= Nav
.NavPutFile(args
)
69 except Nav
.error
, arg
:
70 if arg
[0] != -128: # userCancelledErr
73 fss
= macfs
.FSSpec(':cancelled')
78 def _SetFolder(folder
):
84 _curfolder
= macfs
.FSSpec(folder
)
87 def _handleSetFolder(args
):
92 fss
= macfs
.FSSpec(_curfolder
)
93 aedesc
= aepack
.pack(fss
)
94 args
['defaultLocation'] = aedesc
97 def _GetDirectory(prompt
=None):
101 args
['message'] = prompt
102 args
['preferenceKey'] = 'PyMC'
104 args
['eventProc'] = None
105 args
['dialogOptionFlags'] = flags
106 _handleSetFolder(args
)
108 rr
= Nav
.NavChooseFolder(args
)
110 except Nav
.error
, arg
:
111 if arg
[0] != -128: # userCancelledErr
114 fss
= macfs
.FSSpec(':cancelled')
116 fss
= rr
.selection
[0]
120 macfs
.StandardGetFile
= StandardGetFile
121 macfs
.PromptGetFile
= PromptGetFile
122 macfs
.StandardPutFile
= StandardPutFile
123 macfs
.SetFolder
= SetFolder
124 macfs
.GetDirectory
= GetDirectory
126 if Nav
and Nav
.NavServicesAvailable():
127 StandardGetFile
= _StandardGetFile
128 PromptGetFile
= _PromptGetFile
129 StandardPutFile
= _StandardPutFile
130 SetFolder
= _SetFolder
131 GetDirectory
= _GetDirectory
133 from macfs
import StandardGetFile
, PromptGetFile
, StandardPutFile
, SetFolder
, GetDirectory
136 if __name__
== '__main__':
137 print 'Testing StandardGetFile'
138 fss
, ok
= StandardGetFile()
140 print 'Testing StandardGetFile("TEXT")'
141 fss
, ok
= StandardGetFile("TEXT")
143 print 'Testing PromptGetFile'
144 fss
, ok
= PromptGetFile("prompt")
146 print 'Testing StandardPutFile("the prompt", "default")'
147 fss
, ok
= StandardPutFile("the prompt", "default")
149 print 'Testing GetDirectory("another prompt")'
150 fss
, ok
= GetDirectory("Another prompt")