source: trunk/dll/filldir.h@ 1878

Last change on this file since 1878 was 1871, checked in by Gregg Young, 10 years ago

Create CollapseAll and modify ExpandAll to reduce code overhead both to try and speed drive expansion. Change ExpandAll to allow it to loop in UM_EXPAND until until drive is completely expanded. Changes were need to work with Flesh, Stubby and UnFlesh being moved to a thread. Add code for Flesh to skip the directory entry added by Stubby (eliminate use of NULL/Nullstr pszFileNames by Stubby). Add code in Stubby to insert a complete container item. Add a flag to indicate when a directory needed to be Fleshed. Get expand and switch code to work with Flesh, UnFlesh and Stubby running on a thread. Loop and idle ExpandAll; Move tree expand to a thread; Have ShowTreeRec wait for the Flesh thread. Add a correction factor so directories don't get placed above the top of the tree container when a large drive has been expanded. Debug is mostly still in but all turned off.

  • Property svn:eolstyle set to native
  • Property svn:keywords set to Id
File size: 2.9 KB
RevLine 
[907]1
2/***********************************************************************
3
[1196]4 $Id: filldir.h 1871 2015-09-20 22:57:02Z gyoung $
[907]5
6 filldir.c definitions
7
8 Copyright (c) 1993-98 M. Kimes
[1871]9 Copyright (c) 2001, 2015 Steven H. Levine
[907]10
11 05 Jan 08 SHL Split from fm3dll.h
[1358]12 25 Dec 08 GKY Add ProcessDirectoryThread to allow optional recursive drive scan at startup.
[1402]13 08 Mar 09 GKY Additional strings move to PCSZs
[1430]14 06 Jun 09 GKY Add option to show file system type or drive label in tree
[1444]15 22 Jul 09 GKY Code changes to use semaphores to serialize drive scanning
[1871]16 20 Sep 15 GKY Add code for Flesh to skip the directory entry added by Stubby (eliminate
17 use of NULL/Nullstr pszFileNames by Stubby). Add code to relink pci chain
18 following rename, delete, etc. Add "Expanding" window text.
[907]19
20***********************************************************************/
21
22#if !defined(FILLDIR_H)
23
24#define FILLDIR_H
25
26#if !defined(OS2_INCLUDED)
27#define INCL_WINSTDCNR // dircnrs.h
28#include <os2.h>
29#else
30#if !defined(INCL_WINSTDCNR)
31#error INCL_WINSTDCNR required
32#endif
33#endif
34
35#include "dircnrs.h" // DIRCNRDATA
36
37VOID EmptyCnr(HWND hwnd);
38const PSZ FileAttrToString(ULONG fileAttr);
39VOID FillDirCnr(HWND hwndCnr, CHAR *pszDirectory, DIRCNRDATA *pdcd,
40 PULONGLONG pullBytes);
41VOID FillTreeCnr(HWND hwndCnr, HWND hwndParent);
42VOID ProcessDirectory(const HWND hwndCnr, const PCNRITEM pciParent,
43 const CHAR *szDirBase, const BOOL filestoo,
44 const BOOL recurse, const BOOL partial,
45 CHAR *stopflag, DIRCNRDATA *pdcd,
[1871]46 PULONG pullTotalFiles, PULONGLONG pullTotalBytes,
47 CHAR *LoadedFirstChild);
[907]48ULONGLONG FillInRecordFromFFB(HWND hwndCnr, PCNRITEM pci,
49 const PSZ pszDirectory,
50 const PFILEFINDBUF4L pffb, const BOOL partial,
51 DIRCNRDATA *pdcd);
52ULONGLONG FillInRecordFromFSA(HWND hwndCnr, PCNRITEM pci,
53 const PSZ pszFileName, const PFILESTATUS4L pfsa4,
[1424]54 const BOOL partial, CHAR *szFSType, DIRCNRDATA *pdcd);
[907]55VOID FreeCnrItem(HWND hwnd, PCNRITEM pci);
56VOID FreeCnrItemList(HWND hwnd, PCNRITEM pciFirst);
57VOID FreeCnrItemData(PCNRITEM pci);
58INT RemoveCnrItems(HWND hwnd, PCNRITEM pci, USHORT usCnt, USHORT usFlags);
[1354]59VOID ProcessDirectoryThread(VOID * arg);
[1871]60HPOINTER IDFile(PSZ p);
61BOOL IsDefaultIcon(HPOINTER hptr);
[907]62
[1207]63// Data declarations
[1402]64extern PCSZ FM3Tools;
65extern PCSZ WPProgram;
[1207]66extern HPOINTER hptrEnv;
67extern HPOINTER hptrHidden;
68extern HPOINTER hptrReadonly;
69extern HPOINTER hptrSystem;
[1550]70extern INT FixedVolume;
[1207]71
[1354]72typedef struct {
73
74 HWND hwndCnr;
75 PCNRITEM pciParent;
76 CHAR *szDirBase;
77 BOOL filestoo;
78 BOOL recurse;
79 BOOL partial;
80 CHAR *stopflag;
81 DIRCNRDATA *dcd; // Optional
82 ULONG *pulTotalFiles; // Optional
83 PULONGLONG pullTotalBytes; // Optional
84}
85PROCESSDIR;
86
[907]87#endif // FILLDIR_H
Note: See TracBrowser for help on using the repository browser.