Changeset 557 for trunk/dll/mainwnd.c


Ignore:
Timestamp:
Mar 9, 2007, 7:38:41 PM (19 years ago)
Author:
Gregg Young
Message:

Changes for 3.05 beta mostly drive flag/tree related

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/mainwnd.c

    r552 r557  
    2525  17 Aug 06 SHL Complain nicer if state name does not exist
    2626  18 Feb 07 GKY More drive type and icon support
     27  08 Mar 07 SHL SaveDirCnrState: do not save state of NOPRESCAN volumes
    2728
    2829***********************************************************************/
     
    7576
    7677static BOOL CloseDirCnrChildren(HWND hwndClient);
    77 static BOOL RestoreDirCnrState(HWND hwndClient, CHAR * name, BOOL noview);
     78static BOOL RestoreDirCnrState(HWND hwndClient, PSZ pszStateName, BOOL noview);
    7879
    7980static MRESULT EXPENTRY MainObjectWndProc(HWND hwnd, ULONG msg, MPARAM mp1,
     
    26262627}
    26272628
    2628 BOOL SaveDirCnrState(HWND hwndClient, CHAR * name)
     2629/** Save directory container state
     2630 * @param hwndClient Client window handle
     2631 * @param pszStateName State name to save, NULL to save global state
     2632 * @returns TRUE if one or more directory container windows were saved
     2633 * @seealso RestoreDirCnrState
     2634 */
     2635
     2636BOOL SaveDirCnrState(HWND hwndClient, PSZ pszStateName)
    26292637{
    2630   /* returns TRUE if any directory container windows existed */
    2631 
    26322638  HENUM henum;
    26332639  HWND hwndChild, hwndDir, hwndC;
     
    26492655          WinSendMsg(hwndC, UM_CONTAINERDIR, MPFROMP(directory), MPVOID);
    26502656          if (*directory) {
    2651             sprintf(s, "%s%sDirCnrPos.%lu", (name) ? name : NullStr,
    2652                     (name) ? "." : NullStr, numsaves);
     2657           if (driveflags[toupper(*directory) - 'A'] & DRIVE_NOPRESCAN)
     2658             continue;
     2659            sprintf(s, "%s%sDirCnrPos.%lu", pszStateName ? pszStateName : NullStr,
     2660                    pszStateName ? "." : NullStr, numsaves);
    26532661            PrfWriteProfileData(fmprof, FM3Str, s, (PVOID) & swp,
    26542662                                sizeof(SWP));
     
    26562664              WinQueryWindowPtr(WinWindowFromID(hwndC, DIR_CNR), QWL_USER);
    26572665            if (dcd) {
    2658               sprintf(s, "%s%sDirCnrSort.%lu", (name) ? name : NullStr,
    2659                       (name) ? "." : NullStr, numsaves);
     2666              sprintf(s, "%s%sDirCnrSort.%lu", pszStateName ? pszStateName : NullStr,
     2667                      pszStateName ? "." : NullStr, numsaves);
    26602668              PrfWriteProfileData(fmprof, FM3Str, s, (PVOID) & dcd->sortFlags,
    26612669                                  sizeof(INT));
    2662               sprintf(s, "%s%sDirCnrFilter.%lu", (name) ? name : NullStr,
    2663                       (name) ? "." : NullStr, numsaves);
     2670              sprintf(s, "%s%sDirCnrFilter.%lu", pszStateName ? pszStateName : NullStr,
     2671                      pszStateName ? "." : NullStr, numsaves);
    26642672              PrfWriteProfileData(fmprof, FM3Str, s, (PVOID) & dcd->mask,
    26652673                                  sizeof(MASK));
    2666               sprintf(s, "%s%sDirCnrView.%lu", (name) ? name : NullStr,
    2667                       (name) ? "." : NullStr, numsaves);
     2674              sprintf(s, "%s%sDirCnrView.%lu", pszStateName ? pszStateName : NullStr,
     2675                      pszStateName ? "." : NullStr, numsaves);
    26682676              flWindowAttr = dcd->flWindowAttr;
    26692677              if (!fLeaveTree && (flWindowAttr & CV_TREE)) {
     
    26852693                                  sizeof(ULONG));
    26862694            }
    2687             sprintf(s, "%s%sDirCnrDir.%lu", (name) ? name : NullStr,
    2688                     (name) ? "." : NullStr, numsaves++);
     2695            sprintf(s, "%s%sDirCnrDir.%lu", pszStateName ? pszStateName : NullStr,
     2696                    pszStateName ? "." : NullStr, numsaves++);
    26892697            PrfWriteProfileString(fmprof, FM3Str, s, directory);
    26902698            ret = TRUE;
     
    26932701      }
    26942702    }
    2695   }
     2703  } // while
    26962704  WinEndEnumWindows(henum);
    26972705  if (ret) {
    26982706    if (WinQueryWindowPos(hwndTree, &swp)) {
    2699       sprintf(s, "%s%sLastTreePos", (name) ? name : NullStr,
    2700               (name) ? "." : NullStr);
     2707      sprintf(s, "%s%sLastTreePos", pszStateName ? pszStateName : NullStr,
     2708              pszStateName ? "." : NullStr);
    27012709      PrfWriteProfileData(fmprof, FM3Str, s, (PVOID) & swp, sizeof(SWP));
    27022710    }
    2703     sprintf(s, "%s%sNumDirsLastTime", (name) ? name : NullStr,
    2704             (name) ? "." : NullStr);
     2711    sprintf(s, "%s%sNumDirsLastTime", pszStateName ? pszStateName : NullStr,
     2712            pszStateName ? "." : NullStr);
    27052713    PrfWriteProfileData(fmprof, FM3Str, s, (PVOID) & numsaves, sizeof(ULONG));
    27062714    WinQueryWindowPos(WinQueryWindow(hwndClient, QW_PARENT), &swp);
    2707     sprintf(s, "%s%sMySizeLastTime", (name) ? name : NullStr,
    2708             (name) ? "." : NullStr);
     2715    sprintf(s, "%s%sMySizeLastTime", pszStateName ? pszStateName : NullStr,
     2716            pszStateName ? "." : NullStr);
    27092717    PrfWriteProfileData(fmprof, FM3Str, s, (PVOID) & swp, sizeof(SWP));
    27102718  }
     
    27462754}
    27472755
    2748 static BOOL RestoreDirCnrState(HWND hwndClient, CHAR * name, BOOL noview)
     2756/** Restore directory container state
     2757 * @param hwndClient Client window handle
     2758 * @param pszStateName State name to restore, NULL to restore global state
     2759 * @returns TRUE if one or more directory containers were opened
     2760 * @seealso SaveDirCnrState
     2761 */
     2762
     2763static BOOL RestoreDirCnrState(HWND hwndClient, PSZ pszStateName, BOOL noview)
    27492764{
    2750   /* returns TRUE if a directory container was opened */
    2751 
    27522765  CHAR s[120], tdir[CCHMAXPATH];
    27532766  HWND hwndDir, hwndC;
     
    27612774  sprintf(s,
    27622775          "%s%sMySizeLastTime",
    2763           (name) ? name : NullStr, (name) ? "." : NullStr);
     2776          pszStateName ? pszStateName : NullStr, pszStateName ? "." : NullStr);
    27642777  if (!PrfQueryProfileData(fmprof,
    27652778                           FM3Str,
     
    27692782      size != sizeof(SWP) || !swp.cx || !swp.cy)
    27702783    WinQueryWindowPos(WinQueryWindow(hwndClient, QW_PARENT), &swpO);
    2771   if (!name || !strcmp(name, GetPString(IDS_FM2TEMPTEXT)))
     2784  if (!pszStateName || !strcmp(pszStateName, GetPString(IDS_FM2TEMPTEXT)))
    27722785    PrfWriteProfileData(fmprof, FM3Str, s, NULL, 0L);
    27732786  WinQueryWindowPos(WinQueryWindow(hwndClient, QW_PARENT), &swpN);
     
    27792792  sprintf(s,
    27802793          "%s%sLastTreePos",
    2781           (name) ? (name) : NullStr, (name) ? "." : NullStr);
     2794          pszStateName ? pszStateName : NullStr, pszStateName ? "." : NullStr);
    27822795  if (PrfQueryProfileData(fmprof, FM3Str, s, (PVOID) & swp, &size)) {
    2783     if (!name || !strcmp(name, GetPString(IDS_FM2TEMPTEXT)))
     2796    if (!pszStateName || !strcmp(pszStateName, GetPString(IDS_FM2TEMPTEXT)))
    27842797      PrfWriteProfileData(fmprof, FM3Str, s, NULL, 0L);
    27852798    swp.hwnd = hwndTree;
     
    28122825  sprintf(s,
    28132826          "%s%sNumDirsLastTime",
    2814           (name) ? name : NullStr, (name) ? "." : NullStr);
     2827          pszStateName ? pszStateName : NullStr, pszStateName ? "." : NullStr);
    28152828  if (PrfQueryProfileData(fmprof,
    28162829                          FM3Str, s, (PVOID) & numsaves, &size) && numsaves) {
    2817     if (!name || !strcmp(name, GetPString(IDS_FM2TEMPTEXT)))
     2830    if (!pszStateName || !strcmp(pszStateName, GetPString(IDS_FM2TEMPTEXT)))
    28182831      PrfWriteProfileData(fmprof, FM3Str, s, NULL, 0L);
    28192832    for (x = 0; x < numsaves; x++) {
    28202833      sprintf(s,
    28212834              "%s%sDirCnrPos.%lu",
    2822               (name) ? name : NullStr, (name) ? "." : NullStr, x);
     2835              pszStateName ? pszStateName : NullStr, pszStateName ? "." : NullStr, x);
    28232836      size = sizeof(SWP);
    28242837      if (PrfQueryProfileData(fmprof, FM3Str, s, (PVOID) & swp, &size)) {
    2825         if (!name || !strcmp(name, GetPString(IDS_FM2TEMPTEXT)))
     2838        if (!pszStateName || !strcmp(pszStateName, GetPString(IDS_FM2TEMPTEXT)))
    28262839          PrfWriteProfileData(fmprof, FM3Str, s, NULL, 0L);
    28272840        sprintf(s,
    28282841                "%s%sDirCnrDir.%lu",
    2829                 (name) ? name : NullStr, (name) ? "." : NullStr, x);
     2842                pszStateName ? pszStateName : NullStr, pszStateName ? "." : NullStr, x);
    28302843        size = sizeof(tdir);
    28312844        if (PrfQueryProfileData(fmprof, FM3Str, s, (PVOID) tdir, &size)) {
    2832           if (!name || !strcmp(name, GetPString(IDS_FM2TEMPTEXT)))
     2845          if (!pszStateName || !strcmp(pszStateName, GetPString(IDS_FM2TEMPTEXT)))
    28332846            PrfWriteProfileData(fmprof, FM3Str, s, NULL, 0L);
    28342847          hwndDir = (HWND) WinSendMsg(hwndClient,
     
    28442857                sprintf(s,
    28452858                        "%s%sDirCnrSort.%lu",
    2846                         (name) ? name : NullStr, (name) ? "." : NullStr, x);
     2859                        pszStateName ? pszStateName : NullStr, pszStateName ? "." : NullStr, x);
    28472860                if (PrfQueryProfileData(fmprof,
    28482861                                        FM3Str,
     
    28532866                    dcd->sortFlags = SORT_PATHNAME;
    28542867                }
    2855                 if (!name || !strcmp(name, GetPString(IDS_FM2TEMPTEXT)))
     2868                if (!pszStateName || !strcmp(pszStateName, GetPString(IDS_FM2TEMPTEXT)))
    28562869                  PrfWriteProfileData(fmprof, FM3Str, s, NULL, 0L);
    28572870                size = sizeof(MASK);
    28582871                sprintf(s,
    28592872                        "%s%sDirCnrFilter.%lu",
    2860                         (name) ? name : NullStr, (name) ? "." : NullStr, x);
     2873                        pszStateName ? pszStateName : NullStr, pszStateName ? "." : NullStr, x);
    28612874                if (PrfQueryProfileData(fmprof,
    28622875                                        FM3Str,
     
    28682881                }
    28692882                *(dcd->mask.prompt) = 0;
    2870                 if (!name || !strcmp(name, GetPString(IDS_FM2TEMPTEXT)))
     2883                if (!pszStateName || !strcmp(pszStateName, GetPString(IDS_FM2TEMPTEXT)))
    28712884                  PrfWriteProfileData(fmprof, FM3Str, s, NULL, 0L);
    28722885                size = sizeof(ULONG);
    28732886                sprintf(s,
    28742887                        "%s%sDirCnrView.%lu",
    2875                         (name) ? name : NullStr, (name) ? "." : NullStr, x);
     2888                        pszStateName ? pszStateName : NullStr, pszStateName ? "." : NullStr, x);
    28762889                if (!noview) {
    28772890                  if (PrfQueryProfileData(fmprof,
     
    28972910                  }
    28982911                }
    2899                 if (!name || !strcmp(name, GetPString(IDS_FM2TEMPTEXT)))
     2912                if (!pszStateName || !strcmp(pszStateName, GetPString(IDS_FM2TEMPTEXT)))
    29002913                  PrfWriteProfileData(fmprof, FM3Str, s, NULL, 0L);
    29012914              }
     
    29292942        }
    29302943      }
    2931     }
     2944    } // for
    29322945  }
    29332946  return ret;
Note: See TracChangeset for help on using the changeset viewer.