xsi_customproperty.h
Go to the documentation of this file.
00001 //*****************************************************************************
00011 //*****************************************************************************
00012 
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016 
00017 #ifndef __XSICUSTOMPROPERTY_H__
00018 #define __XSICUSTOMPROPERTY_H__
00019 
00020 #include <xsi_property.h>
00021 #include <xsi_status.h>
00022 
00023 namespace XSI {
00024 
00025 class ProxyParameter ;
00026 
00027 //*****************************************************************************
00062 //*****************************************************************************
00063 
00064 class SICPPSDKDECL CustomProperty : public Property
00065 {
00066 public:
00068     CustomProperty();
00069 
00071     ~CustomProperty();
00072 
00076     CustomProperty(const CRef& in_ref);
00077 
00081     CustomProperty(const CustomProperty& in_obj);
00082 
00087     bool IsA( siClassID in_ClassID) const;
00088 
00092     siClassID GetClassID() const;
00093 
00099     CustomProperty& operator=(const CustomProperty& in_obj);
00100 
00106     CustomProperty& operator=(const CRef& in_ref);
00107 
00140     CStatus AddParameter(
00141         const CString& in_scriptname,
00142         CValue::DataType in_type,
00143         INT in_capabilities,
00144         const CString& in_name,
00145         const CString& in_description,
00146         const CValue& in_default,
00147         const CValue& in_min,
00148         const CValue& in_max,
00149         const CValue& in_suggestedmin,
00150         const CValue& in_suggestedmax,
00151         Parameter&  io_parameter );
00152 
00183     CStatus AddParameter(
00184         const CString& in_scriptname,
00185         CValue::DataType in_type,
00186         INT in_capabilities,
00187         const CString& in_name,
00188         const CString& in_description,
00189         const CValue& in_default,
00190         Parameter&  io_parameter );
00191 
00208     Parameter AddFCurveParameter( const CString& in_scriptname ) ;
00209 
00219     Parameter AddGridParameter( const CString& in_scriptname ) ;
00220 
00228     CStatus RemoveParameter( const Parameter& in_param );
00229 
00252     CStatus GetBinaryData( unsigned char *& io_buffer, UINT& io_size ) const;
00253 
00261     CStatus FreeBinaryData( unsigned char *& io_buffer ) const ;
00262 
00263 
00288     CStatus PutBinaryData( const unsigned char * in_buffer, UINT in_size );
00289 
00299     ProxyParameter AddProxyParameter(
00300                     Parameter in_ParamToProxy,
00301                     const CString& in_ProxyScriptName = CString(),
00302                     const CString& in_ProxyName = CString() ) ;
00303 
00314     Parameter AddParameterFromDef( const CRef& in_paramdef ) ;
00315 
00316     private:
00317     CustomProperty * operator&() const;
00318     CustomProperty * operator&();
00319 };
00320 
00321 };
00322 
00323 #endif // __XSICUSTOMPROPERTY_H__