The IDMTargetHandler class processes events occurring on the target
of a direct manipulation. You must add an object of this class to a
window so it can support target direct manipulation.
Objects of this class do not allow objects to be dragged from a window.
See
IDMSourceHandler
for information about dragging objects from a window.
Note:
You can construct and destruct objects of this class.
![]() |
public:
virtual ~IDMTargetHandler()
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
public:
IDMTargetHandler()
This is the default constructor.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
public:
IDMTargetHandler(IContainerControl* containerControl)
Creates an object of this class using a pointer to a container control object. The constructed handler is automatically attached to the specified container.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
public:
IDMTargetHandler(IEntryField* entryField)
Creates an object of this class using a pointer to an entry field object. The constructed handler is automatically attached to the specified entry field.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
public:
IDMTargetHandler(IMultiLineEdit* multiLineEdit)
Creates an object of this class using a pointer to a multiline edit (MLE) object. The constructed handler is automatically attached to the specified MLE.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
public:
IDMTargetHandler(IWindow* window)
Creates an object of this class using a pointer to an IWindow-based object that represents a control that is not supported by the default Open Class Library support for direct manipulation. These controls can be system-defined controls or custom controls. The constructed handler is automatically attached to the specified window.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
These members dispatch the various events for a direct manipulation target.
![]() |
protected:
virtual bool dispatchHandlerEvent(IEvent& event)
Overrides the default handler's dispatcher. This function processes the direct manipulation events for the target.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
These members are dispatched in response to specific direct manipulation events for the target.
![]() |
protected:
virtual bool targetDrop( IDMTargetDropEvent& event, bool container = true )
Called when the drag item objects are dropped onto the target window.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
protected:
virtual bool targetEnd(IDMTargetEndEvent& event)
Called when the source renderer completes rendering a specific drag item. The source renderer posts the target end event and this function processes it.
Windows | OS/2 | AIX |
Yes | Yes | Ignored |
![]() |
protected:
virtual bool targetEnter(IDMTargetEnterEvent& event)
Called when the drag item objects enter the target window.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
protected:
virtual bool targetHelp(IDMTargetHelpEvent& event)
Called when the user requests help while dragging an object over the target window.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
protected:
virtual bool targetLeave(IDMTargetLeaveEvent& event)
Called when the drag item objects leave the target window.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
These members provide utilities used to implement this class. They are used by the Open Class Library.
![]() |
protected:
virtual IDMTargetOperation::Handle allocateOperation( IDMTargetEnterEvent& event ) const
Creates a new IDMTargetOperation object.
This function is called when the target handler is handling the processing of a new direct manipulation. Derived classes should override this function and return a class derived from IDMTargetOperation.
This function returns a handle to the target operation object.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
protected:
virtual unsigned findRendererFor( const IDMItem::Handle& item )
Finds the appropriate target renderer for the drag item. Returns the position of the renderer or 0 if a renderer cannot be found.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
protected:
virtual bool findRenderersFor( const IDMTargetOperation::Handle& targetOperation )
Finds the appropriate target renderers for the specified target operation.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
These members override the rendering functions defined in the base IDMHandler class. Use them to access the IDMTargetRenderer objects involved in a direct manipulation. Objects of this class render the drag item objects that are compatible with the rendering mechanisms and formats that the Open Class Library supports.
![]() |
public:
virtual IDMTargetHandler& addRenderer( const IDMTargetRenderer& newRenderer )
Adds the specified renderer to the set of candidates maintained by this
handler and uses it to render objects dragged from a target window where
this handler is attached. The renderer is added to the end of the renderer
collection.
Note:
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
public:
virtual unsigned numberOfRenderers()
Returns the number of renderers associated with the target handler.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
public:
virtual IDMTargetHandler& removeRenderer( const IDMTargetRenderer& rendererToRemove )
Removes the specified renderer from this target handler.
Note:
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
public:
virtual IDMTargetRenderer* renderer(unsigned position)
Returns the renderer with the specified position.
Note:
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
public:
virtual IDMTargetHandler& replaceRenderer( unsigned position, const IDMTargetRenderer& replacement )
Replaces a given renderer with another specified renderer.
Note:
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
public:
virtual IDMTargetHandler& setRenderer( const IDMTargetRenderer& newRenderer )
Sets the renderer for this handler. Removes any pre-existing target renderers.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
virtual ~IHandler()
virtual IString asDebugInfo() const
virtual IString asString() const
virtual IHandler& disable()
virtual IHandler& enable(bool enable = true)
virtual IHandler& handleEventsFor(IWindow* window)
IHandler()
bool isEnabled() const
virtual IHandler& stopHandlingEventsFor(IWindow* window)
static IDMDragHandler& defaultDragHandler()
static IDMDropTargetHandler& defaultDropTargetHandler()
static IDMSourceHandler& defaultSourceHandler()
static IDMTargetHandler& defaultTargetHandler()
static void enableDragDropFor(IWindow* window)
static void enableDragDropFor( IToolBarButton* toolBarButton )
static void enableDragDropFor(IContainerControl* container)
static void enableDragDropFor(IMultiLineEdit* mle)
static void enableDragDropFor(IEntryField* entryField)
static void enableDragFrom(IWindow* window)
static void enableDragFrom(IEntryField* entryField)
static void enableDragFrom(IContainerControl* container)
static void enableDragFrom(IMultiLineEdit* mle)
static void enableDropOn(IMultiLineEdit* mle)
static void enableDropOn(IEntryField* entryField)
static void enableDropOn(IToolBar* toolBar)
static void enableDropOn(IWindow* window)
static void enableDropOn(IContainerControl* container)
static void setDefaultSourceHandler( IDMSourceHandler& source )
static void setDefaultTargetHandler( IDMTargetHandler& target )
virtual ~IDMHandler()
IDMHandler()
bool isContainerControl(const IWindow* window) const
virtual IDMRenderer* renderer(unsigned position)
static void setItemProvider(IToolBar* toolBar)
static void setItemProvider(IContainerControl* container)
static void setItemProvider(IToolBarButton* toolBar)
static void setItemProvider(IEntryField* entryField)
static void setItemProvider(IMultiLineEdit* mle)
virtual IEventResult defaultProcedure(IEvent& event)
virtual bool dispatchHandlerEvent(IEvent& event) = 0