Changeset 1844 for trunk/dll/mainwnd.c
- Timestamp:
- Aug 12, 2015, 7:37:37 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/mainwnd.c
r1838 r1844 7 7 8 8 Copyright (c) 1993-98 M. Kimes 9 Copyright (c) 2001, 201 3Steven H. Levine9 Copyright (c) 2001, 2015 Steven H. Levine 10 10 11 11 11 Jun 02 SHL Drop obsolete xor code … … 100 100 14 Sep 09 SHL Blink thread LEDs when workers busy 101 101 13 Dec 09 GKY Fixed separate paramenters. Please note that appname should be used in 102 103 104 105 102 profile calls for user settings that work and are setable in more than one 103 miniapp; FM3Str should be used for setting only relavent to FM/2 or that 104 aren't user settable; realappname should be used for setting applicable to 105 one or more miniapp but not to FM/2 106 106 17 JAN 10 GKY Changes to get working with Watcom 1.9 Beta (1/16/10). Mostly cast 107 107 CHAR CONSTANT * as CHAR *. 108 108 11 Apr 10 GKY Fix drive tree rescan failure and program hang caused by event sem 109 109 never being posted 110 110 23 Oct 10 GKY Changes to populate and utilize a HELPTABLE for context specific help 111 111 03 Oct 11 SHL Add needTile to ensure containers opened on command line render correctly … … 114 114 12 Aug 12 GKY Allow for selection of include subdirectories or a list file on initial startup of compare dirs 115 115 30 Dec 12 GKY Enhance traget directory drop to give the option of changing the directory or carrying out an 116 116 operation to the current target; Added an error message for target = None; 117 117 02 Aug 15 GKY Remove unneed SubbyScan code and improve suppression of blank lines and 118 duplicate subdirectory name caused by running Stubby in worker threads. 118 duplicate subdirectory name caused by running Stubby in worker threads. 119 09 Aug 15 SHL Use RESTORE_STATE_... 119 120 120 121 ***********************************************************************/ … … 340 341 WinSendMsg(hwndMain, UM_SETDIR, MPFROMP(s), MPVOID); 341 342 } 342 PostMsg(MainObjectHwnd, UM_RESTORE, MPFROMLONG(1), MPFROMLONG( 1));343 PostMsg(MainObjectHwnd, UM_RESTORE, MPFROMLONG(1), MPFROMLONG(RESTORE_STATE_TILE_CHILDREN)); 343 344 } 344 345 return 0; … … 346 347 case UM_RESTORE: 347 348 switch ((ULONG)mp2) { 348 case 1:349 case RESTORE_STATE_TILE_CHILDREN: 349 350 TileChildren(hwndMain, TRUE); 350 351 break; 351 case 2:352 case RESTORE_STATE_CLOSE_CHILDREN: 352 353 CloseDirCnrChildren(hwndMain); 353 354 break; 354 case 0:355 case RESTORE_STATE_RESTORE: 355 356 fNoTileUpdate = TRUE; 356 357 WinEnableWindow(WinQueryWindow(hwndMain, QW_PARENT), FALSE); 357 RestoreDirCnrState(hwndMain, ( char*)mp1, FALSE);358 RestoreDirCnrState(hwndMain, (CHAR *)mp1, FALSE); 358 359 WinEnableWindow(WinQueryWindow(hwndMain, QW_PARENT), TRUE); 359 360 fNoTileUpdate = FALSE; ; … … 1819 1820 MRESULT EXPENTRY DriveBackProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) 1820 1821 { 1821 static BOOL emphasized = FALSE; 1822 APIRET rc; 1823 1824 static BOOL emphasized; 1822 1825 1823 1826 switch (msg) { … … 1883 1886 cnd.pDragInfo = (PDRAGINFO) mp1; 1884 1887 if (!DrgAccessDraginfo((PDRAGINFO) cnd.pDragInfo)) { 1885 1886 1887 1888 Win_Error(hwnd, hwnd, pszSrcFile, __LINE__, 1889 PCSZ_DRGACCESSDRAGINFO); 1890 return 0; 1888 1891 } 1889 1892 numitems = DrgQueryDragitemCount((PDRAGINFO) cnd.pDragInfo); 1890 1893 usOperation = cnd.pDragInfo->usOperation; 1891 1894 if (usOperation == DO_DEFAULT) 1892 1895 usOperation = fCopyDefault ? DO_COPY : DO_MOVE; 1893 1896 saymsg(MB_ENTER | MB_ICONASTERISK, 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1897 hwnd, 1898 GetPString(IDS_DROPHELPHDRTEXT), 1899 GetPString(IDS_DROPHELPTEXT), 1900 numitems, 1901 &"s"[numitems == 1L], 1902 NullStr, 1903 NullStr, 1904 targetdir, 1905 " ", 1906 GetPString((usOperation == DO_MOVE) ? 1907 IDS_MOVETEXT : 1908 (usOperation == DO_LINK) ? 1909 IDS_LINKTEXT : IDS_COPYTEXT)); 1907 1910 } 1908 1911 return 0; … … 1927 1930 CheckPmDrgLimit(cnd.pDragInfo); 1928 1931 if (li) { 1929 1930 1932 if (!li->list[1] && !IsFile(li->list[0])) { 1933 ret = saymsg(MB_YESNO, 1931 1934 HWND_DESKTOP, 1932 1933 1934 1935 1936 1937 1938 1935 NullStr, 1936 GetPString(IDS_DROPSETSTARGET)); 1937 if (ret == MBID_YES) { 1938 SetTargetDir(hwnd, TRUE, li->list[0]); 1939 break; 1940 } 1941 } 1939 1942 strcpy(li->targetpath, targetdir); 1940 1943 strcat(li->targetpath, PCSZ_BACKSLASH); … … 2054 2057 FreeListInfo(li); 2055 2058 else 2056 2059 WinSendMsg(hwndTree, UM_ACTION, MPFROMP(li), MPFROMLONG(action)); 2057 2060 } 2058 2061 else { … … 2072 2075 CheckPmDrgLimit(cnd.pDragInfo); 2073 2076 if (li && !li->list[1] && !IsFile(li->list[0])) 2074 2077 SetTargetDir(hwnd, TRUE, li->list[0]); 2075 2078 else 2076 2079 saymsg(MB_ENTER | MB_ICONASTERISK, hwnd, 2077 2080 GetPString(IDS_WARNINGTEXT), 2078 2081 GetPString(IDS_NOTARGETSET)); … … 2092 2095 2093 2096 case WM_COMMAND: 2094 DosWaitEventSem(hevTreeCnrScanComplete, SEM_INDEFINITE_WAIT); 2097 rc = DosWaitEventSem(hevTreeCnrScanComplete, SEM_INDEFINITE_WAIT); 2098 if (rc) 2099 Dos_Error(MB_ENTER, rc, HWND_DESKTOP, pszSrcFile, __LINE__, "DosWaitEventSem"); 2100 2095 2101 switch(SHORT1FROMMP(mp1)) { 2096 2102 case IDM_RESCAN: … … 2123 2129 { 2124 2130 CHAR dv[4]; 2125 2126 2131 *dv = SHORT1FROMMP(mp1) - IDM_DRIVEA + 'A'; 2127 strcpy(dv + 1, ":\\"); 2132 dv[1] = ':'; 2133 dv[2] = '\\'; 2134 dv[3] = 0; 2128 2135 if (isalpha(*dv)) { 2129 2130 HWND hwndActive; 2131 2132 dv[1] = ':'; 2133 dv[2] = '\\'; 2134 dv[3] = 0; 2135 hwndActive = TopWindow(hwnd, (HWND) 0); 2136 HWND hwndActive = TopWindow(hwnd, (HWND) 0); 2136 2137 if (hwndActive) 2137 2138 WinSendMsg(WinWindowFromID(hwndActive, FID_CLIENT), … … 3890 3891 WinSetWindowUShort(hwndChild, 3891 3892 QWS_XRESTORE, 3892 3893 3893 (USHORT) ((USHORT) ulWidth * (USHORT) ulCurCol) 3894 + (USHORT) Rectl.xLeft); 3894 3895 WinSetWindowUShort(hwndChild, 3895 3896 QWS_YRESTORE, … … 4819 4820 cmp->size = sizeof(COMPARE); 4820 4821 strcpy(cmp->leftdir, wa.szCurrentPath1); 4821 4822 4823 4822 strcpy(cmp->rightdir, wa.szCurrentPath2); 4823 cmp->listfile = wa.listfile; 4824 cmp->includesubdirs = wa.includesubdirs; 4824 4825 cmp->hwndParent = hwnd; 4825 4826 cmp->dcd.hwndParent = hwnd; … … 6030 6031 if (!fNoSaveState && fSaveState) { 6031 6032 PCSZ pszStatename = PCSZ_SHUTDOWNSTATE; 6032 PostMsg(MainObjectHwnd, UM_RESTORE, MPFROMP(pszStatename), MP VOID);6033 PostMsg(MainObjectHwnd, UM_RESTORE, MPFROMP(pszStatename), MPFROMLONG(RESTORE_STATE_RESTORE)); 6033 6034 if (!add_setup(pszStatename)) 6034 6035 save_setups(); … … 6272 6273 info = cmdhead; 6273 6274 while (info) { 6274 6275 sprintf(s, "%s {%i}", info->title, info->ID); 6275 6276 WinSendMsg(hwndCmdlist, LM_INSERTITEM, 6276 6277 MPFROM2SHORT(LIT_END, 0), MPFROMP(s)); … … 6546 6547 } 6547 6548 else if (SHORT1FROMMP(mp1) == MAIN_SETUPLIST) { 6549 // State name list 6548 6550 CHAR szKey[80]; 6549 6551 ULONG numsaves = 0; 6550 6552 ULONG size = sizeof(ULONG); 6551 // 06 Oct 09 SHLCtrl-select selects, but suppresses open6553 // Ctrl-select selects, but suppresses open 6552 6554 if ((shiftstate & (KC_CTRL | KC_SHIFT | KC_ALT)) == KC_CTRL) 6553 6555 break; … … 6559 6561 &size)) 6560 6562 { 6563 // Name not found 6561 6564 if ((WinGetLastError(WinQueryAnchorBlock(hwnd)) & 0xffff) == PMERR_NOT_IN_IDX) { 6562 6565 saymsg(MB_ENTER | MB_ICONASTERISK, hwnd, … … 6570 6573 } 6571 6574 else { 6575 // Name exists 6572 6576 char *pszStateName; 6577 // If shift key, add state to existing state - FIXME to doc better 6573 6578 if ((shiftstate & KC_SHIFT) == 0) 6574 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG( 2));6579 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(RESTORE_STATE_CLOSE_CHILDREN)); 6575 6580 pszStateName = xstrdup(path, pszSrcFile, __LINE__); 6576 6581 if (!pszStateName) { … … 6584 6589 } 6585 6590 } 6591 // Request restore 6586 6592 else if (!PostMsg(MainObjectHwnd, 6587 6593 UM_RESTORE, … … 6591 6597 } 6592 6598 } 6593 } 6599 } // if MAIN_SETUPLIST 6594 6600 else if (SHORT1FROMMP(mp1) == MAIN_CMDLIST) { 6595 6601 … … 6602 6608 6603 6609 WinSendMsg(hwndCmdlist, LM_QUERYITEMTEXT, 6604 6610 MPFROM2SHORT(sSelect, CCHMAXPATH), MPFROMP(s)); 6605 6611 p = strrchr(s, '}'); 6606 6612 p = 0; … … 6609 6615 WinPostMsg(hwnd, 6610 6616 WM_COMMAND, 6611 6612 6617 MPFROM2SHORT(atol(p), 0), //fixme GKY this traps in atol the {} probably don't exist 6618 //IDM_COMMANDSTART + sSelect, 0), 6613 6619 MPVOID); 6614 6620 } … … 6657 6663 } 6658 6664 DosSleep(1); 6659 return 0; // Suppress WinDefWindowProc WM_QUIT message generation 6665 DbgMsg(pszSrcFile, __LINE__, "MainWndProc WM_CLOSE returning"); 6666 6667 return 0; // Suppress WinDefWindowProc WM_QUIT message generation 6660 6668 6661 6669 case UM_CLOSE: … … 6669 6677 char *pszDefaultStateName = xstrdup(PCSZ_SHUTDOWNSTATE, pszSrcFile, __LINE__); 6670 6678 if (pszDefaultStateName) { 6671 if (!PostMsg(MainObjectHwnd, UM_RESTORE, MPFROMP(pszDefaultStateName), MP VOID))6679 if (!PostMsg(MainObjectHwnd, UM_RESTORE, MPFROMP(pszDefaultStateName), MPFROMLONG(RESTORE_STATE_RESTORE))) 6672 6680 // 05 Feb 08 SHL fixme to complain? 6673 6681 free(pszDefaultStateName); … … 6685 6693 6686 6694 case WM_DESTROY: 6687 # ifdef FORTIFY 6688 DbgMsg(pszSrcFile, __LINE__, "WM_DESTROY hwnd %p TID %u", hwnd, GetTidForThread()); // 22 Jul 08 SHL fixme 6689 # endif 6690 hwndMain = (HWND) 0; 6691 if (!PostMsg((HWND) 0, WM_QUIT, MPVOID, MPVOID)) 6692 WinSendMsg((HWND) 0, WM_QUIT, MPVOID, MPVOID); 6695 hwndMain = (HWND)0; 6696 if (!PostMsg((HWND)0, WM_QUIT, MPVOID, MPVOID)) 6697 WinSendMsg((HWND)0, WM_QUIT, MPVOID, MPVOID); 6693 6698 # ifdef FORTIFY 6694 6699 free_commands();
Note:
See TracChangeset
for help on using the changeset viewer.