diff options
author | dgp <dgp@users.sourceforge.net> | 2011-10-04 17:53:34 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2011-10-04 17:53:34 (GMT) |
commit | 7571c73ea570497dcb0c8900ba99fcef9f4cbbfe (patch) | |
tree | 5b4bc1f3f667dfcaf144b9a436b6a296ed6ede81 /win | |
parent | c5559b85ac1478f163c844afcb1842e5ef906278 (diff) | |
download | tk-7571c73ea570497dcb0c8900ba99fcef9f4cbbfe.zip tk-7571c73ea570497dcb0c8900ba99fcef9f4cbbfe.tar.gz tk-7571c73ea570497dcb0c8900ba99fcef9f4cbbfe.tar.bz2 |
Contributed implementation patch for TIP 382.
Diffstat (limited to 'win')
-rw-r--r-- | win/tkWinDialog.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/win/tkWinDialog.c b/win/tkWinDialog.c index de7e84f..aca8e5d 100644 --- a/win/tkWinDialog.c +++ b/win/tkWinDialog.c @@ -591,7 +591,7 @@ GetFileNameW( WCHAR file[TK_MULTI_MAX_PATH]; OFNData ofnData; int cdlgerr; - int filterIndex = 0, result = TCL_ERROR, winCode, oldMode, i, multi = 0; + int filterIndex = 0, result = TCL_ERROR, winCode, oldMode, i, multi = 0, noComplain = 0; char *extension = NULL, *title = NULL; Tk_Window tkwin = (Tk_Window) clientData; HWND hWnd; @@ -603,7 +603,7 @@ GetFileNameW( Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData)); static CONST char *saveOptionStrings[] = { "-defaultextension", "-filetypes", "-initialdir", "-initialfile", - "-parent", "-title", "-typevariable", NULL + "-parent", "-title", "-typevariable", "-nocomplain", NULL }; static CONST char *openOptionStrings[] = { "-defaultextension", "-filetypes", "-initialdir", "-initialfile", @@ -613,7 +613,8 @@ GetFileNameW( enum options { FILE_DEFAULT, FILE_TYPES, FILE_INITDIR, FILE_INITFILE, - FILE_MULTIPLE, FILE_PARENT, FILE_TITLE, FILE_TYPEVARIABLE + FILE_MULTIPLE, FILE_PARENT, FILE_TITLE, FILE_TYPEVARIABLE, + FILE_NOCOMPLAIN }; file[0] = '\0'; @@ -712,6 +713,11 @@ GetFileNameW( initialTypeObj = Tcl_ObjGetVar2(interp, typeVariableObj, NULL, TCL_GLOBAL_ONLY); break; + case FILE_NOCOMPLAIN: + if (Tcl_GetBooleanFromObj(interp, valuePtr, &noComplain) != TCL_OK) { + return TCL_ERROR; + } + break; } } @@ -740,7 +746,7 @@ GetFileNameW( if (open != 0) { ofn.Flags |= OFN_FILEMUSTEXIST; - } else { + } else if (noComplain == 0) { ofn.Flags |= OFN_OVERWRITEPROMPT; } if (tsdPtr->debugFlag != 0) { |