VCOM:VectorWorks:Scripting:IPythonScriptEngine: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
m (1 revision)
No edit summary
 
Line 7: Line 7:
namespace <code>VectorWorks::Scripting</code>
namespace <code>VectorWorks::Scripting</code>


..put some descriptoin in here...
This class provides the ability for a plug-in to compile and execute Python scripts.
</desc>
</desc>


Line 13: Line 13:
<interface>
<interface>
<code lang="cpp">
<code lang="cpp">
...put the class definition, including the UUID, here...
// ---------------------------------------------------------------------------------------------------
// {473B0000-869A-4E12-86C9-056EFC87871B}
static const VWIID IID_PythonScriptEngine = { 0x473b0000, 0x869a, 0x4e12, { 0x86, 0xc9, 0x5, 0x6e, 0xfc, 0x87, 0x87, 0x1b } };
 
class IPythonScriptEngine : public IVWSingletonUnknown
{
public:
virtual VCOMError VCOM_CALLTYPE CompileScript(const TXString& script,
bool inShouldDisplayDialogs,
bool& outWasCompiledSuccessfully,
Sint32* outLineNumberOfSelectedError, /* optional. Pass NULL if not desired */
TXString* outErrorText /* optional. Pass NULL if not desired */) = 0;
 
virtual VCOMError VCOM_CALLTYPE RequestPredefinedCode(EPredefinedCodeRequest predefinedCodeType, TXString& outCode) = 0;
 
virtual VCOMError VCOM_CALLTYPE ExecuteScript(const TXString& script) = 0;
 
virtual VCOMError VCOM_CALLTYPE Repository_RemoveValues() = 0;
virtual VCOMError VCOM_CALLTYPE Repository_RemoveValue(const TXString& name) = 0;
virtual VCOMError VCOM_CALLTYPE Repository_GetValue(const TXString& name, VWVariant& outValue) = 0;
virtual VCOMError VCOM_CALLTYPE Repository_SetValue(const TXString& name, const VWVariant& value) = 0;
virtual VCOMError VCOM_CALLTYPE Repository_GetValueNames(TXStringArray& outArray) = 0;
virtual VCOMError VCOM_CALLTYPE CallUserFunction(void* functionRef, PluginLibraryArgTable* arguments, size_t argumentsCount) = 0;
virtual VCOMError VCOM_CALLTYPE CallUserProcedure(void* procedureRef, PluginLibraryArgTable* arguments, size_t argumentsCount) = 0;
 
virtual VCOMError VCOM_CALLTYPE ReportRuntimeWarning(const TXString& text) = 0;
virtual VCOMError VCOM_CALLTYPE ReportRuntimeError(const TXString& text) = 0;
virtual VCOMError VCOM_CALLTYPE DisplayScriptOptionsDlg() = 0;
};
</code>
</code>
</interface>
</interface>
Line 22: Line 51:
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::CompileScript|CompileScript]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::CompileScript|CompileScript]]
 
Compile the specified scripts. This is just used for purposes of reporting syntax errors.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::RequestPredefinedCode|RequestPredefinedCode]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::RequestPredefinedCode|RequestPredefinedCode]]
 
Uses UI to return predefined code (i.e. function names, criteria, etc) text.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::ExecuteScript|ExecuteScript]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::ExecuteScript|ExecuteScript]]
 
Execute a python script provided as text.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::Repository_RemoveValues|Repository_RemoveValues]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::Repository_RemoveValues|Repository_RemoveValues]]
 
Allow access to repository to communicate data with the plug-in.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::Repository_RemoveValue|Repository_RemoveValue]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::Repository_RemoveValue|Repository_RemoveValue]]
 
Allow access to repository to communicate data with the plug-in.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::Repository_GetValue|Repository_GetValue]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::Repository_GetValue|Repository_GetValue]]
 
Allow access to repository to communicate data with the plug-in.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::Repository_SetValue|Repository_SetValue]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::Repository_SetValue|Repository_SetValue]]
 
Allow access to repository to communicate data with the plug-in.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::Repository_GetValueNames|Repository_GetValueNames]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::Repository_GetValueNames|Repository_GetValueNames]]
 
Allow access to repository to communicate data with the plug-in.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::CallUserFunction|CallUserFunction]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::CallUserFunction|CallUserFunction]]
 
Call are user function from a library callback.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::CallUserProcedure|CallUserProcedure]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::CallUserProcedure|CallUserProcedure]]
 
Call are user function from a library callback.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::ReportRuntimeWarning|ReportRuntimeWarning]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::ReportRuntimeWarning|ReportRuntimeWarning]]
 
Report warnings in the script engine.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::ReportRuntimeError|ReportRuntimeError]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::ReportRuntimeError|ReportRuntimeError]]
 
Report errors in the script engine.
</line>
</line>
<line>
<line>
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::DisplayScriptOptionsDlg|DisplayScriptOptionsDlg]]
[[VCOM:VectorWorks:Scripting:IPythonScriptEngine::DisplayScriptOptionsDlg|DisplayScriptOptionsDlg]]
 
Display the UI to specify scripting options.
</line>
</line>
</lineList>
</lineList>

Latest revision as of 15:21, 19 September 2013

Description

namespace VectorWorks::Scripting

This class provides the ability for a plug-in to compile and execute Python scripts.

Interface

// ---------------------------------------------------------------------------------------------------
// {473B0000-869A-4E12-86C9-056EFC87871B}
static const VWIID IID_PythonScriptEngine = { 0x473b0000, 0x869a, 0x4e12, { 0x86, 0xc9, 0x5, 0x6e, 0xfc, 0x87, 0x87, 0x1b } };

class IPythonScriptEngine : public IVWSingletonUnknown
{
public:
	virtual VCOMError VCOM_CALLTYPE CompileScript(const TXString& script,
													bool inShouldDisplayDialogs,
													bool& outWasCompiledSuccessfully,
													Sint32* outLineNumberOfSelectedError, /* optional. Pass NULL if not desired */
													TXString* outErrorText /* optional. Pass NULL if not desired */) = 0;

	virtual VCOMError VCOM_CALLTYPE RequestPredefinedCode(EPredefinedCodeRequest predefinedCodeType, TXString& outCode) = 0;

	virtual VCOMError VCOM_CALLTYPE ExecuteScript(const TXString& script) = 0;

	virtual VCOMError VCOM_CALLTYPE Repository_RemoveValues() = 0;
	virtual VCOMError VCOM_CALLTYPE Repository_RemoveValue(const TXString& name) = 0;
	virtual VCOMError VCOM_CALLTYPE Repository_GetValue(const TXString& name, VWVariant& outValue) = 0;
	virtual VCOMError VCOM_CALLTYPE Repository_SetValue(const TXString& name, const VWVariant& value) = 0;
	virtual VCOMError VCOM_CALLTYPE Repository_GetValueNames(TXStringArray& outArray) = 0;
			
	virtual VCOMError VCOM_CALLTYPE CallUserFunction(void* functionRef, PluginLibraryArgTable* arguments, size_t argumentsCount) = 0;
	virtual VCOMError VCOM_CALLTYPE CallUserProcedure(void* procedureRef, PluginLibraryArgTable* arguments, size_t argumentsCount) = 0;

	virtual VCOMError VCOM_CALLTYPE ReportRuntimeWarning(const TXString& text) = 0;
	virtual VCOMError VCOM_CALLTYPE ReportRuntimeError(const TXString& text) = 0;
	virtual VCOMError VCOM_CALLTYPE DisplayScriptOptionsDlg() = 0;
};

Members

CompileScript Compile the specified scripts. This is just used for purposes of reporting syntax errors.
RequestPredefinedCode Uses UI to return predefined code (i.e. function names, criteria, etc) text.
ExecuteScript Execute a python script provided as text.
Repository_RemoveValues Allow access to repository to communicate data with the plug-in.
Repository_RemoveValue Allow access to repository to communicate data with the plug-in.
Repository_GetValue Allow access to repository to communicate data with the plug-in.
Repository_SetValue Allow access to repository to communicate data with the plug-in.
Repository_GetValueNames Allow access to repository to communicate data with the plug-in.
CallUserFunction Call are user function from a library callback.
CallUserProcedure Call are user function from a library callback.
ReportRuntimeWarning Report warnings in the script engine.
ReportRuntimeError Report errors in the script engine.
DisplayScriptOptionsDlg Display the UI to specify scripting options.

Remarks

There is predefined type for smart VCOM pointer VCOMPtr to IPythonScriptEngine interface:

typedef VCOMPtr<IPythonScriptEngine>  IPythonScriptEnginePtr;

Version

Available from: Vectorworks 2014

See Also

VCOM:VCOMPtr

[[VCOM:VCOMPtr]]