InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IScript Class Referenceabstract

#include <IScript.h>

Inheritance diagram for IScript:
IScriptLabelIPMUnknownCPMUnknown< IScript >CScriptBscShpScriptCdlChartScriptCProxyScriptCusDtLnkScriptPstLstScriptBscMEScriptCdlStockScriptPrefsScriptSnpRunnableScript

Public Types

enum  { kDefaultIID = IID_ISCRIPT }
 
- Public Types inherited from IScriptLabel
enum  { kDefaultIID = IID_ISCRIPTLABEL }
 
typedef PMString ScriptLabelKey
 
typedef PMString ScriptLabelValue
 
typedef KeyValuePair
< ScriptLabelKey,
ScriptLabelValue
ScriptLabelKeyValuePair
 
typedef K2Vector
< ScriptLabelKeyValuePair
ScriptLabelKeyValueList
 

Public Member Functions

virtual ScriptID GetObjectType (const RequestContext &context) const =0
 
virtual bool16 IsObjectType (const ScriptID &type, const RequestContext &context) const =0
 
virtual bool16 IsObjectType (const ScriptElementID &type, const RequestContext &context) const =0
 
virtual const ObjectScriptElementGetObjectInfo (const RequestContext &context) const =0
 
virtual void SetObjectType (const ScriptID &type, const RequestContext &context)=0
 
virtual IDataBaseGetDataBase (const RequestContext &context) const =0
 
virtual ScriptObject GetScriptObject (const RequestContext &context) const =0
 
virtual IPMUnknownQueryParent (const PMIID &iid, const RequestContext &context) const =0
 
virtual bool16 HasBeenDeleted (const RequestContext &context)=0
 
virtual bool16 IsEqual (const IScript *script, const RequestContext &context) const =0
 
virtual void RegisterClientObject (ScriptClientObject *clientObject)=0
 
virtual void UnregisterClientObject (ScriptClientObject *clientObject)=0
 
virtual void NotifyClientObjectsToReleaseMe ()=0
 
- Public Member Functions inherited from IScriptLabel
virtual void SetTag (const ScriptLabelValue &string)=0
 
virtual ScriptLabelValue GetTag () const =0
 
virtual void SetTag (const ScriptLabelKey &key, const ScriptLabelValue &value)=0
 
virtual ScriptLabelValue GetTag (const ScriptLabelKey &key) const =0
 
virtual void SetTags (const ScriptLabelKeyValueList &labels)=0
 
virtual ScriptLabelKeyValueList GetTags () const =0
 
virtual void ClearTags ()=0
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Additional Inherited Members

- Static Public Attributes inherited from IScriptLabel
static ScriptLabelKey kDefaultScriptLabelKey
 

Detailed Description

Added to any boss that wants to be visible as an object in the scripting architecture and thus available to any scripting client.

Member Function Documentation

virtual IDataBase* IScript::GetDataBase (const RequestContextcontext) const
pure virtual

A safe way to determine the appropriate database for this object. Most implementations can simply inherit and use the default implementation { return ::GetDataBase( this ) ; } but some script bosses are non-persistent, and should therefore override this method.

Parameters
contextis the request context

Implemented in SnpRunnableScript, CScript, and CProxyScript.

virtual const ObjectScriptElement* IScript::GetObjectInfo (const RequestContextcontext) const
pure virtual

Return the object's script info

Parameters
contextis the request context

Implemented in CScript.

virtual ScriptID IScript::GetObjectType (const RequestContextcontext) const
pure virtual

Return the object's type

Parameters
contextis the request context

Implemented in BscShpScript, CdlChartScript, PstLstScript, CusDtLnkScript, CProxyScript, and CScript.

virtual ScriptObject IScript::GetScriptObject (const RequestContextcontext) const
pure virtual

Return information for the object specifier

Parameters
contextis the request context

Implemented in SnpRunnableScript, CScript, CProxyScript, and PrefsScript.

virtual bool16 IScript::HasBeenDeleted (const RequestContextcontext)
pure virtual

Return kTrue if the underlying object that this script object represents has been deleted

Parameters
contextis the request context

Implemented in CScript, CProxyScript, and CdlStockScript.

virtual bool16 IScript::IsEqual (const IScriptscript,
const RequestContextcontext 
) const
pure virtual

An IScript represents an object that is visible to scripting The IScript either lives on the object itself or on a proxy object Comparing IScripts means determining whether both IScripts point to the same object. Since you can have multiple proxy objects pointing at the same object we need this operator.

Parameters
scriptis the other script object
contextis the request context

Implemented in CScript, and CProxyScript.

virtual bool16 IScript::IsObjectType (const ScriptIDtype,
const RequestContextcontext 
) const
pure virtual

Return kTrue if this object is or is based on the specified type

Parameters
typeis the type to check
contextis the request context

Implemented in CScript.

virtual void IScript::NotifyClientObjectsToReleaseMe ()
pure virtual

Notify all registered client objects to release any references they're holding on my boss.

Implemented in CScript.

virtual IPMUnknown* IScript::QueryParent (const PMIIDiid,
const RequestContextcontext 
) const
pure virtual

Return the parent of this object in the script hierarchy

Parameters
iidis desired interface on the parent
contextis the request context

Implemented in BscShpScript, CdlChartScript, CScript, PstLstScript, CProxyScript, and CusDtLnkScript.

virtual void IScript::RegisterClientObject (ScriptClientObjectclientObject)
pure virtual

Register a scripting client object. Calls ScriptClientObject::AddRef(). Does nothing if the client object passed in is nil.

Parameters
clientObjectis the scripting client object. Must NOT be an interface on this boss.

Implemented in CScript.

virtual void IScript::SetObjectType (const ScriptIDtype,
const RequestContextcontext 
)
pure virtual

Most objects know what type they are. But when supporting generic objects such as page items or text, there are cases where 1) the object can be interpreted as different types and/or 2) it is expensive to constantly figure out what type the object is. So we allow the object to be told what type it is.

Parameters
typeis the type to set
contextis the request context

Implemented in BscShpScript, CdlChartScript, CScript, and CProxyScript.

virtual void IScript::UnregisterClientObject (ScriptClientObjectclientObject)
pure virtual

Unregister a scripting client object. Calls ScriptClientObject::Release(). Does nothing if the client object passed in is nil or was not previously passed to RegisterClientObject() on this IScript.

Parameters
clientObjectis the scripting client object

Implemented in CScript.