HaikuDepot: notify work status from main window
[haiku.git] / src / kits / tracker / VirtualDirectoryPoseView.h
blob71fb19f0c4ad0424cd53c44b065e6db545c8f4af
1 /*
2 * Copyright 2013 Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
5 * Authors:
6 * Ingo Weinhold, ingo_weinhold@gmx.de
7 */
8 #ifndef _VIRTUAL_DIRECTORY_POSE_VIEW_H
9 #define _VIRTUAL_DIRECTORY_POSE_VIEW_H
12 #include <StringList.h>
14 #include "PoseView.h"
17 namespace BPrivate {
19 class VirtualDirectoryEntryList;
22 class VirtualDirectoryPoseView : public BPoseView {
23 public:
24 VirtualDirectoryPoseView(Model* model);
25 virtual ~VirtualDirectoryPoseView();
27 virtual void MessageReceived(BMessage* message);
29 protected:
30 virtual void AttachedToWindow();
31 virtual void RestoreState(AttributeStreamNode* node);
32 virtual void RestoreState(const BMessage& message);
33 virtual void SavePoseLocations(BRect* frameIfDesktop = NULL);
34 virtual void SetViewMode(uint32 newMode);
35 virtual EntryListBase* InitDirentIterator(const entry_ref* ref);
37 virtual void StartWatching();
38 virtual void StopWatching();
40 virtual bool FSNotification(const BMessage* message);
42 private:
43 typedef BPoseView _inherited;
45 private:
46 bool _EntryCreated(const BMessage* message);
47 bool _EntryRemoved(const BMessage* message);
48 bool _EntryMoved(const BMessage* message);
49 bool _NodeStatChanged(const BMessage* message);
51 void _DispatchEntryCreatedOrRemovedMessage(
52 int32 opcode, const node_ref& nodeRef,
53 const entry_ref& entryRef,
54 const char* path = NULL,
55 bool dispatchToSuperClass = true);
57 bool _GetEntry(const char* name, entry_ref& _ref,
58 struct stat* _st = NULL);
60 status_t _UpdateDirectoryPaths();
61 // manager must be locked
63 private:
64 BStringList fDirectoryPaths;
65 node_ref fRootDefinitionFileRef;
66 bigtime_t fFileChangeTime;
67 bool fIsRoot;
71 } // namespace BPrivate
74 #endif // _VIRTUAL_DIRECTORY_POSE_VIEW_H