xsi_pluginregistrar.h
Go to the documentation of this file.
00001 //*****************************************************************************
00010 //*****************************************************************************
00011 
00012 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00013 #pragma once
00014 #endif
00015 
00016 #ifndef __XSIPLUGINREGISTRAR_H__
00017 #define __XSIPLUGINREGISTRAR_H__
00018 
00019 #include <xsi_siobject.h>
00020 #include <xsi_pluginitem.h>
00021 
00022 namespace XSI {
00023 
00024 class ICENodeDef;
00025 
00026 //*****************************************************************************
00058 //*****************************************************************************
00059 
00060 class SICPPSDKDECL PluginRegistrar : public SIObject
00061 {
00062 public:
00064     PluginRegistrar();
00065 
00067     ~PluginRegistrar();
00068 
00072     PluginRegistrar(const CRef& in_ref);
00073 
00077     PluginRegistrar(const PluginRegistrar& in_obj);
00078 
00083     bool IsA( siClassID in_ClassID) const;
00084 
00088     siClassID GetClassID() const;
00089 
00095     PluginRegistrar& operator=(const PluginRegistrar& in_obj);
00096 
00102     PluginRegistrar& operator=(const CRef& in_ref);
00103 
00121     PluginItem RegisterFilter( const CString& in_strName, siFilterType in_type );
00122 
00135     PluginItem RegisterCustomDisplay( const CString& in_strName );
00136 
00406     PluginItem RegisterProperty( const CString& in_strName );
00407 
00421     PluginItem RegisterDisplayCallback( const CString& in_strName );
00422 
00436     PluginItem RegisterDisplayPass( const CString& in_strName );
00437 
00465     PluginItem RegisterMenu(    siMenuAnchorPoints  in_anchorID,
00466                                 const CString&      in_menuName,
00467                                 bool                in_bDisplayAsSubmenu=true,
00468                                 bool                in_bDynamicMenu=true );
00469 
00486     PluginItem RegisterCommand( const CString&  in_commandScriptName );
00487 
00519     PluginItem RegisterCommand( const CString&  in_commandName,
00520                                 const CString&  in_commandScriptName );
00521 
00540     PluginItem RegisterEvent( const CString& in_eventName, const siEventID in_eventID );
00541 
00570     PluginItem RegisterTimerEvent(  const CString&  in_eventName,
00571                                     LONG            in_nInterval,
00572                                     LONG            in_nDelay=0 );
00573 
00595     PluginItem RegisterConverterEvent(  const CString&  in_eventName,
00596                                         const siEventID in_eventID,
00597                                         const CString&  in_eventExtension );
00598 
00613     PluginItem RegisterOperator( const CString& in_name );
00614 
00630     PluginItem RegisterRenderer( const CString& in_name );
00631 
00646     PluginItem RegisterICENode( const ICENodeDef& in_nodedef );
00647 
00658     PluginItem RegisterPrimitive( const CString& in_name );
00659 
00667     PluginItem RegisterShaderLanguageParser( const CString& in_strParserName );
00668 
00679     PluginItem RegisterShader( const CString& in_strShaderClassName, ULONG in_ulMajorVersion, ULONG in_ulMinorVersion );
00680 
00696     PluginItem RegisterTool( const CString& in_name );
00697 
00701     CString GetAuthor() const;
00702 
00707     CString GetURL() const;
00708 
00713     CString GetEmail() const;
00714 
00722     CStatus GetVersion( LONG& out_major, LONG& out_minor ) const;
00723 
00729     CString GetLanguage() const;
00730 
00734     CString GetFilename() const;
00735 
00740     CStatus PutAuthor( const CString& in_strName );
00741 
00746     CStatus PutURL( const CString& in_strURL );
00747 
00752     CStatus PutEmail( const CString& in_strEmail );
00753 
00759     CStatus PutVersion( LONG in_major, LONG in_minor );
00760 
00766     CStatus PutHelp( const CString& in_strHelp );
00767 
00773     CStatus PutCategories( const CString& in_strCat );
00774 
00788     CStatus PutUserData( const CValue& in_userdata ) ;
00789 
00794     CValue GetUserData( ) const;
00795 
00796     private:
00797     PluginRegistrar * operator&() const;
00798     PluginRegistrar * operator&();
00799 };
00800 
00801 };
00802 
00803 #endif // __XSIPluginRegistrar_H__