Events of DG Kernel Control
- MouseDown
- MouseMove
- MouseUp
- ClientDraw
- CurrentObjectChanged
- Extended Mouse Events
- KernelCADEvent Event
- DgkMiscEvent Event
-
See also: Properties, Methods
void OnMouseDownKernelCAD(short Button, short Shift, long x, long y)
Parameters
Button - [in] 1 if left button pressed, 2 - if right mouse button pressed.
Shift - [in] equals to 1 if Shift key is down and 0 otherwise.
x, y - [in] - window coordinates of the mouse pointer.
Remarks
The name of the handler for the event can be selected during implementation. OnMouseDownKernelCAD
method is called when the user clicks in the control display area.
void OnMouseMoveKernelCAD(short Button, short Shift, long x, long y)
Parameters
Button - [in] 1 if left button pressed, 2 -
if right mouse button pressed.
Shift - [in] equals to 1 if Shift
key is down and 0 otherwise.
x,y - [in] - window coordinates of the mouse pointer.
Remarks
The name of the handler for the event can be selected during implementation. OnMouseMoveKernelCAD
method is called when the user moves the mouse in the control display area.
void OnMouseUpKernelCAD(short Button, short Shift, long x, long y)
Parameters
Button - [in] 1 if left button pressed, 2 -
if right mouse button pressed.
Shift - [in] equals to 1 if Shift
key is down and 0 otherwise.
x,y - [in] - window coordinates of the mouse pointer.
Remarks
The name of the handler for the event can be selected during implementation. OnMouseDownKernelCAD
method is called when user releases a mouse button while the pointer is
positioned over the control display.
void OnClientDraw()
Remarks
ClientDraw event is raised per rendering frame when the controls view needs to be repainted and
after the rest of the model has been drawn.
Starting from v6.0 using IDraw interface inside OnClientDraw() has been deprecated and should be avoided.
It is recommended to construct the required object as an entity, perhaps transient one, and control its properties outside of this event. IDraw_DG queried from IModel_DG is useful to move code out of the handler with minimal changes.
Compare implementation of Metrics sample in v5.2 and v6.0 to see an example.
As client drawing involves some performance cost this event is not raised by
default. To enable or disable it RequestClientDraw
method has to be called.
void CurrentObjectChanged(VARIANT entity)
Remarks
This event is raised in Modify mode
when the user selects a different object as current. punkVal member
of entity
is a reference to IEntity_DG interface (can be safely cast to IEntity_DG type)
of the newly selected object.
The case when the passed reference is NULL, means that the user has clicked outside of any objects in the window.
There are two context properties which modify behaviour related to this event.
See more at Selection via the
current object
void MouseEx(long eventType, long xMouse, long yMouse, long data)
Parameters
eventType [in] - Type of the event
xMouse, yMouse
[in] - window coordinates of the mouse pointer.
The coordinates are relative to the top left corner of the window of the
control.
data[in] -Currently
unused. Reserved for different types of events to be added in future releases
Remarks
The MouseEx event is used for detection of mouse behaviour slightly more complex than
standard Mouse Up/Down/Move events. The actual type of event is described by the
eventType
parameter. Valid values of
eventType are enumerated by EDIEvent. In this release only eEventMouseHover, eEventMouseRButtonDown, eEventMouseRButtonMove and eEventMouseRButtonUp are passed through via this event. Consider disabling the conext menu for the right hand mouse button actions
The MouseHover event type occurs when the mouse pointer
has stopped in a small area for about half a second after some movement. This is similar to
behaviour detected for displaying tool tips in Windows User Interface.
To receive notifications about any of the MouseEx events, it has to be
enabled with a call to RequestEvent
with the same eventType value.
void KernelCADEvent( long eventType, const VARIANT&
param0, VARIANT* param1 )
Parameters
eventType [in] - Type of the event. Valid
values are enumerated in EDIEvent
param0 [in] - Parameter of the event. Meaning depends on
eventType and is documented in each
particular case
param1 [in,out] - Parameter of the event. Meaning depends on
eventType and is documented in each particular case
Remarks
Meaning of param0 and param1 depends on the eventType. Most often the
KernelCADEvent event is used to notify the application that
the user selected a context menu item.
eventType in this case coincides with
EDIEvent.eEventUICommand. See more details in
Context Menu topic
void DgkMiscEvent(long eventType, const VARIANT*
param0, VARIANT* param1 )
Parameters
eventType [in] - Type of the event. Valid
values are enumerated in EDIEvent
param0 [in] - Parameter of the event. Meaning depends on
eventType and is documented in each
particular case
param1 [in,out] - Parameter of the event. Meaning depends on
eventType and is documented in each particular case
Remarks
DgkMiscEvent is designed as an alternative to KernelCADEvent, which differs only by its signature. The reason for its existence is that Delphi IDE and possibly some othe development environments do not interpret correctly the param0 passed by reference. In this case it is recommended to disable KernelCADEvent and request DgkMiscEvent instead like: m_dgk.RequestEvent(eEventKernelCAD, false);
m_dgk.RequestEvent(eEventDgkMisc, true);
Meaning of param0 and param1 depends on the eventType. Most often the
KernelCADEvent event is used to notify the application that
the user selected a context menu item.
eventType in this case coincides with
EDIEvent.eEventUICommand. See more details in
Context Menu topic
|