X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7183fd726e0f2e493bf60e8e623990e5f34a2476..99c4be680622f58a48a04dfe0835b59d2c41afea:/include/wx/volume.h diff --git a/include/wx/volume.h b/include/wx/volume.h index 32d2f9fed5..191d69b603 100644 --- a/include/wx/volume.h +++ b/include/wx/volume.h @@ -6,22 +6,24 @@ // Created: 28 Jan 02 // RCS-ID: $Id$ // Copyright: (c) 2002 George Policello -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ---------------------------------------------------------------------------- -// wxFSVolume represents a volume/drive/mount point in a file system +// wxFSVolume represents a volume/drive in a file system // ---------------------------------------------------------------------------- #ifndef _WX_FSVOLUME_H_ #define _WX_FSVOLUME_H_ -#ifdef __GNUG__ - #pragma interface "fsvolume.h" -#endif +#include "wx/defs.h" + +#if wxUSE_FSVOLUME + +#include "wx/arrstr.h" // the volume flags -enum +enum wxFSVolumeFlags { // is the volume mounted? wxFS_VOL_MOUNTED = 0x0001, @@ -48,20 +50,7 @@ enum wxFSVolumeKind wxFS_VOL_MAX }; -#if wxUSE_GUI -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 -}; -#endif // wxUSE_GUI - -WX_DECLARE_OBJARRAY(wxIcon, wxIconArray); - -class WXDLLEXPORT wxFSVolume +class WXDLLIMPEXP_BASE wxFSVolumeBase { public: // return the array containing the names of the volumes @@ -78,8 +67,8 @@ public: // create the volume object with this name (should be one of those returned // by GetVolumes()). - wxFSVolume(); - wxFSVolume(const wxString& name); + wxFSVolumeBase(); + wxFSVolumeBase(const wxString& name); bool Create(const wxString& name); // accessors @@ -102,21 +91,56 @@ public: wxString GetName() const { return m_volName; } wxString GetDisplayName() const { return m_dispName; } -#if wxUSE_GUI - wxIcon GetIcon(wxFSIconType type) const; -#endif - // TODO: operatios (Mount(), Unmount(), Eject(), ...)? -private: +protected: + // the internal volume name wxString m_volName; + + // the volume name as it is displayed to the user wxString m_dispName; -#if wxUSE_GUI - wxIconArray m_icons; -#endif + + // 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 }; -#endif // _WX_FSVOLUME_H_ +// 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_