Changeset 21916 for trunk/src/comdlg32/filedlg.c
- Timestamp:
- Dec 18, 2011, 10:28:22 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
. (modified) (2 props)
-
src/comdlg32/filedlg.c (modified) (46 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:ignore
-
old new 1 bin 2 Makefile.inc 1 env.cmd 2 LocalConfig.kmk
-
-
Property svn:mergeinfo
set to
/branches/gcc-kmk merged eligible
- Property svn:ignore
-
trunk/src/comdlg32/filedlg.c
r9522 r21916 22 22 23 23 #ifdef __WIN32OS2__ 24 #include <win \cursoricon.h>24 #include <win/cursoricon.h> 25 25 #include <heapstring.h> 26 26 … … 42 42 43 43 #define BUFFILE 512 44 #define BUFFILEALLOC 512 * sizeof(WCHAR) 45 46 struct FSPRIVATE 44 #define BUFFILEALLOC 512 * sizeof(WCHAR) 45 46 struct FSPRIVATE 47 47 { 48 48 HWND hwnd; /* file dialog window handle */ … … 75 75 #define LFS32A 2 76 76 #define LFS32W 3 77 77 78 78 static const WCHAR FILE_star[] = {'*','.','*', 0}; 79 79 static const WCHAR FILE_bslash[] = {'\\', 0}; … … 125 125 static BOOL initialized = 0; 126 126 CURSORICONINFO *fldrInfo; 127 127 128 128 if (!initialized) { 129 129 #ifdef __WIN32OS2__ … … 148 148 hNet = LoadImageA( inst, "NETWORK", IMAGE_ICON, 16, 16, LR_SHARED ); 149 149 #endif 150 if (hFolder == 0 || hFolder2 == 0 || hFloppy == 0 || 150 if (hFolder == 0 || hFolder2 == 0 || hFloppy == 0 || 151 151 hHDisk == 0 || hCDRom == 0 || hNet == 0) 152 152 { … … 160 160 fldrInfo = (CURSORICONINFO *) GlobalLock16( hFolder2 ); 161 161 if (!fldrInfo) 162 { 162 { 163 163 ERR("Error measuring icons !\n"); 164 164 return FALSE; … … 219 219 } else { /* get it from internal Wine resource */ 220 220 HANDLE hResInfo; 221 if (!(hResInfo = FindResourceA(COMMDLG_hInstance32, 221 if (!(hResInfo = FindResourceA(COMMDLG_hInstance32, 222 222 lfs->open? "OPEN_FILE":"SAVE_FILE", RT_DIALOGA))) 223 223 { … … 274 274 DWORD size; 275 275 276 if (!(hResInfo = FindResourceA(COMMDLG_hInstance32, 276 if (!(hResInfo = FindResourceA(COMMDLG_hInstance32, 277 277 lfs->open ? "OPEN_FILE":"SAVE_FILE", RT_DIALOGA))) 278 278 { … … 424 424 i = 0; 425 425 if (cfptr) 426 for ( ;(n = lstrlenW(cfptr)) != 0; i++) 426 for ( ;(n = lstrlenW(cfptr)) != 0; i++) 427 427 { 428 428 cfptr += n + 1; … … 432 432 } 433 433 if (fptr) 434 for ( ;(n = lstrlenW(fptr)) != 0; i++) 434 for ( ;(n = lstrlenW(fptr)) != 0; i++) 435 435 { 436 436 fptr += n + 1; … … 455 455 { 456 456 if (!(str = HeapAlloc(GetProcessHeap(), 0, BUFFILEALLOC))) return FALSE; 457 SendMessageW(lpdis->hwndItem, LB_GETTEXT, lpdis->itemID, 457 SendMessageW(lpdis->hwndItem, LB_GETTEXT, lpdis->itemID, 458 458 (LPARAM)str); 459 459 … … 486 486 if (!(str = HeapAlloc(GetProcessHeap(), 0, BUFFILEALLOC))) 487 487 return FALSE; 488 SendMessageW(lpdis->hwndItem, LB_GETTEXT, lpdis->itemID, 488 SendMessageW(lpdis->hwndItem, LB_GETTEXT, lpdis->itemID, 489 489 (LPARAM)str); 490 490 … … 515 515 if (!(str = HeapAlloc(GetProcessHeap(), 0, BUFFILEALLOC))) 516 516 return FALSE; 517 SendMessageW(lpdis->hwndItem, CB_GETLBTEXT, lpdis->itemID, 517 SendMessageW(lpdis->hwndItem, CB_GETLBTEXT, lpdis->itemID, 518 518 (LPARAM)str); 519 519 root[0] += str[2] - 'a'; … … 550 550 * FILEDLG_WMMeasureItem [internal] 551 551 */ 552 static LONG FILEDLG_WMMeasureItem(HWND hWnd, WPARAM wParam, LPARAM lParam) 552 static LONG FILEDLG_WMMeasureItem(HWND hWnd, WPARAM wParam, LPARAM lParam) 553 553 { 554 554 LPMEASUREITEMSTRUCT lpmeasure; 555 555 556 556 lpmeasure = (LPMEASUREITEMSTRUCT)lParam; 557 557 lpmeasure->itemHeight = fldrHeight; … … 562 562 */ 563 563 #ifdef __WIN32OS2__ 564 static LONG FILEDLG_WMMeasureItem16(HWND hWnd, WPARAM wParam, LPARAM lParam) 564 static LONG FILEDLG_WMMeasureItem16(HWND hWnd, WPARAM wParam, LPARAM lParam) 565 565 { 566 566 LPMEASUREITEMSTRUCT lpmeasure; 567 567 568 568 lpmeasure = (LPMEASUREITEMSTRUCT)lParam; 569 569 lpmeasure->itemHeight = fldrHeight; … … 571 571 } 572 572 #else 573 static LONG FILEDLG_WMMeasureItem16(HWND16 hWnd, WPARAM16 wParam, LPARAM lParam) 573 static LONG FILEDLG_WMMeasureItem16(HWND16 hWnd, WPARAM16 wParam, LPARAM lParam) 574 574 { 575 575 LPMEASUREITEMSTRUCT16 lpmeasure; 576 576 577 577 lpmeasure = MapSL(lParam); 578 578 lpmeasure->itemHeight = fldrHeight; … … 641 641 if (ofn->nFilterIndex == 0 && ofn->lpstrCustomFilter == NULL) 642 642 ofn->nFilterIndex = 1; 643 SendDlgItemMessageW(hWnd, cmb1, CB_SETCURSEL, ofn->nFilterIndex - 1, 0); 643 SendDlgItemMessageW(hWnd, cmb1, CB_SETCURSEL, ofn->nFilterIndex - 1, 0); 644 644 lstrcpynW(tmpstr, FILEDLG_GetFileType(ofn->lpstrCustomFilter, 645 645 (LPWSTR)ofn->lpstrFilter, ofn->nFilterIndex - 1),BUFFILE); 646 TRACE("nFilterIndex = %ld, SetText of edt1 to '%s'\n", 646 TRACE("nFilterIndex = %ld, SetText of edt1 to '%s'\n", 647 647 ofn->nFilterIndex, debugstr_w(tmpstr)); 648 648 SetDlgItemTextW( hWnd, edt1, tmpstr ); … … 651 651 DlgDirListComboBoxW(hWnd, tmpstr, cmb2, 0, DDL_DRIVES | DDL_EXCLUSIVE); 652 652 /* read initial directory */ 653 if (ofn->lpstrInitialDir != NULL) 653 if (ofn->lpstrInitialDir != NULL) 654 654 { 655 655 int len; … … 720 720 /*********************************************************************** 721 721 * FILEDLG_UpdateResult [internal] 722 * update the displayed file name (with path) 722 * update the displayed file name (with path) 723 723 */ 724 724 void FILEDLG_UpdateResult(LFSPRIVATE lfs, WCHAR *tmpstr) … … 779 779 /*********************************************************************** 780 780 * FILEDLG_UpdateFileTitle [internal] 781 * update the displayed file name (without path) 781 * update the displayed file name (without path) 782 782 */ 783 783 void FILEDLG_UpdateFileTitle(LFSPRIVATE lfs) … … 785 785 LONG lRet; 786 786 LPOPENFILENAMEW ofnW = lfs->ofnW; 787 if (ofnW->lpstrFileTitle != NULL) 787 if (ofnW->lpstrFileTitle != NULL) 788 788 { 789 789 lRet = SendDlgItemMessageW(lfs->hwnd, lst1, LB_GETCURSEL, 0, 0); … … 997 997 lRet = (BOOL)FILEDLG_CallWindowProc(lfs, lfs->fileokstring, 998 998 0, lfs->lParam ); 999 if (lRet) 999 if (lRet) 1000 1000 { 1001 1001 *ofnW = ofnsav; /* restore old state */ … … 1035 1035 (LPARAM)pstr); 1036 1036 wsprintfW(diskname, FILE_specc, pstr[2]); 1037 HeapFree(GetProcessHeap(), 0, pstr); 1037 HeapFree(GetProcessHeap(), 0, pstr); 1038 1038 1039 1039 return FILEDLG_Validate( lfs, diskname, cmb2, lRet, TRUE ); … … 1067 1067 */ 1068 1068 static LRESULT FILEDLG_WMCommand(HWND hWnd, LPARAM lParam, UINT notification, 1069 UINT control, LFSPRIVATE lfs ) 1069 UINT control, LFSPRIVATE lfs ) 1070 1070 { 1071 1071 switch (control) … … 1090 1090 1091 1091 case cmb1: /* file type drop list */ 1092 if (notification == CBN_SELCHANGE) 1092 if (notification == CBN_SELCHANGE) 1093 1093 return FILEDLG_FileTypeChange( lfs ); 1094 1094 break; … … 1215 1215 if (ofnA->lpstrTitle) 1216 1216 str = ofnA->lpstrTitle; 1217 else 1217 else 1218 1218 /* Allocates default title (FIXME : get it from resource) */ 1219 1219 str = open ? defaultopen:defaultsave; … … 1272 1272 /************************************************************************ 1273 1273 * FILEDLG_DestroyPrivate [internal] 1274 * destroys the private object 1274 * destroys the private object 1275 1275 */ 1276 1276 void FILEDLG_DestroyPrivate(LFSPRIVATE lfs) … … 1311 1311 /************************************************************************ 1312 1312 * FILEDLG_AllocPrivate [internal] 1313 * allocate a private object to hold 32 bits Unicode 1313 * allocate a private object to hold 32 bits Unicode 1314 1314 * structure that will be used throughtout the calls, while 1315 1315 * keeping available the original structures and a few variables … … 1369 1369 FILEDLG_MapOfnStructA(lfs->ofnA, lfs->ofnW, lfs->open); 1370 1370 } 1371 else 1371 else 1372 1372 ret = NULL; 1373 1373 } … … 1390 1390 * Creates a win31 style dialog box for the user to select a file to open/save. 1391 1391 */ 1392 BOOL WINAPI GetFileName31A( 1392 BOOL WINAPI GetFileName31A( 1393 1393 LPOPENFILENAMEA lpofn, /* addess of structure with data*/ 1394 1394 UINT dlgType /* type dialogue : open/save */ … … 1405 1405 { 1406 1406 hInst = GetWindowLongA( lpofn->hwndOwner, GWL_HINSTANCE ); 1407 bRet = DialogBoxIndirectParamA( hInst, lfs->template, lpofn->hwndOwner, 1407 bRet = DialogBoxIndirectParamA( hInst, lfs->template, lpofn->hwndOwner, 1408 1408 (DLGPROC) FileOpenDlgProc, (DWORD) lfs); 1409 1409 FILEDLG_DestroyPrivate(lfs); … … 1420 1420 * Creates a win31 style dialog box for the user to select a file to open/save 1421 1421 */ 1422 BOOL WINAPI GetFileName31W( 1422 BOOL WINAPI GetFileName31W( 1423 1423 LPOPENFILENAMEW lpofn, /* addess of structure with data*/ 1424 1424 UINT dlgType /* type dialogue : open/save */ … … 1435 1435 { 1436 1436 hInst = GetWindowLongA( lpofn->hwndOwner, GWL_HINSTANCE ); 1437 bRet = DialogBoxIndirectParamW( hInst, lfs->template, lpofn->hwndOwner, 1437 bRet = DialogBoxIndirectParamW( hInst, lfs->template, lpofn->hwndOwner, 1438 1438 (DLGPROC) FileOpenDlgProc, (DWORD) lfs); 1439 1439 FILEDLG_DestroyPrivate(lfs); … … 1453 1453 LRESULT WINAPI FileOpenDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, 1454 1454 LPARAM lParam) 1455 { 1455 { 1456 1456 LFSPRIVATE lfs = (LFSPRIVATE)GetPropA(hWnd,OFN_PROP); 1457 1457 DRAWITEMSTRUCT dis; 1458 1458 1459 1459 TRACE("msg=%x wparam=%x lParam=%lx\n", wMsg, wParam, lParam); 1460 1460 if ((wMsg != WM_INITDIALOG) && lfs && lfs->hook) 1461 1461 { 1462 1462 LRESULT lRet = (BOOL16)FILEDLG_CallWindowProc(lfs, wMsg, wParam, lParam); 1463 if (lRet) 1463 if (lRet) 1464 1464 return lRet; /* else continue message processing */ 1465 1465 } … … 1510 1510 LRESULT lRet; 1511 1511 lRet = (BOOL16)FILEDLG_CallWindowProc(lfs, wMsg, wParam, lParam); 1512 if (lRet) 1512 if (lRet) 1513 1513 return lRet; /* else continue message processing */ 1514 } 1514 } 1515 1515 switch (wMsg) { 1516 1516 case WM_INITDIALOG: 1517 1517 return FILEDLG_WMInitDialog(hWnd, wParam, lParam); 1518 1518 1519 1519 case WM_MEASUREITEM: 1520 1520 return FILEDLG_WMMeasureItem16(hWnd, wParam, lParam); 1521 1521 1522 1522 case WM_DRAWITEM: 1523 1523 FILEDLG_MapDrawItemStruct(MapSL(lParam), &dis); … … 1527 1527 return FILEDLG_WMCommand(hWnd, lParam, HIWORD(lParam), wParam, lfs); 1528 1528 } 1529 1529 1530 1530 /* 1531 1531 case WM_CTLCOLOR: … … 1541 1541 } 1542 1542 return FALSE; 1543 1543 1544 1544 */ 1545 1545 return FALSE; … … 1549 1549 /*********************************************************************** 1550 1550 * FileOpenDlgProc [internal] 1551 * Used for open and save, in fact. 1551 * Used for open and save, in fact. 1552 1552 */ 1553 1553 static LRESULT WINAPI FileOpenDlgProc(HWND hWnd, UINT wMsg, … … 1561 1561 LRESULT lRet; 1562 1562 lRet = (BOOL)FILEDLG_CallWindowProc(lfs, wMsg, wParam, lParam); 1563 if (lRet) 1563 if (lRet) 1564 1564 return lRet; /* else continue message processing */ 1565 1565 } … … 1595 1595 } 1596 1596 1597 /* ------------------ APIs ---------------------- */ 1597 /* ------------------ APIs ---------------------- */ 1598 1598 #ifndef __WIN32OS2__ 1599 1599 /*********************************************************************** … … 1609 1609 * unknown, there are some FIXME's left. 1610 1610 */ 1611 BOOL16 WINAPI GetOpenFileName16( 1611 BOOL16 WINAPI GetOpenFileName16( 1612 1612 SEGPTR ofn /* [in/out] address of structure with data*/ 1613 1613 ) … … 1626 1626 hInst = GetWindowLongA( lpofn->hwndOwner, GWL_HINSTANCE ); 1627 1627 ptr = GetProcAddress16(GetModuleHandle16("COMMDLG"), (LPCSTR) 6); 1628 bRet = DialogBoxIndirectParam16( hInst, lfs->hDlgTmpl16, lpofn->hwndOwner, 1628 bRet = DialogBoxIndirectParam16( hInst, lfs->hDlgTmpl16, lpofn->hwndOwner, 1629 1629 (DLGPROC16) ptr, (DWORD) lfs); 1630 1630 FILEDLG_DestroyPrivate(lfs); … … 1647 1647 * unknown. There are some FIXME's left. 1648 1648 */ 1649 BOOL16 WINAPI GetSaveFileName16( 1649 BOOL16 WINAPI GetSaveFileName16( 1650 1650 SEGPTR ofn /* [in/out] addess of structure with data*/ 1651 1651 ) … … 1664 1664 hInst = GetWindowLongA( lpofn->hwndOwner, GWL_HINSTANCE ); 1665 1665 ptr = GetProcAddress16(GetModuleHandle16("COMMDLG"), (LPCSTR) 7); 1666 bRet = DialogBoxIndirectParam16( hInst, lfs->hDlgTmpl16, lpofn->hwndOwner, 1666 bRet = DialogBoxIndirectParam16( hInst, lfs->hDlgTmpl16, lpofn->hwndOwner, 1667 1667 (DLGPROC16) ptr, (DWORD) lfs); 1668 1668 FILEDLG_DestroyPrivate(lfs); 1669 } 1669 } 1670 1670 1671 1671 TRACE("return lpstrFile='%s' !\n", (char *)MapSL(lpofn->lpstrFile)); … … 1775 1775 { 1776 1776 return GetFileDialog95A(ofn, SAVE_DIALOG); 1777 } 1777 } 1778 1778 else 1779 1779 { … … 1811 1811 { 1812 1812 return GetFileDialog95W(ofn, SAVE_DIALOG); 1813 } 1813 } 1814 1814 else 1815 1815 {
Note:
See TracChangeset
for help on using the changeset viewer.
