Use new file dialogs.
diff --git a/Mac/Demo/imgbrowse/imgbrowse.py b/Mac/Demo/imgbrowse/imgbrowse.py
index b54f82b..d8164ea 100644
--- a/Mac/Demo/imgbrowse/imgbrowse.py
+++ b/Mac/Demo/imgbrowse/imgbrowse.py
@@ -1,4 +1,4 @@
-GetPortBounds()"""imgbrowse - Display pictures using img"""
+"""imgbrowse - Display pictures using img"""
 
 import FrameWork
 import EasyDialogs
@@ -11,7 +11,6 @@
 import struct
 import img
 import imgformat
-import macfs
 import struct
 import mac_image
 
@@ -47,11 +46,10 @@
 		self._quit()
 		
 	def opendoc(self, *args):
-		fss, ok = macfs.StandardGetFile() # Any file type
-		if not ok:
+		pathname = EasyDialogs.AskFileForOpen() # Any file type
+		if not pathname:
 			return
 		bar = EasyDialogs.ProgressBar('Reading and converting...')
-		pathname = fss.as_pathname()
 		try:
 			rdr = img.reader(imgformat.macrgb16, pathname)
 		except img.error, arg:
diff --git a/Mac/Demo/mlte/mlted.py b/Mac/Demo/mlte/mlted.py
index 3f77eee..53f9f5d 100644
--- a/Mac/Demo/mlte/mlted.py
+++ b/Mac/Demo/mlte/mlted.py
@@ -11,7 +11,6 @@
 from Carbon import Res
 from Carbon import Scrap
 import os
-import macfs
 from Carbon import MacTextEditor
 from Carbon import Mlte
 
@@ -92,9 +91,9 @@
 		self.changed = 0
 		
 	def menu_save_as(self):
-		fss, ok = macfs.StandardPutFile('Save as:')
-		if not ok: return
-		self.path = fss.as_pathname()
+		path = EasyDialogs.AskFileForSave(message='Save as:')
+		if not path: return
+		self.path = path
 		self.name = os.path.split(self.path)[-1]
 		self.wid.SetWTitle(self.name)
 		self.menu_save()
@@ -268,10 +267,9 @@
 
 	def _open(self, askfile):
 		if askfile:
-			fss, ok = macfs.StandardGetFile('TEXT')
-			if not ok:
+			path = EasyDialogs.AskFileForOpen(typeList=('TEXT',))
+			if not path:
 				return
-			path = fss.as_pathname()
 			name = os.path.split(path)[-1]
 			try:
 				fp = open(path, 'rb') # NOTE binary, we need cr as end-of-line
diff --git a/Mac/Demo/quicktime/MovieInWindow.py b/Mac/Demo/quicktime/MovieInWindow.py
index 620c16c..0df30a4 100644
--- a/Mac/Demo/quicktime/MovieInWindow.py
+++ b/Mac/Demo/quicktime/MovieInWindow.py
@@ -11,7 +11,8 @@
 from Carbon import Events
 from Carbon import Win
 from Carbon import Windows
-import macfs
+from Carbon import File
+import EasyDialogs
 import sys
 
 
@@ -21,8 +22,8 @@
 	Qt.EnterMovies()
 	
 	# Get the movie file
-	fss, ok = macfs.StandardGetFile() # Was: QuickTime.MovieFileType
-	if not ok:
+	fss = EasyDialogs.AskFileForOpen(wanted=File.FSSpec) # Was: QuickTime.MovieFileType
+	if not fss:
 		sys.exit(0)
 		
 	# Open the window
diff --git a/Mac/Demo/quicktime/VerySimplePlayer.py b/Mac/Demo/quicktime/VerySimplePlayer.py
index aca977f..de64e3f 100644
--- a/Mac/Demo/quicktime/VerySimplePlayer.py
+++ b/Mac/Demo/quicktime/VerySimplePlayer.py
@@ -11,7 +11,8 @@
 from Carbon import Events
 from Carbon import Win
 from Carbon import Windows
-import macfs
+from Carbon import File
+import EasyDialogs
 import sys
 
 # XXXX maxbounds = (40, 40, 1000, 1000)
@@ -23,8 +24,8 @@
 	Qt.EnterMovies()
 	
 	# Get the movie file
-	fss, ok = macfs.StandardGetFile(QuickTime.MovieFileType)
-	if not ok:
+	fss = EasyDialogs.AskFileForOpen(wanted=File.FSSpec) # Was: QuickTime.MovieFileType
+	if not fss:
 		sys.exit(0)
 		
 	# Open the window
diff --git a/Mac/Demo/textedit/ped.py b/Mac/Demo/textedit/ped.py
index 6666158..80cf7e5 100644
--- a/Mac/Demo/textedit/ped.py
+++ b/Mac/Demo/textedit/ped.py
@@ -131,9 +131,9 @@
 		self.changed = 0
 		
 	def menu_save_as(self):
-		fss, ok = macfs.StandardPutFile('Save as:')
-		if not ok: return
-		self.path = fss.as_pathname()
+		path = EasyDialogs.AskFileForSave(message='Save as:')
+		if not path: return
+		self.path = path
 		self.name = os.path.split(self.path)[-1]
 		self.wid.SetWTitle(self.name)
 		self.menu_save()
@@ -265,10 +265,9 @@
 
 	def _open(self, askfile):
 		if askfile:
-			fss, ok = macfs.StandardGetFile('TEXT')
-			if not ok:
+			path = EasyDialogs.AskFileForOpen(typeList=('TEXT',))
+			if not path:
 				return
-			path = fss.as_pathname()
 			name = os.path.split(path)[-1]
 			try:
 				fp = open(path, 'rb') # NOTE binary, we need cr as end-of-line
diff --git a/Mac/Demo/waste/htmled.py b/Mac/Demo/waste/htmled.py
index 3abbafa..d415de1 100644
--- a/Mac/Demo/waste/htmled.py
+++ b/Mac/Demo/waste/htmled.py
@@ -13,8 +13,8 @@
 import WASTEconst
 from Carbon import Scrap
 import os
+import EasyDialogs
 import macfs
-import MACFS
 import string
 import htmllib
 
@@ -243,7 +243,7 @@
 		try:
 			rf = Res.FSpOpenResFile(self.path, 3)
 		except Res.Error:
-			Res.FSpCreateResFile(self.path, '????', 'TEXT', MACFS.smAllScripts)
+			Res.FSpCreateResFile(self.path, '????', 'TEXT', macfs.smAllScripts)
 			rf = Res.FSpOpenResFile(self.path, 3)
 		styles = Res.Resource('')
 		soup = Res.Resource('')
@@ -256,9 +256,9 @@
 		self.ted.WEResetModCount()
 		
 	def menu_save_as(self):
-		fss, ok = macfs.StandardPutFile('Save as:')
-		if not ok: return
-		self.path = fss.as_pathname()
+		path = EasyDialogs.AskFileForSave(message='Save as:')
+		if not path: return
+		self.path = path
 		self.name = os.path.split(self.path)[-1]
 		self.wid.SetWTitle(self.name)
 		self.menu_save()
@@ -661,10 +661,9 @@
 
 	def _open(self, askfile):
 		if askfile:
-			fss, ok = macfs.StandardGetFile('TEXT')
-			if not ok:
+			path = EasyDialogs.AskFileForOpen(typeList=('TEXT',))
+			if not path:
 				return
-			path = fss.as_pathname()
 			name = os.path.split(path)[-1]
 			try:
 				fp = open(path, 'rb') # NOTE binary, we need cr as end-of-line
@@ -683,10 +682,9 @@
 
 	def insertfile(self, *args):
 		if self.active:
-			fss, ok = macfs.StandardGetFile('TEXT')
-			if not ok:
+			path = EasyDialogs.AskFileForOpen(typeList=('TEXT',))
+			if not path:
 				return
-			path = fss.as_pathname()
 			try:
 				fp = open(path, 'rb') # NOTE binary, we need cr as end-of-line
 			except IOError, arg:
@@ -698,10 +696,9 @@
 
 	def inserthtml(self, *args):
 		if self.active:
-			fss, ok = macfs.StandardGetFile('TEXT')
-			if not ok:
+			path = EasyDialogs.AskFileForOpen(typeList=('TEXT',))
+			if not path:
 				return
-			path = fss.as_pathname()
 			try:
 				fp = open(path, 'r')
 			except IOError, arg:
diff --git a/Mac/Demo/waste/swed.py b/Mac/Demo/waste/swed.py
index 083a04c..c85cb21 100644
--- a/Mac/Demo/waste/swed.py
+++ b/Mac/Demo/waste/swed.py
@@ -14,7 +14,6 @@
 from Carbon import Scrap
 import os
 import macfs
-import MACFS
 
 UNDOLABELS = [ # Indexed by WEGetUndoInfo() value
 	None, "", "typing", "Cut", "Paste", "Clear", "Drag", "Style"]
@@ -213,7 +212,7 @@
 		try:
 			rf = Res.FSpOpenResFile(self.path, 3)
 		except Res.Error:
-			Res.FSpCreateResFile(self.path, '????', 'TEXT', MACFS.smAllScripts)
+			Res.FSpCreateResFile(self.path, '????', 'TEXT', macfs.smAllScripts)
 			rf = Res.FSpOpenResFile(self.path, 3)
 		styles = Res.Resource('')
 		soup = Res.Resource('')
@@ -226,9 +225,9 @@
 		self.ted.WEResetModCount()
 		
 	def menu_save_as(self):
-		fss, ok = macfs.StandardPutFile('Save as:')
-		if not ok: return
-		self.path = fss.as_pathname()
+		path = EasyDialogs.AskFileForSave(message='Save as:')
+		if not path: return
+		self.path = path
 		self.name = os.path.split(self.path)[-1]
 		self.wid.SetWTitle(self.name)
 		self.menu_save()
@@ -521,10 +520,9 @@
 
 	def _open(self, askfile):
 		if askfile:
-			fss, ok = macfs.StandardGetFile('TEXT')
-			if not ok:
+			path = EasyDialogs.AskFileForOpen(typeList=('TEXT',))
+			if not path:
 				return
-			path = fss.as_pathname()
 			name = os.path.split(path)[-1]
 			try:
 				fp = open(path, 'rb') # NOTE binary, we need cr as end-of-line
diff --git a/Mac/Demo/waste/wed.py b/Mac/Demo/waste/wed.py
index 199201b..7161ae5 100644
--- a/Mac/Demo/waste/wed.py
+++ b/Mac/Demo/waste/wed.py
@@ -12,7 +12,7 @@
 import WASTEconst
 from Carbon import Scrap
 import os
-import macfs
+import EasyDialogs
 
 UNDOLABELS = [ # Indexed by WEGetUndoInfo() value
 	None, "", "typing", "Cut", "Paste", "Clear", "Drag", "Style"]
@@ -181,9 +181,9 @@
 		self.changed = 0
 		
 	def menu_save_as(self):
-		fss, ok = macfs.StandardPutFile('Save as:')
-		if not ok: return
-		self.path = fss.as_pathname()
+		path = EasyDialogs.AskFileForSave(message='Save as:')
+		if not path: return
+		self.path = path
 		self.name = os.path.split(self.path)[-1]
 		self.wid.SetWTitle(self.name)
 		self.menu_save()
@@ -329,10 +329,9 @@
 
 	def _open(self, askfile):
 		if askfile:
-			fss, ok = macfs.StandardGetFile('TEXT')
-			if not ok:
+			path = EasyDialogs.AskFileForOpen(typeList=('TEXT',))
+			if not path:
 				return
-			path = fss.as_pathname()
 			name = os.path.split(path)[-1]
 			try:
 				fp = open(path, 'rb') # NOTE binary, we need cr as end-of-line
diff --git a/Mac/Tools/macfreeze/macgen_bin.py b/Mac/Tools/macfreeze/macgen_bin.py
index a6de84a..8735e17 100644
--- a/Mac/Tools/macfreeze/macgen_bin.py
+++ b/Mac/Tools/macfreeze/macgen_bin.py
@@ -205,10 +205,10 @@
 		raise "Unknown MacOS.runtimemodel", MacOS.runtimemodel
 	corepath = os.path.join(extpath, corename)
 	if not os.path.exists(corepath):
-		fss, ok = macfs.PromptGetFile("Please locate PythonCore:", "shlb")
-		if not ok:
+		corepath = EasyDialogs.AskFileForOpen(message="Please locate PythonCore:", 
+			typeList=("shlb",))
+		if not corepath:
 			raise KeyboardInterrupt, "cancelled"
-		corepath = fss.as_pathname()
 	return resolvealiasfile(corepath)
 
 def resolvealiasfile(path):
diff --git a/Mac/scripts/EditPythonPrefs.py b/Mac/scripts/EditPythonPrefs.py
index d9a0c5d..9e9c370 100644
--- a/Mac/scripts/EditPythonPrefs.py
+++ b/Mac/scripts/EditPythonPrefs.py
@@ -159,7 +159,8 @@
 ##		if n == REVERT_ITEM:
 ##			return [], pythondir
 		if n == DIR_ITEM:
-			fss, ok = macfs.GetDirectory('Select python home folder:')
+			fss = EasyDialogs.AskFolder(message='Select python home folder:',
+				wanted=macfs.FSSpec)
 			if ok:
 				options['dir'] = fss
 		elif n == HELP_ITEM and Help:
diff --git a/Mac/scripts/findgremlins.py b/Mac/scripts/findgremlins.py
index fe40e64..595551e 100644
--- a/Mac/scripts/findgremlins.py
+++ b/Mac/scripts/findgremlins.py
@@ -4,6 +4,7 @@
 
 By Just, with a little glue by Jack"""
 
+import EasyDialogs
 import macfs
 import re
 import os
@@ -43,9 +44,9 @@
 				pos = j
 
 def main():
-	fss, ok = macfs.GetDirectory()
-	if ok:
-		walk(fss.as_pathname())
+	pathname = EasyDialogs.AskFolder()
+	if pathname:
+		walk(pathname)
 		
 if __name__ == '__main__':
 	main()
diff --git a/Mac/scripts/fixfiletypes.py b/Mac/scripts/fixfiletypes.py
index 284b5e1..872c891 100644
--- a/Mac/scripts/fixfiletypes.py
+++ b/Mac/scripts/fixfiletypes.py
@@ -9,6 +9,7 @@
 #
 import os
 import macfs
+import EasyDialogs
 import sys
 import macostools
 
@@ -45,10 +46,10 @@
 			walktree(os.path.join(name, f), change)
 			
 def run(change):
-	fss, ok = macfs.GetDirectory('Folder to search:')
-	if not ok:
+	pathname = EasyDialogs.AskFolder(message='Folder to search:')
+	if not pathname:
 		sys.exit(0)
-	walktree(fss.as_pathname(), change)
+	walktree(pathname, change)
 	
 if __name__ == '__main__':
 	run(1)
diff --git a/Mac/scripts/fullbuild.py b/Mac/scripts/fullbuild.py
index 1a8fc6d..b1cd2d8 100644
--- a/Mac/scripts/fullbuild.py
+++ b/Mac/scripts/fullbuild.py
@@ -410,10 +410,9 @@
 				
 def main():
 	macresource.need('DLOG', DIALOG_ID, 'fullbuild.rsrc')
-	dir, ok = macfs.GetDirectory('Python source folder:')
-	if not ok:
+	dir = EasyDialogs.AskFolder(message='Python source folder:')
+	if not dir:
 		sys.exit(0)
-	dir = dir.as_pathname()
 	# Set genpluginprojects to use this folder (slight hack)
 	genpluginprojects.PYTHONDIR = dir
 	
diff --git a/Mac/scripts/makeclean.py b/Mac/scripts/makeclean.py
index 005ea02..14416ab 100644
--- a/Mac/scripts/makeclean.py
+++ b/Mac/scripts/makeclean.py
@@ -12,6 +12,7 @@
 """
 
 import macfs
+import EasyDialogs
 import os
 import sys
 import re
@@ -53,7 +54,7 @@
 			remove(top)
 		
 
-fss, ok = macfs.GetDirectory("Please locate the Python home directory")
-if ok:
-	walk(fss.as_pathname())
+pathname = EasyDialogs.AskFolder(message="Please locate the Python home directory")
+if pathname:
+	walk(pathname)
 	sys.exit(1)  # so we see the results
diff --git a/Mac/scripts/unshar.py b/Mac/scripts/unshar.py
index a90ee34..ec14f2e 100644
--- a/Mac/scripts/unshar.py
+++ b/Mac/scripts/unshar.py
@@ -6,6 +6,7 @@
 # >>> unshar.unshar(f)
 
 import string
+import EasyDialogs
 
 def unshar(fp, verbose=0, overwrite=0):
 	ofp = None
@@ -82,15 +83,14 @@
 			unshar(fp)
 	else:
 		import macfs
-		fss, ok = macfs.StandardGetFile('TEXT')
-		if not ok:
+		fname = EasyDialogs.AskFileForOpen()
+		if not fname:
 			sys.exit(0)
-		fname = fss.as_pathname()
 		fp = open(fname, 'r')
-		fss, ok = macfs.GetDirectory('Folder to save files in:')
-		if not ok:
+		dirname = EasyDialogs.AskFolder(message='Folder to save files in:')
+		if not dirname:
 			sys.exit(0)
-		os.chdir(fss.as_pathname())
+		os.chdir(dirname)
 		unshar(fp)
 		
 if __name__ == '__main__':
diff --git a/Mac/scripts/zappycfiles.py b/Mac/scripts/zappycfiles.py
index dcd4133..4637159 100644
--- a/Mac/scripts/zappycfiles.py
+++ b/Mac/scripts/zappycfiles.py
@@ -2,6 +2,7 @@
 """Recursively zap all .pyc and .pyo files"""
 import os
 import sys
+import EasyDialogs
 
 # set doit true to actually delete files
 # set doit false to just print what would be deleted
@@ -11,10 +12,9 @@
 	if not sys.argv[1:]:
 		if os.name == 'mac':
 			import macfs
-			fss, ok = macfs.GetDirectory('Directory to zap pyc files in')
-			if not ok:
+			dir = EasyDialogs.AskFolder(message='Directory to zap pyc files in')
+			if not dir:
 				sys.exit(0)
-			dir = fss.as_pathname()
 			zappyc(dir)
 		else:
 			print 'Usage: zappyc dir ...'