00001 /* ----------------------------------------------------------------------------- 00002 // ----------------------------------------------------------------------------- 00003 00004 FILE: IPathAccessor.h 00005 00006 DESCRIPTION: abstract classes for menus 00007 00008 CREATED BY: David Cunnnigham 00009 00010 HISTORY: created February 18, 2005 00011 00012 Copyright (c) 2005, All Rights Reserved 00013 00014 // ----------------------------------------------------------------------------- 00015 // -------------------------------------------------------------------------- */ 00016 00017 #pragma once 00018 00019 #include "..\baseinterface.h" 00020 #include "..\Path.h" 00021 #include "AssetType.h" 00022 #include "..\AssetEnumCallback.h" 00023 00024 // forward declarations 00025 00026 namespace MaxSDK 00027 { 00028 namespace AssetManagement 00029 { 00030 class AssetUser; 00031 } 00032 } 00033 00034 00036 00120 class IAssetAccessor : public InterfaceServer { 00121 00122 public: 00123 00127 00128 00131 virtual MaxSDK::AssetManagement::AssetUser GetAsset() const = 0; 00132 00144 virtual bool SetAsset(const MaxSDK::AssetManagement::AssetUser& aNewAssetUser) = 0; 00146 00153 CoreExport virtual bool IsInputAsset() const; 00154 00155 // asset client information 00156 00158 00167 virtual MaxSDK::AssetManagement::AssetType GetAssetType() const =0; 00168 00170 00183 CoreExport virtual const MCHAR* GetAssetDesc() const; 00185 00195 CoreExport virtual const MCHAR* GetAssetTypeIcon() const; 00197 00203 CoreExport virtual const MCHAR* GetAssetClientDesc() const; 00205 00212 CoreExport virtual bool IsAssetPathWritable() const; 00213 00215 00226 CoreExport virtual const MCHAR* GetRetargetErrorMsg() const; 00227 00228 }; 00229 00231 00299 class IEnumAuxAssetsCallback : public AssetEnumCallback { 00300 public: 00302 00312 virtual void DeclareAsset(IAssetAccessor& anAccessor) =0; 00314 00326 virtual void DeclareGroup(IAssetAccessor& anAccessor) =0; 00328 00331 virtual void EndGroup() =0; 00332 }; 00333 00334