# IRdWidgetParameters Interface Reference

Inherits IUnknown.

List of all members.

## Public Member Functions
HRESULT | GetControlledNodesCount ([out]RtUlong *pCount)
HRESULT | GetControlledNodeName ([in]RtUlong uIndex,[out]BSTR *pControlledNodeName)
HRESULT | GetWidgetDisplacement ([out]RtMatrixf *pWidgetTransformDisplacement)
HRESULT | SetWidgetDisplacement ([in]RtMatrixf *pWidgetTransformDisplacement)
HRESULT | ResetControlledNodes ()
HRESULT | AddControlledNodeName ([in]BSTR szControlledNode)
HRESULT | RemoveControlledNode ([in]IRsNode *pNode)
HRESULT | SetParameters ([in]BSTR bstrParameters)
HRESULT | GetParameters ([out]BSTR *pbstrParameters)
HRESULT | UpdateNodeName ([in]IRsNode *pChangedNode,[in]BSTR bNodeName)
HRESULT | UpdateNodeRemoved ([in]IRsNode *pRemovedNode)
HRESULT | GetControlledNodeNames ([out]BSTR *pbPackedNodesList)
HRESULT | SetControlledNodes ([in]BSTR bPackedNodesList)
HRESULT | GetControlledNodes ([out, retval]IRsObjectList **ppObjectList)
HRESULT | GetControlledNode ([in]RtUlong uIndex,[out]IRsNode **pControlledNode)
HRESULT | AddControlledNode ([in]IRsNode *pControlledNode)
HRESULT | PrepareToDeactivate ()

## Detailed Description

IRdWidgetParameters holds active set of objects that widget operates with.

## Member Function Documentation

HRESULT IRdWidgetParameters::GetControlledNodesCount | ( | [out] RtUlong * | pCount | ) |

Return number of items in list of controlled nodes.

Parameters:

  | pCount | [out] Number of items.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::GetControlledNodeName | ( | [in] RtUlong | uIndex,
|  | [out] BSTR * | pControlledNodeName |
| ) |  |  |

Return name of controlled node.

Parameters:

  | uIndex | [in] Index of name to return.
  | pControlledNodeName | [out] Returned node name.

Returns:
  standard HRESULT processing can be applied to returned value

HRESULT IRdWidgetParameters::GetWidgetDisplacement | ( | [out] RtMatrixf * | pWidgetTransformDisplacement | ) |

Return widget displacement matrix.

Parameters:

  | pWidgetTransformDisplacement | [out] Returned matrix.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::SetWidgetDisplacement | ( | [in] RtMatrixf * | pWidgetTransformDisplacement | ) |

Set widget displacement matrix.

- Matrix is used as parent space for widget.

Parameters:

  | pWidgetTransformDisplacement | [in] Matrix to set.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::ResetControlledNodes | ( |  | ) |

Reset list of controlled nodes to 0.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::AddControlledNodeName | ( | [in] BSTR | szControlledNode | ) |

Add node to list of controlled nodes.

Parameters:

  | szControlledNode | [in] Node name to add.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::RemoveControlledNode | ( | [in] IRsNode * | pNode | ) |

Remove node from list of controlled nodes.

Parameters:

  | szControlledNode | [in] Node name.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::SetParameters | ( | [in] BSTR | bstrParameters | ) |

Set parameters for advanced widget instantiation.

Parameters:

  | bstrParameters | [in] Parameters.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::GetParameters | ( | [out] BSTR * | pbstrParameters | ) |

Get parameters for advanced widget instantiation.

Parameters:

  | pCount | [out] Number of items.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::UpdateNodeName | ( | [in] IRsNode * | pChangedNode,
|  | [in] BSTR | bNodeName |
| ) |  |  |

Perform update of node names after node change.

Parameters:

  | pChangedNode | [in] Changed node pointer.
  | bNodeName | [in] Last node name.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::UpdateNodeRemoved | ( | [in] IRsNode * | pRemovedNode | ) |

Update nodes list after node removal.

Parameters:

  | pRemovedNode | [in] Removed node.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::GetControlledNodeNames | ( | [out] BSTR * | pbPackedNodesList | ) |

Get packed list of controlled node names.

Parameters:

  | pbPackedNodesList | [out] Packed list.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::SetControlledNodes | ( | [in] BSTR | bPackedNodesList | ) |

Set packed list of controlled node names.

Parameters:

  | bPackedNodesList | [in] Packed list.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::GetControlledNodes | ( | [out, retval] IRsObjectList ** | ppObjectList | ) |

Get controlled nodes list.

Returns:
  ppObjectList [out,retval] List of objects contained in this widget parameters data object.

  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::GetControlledNode | ( | [in] RtUlong | uIndex,
|  | [out] IRsNode ** | pControlledNode |
| ) |  |  |

Return controlled node.

Parameters:

  | uIndex | [in] Index of name to return.
  | pControlledNode | [out] Returned node.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::AddControlledNode | ( | [in] IRsNode * | pControlledNode | ) |

Add node to list of controlled nodes.

Parameters:

  | szControlledNode | [in] Node name to add.

Returns:
  standard HRESULT processing can be applied to returned value.

HRESULT IRdWidgetParameters::PrepareToDeactivate | ( |  | ) |

Turn internal pointer representation to string paths.

- This function is required to be called when widget becomes inactive, so it cannot handle graph changes.
- And as undo/redo does not maintain pointers due to serialization, we need to keep selections in string rep.

Returns:
  standard HRESULT processing can be applied to returned value.