00001 /***************************************************************************** 00002 00003 FILE: IContainerManager.h 00004 00005 DESCRIPTION: Describes the interface for global container functionality. 00006 00007 CREATED BY: Nicolas Leonard 00008 00009 HISTORY: July 9th, 2008 Creation 00010 00011 Copyright (c) 2008, All Rights Reserved. 00012 *****************************************************************************/ 00013 #pragma once 00014 00015 #include "iFnPub.h" 00016 #include "GetCOREInterface.h" 00017 #include "AssetManagement/AssetUser.h" 00018 #include "IContainerObject.h" 00019 00020 // forward declarations 00021 class INodeTab; 00022 00023 00025 00028 class IContainerManager : public FPStaticInterface 00029 { 00030 public: 00032 00036 virtual INode* CreateContainer(INodeTab& contentNodes) = 0; 00037 00039 00042 virtual INode* CreateInheritedContainer(const MaxSDK::AssetManagement::AssetUser& asset) = 0; 00043 00045 00047 virtual IContainerObject* IsInContainer(INode *node) = 0; 00048 00050 00052 virtual IContainerObject* IsContainerNode(INode *node) = 0; 00053 00054 // Function IDs for function publishing 00055 enum 00056 { 00057 IMPORT_CONTAINER_ID, 00058 CREATE_CONTAINER_ID, 00059 IS_IN_CONTAINER_ID, 00060 IS_CONTAINER_NODE_ID, 00061 }; 00062 }; 00063 00065 #define IID_IContainerManager Interface_ID(0xD951AEE9, 0x5769E48B) 00066 00068 inline IContainerManager* GetContainerManagerInterface() { 00069 return static_cast<IContainerManager*>(GetCOREInterface(IID_IContainerManager)); 00070 } 00071 00072 00073 //============================================================================== 00074 // class IContainerPreferences 00075 // 00077 //============================================================================== 00078 class IContainerPreferences: public FPStaticInterface 00079 { 00080 public: 00082 enum DisplayStatusOverride { 00084 eAlways = 0x0, 00086 eNever, 00088 ePerContainer 00089 }; 00090 00092 virtual IContainerObject13::AccessType SaveAsPreviousAccessType() const = 0; 00094 virtual void SetSaveAsPreviousAccessType(IContainerObject13::AccessType accessType) = 0; 00095 00097 virtual DisplayStatusOverride DisplayStatus() const = 0; 00099 virtual void SetDisplayStatus(DisplayStatusOverride displayStatus) = 0; 00100 00102 virtual bool NoUpdateCheck() const = 0; 00104 virtual void SetNoUpdateCheck(bool noUpdateCheck) = 0; 00105 00107 virtual bool UpdateOnLoad() const = 0; 00109 virtual void SetUpdateOnLoad(bool updateOnLoad) = 0; 00110 00112 virtual bool UpdateOnReload() const = 0; 00114 virtual void SetUpdateOnReload(bool updateOnReload) = 0; 00115 00117 virtual float StatusUpdateInterval() const = 0; 00119 virtual void SetStatusUpdateInterval(float statusInterval) = 0; 00120 }; 00121 00123 #define IID_IContainerPreferences Interface_ID(0xFA3B4E00, 0xEF1BA027) 00124 00126 inline IContainerPreferences* GetContainerPreferences() { 00127 return static_cast<IContainerPreferences*>(GetCOREInterface(IID_IContainerPreferences)); 00128 }