| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: wx/volume.h
- // Purpose: wxFSVolume - encapsulates system volume information
- // Author: George Policello
- // Modified by:
- // Created: 28 Jan 02
- // Copyright: (c) 2002 George Policello
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- // ----------------------------------------------------------------------------
- // wxFSVolume represents a volume/drive in a file system
- // ----------------------------------------------------------------------------
- #ifndef _WX_FSVOLUME_H_
- #define _WX_FSVOLUME_H_
- #include "wx/defs.h"
- #if wxUSE_FSVOLUME
- #include "wx/arrstr.h"
- // the volume flags
- enum wxFSVolumeFlags
- {
- // is the volume mounted?
- wxFS_VOL_MOUNTED = 0x0001,
- // is the volume removable (floppy, CD, ...)?
- wxFS_VOL_REMOVABLE = 0x0002,
- // read only? (otherwise read write)
- wxFS_VOL_READONLY = 0x0004,
- // network resources
- wxFS_VOL_REMOTE = 0x0008
- };
- // the volume types
- enum wxFSVolumeKind
- {
- wxFS_VOL_FLOPPY,
- wxFS_VOL_DISK,
- wxFS_VOL_CDROM,
- wxFS_VOL_DVDROM,
- wxFS_VOL_NETWORK,
- wxFS_VOL_OTHER,
- wxFS_VOL_MAX
- };
- class WXDLLIMPEXP_BASE wxFSVolumeBase
- {
- public:
- // return the array containing the names of the volumes
- //
- // only the volumes with the flags such that
- // (flags & flagsSet) == flagsSet && !(flags & flagsUnset)
- // are returned (by default, all mounted ones)
- static wxArrayString GetVolumes(int flagsSet = wxFS_VOL_MOUNTED,
- int flagsUnset = 0);
- // stop execution of GetVolumes() called previously (should be called from
- // another thread, of course)
- static void CancelSearch();
- // create the volume object with this name (should be one of those returned
- // by GetVolumes()).
- wxFSVolumeBase();
- wxFSVolumeBase(const wxString& name);
- bool Create(const wxString& name);
- // accessors
- // ---------
- // is this a valid volume?
- bool IsOk() const;
- // kind of this volume?
- wxFSVolumeKind GetKind() const;
- // flags of this volume?
- int GetFlags() const;
- // can we write to this volume?
- bool IsWritable() const { return !(GetFlags() & wxFS_VOL_READONLY); }
- // get the name of the volume and the name which should be displayed to the
- // user
- wxString GetName() const { return m_volName; }
- wxString GetDisplayName() const { return m_dispName; }
- // TODO: operatios (Mount(), Unmount(), Eject(), ...)?
- protected:
- // the internal volume name
- wxString m_volName;
- // the volume name as it is displayed to the user
- wxString m_dispName;
- // have we been initialized correctly?
- bool m_isOk;
- };
- #if wxUSE_GUI
- #include "wx/icon.h"
- #include "wx/iconbndl.h" // only for wxIconArray
- enum wxFSIconType
- {
- wxFS_VOL_ICO_SMALL = 0,
- wxFS_VOL_ICO_LARGE,
- wxFS_VOL_ICO_SEL_SMALL,
- wxFS_VOL_ICO_SEL_LARGE,
- wxFS_VOL_ICO_MAX
- };
- // wxFSVolume adds GetIcon() to wxFSVolumeBase
- class WXDLLIMPEXP_CORE wxFSVolume : public wxFSVolumeBase
- {
- public:
- wxFSVolume() : wxFSVolumeBase() { InitIcons(); }
- wxFSVolume(const wxString& name) : wxFSVolumeBase(name) { InitIcons(); }
- wxIcon GetIcon(wxFSIconType type) const;
- private:
- void InitIcons();
- // the different icons for this volume (created on demand)
- wxIconArray m_icons;
- };
- #else // !wxUSE_GUI
- // wxFSVolume is the same thing as wxFSVolume in wxBase
- typedef wxFSVolumeBase wxFSVolume;
- #endif // wxUSE_GUI/!wxUSE_GUI
- #endif // wxUSE_FSVOLUME
- #endif // _WX_FSVOLUME_H_
|