From: <kr_...@us...> - 2003-04-26 10:01:23
|
Update of /cvsroot/htoolkit/port/src/cbits/Win32 In directory sc8-pr-cvs1:/tmp/cvs-serv4266/port/src/cbits/Win32 Modified Files: FileDialog.c Log Message: The InputFileDialog, OutputFileDialog and SelectDirectory dialogs has extended functionality Index: FileDialog.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/Win32/FileDialog.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** FileDialog.c 29 Mar 2003 08:12:18 -0000 1.3 --- FileDialog.c 26 Apr 2003 10:00:48 -0000 1.4 *************** *** 18,28 **** } ! char *osSelectDirectory() { char buffer[MAX_PATH]; LPITEMIDLIST pidlReturn; BROWSEINFO bi; ! char *s = NULL; ! char title[17] = "Select Directory\0"; bi.hwndOwner = ghWndFrame; --- 18,27 ---- } ! char *osSelectDirectory(char *title) { char buffer[MAX_PATH]; LPITEMIDLIST pidlReturn; BROWSEINFO bi; ! char *s = NULL; bi.hwndOwner = ghWndFrame; *************** *** 48,52 **** } ! char *osSelectInputFile() { OPENFILENAME ofn; --- 47,51 ---- } ! char *osSelectInputFile(char *title, char *filter) { OPENFILENAME ofn; *************** *** 56,60 **** ofn.hwndOwner = ghWndFrame; ofn.hInstance = NULL; ! ofn.lpstrFilter = NULL; ofn.lpstrCustomFilter = NULL; ofn.nMaxCustFilter = 0; --- 55,59 ---- ofn.hwndOwner = ghWndFrame; ofn.hInstance = NULL; ! ofn.lpstrFilter = filter; ofn.lpstrCustomFilter = NULL; ofn.nMaxCustFilter = 0; *************** *** 66,78 **** ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ! ofn.lpstrTitle = NULL; ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST ! | OFN_ENABLEHOOK; // PA: OFN_ENABLEHOOK added from Ronny ofn.lpstrDefExt = NULL; ofn.lCustData = 0; ! ofn.lpfnHook = &FileSelectorHook; // PA: &FileSelectorHook instead of NULL from Ronny ofn.lpTemplateName = NULL; --- 65,77 ---- ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ! ofn.lpstrTitle = title; ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST ! | OFN_ENABLEHOOK; ofn.lpstrDefExt = NULL; ofn.lCustData = 0; ! ofn.lpfnHook = &FileSelectorHook; ofn.lpTemplateName = NULL; *************** *** 84,97 **** } ! char *osSelectOutputFile(char *promptptr, char *nameptr) { OPENFILENAME ofn; ! if (strlen(promptptr) == 0) ! promptptr = NULL; ofn.lStructSize = sizeof (OPENFILENAME); ofn.hwndOwner = ghWndFrame; ! ofn.lpstrFilter = NULL; ofn.lpstrCustomFilter = NULL; ofn.nMaxCustFilter = 0; --- 83,172 ---- } ! char *osSelectInputFiles(char *title, char *filter) { + char *buffer; OPENFILENAME ofn; ! buffer = malloc(MAX_PATH*2); ! if (!buffer) ! return NULL; ofn.lStructSize = sizeof (OPENFILENAME); ofn.hwndOwner = ghWndFrame; ! ofn.hInstance = NULL; ! ofn.lpstrFilter = filter; ! ofn.lpstrCustomFilter = NULL; ! ofn.nMaxCustFilter = 0; ! ofn.nFilterIndex = 0; ! ofn.lpstrFile = buffer; ! ofn.lpstrFile[0] = '\0'; ! ofn.nMaxFile = MAX_PATH*2; ! ofn.lpstrFileTitle = NULL; ! ofn.nMaxFileTitle = 0; ! ofn.lpstrInitialDir = NULL; ! ofn.lpstrTitle = title; ! ofn.Flags = OFN_EXPLORER ! | OFN_FILEMUSTEXIST ! | OFN_HIDEREADONLY ! | OFN_PATHMUSTEXIST ! | OFN_ENABLEHOOK ! | OFN_ALLOWMULTISELECT; ! ofn.lpstrDefExt = NULL; ! ofn.lCustData = 0; ! ofn.lpfnHook = &FileSelectorHook; ! ofn.lpTemplateName = NULL; ! ! if (GetOpenFileName(&ofn)) ! { ! int nLen, nSize; ! char *s, *s2, *buffer; ! ! nSize = 1; ! s = ofn.lpstrFile+ofn.nFileOffset; ! while (*s) ! { ! nLen = strlen(s); ! s += nLen+1; ! nSize += ofn.nFileOffset+nLen+1; ! } ! ! buffer = malloc(nSize); ! if (!buffer) ! { ! free(ofn.lpstrFile); ! return NULL; ! } ! ! s2 = buffer; ! s = ofn.lpstrFile+ofn.nFileOffset; ! while (*s) ! { ! memcpy(s2,ofn.lpstrFile,ofn.nFileOffset-1); ! s2[ofn.nFileOffset-1] = '\\'; ! strcpy(s2+ofn.nFileOffset,s); ! nLen = strlen(s); ! s += nLen+1; ! s2 += ofn.nFileOffset+nLen+1; ! } ! *s2 = 0; ! ! free(ofn.lpstrFile); ! return buffer; ! } ! ! free(ofn.lpstrFile); ! return NULL; ! } ! ! char *osSelectOutputFile(char *title, char *filter, char *nameptr) ! { ! OPENFILENAME ofn; ! ! if (strlen(title) == 0) ! title = NULL; ! ! ofn.lStructSize = sizeof (OPENFILENAME); ! ofn.hwndOwner = ghWndFrame; ! ofn.lpstrFilter = filter; ofn.lpstrCustomFilter = NULL; ofn.nMaxCustFilter = 0; *************** *** 106,117 **** ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ! ofn.lpstrTitle = promptptr; ofn.Flags = OFN_EXPLORER | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY ! | OFN_ENABLEHOOK; // PA: OFN_ENABLEHOOK added from Ronny ofn.lpstrDefExt = NULL; ofn.lCustData = 0; ! ofn.lpfnHook = &FileSelectorHook; // PA: &FileSelectorHook instead of NULL from Ronny ofn.lpTemplateName = NULL; --- 181,192 ---- ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ! ofn.lpstrTitle = title; ofn.Flags = OFN_EXPLORER | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY ! | OFN_ENABLEHOOK; ofn.lpstrDefExt = NULL; ofn.lCustData = 0; ! ofn.lpfnHook = &FileSelectorHook; ofn.lpTemplateName = NULL; |