IPathConfigMgr.h

Go to the documentation of this file.
00001 /*
00002 *       IPathConfigMgr.h - Public interface for modifying application paths.
00003 *
00004 *           Copyright (c) Autodesk, Inc, 2005.  David Cunningham.
00005 *
00006 */
00007 
00008 #pragma once
00009 
00010 #include "iFnPub.h"
00011 #include "Path.h"
00012 #include "AssetManagement\AssetType.h"
00013 
00014 // forward declarations
00015 class AssetEnumCallback;
00016 namespace MaxSDK
00017 {
00018     namespace AssetManagement
00019     {
00020         class AssetUser;
00021     }
00022 }
00023 
00024 #define PATHCONFIG_INTERFACE   Interface_ID(0x490ddc99, 0xbe8dc96)
00025 
00036 class IPathConfigMgr : public FPStaticInterface
00037 {
00038 public:
00039 
00049     virtual bool LoadPathConfiguration(const MCHAR* filename) = 0;
00050 
00061     virtual bool MergePathConfiguration(const MCHAR* filename) = 0;
00062 
00070     virtual bool SavePathConfiguration(const MCHAR* filename) = 0;
00071 
00078     virtual const MCHAR *GetDir(int which) const =0;        
00079 
00087     virtual bool SetDir(int which, const MCHAR *dir) = 0;
00088 
00093     virtual int GetPlugInEntryCount() const =0; 
00094 
00100     virtual const MCHAR *GetPlugInDesc(int i) const =0;
00101 
00107     virtual const MCHAR *GetPlugInDir(int i) const =0;  
00108 
00109     // asset path
00110 
00117     virtual int GetAssetDirCount(MaxSDK::AssetManagement::AssetType assetType) const =0;    
00118 
00126     virtual const MCHAR *GetAssetDir(int i, MaxSDK::AssetManagement::AssetType assetType) const =0;
00127 
00135     virtual bool AddAssetDir(const MCHAR *dir, MaxSDK::AssetManagement::AssetType assetType)=0;
00136 
00145     virtual bool AddAssetDir(const MCHAR *dir, MaxSDK::AssetManagement::AssetType assetType, int update) = 0;
00146 
00157     virtual bool DeleteAssetDir(int i, MaxSDK::AssetManagement::AssetType assetType, int update) = 0;
00158 
00170     virtual bool AddSessionAssetDir(const MCHAR *dir, MaxSDK::AssetManagement::AssetType assetType, int update)=0;
00171 
00178     virtual int GetSessionAssetDirCount(MaxSDK::AssetManagement::AssetType assetType) const =0;
00179 
00187     virtual const MCHAR *GetSessionAssetDir(int i, MaxSDK::AssetManagement::AssetType assetType) const =0;
00188 
00200     virtual bool DeleteSessionAssetDir(int i, MaxSDK::AssetManagement::AssetType assetType, int update)=0;
00201 
00210     virtual int GetCurAssetDirCount(MaxSDK::AssetManagement::AssetType assetType) const =0;
00211 
00220     virtual const MCHAR *GetCurAssetDir(int i, MaxSDK::AssetManagement::AssetType assetType) const =0;
00221 
00229     virtual void UpdateAssetSection(MaxSDK::AssetManagement::AssetType assetType) = 0;
00230 
00236     virtual MSTR GetMAXIniFile() const = 0; 
00237 
00245     virtual bool GetResolveUNC() const = 0;
00246 
00254     virtual void SetResolveUNC(bool aFlag) = 0;
00255 
00262     virtual bool GetResolveToRelative() const = 0;
00263 
00270     virtual void SetResolveToRelative(bool aFlag) = 0;
00271 
00276     virtual void AppendSlash ( MCHAR *path ) const = 0;
00277 
00281     virtual void RemoveSlash ( MCHAR *path ) const = 0;
00282 
00286     virtual void AppendSlash ( MSTR &path ) const = 0;
00287 
00291     virtual void RemoveSlash ( MSTR &path ) const = 0;
00292 
00298     virtual bool IsUsingProfileDirectories() const = 0;
00299 
00309     virtual bool IsUsingRoamingProfiles() const = 0;
00310 
00322     virtual const MaxSDK::Util::Path& GetCurrentProjectFolder() const = 0;
00323 
00342     virtual bool SetCurrentProjectFolder(const MaxSDK::Util::Path& aDirectory) = 0;
00343 
00360     virtual bool SetSessionProjectFolder(const MaxSDK::Util::Path& aDirectory) = 0;
00361 
00370     virtual bool DoProjectSetupSteps() const = 0;
00371 
00381     virtual bool DoProjectSetupStepsUsingDirectory(const MaxSDK::Util::Path& aDirectory) const = 0;
00382 
00391     virtual bool IsProjectFolder(const MaxSDK::Util::Path& aDirectoryToCheck) const = 0;
00392 
00404     virtual MaxSDK::Util::Path GetProjectFolderPath(const MaxSDK::Util::Path& aProjectRoot) const = 0;
00405 
00413     virtual MaxSDK::Util::Path GetCurrentProjectFolderPath() const = 0;
00414 
00425     virtual void MakePathRelativeToProjectFolder(MaxSDK::Util::Path& aPath) const = 0;
00426 
00439     virtual bool CreateDirectoryHierarchy(const MaxSDK::Util::Path& aPath) const = 0;
00440 
00447     virtual bool DoesFileExist(const MaxSDK::Util::Path& aPath) const = 0;
00448 
00461     virtual void NormalizePathAccordingToSettings(MaxSDK::Util::Path& aPath) const = 0;
00462 
00482     virtual void RecordInputAsset(
00483         const MaxSDK::AssetManagement::AssetUser& originalPath,
00484         AssetEnumCallback &nameEnum, 
00485         DWORD flags) const = 0;
00486 
00506     virtual void RecordOutputAsset(
00507         const MaxSDK::AssetManagement::AssetUser &originalAsset,
00508         AssetEnumCallback &nameEnum, 
00509         DWORD flags) const = 0;
00510 
00517     virtual int GetProjectSubDirectoryCount() const = 0;
00518 
00529     virtual const MCHAR* GetProjectSubDirectory(int aIndex) const = 0;
00530 
00543     virtual void AddProjectDirectoryCreateFilter(int aID) = 0;
00544 
00555     virtual void RemoveAllProjectDirectoryCreateFilters() = 0;
00556 
00569     virtual void RemoveProjectDirectoryCreateFilter(int aID) = 0;
00570 
00576     CoreExport static IPathConfigMgr* GetPathConfigMgr(); 
00577 };
00578 
00579 
00580 
00581