685a2cfe2e8a7ffb82a08e987e4d9abdf1bd384c
[reactos.git] / base / setup / usetup / fslist.h
1 /*
2 * ReactOS kernel
3 * Copyright (C) 2003 ReactOS Team
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 /* COPYRIGHT: See COPYING in the top level directory
20 * PROJECT: ReactOS text-mode setup
21 * FILE: base/setup/usetup/fslist.h
22 * PURPOSE: Filesystem list functions
23 * PROGRAMMER: Eric Kohl
24 * Casper S. Hornstrup (chorns@users.sourceforge.net)
25 */
26
27 #pragma once
28
29 #include <fmifs/fmifs.h>
30
31 typedef struct _FILE_SYSTEM_ITEM
32 {
33 LIST_ENTRY ListEntry;
34 LPCWSTR FileSystemName; /* Not owned by the item */
35 FORMATEX FormatFunc;
36 CHKDSKEX ChkdskFunc;
37 BOOLEAN QuickFormat;
38 } FILE_SYSTEM_ITEM, *PFILE_SYSTEM_ITEM;
39
40 typedef struct _FILE_SYSTEM_LIST
41 {
42 SHORT Left;
43 SHORT Top;
44 PFILE_SYSTEM_ITEM Selected;
45 LIST_ENTRY ListHead; /* List of FILE_SYSTEM_ITEM */
46 } FILE_SYSTEM_LIST, *PFILE_SYSTEM_LIST;
47
48 VOID
49 FS_AddProvider(
50 IN OUT PFILE_SYSTEM_LIST List,
51 IN LPCWSTR FileSystemName,
52 IN FORMATEX FormatFunc,
53 IN CHKDSKEX ChkdskFunc);
54
55 PFILE_SYSTEM_ITEM
56 GetFileSystemByName(
57 IN PFILE_SYSTEM_LIST List,
58 IN LPWSTR FileSystemName);
59
60 struct _PARTENTRY; // Defined in partlist.h
61 PFILE_SYSTEM_ITEM
62 GetFileSystem(
63 IN PFILE_SYSTEM_LIST FileSystemList,
64 IN struct _PARTENTRY* PartEntry);
65
66 PFILE_SYSTEM_LIST
67 CreateFileSystemList(
68 IN SHORT Left,
69 IN SHORT Top,
70 IN BOOLEAN ForceFormat,
71 IN LPCWSTR ForceFileSystem);
72
73 VOID
74 DestroyFileSystemList(
75 IN PFILE_SYSTEM_LIST List);
76
77 VOID
78 DrawFileSystemList(
79 IN PFILE_SYSTEM_LIST List);
80
81 VOID
82 ScrollDownFileSystemList(
83 IN PFILE_SYSTEM_LIST List);
84
85 VOID
86 ScrollUpFileSystemList(
87 IN PFILE_SYSTEM_LIST List);
88
89 /* EOF */