summaryrefslogtreecommitdiffstats
path: root/macosx/tkMacOSXDialog.c
diff options
context:
space:
mode:
Diffstat (limited to 'macosx/tkMacOSXDialog.c')
-rw-r--r--macosx/tkMacOSXDialog.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/macosx/tkMacOSXDialog.c b/macosx/tkMacOSXDialog.c
index 538056a..c496cbf 100644
--- a/macosx/tkMacOSXDialog.c
+++ b/macosx/tkMacOSXDialog.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkMacOSXDialog.c,v 1.4.2.13 2007/04/29 02:26:48 das Exp $
+ * RCS: @(#) $Id: tkMacOSXDialog.c,v 1.4.2.14 2007/05/09 12:57:46 das Exp $
*/
#include "tkMacOSXInt.h"
@@ -424,9 +424,14 @@ Tk_GetSaveFileObjCmd(
InitFileDialogs();
}
+ TkInitFileFilters(&ofd.fl);
+ ofd.curType = 0;
+ ofd.usePopup = 0;
+
for (i = 1; i < objc; i += 2) {
char *choice, *string;
int index, choiceLen;
+ char *types;
if (Tcl_GetIndexFromObj(interp, objv[i], saveOptionStrings, "option",
TCL_EXACT, &index) != TCL_OK) {
@@ -442,7 +447,10 @@ Tk_GetSaveFileObjCmd(
case SAVE_DEFAULT:
break;
case SAVE_FILETYPES:
- /* Currently unimplemented - what would we do here anyway? */
+ types = Tcl_GetString(objv[i + 1]);
+ if (TkGetFileFilters(interp, &ofd.fl, types, 0) != TCL_OK) {
+ goto end;
+ }
break;
case SAVE_INITDIR:
choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen);
@@ -480,8 +488,6 @@ Tk_GetSaveFileObjCmd(
}
}
- TkInitFileFilters(&ofd.fl);
- ofd.usePopup = 0;
if (initialDesc.descriptorType == typeFSRef) {
initialPtr = &initialDesc;
}