IContainerManager.h

Go to the documentation of this file.
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 }