document wxFSVolume (fixes #3977)
[wxWidgets.git] / interface / wx / volume.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: volume.h
3 // Purpose: interface of wxFSVolume
4 // Author: wxWidgets team
5 // RCS-ID: $Id$
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
8
9 /**
10 The volume flags.
11 */
12 enum wxFSVolumeFlags
13 {
14 /// Is the volume mounted?
15 wxFS_VOL_MOUNTED = 0x0001,
16
17 /// Is the volume removable (floppy, CD, ...)?
18 wxFS_VOL_REMOVABLE = 0x0002,
19
20 /// Read only? (otherwise read write).
21 wxFS_VOL_READONLY = 0x0004,
22
23 /// Network resources.
24 wxFS_VOL_REMOTE = 0x0008
25 };
26
27 /**
28 The volume types.
29 */
30 enum wxFSVolumeKind
31 {
32 wxFS_VOL_FLOPPY,
33 wxFS_VOL_DISK,
34 wxFS_VOL_CDROM,
35 wxFS_VOL_DVDROM,
36 wxFS_VOL_NETWORK,
37 wxFS_VOL_OTHER,
38 wxFS_VOL_MAX
39 };
40
41 /**
42 Icon types used by wxFSVolume.
43 */
44 enum wxFSIconType
45 {
46 wxFS_VOL_ICO_SMALL = 0,
47 wxFS_VOL_ICO_LARGE,
48 wxFS_VOL_ICO_SEL_SMALL,
49 wxFS_VOL_ICO_SEL_LARGE,
50 wxFS_VOL_ICO_MAX
51 };
52
53 /**
54 @class wxFSVolume
55
56 wxFSVolume represents a volume (also known as 'drive') in a file system
57 under wxMSW.
58
59 Unix ports of wxWidgets do not have the concept of volumes and thus do
60 not implement wxFSVolume.
61
62 @onlyfor{wxmsw}
63
64 @library{wxbase}
65 @category{misc}
66 */
67 class wxFSVolume
68 {
69 public:
70 /**
71 Default ctor. Use Create() later.
72 */
73 wxFSVolumeBase();
74
75 /**
76 Create the volume object with the given @a name (which should be one of
77 those returned by GetVolumes()).
78 */
79 wxFSVolumeBase(const wxString& name);
80
81 /**
82 Create the volume object with the given @a name (which should be one of
83 those returned by GetVolumes()).
84 */
85 bool Create(const wxString& name);
86
87 /**
88 Returns an array containing the names of the volumes of this system.
89
90 Only the volumes with @e flags such that the expression
91 @code (flags & flagsSet) == flagsSet && !(flags & flagsUnset) @endcode
92 is @true, are returned. By default, all mounted ones are returned.
93
94 This operation may take a while and, even if this function is
95 synchronous, it can be stopped using CancelSearch().
96 */
97 static wxArrayString GetVolumes(int flagsSet = wxFS_VOL_MOUNTED,
98 int flagsUnset = 0);
99
100 /**
101 Stops execution of GetVolumes() called previously (should be called from
102 another thread, of course).
103 */
104 static void CancelSearch();
105
106 /**
107 Is this a valid volume?
108 */
109 bool IsOk() const;
110
111 /**
112 Returns the kind of this volume.
113 */
114 wxFSVolumeKind GetKind() const;
115
116 /**
117 Returns the flags of this volume. See wxFSVolumeFlags.
118 */
119 int GetFlags() const;
120
121 /**
122 Returns @true if this volume is writable.
123 */
124 bool IsWritable() const;
125
126 /**
127 Returns the name of the volume; this is the internal name
128 for the volume used by the operating system.
129 */
130 wxString GetName() const;
131
132 /**
133 Returns the name of the volume meant to be shown to the user.
134 */
135 wxString GetDisplayName() const;
136
137 /**
138 This function is available only when @c wxUSE_GUI is @c 1.
139
140 Returns the icon used by the native toolkit for the given file system type.
141 */
142 wxIcon GetIcon(wxFSIconType type) const;
143 };