tools/installer/CFileList.h
author David Anderson <dvander@alliedmods.net>
Sun Nov 25 04:46:18 2007 +0000 (2007-11-25)
changeset 1722 2c16f160f5dd
permissions -rw-r--r--
file copying now works, dialogs re-display at their last location, fixed up a bunch of interface mistakes, etc
dvander@1722
     1
#ifndef _INCLUDE_FOLDER_LIST_H_
dvander@1722
     2
#define _INCLUDE_FOLDER_LIST_H_
dvander@1722
     3
dvander@1722
     4
#include "platform_headers.h"
dvander@1722
     5
#include <list>
dvander@1722
     6
#include <vector>
dvander@1722
     7
dvander@1722
     8
struct CFileListEntry
dvander@1722
     9
{
dvander@1722
    10
	TCHAR file[MAX_PATH];
dvander@1722
    11
	unsigned __int64 size;
dvander@1722
    12
};
dvander@1722
    13
dvander@1722
    14
class CFileList
dvander@1722
    15
{
dvander@1722
    16
public:
dvander@1722
    17
	CFileList(const TCHAR *name);
dvander@1722
    18
	~CFileList();
dvander@1722
    19
public:
dvander@1722
    20
	CFileList *PeekCurrentFolder();
dvander@1722
    21
	void PopCurrentFolder();
dvander@1722
    22
	const TCHAR *PeekCurrentFile();
dvander@1722
    23
	void PopCurrentFile();
dvander@1722
    24
	const TCHAR *GetFolderName();
dvander@1722
    25
public:
dvander@1722
    26
	void AddFolder(CFileList *pFileList);
dvander@1722
    27
	void AddFile(const TCHAR *name, unsigned __int64 size);
dvander@1722
    28
	unsigned __int64 GetRecursiveSize();
dvander@1722
    29
public:
dvander@1722
    30
	static CFileList *BuildFileList(const TCHAR *name, const TCHAR *root_folder);
dvander@1722
    31
private:
dvander@1722
    32
	std::list<CFileList *> m_folder_list;
dvander@1722
    33
	std::list<CFileListEntry> m_file_list;
dvander@1722
    34
	TCHAR m_FolderName[MAX_PATH];
dvander@1722
    35
	unsigned __int64 m_TotalSize;
dvander@1722
    36
	unsigned __int64 m_RecursiveSize;
dvander@1722
    37
	bool m_bGotRecursiveSize;
dvander@1722
    38
};
dvander@1722
    39
dvander@1722
    40
#endif //_INCLUDE_FOLDER_LIST_H_