* Copyright (c) 2008 Stephan Aßmus <superstippi@gmx.de>
* Copyright (c) 1998-2007 Matthijs Hollemans
* All rights reserved. Distributed under the terms of the MIT License.
*/
#ifndef INITIAL_ITERATOR_H
#define INITIAL_ITERATOR_H
#include <List.h>
#include <Message.h>
#include "FileIterator.h"
class BEntry;
class BDirectory;
class Model;
class InitialIterator : public FileIterator {
public:
InitialIterator(const Model* model);
virtual ~InitialIterator();
virtual bool IsValid() const;
virtual bool GetNextName(char* buffer);
virtual bool NotifyNegatives() const;
bool GetTopEntry(BEntry& entry);
bool FollowSubdir(BEntry& entry) const;
private:
bool _GetNextEntry(BEntry& entry);
bool _GetSubEntry(BEntry& entry);
void _ExamineSubdir(BEntry& entry);
private:
BList fDirectories;
BDirectory* fCurrentDir;
int32 fCurrentRef;
BMessage fSelectedFiles;
bool fRecurseDirs : 1;
bool fRecurseLinks : 1;
bool fSkipDotDirs : 1;
bool fTextOnly : 1;
};
#endif