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 
00655     PluginItem RegisterShaderLanguageParser( const CString& in_strParserName );
00656 
00667     PluginItem RegisterShader( const CString& in_strShaderClassName, ULONG in_ulMajorVersion, ULONG in_ulMinorVersion );
00668 
00684     PluginItem RegisterTool( const CString& in_name );
00685 
00689     CString GetAuthor() const;
00690 
00695     CString GetURL() const;
00696 
00701     CString GetEmail() const;
00702 
00710     CStatus GetVersion( LONG& out_major, LONG& out_minor ) const;
00711 
00717     CString GetLanguage() const;
00718 
00722     CString GetFilename() const;
00723 
00728     CStatus PutAuthor( const CString& in_strName );
00729 
00734     CStatus PutURL( const CString& in_strURL );
00735 
00740     CStatus PutEmail( const CString& in_strEmail );
00741 
00747     CStatus PutVersion( LONG in_major, LONG in_minor );
00748 
00754     CStatus PutHelp( const CString& in_strHelp );
00755 
00761     CStatus PutCategories( const CString& in_strCat );
00762 
00776     CStatus PutUserData( const CValue& in_userdata ) ;
00777 
00782     CValue GetUserData( ) const;
00783 
00784     private:
00785     PluginRegistrar * operator&() const;
00786     PluginRegistrar * operator&();
00787 };
00788 
00789 };
00790 
00791 #endif // __XSIPluginRegistrar_H__