Views Foundation > Adding ActiveX Controls as Graphic Objects into a Rogue Wave Views Application > Presentation of the Rogue Wave Views Application of this Example > Step 3: Adding an Object Interactor
 
Step 3: Adding an Object Interactor
In this step we show the usage of the object interactor IlvGraphicComAdapterInteractor (this class is defined in the header file ilviews/windows/comgint.h). It lets you interact with the control (although there are some limitations) even when you apply a transformation to the graphic object. In fact, you just have to attach an instance of the IlvGraphicComAdapterInteractor to the IlvGraphicCOMAdapter object, which is accomplished with the function AttachInteractorAccelerator:
void
AttachInteractorAccelerator(IlvManager* man,
IlvView*,
IlvEvent& ev,
IlvAny arg)
{
// The arg parameter is actually an object interactor.
IlvManagerObjectInteractor* inter =
ILVREINTERPRETCAST(IlvObjectInteractor*, arg);
// Gets the object above which is the mouse pointer.
IlvGraphic* graphic = man->lastContains(IlvPoint(ev.x(), ev.y()));
// Any object?
 
if (graphic) {
// Is it an IlvGraphicCOMAdapter?
IlvGraphicCOMAdapter* adapt =
ILVDYNAMICCAST(IlvGraphicCOMAdapter*, graphic);
 
if (adapt) {
// Attaches the interactor to the object.
adapt->setInteractor(inter);
}
}
}
The IlvGraphicComAdapterInteractor object is given as a parameter of the function and was allocated in the function ActiveXGraphicAdapter::specificInitialization:
_objectInteractor = new IlvGraphicComAdapterInteractor;
// Adds an accelerator in order to attach an object interactor to the
// control under the mouse pointer.
grapher->addAccelerator(AttachInteractorAccelerator,
IlvKeyUp,
IlvCtrlChar('b'),
0,
_objectInteractor);

Version 5.8
Copyright © 2014, Rogue Wave Software, Inc. All Rights Reserved.