Use this callback to manage the interaction between and custom display and Softimage. When there is a change to the selection, a value or the time, Softimage sends a notification that can be trapped by the corresponding notification object.
This callback takes the ViewContext object as input which you can use to get one of the View Notification objects:
void <custom_display_name>_Notify( CRef& in_context )
{
...
}
|
<custom_display_name> is the name specified in the call to PluginRegistrar::RegisterCustomDisplay, with any spaces converted to underscores.
| Parameter | Type | Description |
|---|---|---|
| in_context | CRef& | A reference to a ViewContext object. |
CStatus XSILoadPlugin( PluginRegistrar& in_reg )
{
// Set installation options
in_reg.PutVersion( 1, 0 );
// ... (see PluginRegistrar for details)
// Register your custom display (view)
CStatus in_reg.RegisterCustomDisplay( L"MyCustomDisplayName" );
}
CStatus MyCustomDisplayName_Init( CRef& in_context )
{
// Get the Softimage parent window handle to use to create a child window
ViewContext ctx( in_context );
HWND hParent = ctx.GetParentWindowHandle();
// Create a new window as a child of the Softimage parent window
HWND hChild = CreateDialog( MyDllInstance,
MAKEINTRESOURCE(IDD_MYCUSTOMWINDOW), hParent, (DLGPROC)MyWindowProc );
// ...
}
CStatus MyCustomDisplayName_Notify( CRef& in_context )
{
// Get the notification data through the ViewContext object
ViewContext ctx( in_context );
siEventID in_eNotifcation;
void* in_pData;
ctx.GetNotificationData ( in_eNotifcation, &in_pData );
// Notification handlers
switch ( in_eNotifcation )
{
case siOnSelectionChange:
{
// If selection changed...
}
case siOnTimeChange:
{
// If time changed...
}
case siOnValueChange:
{
// If value changed...
}
}
// ...
}
|