1*02be5353SAxel Dörfler /* 2*02be5353SAxel Dörfler Open Tracker License 3*02be5353SAxel Dörfler 4*02be5353SAxel Dörfler Terms and Conditions 5*02be5353SAxel Dörfler 6*02be5353SAxel Dörfler Copyright (c) 1991-2000, Be Incorporated. All rights reserved. 7*02be5353SAxel Dörfler 8*02be5353SAxel Dörfler Permission is hereby granted, free of charge, to any person obtaining a copy of 9*02be5353SAxel Dörfler this software and associated documentation files (the "Software"), to deal in 10*02be5353SAxel Dörfler the Software without restriction, including without limitation the rights to 11*02be5353SAxel Dörfler use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 12*02be5353SAxel Dörfler of the Software, and to permit persons to whom the Software is furnished to do 13*02be5353SAxel Dörfler so, subject to the following conditions: 14*02be5353SAxel Dörfler 15*02be5353SAxel Dörfler The above copyright notice and this permission notice applies to all licensees 16*02be5353SAxel Dörfler and shall be included in all copies or substantial portions of the Software. 17*02be5353SAxel Dörfler 18*02be5353SAxel Dörfler THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19*02be5353SAxel Dörfler IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF TITLE, MERCHANTABILITY, 20*02be5353SAxel Dörfler FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21*02be5353SAxel Dörfler BE INCORPORATED BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 22*02be5353SAxel Dörfler AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION 23*02be5353SAxel Dörfler WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24*02be5353SAxel Dörfler 25*02be5353SAxel Dörfler Except as contained in this notice, the name of Be Incorporated shall not be 26*02be5353SAxel Dörfler used in advertising or otherwise to promote the sale, use or other dealings in 27*02be5353SAxel Dörfler this Software without prior written authorization from Be Incorporated. 28*02be5353SAxel Dörfler 29*02be5353SAxel Dörfler Tracker(TM), Be(R), BeOS(R), and BeIA(TM) are trademarks or registered trademarks 30*02be5353SAxel Dörfler of Be Incorporated in the United States and other countries. Other brand product 31*02be5353SAxel Dörfler names are registered trademarks or trademarks of their respective holders. 32*02be5353SAxel Dörfler All rights reserved. 33*02be5353SAxel Dörfler */ 34*02be5353SAxel Dörfler 35*02be5353SAxel Dörfler // DesktopPoseView adds support for displaying integrated desktops 36*02be5353SAxel Dörfler // from multiple volumes to BPoseView 37*02be5353SAxel Dörfler 38*02be5353SAxel Dörfler #ifndef _DESKTOP_POSE_VIEW_H 39*02be5353SAxel Dörfler #define _DESKTOP_POSE_VIEW_H 40*02be5353SAxel Dörfler 41*02be5353SAxel Dörfler #include "EntryIterator.h" 42*02be5353SAxel Dörfler #include "PoseView.h" 43*02be5353SAxel Dörfler 44*02be5353SAxel Dörfler namespace BPrivate { 45*02be5353SAxel Dörfler 46*02be5353SAxel Dörfler class DesktopPoseView : public BPoseView { 47*02be5353SAxel Dörfler // overrides BPoseView to add desktop-view specific code 48*02be5353SAxel Dörfler public: 49*02be5353SAxel Dörfler DesktopPoseView(Model *, BRect, uint32 viewMode, uint32 resizeMask = B_FOLLOW_ALL); 50*02be5353SAxel Dörfler 51*02be5353SAxel Dörfler static EntryListBase *InitDesktopDirentIterator(BPoseView *, const entry_ref *); 52*02be5353SAxel Dörfler 53*02be5353SAxel Dörfler void ShowVolumes(bool visible, bool showShared); 54*02be5353SAxel Dörfler void RemoveNonBootItems(); 55*02be5353SAxel Dörfler void AddNonBootItems(); 56*02be5353SAxel Dörfler 57*02be5353SAxel Dörfler void StartSettingsWatch(); 58*02be5353SAxel Dörfler void StopSettingsWatch(); 59*02be5353SAxel Dörfler 60*02be5353SAxel Dörfler virtual bool AddPosesThreadValid(const entry_ref *) const; 61*02be5353SAxel Dörfler 62*02be5353SAxel Dörfler protected: 63*02be5353SAxel Dörfler virtual EntryListBase *InitDirentIterator(const entry_ref *); 64*02be5353SAxel Dörfler virtual bool FSNotification(const BMessage *); 65*02be5353SAxel Dörfler 66*02be5353SAxel Dörfler virtual bool IsDesktopView() const; 67*02be5353SAxel Dörfler virtual bool ShouldShowPose(const Model *, const PoseInfo *); 68*02be5353SAxel Dörfler 69*02be5353SAxel Dörfler virtual bool Represents(const node_ref *) const; 70*02be5353SAxel Dörfler virtual bool Represents(const entry_ref *) const; 71*02be5353SAxel Dörfler 72*02be5353SAxel Dörfler void AdaptToVolumeChange(BMessage *); 73*02be5353SAxel Dörfler void AdaptToDesktopIntegrationChange(BMessage *); 74*02be5353SAxel Dörfler 75*02be5353SAxel Dörfler void UpdateNonBootDesktopPoses(bool integrateNonBootBeOSDesktops); 76*02be5353SAxel Dörfler 77*02be5353SAxel Dörfler private: 78*02be5353SAxel Dörfler typedef BPoseView _inherited; 79*02be5353SAxel Dörfler 80*02be5353SAxel Dörfler friend bool ShouldShowDesktopPose(dev_t device, const Model *, 81*02be5353SAxel Dörfler const PoseInfo *); 82*02be5353SAxel Dörfler }; 83*02be5353SAxel Dörfler 84*02be5353SAxel Dörfler class DesktopEntryListCollection : public CachedEntryIteratorList { 85*02be5353SAxel Dörfler public: 86*02be5353SAxel Dörfler DesktopEntryListCollection(); 87*02be5353SAxel Dörfler }; 88*02be5353SAxel Dörfler 89*02be5353SAxel Dörfler 90*02be5353SAxel Dörfler inline bool 91*02be5353SAxel Dörfler DesktopPoseView::IsDesktopView() const 92*02be5353SAxel Dörfler { 93*02be5353SAxel Dörfler return true; 94*02be5353SAxel Dörfler } 95*02be5353SAxel Dörfler 96*02be5353SAxel Dörfler } // namespace BPrivate 97*02be5353SAxel Dörfler 98*02be5353SAxel Dörfler using namespace BPrivate; 99*02be5353SAxel Dörfler 100*02be5353SAxel Dörfler #endif 101