]>
Commit | Line | Data |
---|---|---|
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 | |
9 | %% License: wxWindows license | |
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 | ||
74 | ||
75 | \membersection{wxDirTraverser::OnDir}\label{wxdirtraverserondir} | |
76 | ||
77 | \func{virtual wxDirTraverseResult}{OnDir}{\param{const wxString\& }{dirname}} | |
78 | ||
79 | This function is called for each directory. It may return {\tt wxSIR\_STOP} | |
80 | to abort traversing completely, {\tt wxDIR\_IGNORE} to skip this directory but | |
81 | continue with others or {\tt wxDIR\_CONTINUE} to enumerate all files and | |
82 | subdirectories in this directory. | |
83 | ||
84 | This is a pure virtual function and must be implemented in the derived class. | |
85 | ||
86 | ||
87 | \membersection{wxDirTraverser::OnFile}\label{wxdirtraverseronfile} | |
88 | ||
89 | \func{virtual wxDirTraverseResult}{OnFile}{\param{const wxString\& }{filename}} | |
90 | ||
91 | This function is called for each file. It may return {\tt wxDIR\_STOP} to abort | |
92 | traversing (for example, if the file being searched is found) or | |
93 | {\tt wxDIR\_CONTINUE} to proceed. | |
94 | ||
95 | This is a pure virtual function and must be implemented in the derived class. | |
96 | ||
97 | ||
98 | \membersection{wxDirTraverser::OnOpenError}\label{wxopenerrortraverseronopenerror} | |
99 | ||
100 | \func{virtual wxDirTraverseResult}{OnOpenError}{\param{const wxString\& }{openerrorname}} | |
101 | ||
102 | This function is called for each directory which we failed to open for | |
103 | enumerating. It may return {\tt wxSIR\_STOP} to abort traversing completely, | |
104 | {\tt wxDIR\_IGNORE} to skip this directory but continue with others or | |
105 | {\tt wxDIR\_CONTINUE} to retry opening this directory once again. | |
106 | ||
107 | The base class version always returns {\tt wxDIR\_IGNORE}. | |
108 | ||
109 |