File: volume.h

package info (click to toggle)
wxwidgets3.0 3.0.5.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 120,464 kB
  • sloc: cpp: 896,633; makefile: 52,303; ansic: 21,971; sh: 5,713; python: 2,940; xml: 1,534; perl: 264; javascript: 33
file content (143 lines) | stat: -rw-r--r-- 3,458 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/////////////////////////////////////////////////////////////////////////////
// Name:        volume.h
// Purpose:     interface of wxFSVolume
// Author:      wxWidgets team
// Licence:     wxWindows licence
/////////////////////////////////////////////////////////////////////////////

/**
    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
};

/**
    Icon types used by wxFSVolume.
*/
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
};

/**
    @class wxFSVolume

    wxFSVolume represents a volume (also known as 'drive') in a file system
    under wxMSW.

    Unix ports of wxWidgets do not have the concept of volumes and thus do
    not implement wxFSVolume.

    @onlyfor{wxmsw}

    @library{wxbase}
    @category{misc}
*/
class wxFSVolume
{
public:
    /**
        Default ctor. Use Create() later.
    */
    wxFSVolume();

    /**
        Create the volume object with the given @a name (which should be one of
        those returned by GetVolumes()).
    */
    wxFSVolume(const wxString& name);

    /**
        Create the volume object with the given @a name (which should be one of
        those returned by GetVolumes()).
    */
    bool Create(const wxString& name);

    /**
        Returns an array containing the names of the volumes of this system.

        Only the volumes with @e flags such that the expression
        @code (flags & flagsSet) == flagsSet && !(flags & flagsUnset) @endcode
        is @true, are returned. By default, all mounted ones are returned.
        See ::wxFSVolumeFlags enumeration values for a list of valid flags.

        This operation may take a while and, even if this function is
        synchronous, it can be stopped using CancelSearch().
    */
    static wxArrayString GetVolumes(int flagsSet = wxFS_VOL_MOUNTED,
                                    int flagsUnset = 0);

    /**
        Stops execution of GetVolumes() called previously (should be called from
        another thread, of course).
    */
    static void CancelSearch();

    /**
        Is this a valid volume?
    */
    bool IsOk() const;

    /**
        Returns the kind of this volume.
    */
    wxFSVolumeKind GetKind() const;

    /**
        Returns the flags of this volume. See ::wxFSVolumeFlags enumeration values.
    */
    int GetFlags() const;

    /**
        Returns @true if this volume is writable.
    */
    bool IsWritable() const;

    /**
        Returns the name of the volume; this is the internal name
        for the volume used by the operating system.
    */
    wxString GetName() const;

    /**
        Returns the name of the volume meant to be shown to the user.
    */
    wxString GetDisplayName() const;

    /**
        This function is available only when @c wxUSE_GUI is @c 1.

        Returns the icon used by the native toolkit for the given file system type.
    */
    wxIcon GetIcon(wxFSIconType type) const;
};