]>
Commit | Line | Data |
---|---|---|
f3845e88 VZ |
1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
2 | %% Name: dirtrav.tex | |
3 | %% Purpose: wxDirTraverser documentation | |
4 | %% Author: Vadim Zeitlin | |
5 | %% Modified by: | |
6 | %% Created: 14.01.02 (extracted from dir.tex) | |
7 | %% RCS-ID: $Id$ | |
8 | %% Copyright: (c) Vadim Zeitlin | |
fc2171bd | 9 | %% License: wxWidgets license |
f3845e88 VZ |
10 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
11 | ||
12 | \section{\class{wxDirTraverser}}\label{wxdirtraverser} | |
13 | ||
14 | wxDirTraverser is an abstract interface which must be implemented by objects | |
15 | passed to \helpref{Traverse}{wxdirtraverse} function. | |
16 | ||
17 | Example of use (this works almost like \helpref{GetAllFiles}{wxdirgetallfiles}): | |
18 | ||
19 | \begin{verbatim} | |
20 | class wxDirTraverserSimple : public wxDirTraverser | |
21 | { | |
22 | public: | |
23 | wxDirTraverserSimple(wxArrayString& files) : m_files(files) { } | |
24 | ||
25 | virtual wxDirTraverseResult OnFile(const wxString& filename) | |
26 | { | |
27 | m_files.Add(filename); | |
28 | return wxDIR_CONTINUE; | |
29 | } | |
30 | ||
31 | virtual wxDirTraverseResult OnDir(const wxString& WXUNUSED(dirname)) | |
32 | { | |
33 | return wxDIR_CONTINUE; | |
34 | } | |
35 | ||
36 | private: | |
37 | wxArrayString& m_files; | |
38 | }; | |
39 | ||
40 | // get the names of all files in the array | |
41 | wxArrayString files; | |
42 | wxDirTraverserSimple traverser(files); | |
43 | ||
44 | wxDir dir(dirname); | |
45 | dir.Traverse(traverser); | |
46 | \end{verbatim} | |
47 | ||
48 | \wxheading{Derived from} | |
49 | ||
50 | No base class | |
51 | ||
52 | \wxheading{Constants} | |
53 | ||
54 | The elements of {\tt wxDirTraverseResult} are the possible return values of the | |
55 | callback functions: | |
56 | ||
57 | {\small | |
58 | \begin{verbatim} | |
59 | enum wxDirTraverseResult | |
60 | { | |
61 | wxDIR_IGNORE = -1, // ignore this directory but continue with others | |
62 | wxDIR_STOP, // stop traversing | |
63 | wxDIR_CONTINUE // continue into this directory | |
64 | }; | |
65 | \end{verbatim} | |
66 | } | |
67 | ||
68 | \wxheading{Include files} | |
69 | ||
70 | <wx/dir.h> | |
71 | ||
72 | \latexignore{\rtfignore{\wxheading{Members}}} | |
73 | ||
350777b6 VZ |
74 | \membersection{wxDirTraverser::OnDir}\label{wxdirtraverserondir} |
75 | ||
76 | \func{virtual wxDirTraverseResult}{OnDir}{\param{const wxString\& }{dirname}} | |
77 | ||
78 | This function is called for each directory. It may return {\tt wxSIR\_STOP} | |
79 | to abort traversing completely, {\tt wxDIR\_IGNORE} to skip this directory but | |
80 | continue with others or {\tt wxDIR\_CONTINUE} to enumerate all files and | |
81 | subdirectories in this directory. | |
82 | ||
83 | This is a pure virtual function and must be implemented in the derived class. | |
84 | ||
f3845e88 VZ |
85 | \membersection{wxDirTraverser::OnFile}\label{wxdirtraverseronfile} |
86 | ||
7af3ca16 | 87 | \func{virtual wxDirTraverseResult}{OnFile}{\param{const wxString\& }{filename}} |
f3845e88 VZ |
88 | |
89 | This function is called for each file. It may return {\tt wxDIR\_STOP} to abort | |
90 | traversing (for example, if the file being searched is found) or | |
91 | {\tt wxDIR\_CONTINUE} to proceed. | |
92 | ||
350777b6 | 93 | This is a pure virtual function and must be implemented in the derived class. |
f3845e88 | 94 | |
350777b6 | 95 | \membersection{wxOpenErrorTraverser::OnOpenError}\label{wxopenerrortraverseronopenerror} |
f3845e88 | 96 | |
350777b6 VZ |
97 | \func{virtual wxOpenErrorTraverseResult}{OnOpenError}{\param{const wxString\& }{openerrorname}} |
98 | ||
99 | This function is called for each directory which we failed to open for | |
100 | enumerating. It may return {\tt wxSIR\_STOP} to abort traversing completely, | |
101 | {\tt wxDIR\_IGNORE} to skip this directory but continue with others or | |
102 | {\tt wxDIR\_CONTINUE} to retry opening this directory once again. | |
103 | ||
104 | The base class version always returns {\tt wxDIR\_IGNORE}. | |
f3845e88 VZ |
105 | |
106 |