1
/////////////////////////////////////////////////////////////////////////////
3
// Purpose: wxFSVolume - encapsulates system volume information
4
// Author: George Policello
7
// RCS-ID: $Id: volume.h 56910 2008-11-22 15:54:33Z FM $
8
// Copyright: (c) 2002 George Policello
9
// Licence: wxWindows licence
10
/////////////////////////////////////////////////////////////////////////////
12
// ----------------------------------------------------------------------------
13
// wxFSVolume represents a volume/drive in a file system
14
// ----------------------------------------------------------------------------
16
#ifndef _WX_FSVOLUME_H_
17
#define _WX_FSVOLUME_H_
23
#include "wx/arrstr.h"
28
// is the volume mounted?
29
wxFS_VOL_MOUNTED = 0x0001,
31
// is the volume removable (floppy, CD, ...)?
32
wxFS_VOL_REMOVABLE = 0x0002,
34
// read only? (otherwise read write)
35
wxFS_VOL_READONLY = 0x0004,
38
wxFS_VOL_REMOTE = 0x0008
53
class WXDLLIMPEXP_BASE wxFSVolumeBase
56
// return the array containing the names of the volumes
58
// only the volumes with the flags such that
59
// (flags & flagsSet) == flagsSet && !(flags & flagsUnset)
60
// are returned (by default, all mounted ones)
61
static wxArrayString GetVolumes(int flagsSet = wxFS_VOL_MOUNTED,
64
// stop execution of GetVolumes() called previously (should be called from
65
// another thread, of course)
66
static void CancelSearch();
68
// create the volume object with this name (should be one of those returned
71
wxFSVolumeBase(const wxString& name);
72
bool Create(const wxString& name);
77
// is this a valid volume?
80
// kind of this volume?
81
wxFSVolumeKind GetKind() const;
83
// flags of this volume?
86
// can we write to this volume?
87
bool IsWritable() const { return !(GetFlags() & wxFS_VOL_READONLY); }
89
// get the name of the volume and the name which should be displayed to the
91
wxString GetName() const { return m_volName; }
92
wxString GetDisplayName() const { return m_dispName; }
94
// TODO: operatios (Mount(), Unmount(), Eject(), ...)?
97
// the internal volume name
100
// the volume name as it is displayed to the user
103
// have we been initialized correctly?
110
#include "wx/iconbndl.h" // only for wxIconArray
114
wxFS_VOL_ICO_SMALL = 0,
116
wxFS_VOL_ICO_SEL_SMALL,
117
wxFS_VOL_ICO_SEL_LARGE,
121
// wxFSVolume adds GetIcon() to wxFSVolumeBase
122
class WXDLLIMPEXP_CORE wxFSVolume : public wxFSVolumeBase
125
wxFSVolume() : wxFSVolumeBase() { InitIcons(); }
126
wxFSVolume(const wxString& name) : wxFSVolumeBase(name) { InitIcons(); }
128
wxIcon GetIcon(wxFSIconType type) const;
133
// the different icons for this volume (created on demand)
139
// wxFSVolume is the same thing as wxFSVolume in wxBase
140
typedef wxFSVolumeBase wxFSVolume;
142
#endif // wxUSE_GUI/!wxUSE_GUI
144
#endif // wxUSE_FSVOLUME
146
#endif // _WX_FSVOLUME_H_