═══ 1. Direct Manipulation Classes ═══ Provide support for the direct manipulation used by the applications you develop. ═══ 1.1. Class Hierarchy ═══ IDM IBase ├─IBitFlag │ └─IDMImage::Style └─IVBase ├─IDMImage ├─IDMItemProvider │ └─IDMItemProviderFor ├─IDMRenderer │ ├─IDMSourceRenderer │ └─IDMTargetRenderer ├─IEvent │ └─IDMEvent │ ├─IDMSourceBeginEvent │ ├─IDMSourceDiscardEvent │ ├─IDMSourceEndEvent │ ├─IDMSourcePrintEvent │ ├─IDMSourceRenderEvent │ │ └─IDMSourcePrepareEvent │ ├─IDMTargetEndEvent │ ├─IDMTargetEvent │ │ ├─IDMTargetDropEvent │ │ ├─IDMTargetEnterEvent │ │ └─IDMTargetLeaveEvent │ └─IDMTargetHelpEvent ├─IHandler │ └─IDMHandler │ ├─IDMSourceHandler │ └─IDMTargetHandler └─IRefCounted ├─IDMItem │ ├─IDMCnrItem │ ├─IDMEFItem │ ├─IDMMenuItem │ ├─IDMMLEItem │ ├─IDMTBarButtonItem │ └─IDMToolBarItem └─IDMOperation ├─IDMSourceOperation └─IDMTargetOperation ═══ 1.2. IDM ═══ Description Derivation Public Data Nested Types Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDM ═══ Inherits from none. Inherited by none. ═══ Class Description - IDM ═══ idmcomm.hpp The following enumerations and rendering mechanisms and formats (RMFs) are available for all the direct manipulation classes. ═══ IDM - Diagnostics ═══ Use these flags to activate full debug support. ═══ IDM - Direct Manipulation Flags ═══ Use these flag enumerations to query or set the following aspects of a direct manipulation:  The source of the direct manipulation  The drop indicator  The rendering completion code  The drag image style  The drop style  The discard indicator for shredder operations  The print indicator for print operations ═══ IDM - Drag Item Types ═══ Use these strings to query or set drag item types. ═══ IDM - Rendering Formats ═══ Use these strings to query or set rendering formats that are supported by the User Interface Class Library. ═══ IDM - Rendering Mechanisms ═══ Use these strings to query or set rendering mechanisms that are supported by the User Interface Class Library. ═══ Public Data - IDM ═══ Diagnostics debugSupport Drag Item Types any binary binaryData bitmap container containerObject file icon menuItem plainText text toolBarButton unknown Rendering Formats rfAny rfObject rfProcess rfSharedMem rfText rfUnknown Rendering Mechanisms rmAny rmDiscard rmFile rmLibrary rmObject rmPrint ═══ 1.2.1. IDM::any ═══ Any type. public: static Type any; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.2. IDM::binary ═══ Generic binary item type. public: static Type binary; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.3. IDM::binaryData ═══ Binary data item type. public: static Type binaryData; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.4. IDM::bitmap ═══ Bitmap item type. public: static Type bitmap; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.5. IDM::container ═══ Container item type. public: static Type container; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.6. IDM::containerObject ═══ Container object item type. public: static Type containerObject; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.7. IDM::debugSupport ═══ Set this flag to true to enable full debug support. When set to true, this flag will disable screen locking during direct manipulation. The default setting for this flag is false. public: static Boolean debugSupport; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.8. IDM::file ═══ File item type. public: static Type file; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.9. IDM::icon ═══ Icon item type. public: static Type icon; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.10. IDM::menuItem ═══ Menu item drag item type. public: static Type menuItem; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.11. IDM::plainText ═══ Plain text drag item type. public: static Type plainText; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.12. IDM::rfAny ═══ Any rendering format. public: static RF rfAny; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.13. IDM::rfObject ═══ Workplace Shell object rendering format. public: static RF rfObject; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.14. IDM::rfProcess ═══ Process rendering format. ("="+PID suffix added for interprocess rendering. public: static RF rfProcess; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.15. IDM::rfSharedMem ═══ Shared memory rendering format. public: static RF rfSharedMem; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.2.16. IDM::rfText ═══ Text rendering format (Used if text length <= 255 and text does not contain embedded NULLs) public: static RF rfText; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.17. IDM::rfUnknown ═══ Unknown rendering format. public: static RF rfUnknown; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.2.18. IDM::rmAny ═══ Any support. public: static RM rmAny; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.19. IDM::rmDiscard ═══ Discard support. public: static RM rmDiscard; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.2.20. IDM::rmFile ═══ File support. public: static RM rmFile; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.21. IDM::rmLibrary ═══ User Interface Class Library support. public: static RM rmLibrary; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.2.22. IDM::rmObject ═══ Workplace Shell object support. public: static RM rmObject; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.23. IDM::rmPrint ═══ Print support. public: static RM rmPrint; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.24. IDM::text ═══ Generic text drag item type. public: static Type text; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.25. IDM::toolBarButton ═══ Tool bar button drag item type. public: static Type toolBarButton; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.26. IDM::unknown ═══ Unknown drag item type. public: static Type unknown; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ Nested Types - IDM ═══ Enumerations PrintIndicator DragImageStyle Source DropStyle DiscardIndicator RenderCompletion DropIndicator Type Definitions Type RF RM ═══ Enums - PrintIndicator ═══ enum PrintIndicator { sourcePrints=0x0001, targetPrints=0x0002, abortPrint=0x0003 }; Enumeration of the possible print indicator values: sourcePrints The source accepts responsibility for the operation. targetPrints The target accepts responsibility for the operation. abortPrint The entire operation is aborted. ═══ Enums - DragImageStyle ═══ enum DragImageStyle { stack3AndFade, allStacked, systemImages }; Enumeration of the possible styles used when displaying the drag images: stack3AndFade Shows the first three images provided in the drag items and then shows a special icon that looks like the rest of the images fading out. This is optimal when the user can drag more than three items. If no images are specified, system images are used. allStacked Shows each image provided in each drag item. If no images are specified, system images are used. systemImages If one item is dragged, the ISystemPointerHandle::singleFile icon is used. For more than one item, the ISystemPointerHandle::multipleFile icon is used. Any images supplied with drag items are ignored. ═══ Enums - Source ═══ enum Source { pointingDevice, keyboard }; Enumeration of the possible drag begin sources: pointingDevice The drag began via a mouse. keyboard The drag began via the keyboard. ═══ Enums - DropStyle ═══ enum DropStyle { notContainer=0x0000, dropAtPosition=0x0001, alignVertical=0x0002, alignFlow=0x0004, flowBeside=0x0008 }; Enumeration of the possible styles used when dropping items on a container: notContainer The target is not a container. dropAtPosition Drops items at the position they were in the list. alignVertical Aligns the items along the vertical axis. alignFlow Aligns the items along the window. flowBeside Aligns the items beside the window. ═══ Enums - DiscardIndicator ═══ enum DiscardIndicator { sourceDiscards=0x0001, targetDiscards=0x0002, abortDiscard=0x0003 }; Enumeration of the possible discard indicator values: sourceDiscards The source accepts responsibility for the operation. targetDiscards The target accepts responsibility for the operation. abortDiscard The entire operation is aborted. ═══ Enums - RenderCompletion ═══ enum RenderCompletion { targetSuccessful=0x0001, targetFailed=0x0002, retry=0x0008, renderOk=0x0010, fail=0x0020 }; Enumeration of the possible render completion values: targetSuccessful The target has successfully completed the rendering operation. targetFailed The target failed to complete the rendering operation. retry The source has completed the rendering operation and will allow the target to retry its part of the operation if it fails. renderOk The source has completed the rendering operation. fail The source failed to complete the rendering operation. ═══ Enums - DropIndicator ═══ enum DropIndicator { notOk=0x0000, ok=0x0001, operationNotOk=0x0002, neverOk=0x0003 }; Enumeration of the possible drop indicator values: ok The drop is allowed. notOk The drop is not allowed at this location. operationNotOk The operation or operations are not allowed. neverOk The drop is not allowed on this window. ═══ Type Definition - IDM::Type ═══ typedef const char * Type; Enumeration of the possible drag item types used for items in a direct manipulation: any Any type. binary Generic binary item type. binaryData Binary data item type. bitmap Bitmap item type. container Container item type. containerObject Container object item type. file File item type. icon Icon item type. menuItem Menu item drag item type. plainText Plain text drag item type. text Generic text drag item type. toolBarButton Tool bar button drag item type. unknown Unknown drag item type. ═══ Type Definition - IDM::RF ═══ typedef const char * RF; Enumeration of the possible rendering formats used for items in a direct manipulation: rfUnknown Unknown rendering format. rfText Text rendering mechanism. (Used if text length <= 255 and text does not contain embedded NULL characters) rfProcess Process rendering format. ("="+PID suffix added for interprocess rendering) rfSharedMem Shared memory rendering format. rfObject Workplace Shell object rendering format. rfAny Any rendering format. ═══ Type Definition - IDM::RM ═══ typedef const char * RM; Enumeration of the possible rendering mechanisms used for items in a direct manipulation: rmFile File rendering mechanism. rmObject Workplace Shell object rendering mechanism. rmDiscard Discard rendering mechanism. rmPrint Print rendering mechanism. rmLibrary User Interface Class Library rendering mechanism. rmAny Any rendering mechanism. ═══ 1.3. IDMCnrItem ═══ Description Derivation Constructors Public Functions Protected Functions Public Data Protected Data Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMCnrItem ═══ IBase │ IVBase │ IRefCounted │ IDMItem │ IDMCnrItem Inherited by none. ═══ Class Description - IDMCnrItem ═══ idmcnrit.hpp Containers create objects of the IDMCnrItem class when:  A direct manipulation begins in a source container.  A container object is dragged over a potential target container during a direct manipulation. In addition to attributes inherited from IDMItem, objects of this class have a pointer to the source or target container over which this item is being dragged. This class provides virtual functions that implement direct manipulation support for the container. You can create derived item classes to support the direct manipulation of container objects. ═══ Public Functions - IDMCnrItem ═══ Constructors IDMCnrItem ~IDMCnrItem Drop Processing targetDrop Source Items containerId generateSourceItems sourceContainer Inherited Members IDMItem addRMF addType appendRMF attributes canBeCopied canBeLinked canBeMoved compressedRMFs containerName contents contentsSize deleteRMF dropStatus enableCopy enableLink enableMove generateSourceItems hasImage hasType image imageOffset isContainer isGroup isOnRemovableMedia isOpen isReference isTargetTheSource matchingRMFs nativeRF nativeRM nativeRMF object operator = removeRMF removeType renderer requiresPreparation rfForThisProcess rfFrom rmfFrom rmFrom rmfs rmfsFrom selectedRMF setContainer setContainerName setContents setDropStatus setGroup setImage setNativeRMF setObject setOnRemovableMedia setOpen setReference setRenderer setRequiresPreparation setRMFs setSelectedRMF setSourceName setSourceWindowHandle setTargetName setTrueType setTypes sourceDiscard sourceEnd sourceItemFor sourceName sourceOperation sourcePrepare sourcePrint sourceRender sourceWindow sourceWindowHandle supportedOperations supportedOperationsFor supportsRMF targetDrop targetEnd targetName targetOperation tokenForWPSObject trueType types IRefCounted addRef removeRef useCount IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMCnrItem - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMCnrItem - Drop Processing ═══ Use these members during the drop operation of a direct manipulation. ═══ IDMCnrItem - Source Items ═══ Use these members to access and manipulate source items involved in a direct manipulation. ═══ Protected Functions - IDMCnrItem ═══ Inherited Members IDMItem generateSourceName ═══ Public Data - IDMCnrItem ═══ Inherited Members IDMItem container copyable group linkable moveable none open prepare reference removableMedia unknown ═══ Protected Data - IDMCnrItem ═══ Inherited Members IDMItem strContents IBase recoverable unrecoverable ═══ 1.3.1. IDMCnrItem::containerId ═══ Returns the source container's ID. public: virtual unsigned long containerId() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.3.2. IDMCnrItem::generateSourceItems ═══ Use this function to generate drag items that represent container objects selected in the source container. public: static Boolean generateSourceItems( IDMSourceOperation* sourceOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.3.3. IDMCnrItem::IDMCnrItem ═══ You can construct and destruct objects of this class. Overload 1 public: IDMCnrItem( IContainerControl* container, IContainerObject* object, IDMSourceOperation* sourceOperation, const ISize& imageOffset); Use this constructor to construct items for the source of a direct manipulation. It accepts the pointers to a container control and object, a pointer to the drag source operation, and the offset of the drag image. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMCnrItem(const IDMItem::Handle& dragItem); Use this constructor to construct items for the target of a direct manipulation. It accepts a handle to a generic drag item. The generic drag item is passed to IDMItemProviderFor::provideTargetItemFor of the target container's drag item provider. IDMItemProviderFor::provideTargetItemFor uses the generic drag item to construct a container drag item by calling this constructor. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.3.4. IDMCnrItem::sourceContainer ═══ Returns a pointer to the source container. public: virtual IContainerControl* sourceContainer() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.3.5. IDMCnrItem::targetDrop ═══ Use this function to process the drop of drag items that represent container objects. This function adds the object into the target container. Derived classes should override this function to insert the associated container object into the target container. Note: If multiple items are dropped, this function is called once for each item. public: virtual Boolean targetDrop(IDMTargetDropEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The drop cannot be completed. A source │ │ │object must exist for this operation. │ └────────────────────┴────────────────────────────────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.3.6. IDMCnrItem::~IDMCnrItem ═══ public: virtual ~IDMCnrItem(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.4. IDMEFItem ═══ Description Derivation Constructors Public Functions Protected Functions Public Data Protected Data Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMEFItem ═══ IBase │ IVBase │ IRefCounted │ IDMItem │ IDMEFItem Inherited by none. ═══ Class Description - IDMEFItem ═══ idmefit.hpp Entry fields create objects of the IDMEFItem class when:  A direct manipulation commences in a source entry field.  A text object is dropped on a target entry field during a drag operation. Objects of this class have the following attributes in addition to those inherited from its base class:  The association with a source or target drag operation object.  The association with an IDM::rmLibrary rendering mechanism and an IDM::rfProcess rendering format. If the text size is <= 255 bytes and the IDM::rmFile rendering mechanism is not being used, the IDM::rfText rendering format is added. Otherwise, the IDM::rfSharedMem rendering format is used instead. This class provides virtual functions that implement direct manipulation support for the entry field. ═══ Public Functions - IDMEFItem ═══ Constructors IDMEFItem ~IDMEFItem Drop Processing targetDrop Source Items generateSourceItems object Inherited Members IDMItem addRMF addType appendRMF attributes canBeCopied canBeLinked canBeMoved compressedRMFs containerName contents contentsSize deleteRMF dropStatus enableCopy enableLink enableMove generateSourceItems hasImage hasType image imageOffset isContainer isGroup isOnRemovableMedia isOpen isReference isTargetTheSource matchingRMFs nativeRF nativeRM nativeRMF object operator = removeRMF removeType renderer requiresPreparation rfForThisProcess rfFrom rmfFrom rmFrom rmfs rmfsFrom selectedRMF setContainer setContainerName setContents setDropStatus setGroup setImage setNativeRMF setObject setOnRemovableMedia setOpen setReference setRenderer setRequiresPreparation setRMFs setSelectedRMF setSourceName setSourceWindowHandle setTargetName setTrueType setTypes sourceDiscard sourceEnd sourceItemFor sourceName sourceOperation sourcePrepare sourcePrint sourceRender sourceWindow sourceWindowHandle supportedOperations supportedOperationsFor supportsRMF targetDrop targetEnd targetName targetOperation tokenForWPSObject trueType types IRefCounted addRef removeRef useCount IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMEFItem - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMEFItem - Drop Processing ═══ Use these members during the drop operation of a direct manipulation. ═══ IDMEFItem - Source Items ═══ Use these members to access and manipulate source items involved in a direct manipulation. ═══ Protected Functions - IDMEFItem ═══ Inherited Members IDMItem generateSourceName ═══ Public Data - IDMEFItem ═══ Inherited Members IDMItem container copyable group linkable moveable none open prepare reference removableMedia unknown ═══ Protected Data - IDMEFItem ═══ Inherited Members IDMItem strContents IBase recoverable unrecoverable ═══ 1.4.1. IDMEFItem::generateSourceItems ═══ Use this function to generate a drag item that represents a text object. The text object can be the entire contents of the source entry field, or a selected portion. public: static Boolean generateSourceItems( IDMSourceOperation* sourceOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.4.2. IDMEFItem::IDMEFItem ═══ You can construct and destruct objects of this class. Overload 1 public: IDMEFItem(const IDMItem::Handle& dragItem); Use this constructor to construct items for the target of a direct manipulation. It accepts a handle to a generic drag item. The generic drag item is passed to IDMItemProviderFor::provideTargetItemFor of the target entry field's drag item provider. IDMItemProviderFor::provideTargetItemFor uses the generic drag item to construct an entry field drag item by calling this constructor. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMEFItem(IDMSourceOperation* sourceOperation); Use this constructor to construct items for the source of a direct manipulation. It accepts a pointer to the drag source operation. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.4.3. IDMEFItem::object ═══ Returns a pointer to the contents of the IString that contains the text being manipulated. The pointer can be cast to the type char * to directly access the text. public: virtual void* object() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.4.4. IDMEFItem::targetDrop ═══ Use this function to process the drop of a drag item that represents a text object. This function sets the object into the target entry field. Derived classes should override this function to insert the associated text object into the target entry field when the default processing cannot be used. public: virtual Boolean targetDrop( IDMTargetDropEvent& targetDropEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.4.5. IDMEFItem::~IDMEFItem ═══ public: virtual ~IDMEFItem(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.5. IDMEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent Inherited by: IDMSourceBeginEvent IDMSourceDiscardEvent IDMSourceEndEvent IDMSourcePrintEvent IDMSourceRenderEvent IDMTargetEndEvent IDMTargetEvent IDMTargetHelpEvent ═══ Class Description - IDMEvent ═══ idmevent.hpp IDMEvent is the base class for all direct manipulation event classes. Note: Neither the User Interface Class Library nor Presentation Manager provide default processing for drag events, besides the library-provided implementation of virtual functions. If you provide your own implementation of these virtual functions, do not assume returning a value of false will cause correct processing to be done for you. ═══ Public Functions - IDMEvent ═══ Constructors IDMEvent ~IDMEvent Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ Protected Data - IDMEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.5.1. IDMEvent::IDMEvent ═══ Construct objects of this class from a generic IEvent. public: IDMEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.5.2. IDMEvent::~IDMEvent ═══ public: virtual ~IDMEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6. IDMHandler ═══ Description Derivation Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMHandler ═══ IBase │ IVBase │ IHandler │ IDMHandler Inherited by: IDMSourceHandler IDMTargetHandler ═══ Class Description - IDMHandler ═══ idmhndlr.hpp The IDMHandler class is the base class for the source handler class, IDMSourceHandler, and the target handler class, IDMTargetHandler. This base class provides static functions to enable you to add drag and drop support to your application's windows and controls. ═══ Public Functions - IDMHandler ═══ Default Handlers defaultSourceHandler defaultTargetHandler setDefaultSourceHandler setDefaultTargetHandler Enabling Direct Manipulation enableDragDropFor enableDragFrom enableDropOn Inherited Members IHandler asDebugInfo asString disable enable handleEventsFor isEnabled stopHandlingEventsFor IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMHandler - Constructors ═══ You can construct and destruct objects of this class. This class can only be used as the base class for concrete-derived classes, such as IDMSourceHandler and IDMTargetHandler. ═══ IDMHandler - Default Handlers ═══ Use these static members to get and set the default source and target handlers used by the various enabling functions. ═══ IDMHandler - Enabling Direct Manipulation ═══ Use these static members to provide a simple means of enabling drag and drop for application windows and controls. ═══ IDMHandler - Handler Processing ═══ Handler-processing members query information about the windows that the handler is attached to. ═══ IDMHandler - Item Providers ═══ These static members set a default item provider for the argument window. ═══ IDMHandler - Rendering ═══ These members provide a means of accessing the base IDMRenderer objects involved in the direct manipulation described by objects of this class. These objects are used to handle the rendering of dragged objects that are compatible with the supported rendering mechanisms and formats (RMFs). ═══ Protected Functions - IDMHandler ═══ Constructors IDMHandler ~IDMHandler Handler Processing isContainerControl Item Providers setItemProvider Rendering addRenderer numberOfRenderers removeRenderer renderer replaceRenderer setRenderer Inherited Members IHandler defaultProcedure dispatchHandlerEvent ═══ Protected Data - IDMHandler ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.6.1. IDMHandler::addRenderer ═══ Adds a specified renderer to this handler. The renderer is added to the end of the renderer collection. Note: Renderers are maintained by positions, which are 1-based. protected: virtual IDMHandler& addRenderer( const IDMRenderer& newRenderer); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.2. IDMHandler::defaultSourceHandler ═══ Returns the default source handler. Note: The handler returned by this function may have been, or will be, attached to any window for which any of the enabling functions (enableDragFrom, enableDropOn, or enableDragDropFor) has been called. Any changes you make to this handler, such as adding renderers, removing renderers, or changing the renderers will affect all of these windows. public: static IDMSourceHandler& defaultSourceHandler(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.3. IDMHandler::defaultTargetHandler ═══ Returns the default target handler. Note: The handler returned by this function may have been, or will be, attached to any window for which any of the enabling functions (enableDragFrom, enableDropOn, or enableDragDropFor) has been called. Any changes you make to this handler, such as adding renderers, removing renderers, or changing the renderers will affect all of these windows. public: static IDMTargetHandler& defaultTargetHandler(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.4. IDMHandler::enableDragDropFor ═══ Attaches the default source and target handlers to the specified window and the default source and target renderers to their respective handlers. Overload 1 public: static void enableDragDropFor(IMultiLineEdit* mle); A drag item provider is attached to the multi-line edit (MLE), by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the MLE, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: static void enableDragDropFor(IWindow* window); You must attach a drag item provider for any types of windows or controls that are not supported by the User Interface Class Library to enable them to support direct manipulation. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 3 public: static void enableDragDropFor(IEntryField* entryField); A drag item provider is attached to the entry field, by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the entry field, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Direct Manipulation Sample 1: dmsamp1.cpp Overload 4 public: static void enableDragDropFor(IContainerControl* container); A drag item provider is attached to the container, by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the container, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 5 public: static void enableDragDropFor( IToolBarButton* toolBarButton); A drag item provider is attached to the tool bar button, by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the tool bar button, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.5. IDMHandler::enableDragFrom ═══ Attaches the default source handler to the specified window and the default source renderer to the handler. Overload 1 public: static void enableDragFrom(IEntryField* entryField); A drag item provider is attached to the entry field, by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the entry field, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: static void enableDragFrom(IWindow* window); You must attach a drag item provider for any types of windows or controls that are not supported by the User Interface Class Library to enable them to support direct manipulation. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 3 public: static void enableDragFrom(IMultiLineEdit* mle); A drag item provider is attached to the multi-line edit (MLE), by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the MLE, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 4 public: static void enableDragFrom(IContainerControl* container); A drag item provider is attached to the container, by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the container, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 5 public: static void enableDragFrom(IMenuBar* menuBar); No default source handler and no drag item provider is attached to the menu bar. The submenus of the menu bar are iterated, and IDMHandler::enableDragFrom is called for each one. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 6 public: static void enableDragFrom(ISubmenu* submenu); A drag item provider is attached to the submenu by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the submenu, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Tool Bar Sample 2: tbar2.cpp ═══ 1.6.6. IDMHandler::enableDropOn ═══ Attaches the default target handler to the specified window and the default target renderer to the handler. Overload 1 public: static void enableDropOn(IMultiLineEdit* mle); A drag item provider is attached to the multi-line edit (MLE), by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the MLE, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: static void enableDropOn(IWindow* window); You must attach a drag item provider for any types of windows or controls that are not supported by the User Interface Class Library to enable them to support direct manipulation. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Direct Manipulation Sample 2: dmsamp2.cpp Overload 3 public: static void enableDropOn(IEntryField* entryField); A drag item provider is attached to the entry field, by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the entry field, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 4 public: static void enableDropOn(IContainerControl* container); A drag item provider is attached to the container, by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the container, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 5 public: static void enableDropOn(IToolBar* toolBar); A drag item provider is attached to the tool bar, by default, which provides default direct manipulation support for it. If you want specialized direct manipulation support for the tool bar, you must attach your own drag item providers. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.7. IDMHandler::IDMHandler ═══ The default constructor takes no arguments. protected: IDMHandler(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.8. IDMHandler::isContainerControl ═══ Returns true if the window is a container control. protected: Boolean isContainerControl(const IWindow* window) const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.9. IDMHandler::numberOfRenderers ═══ Returns the number of renderers currently in the renderer collection. protected: virtual unsigned numberOfRenderers(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.10. IDMHandler::removeRenderer ═══ Removes the specified renderer from this handler. Note: Renderers are maintained by positions, which are 1-based. Overload 1 protected: virtual IDMHandler& removeRenderer(unsigned position); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 protected: virtual IDMHandler& removeRenderer( const IDMRenderer& rendererToRemove); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.11. IDMHandler::renderer ═══ Returns the renderer at the given position. Note: Renderers are maintained by positions, which are 1-based. protected: virtual IDMRenderer* renderer(unsigned position); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.12. IDMHandler::replaceRenderer ═══ Replaces a renderer with another specified renderer. Note: Renderers are maintained by positions, which are 1-based. protected: virtual IDMHandler& replaceRenderer( unsigned position, const IDMRenderer& replacement); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.13. IDMHandler::setDefaultSourceHandler ═══ Sets the default source handler to the specified handler. This handler will be attached to windows on subsequent calls to IDMHandler::enableDragFrom or IDMHandler::enableDragDropFor. public: static void setDefaultSourceHandler( IDMSourceHandler& source); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.14. IDMHandler::setDefaultTargetHandler ═══ Sets the default target handler to the specified handler. This handler will be attached to windows on subsequent calls to IDMHandler::enableDropOn or IDMHandler::enableDragDropFor. public: static void setDefaultTargetHandler( IDMTargetHandler& target); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.15. IDMHandler::setItemProvider ═══ Sets the default item provider. Overload 1 protected: static void setItemProvider(IEntryField* entryField); Sets the default item provider for the entry field. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 protected: static void setItemProvider(IMultiLineEdit* mle); Sets the default item provider for the multi-line edit. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 3 protected: static void setItemProvider(IContainerControl* container); Sets the default item provider for the container. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 4 protected: static void setItemProvider(IToolBar* toolBar); Sets the default item provider for the tool bar. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 5 protected: static void setItemProvider(IToolBarButton* toolBar); Sets the default item provider for the tool bar button. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 6 protected: static void setItemProvider(ISubmenu* submenu); Sets the default item provider for the submenu. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.16. IDMHandler::setRenderer ═══ Sets the renderer for this handler. Removes any pre-existing renderers. protected: virtual IDMHandler& setRenderer( const IDMRenderer& newRenderer); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.17. IDMHandler::~IDMHandler ═══ protected: virtual ~IDMHandler(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7. IDMImage ═══ Description Derivation Constructors Public Functions Public Data Protected Data Nested Types Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMImage ═══ IBase │ IVBase │ IDMImage Inherited by none. ═══ Class Description - IDMImage ═══ idmimage.hpp The IDMImage class is the base class for the direct manipulation drag image classes. It provides the support required to represent the image of IDMItem objects that are dragged during direct manipulation. An image can be an icon or bitmap handle that is drawn while the drag operation is in progress. The image represents the objects being dragged. Create objects of this class to provide an image to be displayed for each IDMItem object being dragged. As you create each IDMItem object you can create an object of this class and attach it to the object so that the proper image representation can be supplied during the direct manipulation operation. If you do not attach this class to IDMItem objects, default system icons are used for the image. Objects of this class have the following attributes in addition to those inherited from its base class:  An image handle  A stretch size for the image  Styles that determine the type and shape of the image  The offset of the image from the pointing device  The number of points in a point array, if certain styles are set Note: If you use IDM::systemImages for the images, you do not need to create objects of this class. IDM::systemImages generates and uses system images and causes images attached to the items to be ignored. ═══ Public Functions - IDMImage ═══ Constructors IDMImage operator = ~IDMImage Image Processing bitmap numberOfPoints pointArray pointer pointerOffset setBitmap setNumberOfPoints setPointArray setPointer setPointerOffset setStretchSize setStyle stretchSize style Styles defaultStyle setDefaultStyle Inherited Members IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMImage - Constructors ═══ You can construct, copy, assign, and destruct objects of this class. ═══ IDMImage - Image Processing ═══ Use these members to set and query attributes of this class. These attributes include the following:  Bitmaps  Icons  Polygons  Style ═══ IDMImage - Obsolete Members ═══ These members are obsolete and will be removed from a future release. ═══ IDMImage - Styles ═══ Use these members to set and query the styles for this class. ═══ Public Data - IDMImage ═══ Styles bmp classDefaultStyle closed noStyle polygon ptr stretch transparent ═══ Protected Data - IDMImage ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.7.1. IDMImage::bitmap ═══ Returns the handle to the bitmap image. If the image is not a bitmap, 0 is returned. public: IBitmapHandle bitmap() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.2. IDMImage::bmp ═══ The image is an IBitmapHandle. public: static const Style bmp; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.3. IDMImage::classDefaultStyle ═══ The original default style for the IDMImage class, which is IDMImage::noStyle. public: static const Style classDefaultStyle; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.4. IDMImage::closed ═══ If the image is a polygon, a closed polygon is formed by moving the current position to the last point in the array of points before drawing. public: static const Style closed; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.5. IDMImage::defaultStyle ═══ Returns the current default style. This is the same as IDMImage::classDefaultStyle unless IDMImage::setDefaultStyle has been called. public: static Style defaultStyle(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.6. IDMImage::IDMImage ═══ You can construct, copy, assign, and destruct objects of this class. Overload 1 public: IDMImage( unsigned long arrayOfPoints [ ], const unsigned long numberOfPoints, const ISize& pointerOffset = ISize ( 0 , 0 ), const Style& style = defaultStyle ( )); Use this version of the constructor to create objects of this class if you want to draw a polygon as an image. Specify the array of points for the polygon in arrayOfPoints, and the number of points to draw in numberOfPoints. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMImage(); This is the default constructor. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 3 public: IDMImage( const IResourceId& resourceId, Boolean iconResource = true, const ISize& pointerOffset = ISize ( 0 , 0 ), const ISize& stretchSize = ISize ( 0 , 0 ), const Style& style = defaultStyle ( )); Use this version of the constructor to create objects of this class if you want to use a bitmap or an icon as the drag image and the bitmap or icon is not already loaded. Use resourceId to specify the resource identifier for the bitmap or icon to load from a resource, and use iconResource to specify if the resource is a bitmap or icon. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 4 public: IDMImage( const IPointerHandle& icon, const ISize& pointerOffset = ISize ( 0 , 0 ), const ISize& stretchSize = ISize ( 0 , 0 ), const Style& style = defaultStyle ( )); Use this version of the constructor to create objects of this class if you want to use a pointer as the drag image and the pointer is already loaded from a resource. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 5 public: IDMImage( const IBitmapHandle& bitmap, const ISize& pointerOffset = ISize ( 0 , 0 ), const ISize& stretchSize = ISize ( 0 , 0 ), const Style& style = defaultStyle ( )); Use this version of the constructor to create objects of this class if you want to use a bitmap as the drag image and the bitmap is already loaded from a resource. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 6 public: IDMImage(const IDMImage& image); Use this version of the constructor, a copy constructor, to make a copy of the drag image object. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 7 public: IDMImage( const IResourceId& resourceId, const ISize& pointerOffset = ISize ( 0 , 0 ), const ISize& stretchSize = ISize ( 0 , 0 ), const Style& style = defaultStyle ( ), Boolean iconResource = true); This constructor is obsolete. It has been replaced with a constructor that moves the last parameter, iconResource, to the second parameter to simplify its use and avoid potential problems. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 8 public: IDMImage( unsigned long arrayOfPoints [ ], const ISize& pointerOffset = ISize ( 0 , 0 ), const Style& style = defaultStyle ( ), const unsigned long points = 0); This constructor is obsolete. It has been replaced with a constructor that moves the last parameter, points, to the second parameter and removes its default value. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.7. IDMImage::noStyle ═══ Sets all of the styles off. This is the default style setting. public: static const Style noStyle; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.8. IDMImage::numberOfPoints ═══ Returns the number of array points that constitute the polygon image. public: unsigned long numberOfPoints(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.9. IDMImage::operator = ═══ Use this operator to assign an IDMImage object to another IDMImage object. public: IDMImage& operator =(const IDMImage& image); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.10. IDMImage::pointArray ═══ Returns a pointer to the array of points, if the image style is set to IDMImage::polygon. If the image style is not IDMImage::polygon, returns 0. public: unsigned long* pointArray(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.11. IDMImage::pointer ═══ Returns the handle to the pointer image. public: IPointerHandle pointer() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.12. IDMImage::pointerOffset ═══ Returns the offset of the image from the pointing device. public: ISize pointerOffset() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.13. IDMImage::polygon ═══ The image is a pointer to an array of points that will be connected to form a polygon. The first point of the array should be (0,0), and the other points should be placed relative to this position. public: static const Style polygon; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.14. IDMImage::ptr ═══ The image is an IPointerHandle. public: static const Style ptr; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.15. IDMImage::setBitmap ═══ Sets the handle to the bitmap image. public: IDMImage& setBitmap(const IBitmapHandle& bitmapImage); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.16. IDMImage::setDefaultStyle ═══ Sets the default style for all subsequent drag images. public: static void setDefaultStyle(const Style& style); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.17. IDMImage::setNumberOfPoints ═══ Sets the number of array points that constitute the polygon image. public: IDMImage& setNumberOfPoints(unsigned long points); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.18. IDMImage::setPointArray ═══ Sets the array of points for drawing the polygon image and adds IDMImage::polygon to the image style. Overload 1 public: IDMImage& setPointArray( unsigned long arrayOfPoints [ ], unsigned long numberOfPoints); Sets the array of points for drawing a polygon image. If numberOfPoints is a value greater than 0, the current array is deleted and the new array is set. If numberOfPoints is 0, the current array is deleted. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMImage& setPointArray(unsigned long arrayOfPoints [ ]); This function is obsolete. It has been replaced with a function that accepts an additional parameter to indicate the number of items in the array. The number allows this class to copy the point array into its own internal storage. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.19. IDMImage::setPointer ═══ Sets the handle to the pointer image. public: IDMImage& setPointer(const IPointerHandle& pointerImage); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.20. IDMImage::setPointerOffset ═══ Sets the offset of the image from the pointing device. public: IDMImage& setPointerOffset(const ISize& pointerOffset); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.21. IDMImage::setStretchSize ═══ Sets the size of the bitmap or icon image drawn during direct manipulation. This only applies if the image is a bitmap or icon. Note: This function is often required because the bitmaps are typically much larger than the user would like to see during a direct manipulation. public: IDMImage& setStretchSize(const ISize& stretchSize); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.22. IDMImage::setStyle ═══ Sets the styles that describe the image. public: IDMImage& setStyle(const Style& style); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.23. IDMImage::stretch ═══ If the image is an IPointerHandle or an IBitmapHandle, the image is stretched to the dimensions specified by IDMImage::stretchSize. public: static const Style stretch; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.24. IDMImage::stretchSize ═══ Returns the size of the stretched image. The bitmap or icon is drawn with this size during direct manipulation. public: ISize stretchSize() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.25. IDMImage::style ═══ Returns the styles that describe the image. public: Style style(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.26. IDMImage::transparent ═══ If the image is an IPointerHandle, an outline of the image is generated and displayed instead of the original image. public: static const Style transparent; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.27. IDMImage::~IDMImage ═══ This destructor deletes the array of points if it exists. public: virtual ~IDMImage(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ Nested Types - IDMImage ═══ Classes IDMImage::Style ═══ 1.8. IDMImage::Style ═══ Description Derivation Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMImage::Style ═══ IBase │ IBitFlag │ IDMImage::Style Inherited by none. ═══ Class Description - IDMImage::Style ═══ idmimage.hpp The IDMImage::Style class is a nested class that provides static members of the IDMImage class that define the set of valid image styles. ptr The image is an IPointerHandle. bmp The image is an IBitmapHandle. polygon The image is a pointer to an array of points that connect to form a polygon. The first point of the array should be (0,0) and the other points should be placed relative to this position. stretch If the image is an IPointerHandle or an IBitmapHandle, the image is stretched to the dimensions specified by stretchSize. transparent If the image is an IPointerHandle, an outline of the image is generated and displayed instead of the original image. closed If the image is a polygon, a closed polygon is formed by moving the current position to the last point in the array of points before drawing. ═══ Public Functions - IDMImage::Style ═══ Inherited Members IBitFlag asExtendedUnsignedLong asUnsignedLong operator != operator == IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ Protected Functions - IDMImage::Style ═══ Inherited Members IBitFlag setValue ═══ Protected Data - IDMImage::Style ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.9. IDMItem ═══ Description Derivation Constructors Public Functions Protected Functions Public Data Protected Data Nested Types Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMItem ═══ IBase │ IVBase │ IRefCounted │ IDMItem Inherited by: IDMCnrItem IDMEFItem IDMMenuItem IDMMLEItem IDMTBarButtonItem IDMToolBarItem ═══ Class Description - IDMItem ═══ idmitem.hpp Objects of the IDMItem class represent items being dragged or dropped during a direct manipulation. This class provides virtual functions implementing base support for direct manipulation item objects in the User Interface Class Library. You can create derived classes to support specific items, such as text item objects and container item objects. Objects of this class have the following attributes in addition to those inherited from its base class:  A source window handle.  The types of the dragged object (true and additional).  The rendering mechanisms and formats (RMFs) of the dragged object (native and additional).  The container name which is the source of the direct manipulation operation.  The source name.  The suggested target name.  The item image that visually represents the item while it is being dragged.  The offset from the pointing device to the origin of the image for this item.  The source flags providing instructions on how to render an object, such as making the object copyable only, or identifying the object as a container of other objects.  The generic IString buffer contents, which hold a various assortment of bytes representing the object being dragged. IDMRenderer objects typically transfer these bytes between the source and target windows. The four objects involved in transferring the dragged object - source item, source renderer, target item, and target renderer - must have the same format for the item contents within the context of the RMF being used to manipulate the object. For example, IDMEFItem and IDMRenderer use the item contents to hold the source entry field text. Derived item classes can use this attribute optionally, provided the renderers they work with use the attribute in a compatible fashion.  The generic object pointer, which holds a pointer to an object. When using IDMRenderer objects, the library-defined rendering mechanism, and the process rendering format, the object pointed to is the object being dragged. Therefore, if the target window is in the same process as the source window, the target window can access the dragged object directly, As with the item contents, the source items, target items, source renderers and target renderers must agree on the nature of the value of this field and derived item classes (and renderer classes) can use this attribute optionally.  An association with a source or target drag operation object (see IDMSourceOperationor IDMTargetOperation).  Associations with a selected source or target drag renderer object (see IDMSourceRendereror IDMTargetRenderer), which the source handler or target handler creates, respectively. ═══ Public Functions - IDMItem ═══ Constructors IDMItem operator = ~IDMItem Direct Manipulation Operations canBeCopied canBeLinked canBeMoved enableCopy enableLink enableMove supportedOperationsFor Drag Image Support hasImage image setImage Drag Operation sourceOperation targetOperation Drop Status dropStatus setDropStatus Item Attributes attributes containerName imageOffset isContainer isGroup isOnRemovableMedia isOpen isReference requiresPreparation setContainer setContainerName setGroup setOnRemovableMedia setOpen setReference setRequiresPreparation setSourceName setSourceWindowHandle setTargetName sourceName sourceWindow sourceWindowHandle supportedOperations targetName Item Content contents contentsSize object setContents setObject Item Type addType hasType removeType setTrueType setTypes trueType types Item Utilities isTargetTheSource sourceItemFor tokenForWPSObject Rendering Mechanism and Format Utilities appendRMF compressedRMFs deleteRMF matchingRMFs rfForThisProcess rfFrom rmfFrom rmFrom rmfsFrom Rendering Mechanisms and Formats addRMF nativeRF nativeRM nativeRMF removeRMF rmfs setNativeRMF setRMFs supportsRMF Selected Renderer renderer selectedRMF setRenderer setSelectedRMF Source Items generateSourceItems Source Rendering sourceDiscard sourceEnd sourcePrepare sourcePrint sourceRender Target Rendering targetDrop targetEnd Inherited Members IRefCounted addRef removeRef useCount IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMItem - Attribute Flags ═══ Use these static members to define the drag item's attribute flags. Note: These static members represent bit masks, patterns of characters used to control portions of another pattern of characters. Any user-defined values must be greater than the IDMItem::removableMedia value. ═══ IDMItem - Constructors ═══ You can construct, copy, assign, and destruct objects of this class. ═══ IDMItem - Direct Manipulation Operations ═══ Use these members to set and query the operations supported for a drag item object. ═══ IDMItem - Drag Image Support ═══ Use these members to set and query the image for this drag item. ═══ IDMItem - Drag Operation ═══ Use these members to access the drag operations. ═══ IDMItem - Drop Status ═══ Use these members to set and query the item's drop status. The drop status determines if this item can be dropped on its current target. ═══ IDMItem - IDMItem::Handle ═══ This typedef defines a handle that is used to access objects of this class. ═══ IDMItem - Item Attributes ═══ Use these members to set and query attributes of an item. The attributes include the source and target name, source and target window, and general container information. ═══ IDMItem - Item Content ═══ Use these members to set and query the contents of the item involved in a direct manipulation. ═══ IDMItem - Item Data ═══ These members store data for a drag item. ═══ IDMItem - Item Type ═══ Use these members to set and query the type of an item. ═══ IDMItem - Item Utilities ═══ Use these members to provide utility services used to implement this class. ═══ IDMItem - Rendering Mechanism and Format Utilities ═══ Use these static members to create and query the rendering mechanism and format (RMF) for a drag item. ═══ IDMItem - Rendering Mechanisms and Formats ═══ Use these members to set and query the rendering mechanism and format (RMF) for a drag item. ═══ IDMItem - Selected Renderer ═══ Use these members to set and query the renderer that is selected for this drag item. ═══ IDMItem - Source Items ═══ Use these members to access and manipulate source items involved in a direct manipulation. ═══ IDMItem - Source Name ═══ These members generate the source name when the IDM::rfText rendering format is used. ═══ IDMItem - Source Rendering ═══ Use these members when the source of a direct manipulation renders the data. ═══ IDMItem - Supported Operations Flags ═══ Use these static members to define the supported operations of the drag item. Note: These static members represent bit masks, patterns of characters used to control portions of another pattern of characters. Any user-defined values must be greater than the IDMItem::linkable value. ═══ IDMItem - Target Rendering ═══ Use these members when the target of a direct manipulation renders the data. ═══ Protected Functions - IDMItem ═══ Source Name generateSourceName ═══ Public Data - IDMItem ═══ Attribute Flags container group none open prepare reference removableMedia Supported Operations Flags copyable linkable moveable unknown ═══ Protected Data - IDMItem ═══ Item Data strContents Inherited Members IBase recoverable unrecoverable ═══ 1.9.1. IDMItem::addRMF ═══ Adds one or more RMFs to the drag item. Overload 1 public: virtual IDMItem& addRMF( const IString& rm, const IString& rf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: virtual IDMItem& addRMF(const IString& rmf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.9.2. IDMItem::addType ═══ Adds one or more additional types to the drag item. This function is useful in a derived class constructor to add to the types supported by the base class. public: virtual IDMItem& addType(const char* aType); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.3. IDMItem::appendRMF ═══ Appends another rmf to an rmf string, separated by a comma, if required. public: static void appendRMF(IString& rmfs, const IString& rmf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.4. IDMItem::attributes ═══ Returns the control attributes for the item. These attributes indicate the nature of the dragged object and are comprised of a set of flags defined by the following static members: none No attributes are defined. open The source object is open. reference The source object is a reference to another object. group The source object is a group of objects. container The source object is a container of other objects. prepare The source object requires preparation before it establishes a data transfer conversation. removableMedia The source object is on removable media, or the source object cannot be easily recovered after a move operation. Note: These static members represent bit masks which are patterns of characters used to control portions of another pattern of characters. Any user-defined value must be greater than the removableMedia value. public: virtual unsigned long attributes() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.5. IDMItem::canBeCopied ═══ Returns true if the dragged object can be copied. public: virtual Boolean canBeCopied() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.6. IDMItem::canBeLinked ═══ Returns true if the dragged object can be linked. public: virtual Boolean canBeLinked() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.7. IDMItem::canBeMoved ═══ Returns true if the dragged object can be moved. public: virtual Boolean canBeMoved() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.8. IDMItem::compressedRMFs ═══ Returns a compressed version of the argument rmfs string with all possible cross products converted to cross-product form. public: static IString compressedRMFs(const IString& rmfs); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.9. IDMItem::container ═══ The source object is a container of other objects. public: static const unsigned long container; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.10. IDMItem::containerName ═══ Returns the source container's name. If the selected RMF is , this function returns the fully qualified path name where the file resides. public: virtual IString containerName() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Direct Manipulation Sample 2: dmsamp2.cpp ═══ 1.9.11. IDMItem::contents ═══ Returns the data being dragged or dropped. public: virtual IString contents() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.9.12. IDMItem::contentsSize ═══ Returns the length of the data being dragged or dropped. public: virtual unsigned long contentsSize() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.13. IDMItem::copyable ═══ The source object that is being dragged can be copied to the specified drop location. public: static const unsigned long copyable; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.9.14. IDMItem::deleteRMF ═══ Deletes a particular rmf from an rmf string. public: static void deleteRMF(IString& rmfs, const IString& rmf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.15. IDMItem::dropStatus ═══ Returns the drop status for the drag item. public: DropIndicator dropStatus() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.16. IDMItem::enableCopy ═══ Enables or disables the copy operation for the drag item. public: virtual IDMItem& enableCopy(Boolean copyable = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.17. IDMItem::enableLink ═══ Enables or disables the link operation for the drag item. public: virtual IDMItem& enableLink(Boolean linkable = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.18. IDMItem::enableMove ═══ Enables or disables the move operation for the drag item. public: virtual IDMItem& enableMove(Boolean moveable = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.19. IDMItem::generateSourceItems ═══ Use this function to generate generic drag items. This function is called by the implementation of IDMItemProvider::provideSourceItems in the template class IDMItemProviderFor. This arrangement is designed to permit you to implement all of your application-specific behavior in a single class, derived from IDMItem or one of its derivatives, and then obtain a corresponding drag item provider class by creating the IDMItemProviderFor template with your derived item class. The default implementation of this function in this class creates generic IDMItem objects and adds them to the source operation. If you use the IDMItemProviderFor template class and you have defined a derived class, you must implement IDMItem::generateSourceItems in your derived class. In your implementation, you should create one or more objects of your derived item class and call IDMOperation::addItem to add the objects to the source operation. Note: Use the sourceOperation parameter to access IDMOperation::addItem. public: static Boolean generateSourceItems( IDMSourceOperation* sourceOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.20. IDMItem::generateSourceName ═══ Use this function to generate the source name for the implementation of the IDM::rfText rendering format. protected: IString generateSourceName(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.21. IDMItem::group ═══ The source object is a group of objects. public: static const unsigned long group; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.22. IDMItem::hasImage ═══ Returns true, if the drag item has an associated image. public: Boolean hasImage() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.23. IDMItem::hasType ═══ Returns true if the drag item supports the specified type. public: virtual Boolean hasType(const char* aType) const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.24. IDMItem::IDMItem ═══ You can construct, copy, assign, and destruct objects of this class. Overload 1 public: IDMItem(const Handle& item); Use this constructor to construct generic drag items for the target of a direct manipulation. It accepts a handle to a generic drag item. The generic drag item is passed to IDMItemProviderFor::provideTargetItemFor of the drag item provider for the derived item class. IDMItemProviderFor::provideTargetItemFor uses the generic drag item to construct a drag item for the derived item class. This constructor increments the drag operation's use count. The drag operation use count is used to manage the destruction of the respective source and target operation objects. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMItem( IDMSourceOperation* sourceOperation, const IString& types, const unsigned long supportedOperations = unknown, const unsigned long attributes = none); Use this constructor to construct items for the source of a direct manipulation. It accepts a pointer to the drag source operation, types, supported operations, and attributes. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 3 public: IDMItem( IDMTargetOperation* targetOperation, _DRAGITEM* dragItem); The User Interface Class Library uses this constructor to construct items for the target of a direct manipulation. You should never call it. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Presentation Manager: The parameter, dragItem, is a pointer to the OS/2 Presentation Manager DRAGITEM structure. Overload 4 public: IDMItem(const IDMItem& dragItem); Use this constructor, a copy constructor, to make a copy of an existing IDMItem object. This constructor increments the drag operation's use count. The drag operation use count is used to manage the destruction of the respective source and target operation objects. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.25. IDMItem::image ═══ Returns a reference to the drag image associated with the drag item. If the drag item does not have a drag image associated with it, a default drag image is created, associated with the drag item, and returned. public: virtual IDMImage& image(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.26. IDMItem::imageOffset ═══ Returns the offset from the pointing device hot spot to the origin of the image for this item. public: virtual ISize imageOffset() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.27. IDMItem::isContainer ═══ Returns true if the drag item is a container of other objects. public: virtual Boolean isContainer() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.28. IDMItem::isGroup ═══ Returns true if the drag item is a group of objects. public: virtual Boolean isGroup() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.29. IDMItem::isOnRemovableMedia ═══ Returns true if the drag item is on removable media or may not be easily recovered after a move operation. Examples of removable media are:  diskettes  tapes  writeable optical disks  removable disk drives public: virtual Boolean isOnRemovableMedia() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.30. IDMItem::isOpen ═══ Returns true if the drag item is open. A drag item could be considered open if it represents:  A file, and the file is currently open  A program that is currently running  A device that is currently open You may interpret these attributes in various ways depending upon your specialized requirements. public: virtual Boolean isOpen() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.31. IDMItem::isReference ═══ Returns true if the drag item is a reference to another object. A drag item could be considered a reference if it is an alias for another object or the original object. public: virtual Boolean isReference() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.32. IDMItem::isTargetTheSource ═══ Determines if the source and target are the same window. public: Boolean isTargetTheSource() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.33. IDMItem::linkable ═══ The source object that is being dragged can be linked to the specified object. public: static const unsigned long linkable; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.34. IDMItem::matchingRMFs ═══ Returns the intersection of the two rmf strings. An optional argument indicates that only the first matching rmf is required. public: static IString matchingRMFs( const IString& rmfs1, const IString& rmfs2, Boolean firstOnly = false); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.35. IDMItem::moveable ═══ The source object that is being dragged can be moved to the specified drop location. public: static const unsigned long moveable; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.36. IDMItem::nativeRF ═══ Returns the native rendering format of the drag item. public: virtual IString nativeRF() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.37. IDMItem::nativeRM ═══ Returns the native rendering mechanism of the drag item. public: virtual IString nativeRM() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.38. IDMItem::nativeRMF ═══ Returns the native RMF of the drag item. public: virtual IString nativeRMF() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.39. IDMItem::none ═══ No attributes are defined for the source object. public: static const unsigned long none; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.40. IDMItem::object ═══ Returns the pointer to the object. public: virtual void* object() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.9.41. IDMItem::open ═══ The source object is open. public: static const unsigned long open; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.42. IDMItem::operator = ═══ Overloaded definition of the assignment operation to handle assignments of drag items to drag items. This operator increments the drag operation's use count. The drag operation use count is used to manage the destruction of the respective source and target operation objects. Overload 1 public: Handle operator =(const Handle& item); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMItem& operator =(const IDMItem& item); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.43. IDMItem::prepare ═══ The source object requires preparation before it establishes a data transfer conversation. public: static const unsigned long prepare; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.44. IDMItem::reference ═══ The source object is a reference to another object. public: static const unsigned long reference; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.45. IDMItem::removableMedia ═══ The source object is on removable media, or the source object cannot be recovered after a move operation. public: static const unsigned long removableMedia; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.46. IDMItem::removeRMF ═══ Removes a RMF from the drag item. Overload 1 public: virtual IDMItem& removeRMF( const IString& rm, const IString& rf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: virtual IDMItem& removeRMF(const IString& rmf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.47. IDMItem::removeType ═══ Removes the specified type from the drag item. public: virtual IDMItem& removeType(const char* aType); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.48. IDMItem::renderer ═══ Returns the position of the selected renderer for this drag item. public: unsigned renderer() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.49. IDMItem::requiresPreparation ═══ Returns true if the source requires preparation before rendering. For example, the User Interface Class Library uses this attribute to implement a part of its shared memory RMF support. public: virtual Boolean requiresPreparation() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.50. IDMItem::rfForThisProcess ═══ Returns DRF_PROCESS=pid, where pid is the ASCII representation of the given numeric value. public: static IString rfForThisProcess(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.51. IDMItem::rfFrom ═══ Returns the rendering format from a rendering mechanism and format (RMF). public: static IString rfFrom(const IString& rmf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.52. IDMItem::rmfFrom ═══ Constructs a rendering mechanism and format (RMF)-ordered pair, for example, "". If multiple rendering mechanisms or rendering formats are included, an RMF cross product is constructed, for example, "(rm)x(rf1,rf2)". public: static IString rmfFrom( const IString& rm, const IString& rf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Direct Manipulation Sample 4: dmsamp4.cpp ═══ 1.9.53. IDMItem::rmFrom ═══ Returns the rendering mechanism from the specified RMF. public: static IString rmFrom(const IString& rmf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.54. IDMItem::rmfs ═══ Returns all RMFs for the drag item. public: virtual IString rmfs() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.55. IDMItem::rmfsFrom ═══ Returns a full RMF string from either a single RMF string, or separate rendering mechanism and rendering format strings. The result will have all cross-products expanded. Overload 1 public: static IString rmfsFrom( const IString& rm, const IString& rf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: static IString rmfsFrom(const IString& rmfs); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.56. IDMItem::selectedRMF ═══ Returns the selected rendering mechanism and format (RMF) for this item in an ordered pair format, such as . public: IString selectedRMF() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.9.57. IDMItem::setContainer ═══ Sets or resets the container attribute. public: virtual IDMItem& setContainer(Boolean container = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.58. IDMItem::setContainerName ═══ Sets the source container name of the item. If the selected RMF is , use this function set the fully qualified path name of the file. public: IDMItem& setContainerName(const char* containerName); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.59. IDMItem::setContents ═══ Sets the contents of the drag item. Derived classes can call this function to set their contents to the data that is appropriate for the derived class. public: virtual Boolean setContents(const IString& data); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.9.60. IDMItem::setDropStatus ═══ Sets the drop status for the drag item. public: IDMItem& setDropStatus(DropIndicator status); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.61. IDMItem::setGroup ═══ Sets or resets the group attribute. public: virtual IDMItem& setGroup(Boolean group = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.62. IDMItem::setImage ═══ Sets the item's drag image. public: virtual IDMItem& setImage(IDMImage& image); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.63. IDMItem::setNativeRMF ═══ Sets the native RMF to the specified value. Overload 1 public: virtual IDMItem& setNativeRMF( const IString& rm, const IString& rf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: virtual IDMItem& setNativeRMF(const IString& rmf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.64. IDMItem::setObject ═══ Sets the pointer to the associated application object that is being dragged or dropped. public: virtual IDMItem& setObject(void* pointerToObject); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.65. IDMItem::setOnRemovableMedia ═══ Sets or resets the removable media attribute. For example, you can set this attribute to true if the object represents a file on a diskette or CD ROM. public: virtual IDMItem& setOnRemovableMedia( Boolean onRemovableMedia = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.66. IDMItem::setOpen ═══ Sets or resets the open attribute. For example, you can set this attribute to true if the object represents a file that is currently open. public: virtual IDMItem& setOpen(Boolean open = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.67. IDMItem::setReference ═══ Sets or resets the reference attribute. A drag item could be considered a reference if it is an alias for another object or the original object. public: virtual IDMItem& setReference(Boolean reference = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.68. IDMItem::setRenderer ═══ Sets the selected renderer for this drag item. The function's argument is the relative position of the specified renderer within the source or target handler's collection of renderers. Note: This function should only be called by the source or target handler. public: IDMItem& setRenderer(unsigned position); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.69. IDMItem::setRequiresPreparation ═══ Sets or resets the render prepare attribute. For example, the User Interface Class Library uses this attribute to implement a part of its shared memory RMF support. public: virtual IDMItem& setRequiresPreparation( Boolean requiresPrep = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.70. IDMItem::setRMFs ═══ Sets the RMFs for the drag item. Use setRMFs("") to remove all of the RMFs for the item. public: virtual IDMItem& setRMFs(const IString& rmfs); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.71. IDMItem::setSelectedRMF ═══ Sets the selected rendering mechanism and format (RMF) for this drag item. The function's argument must be an ordered pair format, such as . public: IDMItem& setSelectedRMF(const IString& rmf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.72. IDMItem::setSourceName ═══ Sets the source object's name. If the selected RMF is , use this function set the file name. public: IDMItem& setSourceName(const char* sourceName); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.73. IDMItem::setSourceWindowHandle ═══ Sets the source window handle for the drag item. public: IDMItem& setSourceWindowHandle(IWindowHandle window); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.74. IDMItem::setTargetName ═══ Sets the suggested target object's name. public: IDMItem& setTargetName(const char* targetName); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.75. IDMItem::setTrueType ═══ Sets the true type of the drag item. public: virtual IDMItem& setTrueType(const char* aType); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.76. IDMItem::setTypes ═══ Sets the types for the drag item. setTypes("") removes all of the types for this item. public: virtual IDMItem& setTypes(const char* types); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.77. IDMItem::sourceDiscard ═══ Use this function when an object is dropped on the shredder. Derived classes must override this function if the item adds the IDM::rmDiscard rendering mechanism to its RMFs. This function needs to perform the actual deletion of the object. The default implementation of this function does nothing. public: virtual Boolean sourceDiscard(IDMSourceDiscardEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.78. IDMItem::sourceEnd ═══ Use this function when the target has finished rendering an item and notifies the source that it is done. Derived classes should override this function if the source item requires any special cleanup before the direct manipulation ends. The default implementation of this function does nothing. public: virtual Boolean sourceEnd(IDMSourceEndEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.79. IDMItem::sourceItemFor ═══ Retrieves the source item handle based upon the target item if and only if the application is in the same process, and the specified item is a target item. Otherwise, 0 is returned. public: static Handle sourceItemFor(const Handle& targetItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The source item handle could not be │ │ │retrieved. The query of the process and │ │ │thread identifier failed. The window │ │ │handle may have been invalid. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.9.80. IDMItem::sourceName ═══ Returns the source object's name. If the selected RMF is , this function returns the file name. public: virtual IString sourceName() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Direct Manipulation Sample 2: dmsamp2.cpp ═══ 1.9.81. IDMItem::sourceOperation ═══ Returns a pointer to the source operation for the drag item. If the item represents the dropped object at the target of the direct manipulation, 0 is returned. public: virtual IDMSourceOperation* sourceOperation(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.82. IDMItem::sourcePrepare ═══ Use this function when an item is dropped on a target, source rendering is used to render the item, and source preparation is a required part of the rendering. Derived classes should override this function in order to accomplish any of the following:  Creation of a secondary thread to perform the source rendering.  Determination of the size of a shared memory buffer. Do this if you want to implement your own shared memory RMF.  Fulfill a requirement that is not addressed by this class. The default implementation of this function does nothing. public: virtual Boolean sourcePrepare(IDMSourcePrepareEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.83. IDMItem::sourcePrint ═══ Use this function when an object is dropped on a printer. Derived classes must override this function if the item adds the IDM::rmPrint rendering mechanism to its RMFs. This function must actually print the object. The default implementation of this function does nothing. public: virtual Boolean sourcePrint(IDMSourcePrintEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.84. IDMItem::sourceRender ═══ Use this function when an item is dropped on a target and source rendering is used to render the item. Derived classes should override this function if a non-default renderer is used to render the item with source rendering. The default implementation of this function does nothing. public: virtual Boolean sourceRender(IDMSourceRenderEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.85. IDMItem::sourceWindow ═══ Returns a pointer to the source window for this drag item. public: virtual IWindow* sourceWindow() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.86. IDMItem::sourceWindowHandle ═══ Returns the handle of the source window for this drag item. public: virtual IWindowHandle sourceWindowHandle() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.87. IDMItem::strContents ═══ Holds data (contents) of the drag item. This data member is protected to allow derived classes to either return the contents of it via the IDMItem::contents() function or allow the IDMItem::object() function to return a pointer to it per a derived implementation. protected: IString strContents; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.88. IDMItem::supportedOperations ═══ Returns the operations supported by this drag item. Possible operations are the following:  IDMItem::moveable  IDMItem::copyable  IDMItem::linkable  IDMItem::unknown public: virtual unsigned long supportedOperations() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.9.89. IDMItem::supportedOperationsFor ═══ Returns the operations this item supports using the specified rendering mechanisms and formats (RMFs). This function determines what operation is performed on this item using the selected RMF. For example, a printer object as the target would make its default operation a copy rather than a move based upon the RMF of . The default implementation calls IDMItem::supportedOperations and returns the result. public: virtual unsigned long supportedOperationsFor( const IString& selectedRMFs) const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.9.90. IDMItem::supportsRMF ═══ Returns true if the item supports the specified RMF. Overload 1 public: virtual Boolean supportsRMF(const IString& rmf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp Overload 2 public: virtual Boolean supportsRMF( const IString& rm, const IString& rf); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.91. IDMItem::targetDrop ═══ Use this function to process the drop of drag items on a target. Derived classes should override this function in order to set the data that was transferred into the target window. If source rendering is not used, or if source rendering is performed, but not in a secondary thread, target cleanup should occur in this function. The default implementation of this function does nothing. Note: If multiple items are dropped, this function is called once for each item. public: virtual Boolean targetDrop(IDMTargetDropEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.92. IDMItem::targetEnd ═══ Use this function when the source renders an item on a secondary thread and informs the target that it has finished. The call to this function is unique as the source actually posts an event to inform the target that it is finished; thus, this function is called asynchronously. Derived classes should override this function if the target item requires any special cleanup before the direct manipulation operation ends. Care must be taken to ensure that there is no overlap between this function or IDMItem::targetDrop, or the results may be unpredictable. The default implementation of this function does nothing. public: virtual Boolean targetEnd(IDMTargetEndEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.93. IDMItem::targetName ═══ Returns the suggested name the dragged object should have at the target. The target might use a different name, for example, if the suggested name is already in use at the target. public: virtual IString targetName() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.94. IDMItem::targetOperation ═══ Returns a pointer to the target operation for the drag item. If the item represents the item at the source of the direct manipulation, 0 is returned. public: virtual IDMTargetOperation* targetOperation(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 2: dmsamp2.cpp Direct Manipulation Sample 4: dmsamp4.cpp ═══ 1.9.95. IDMItem::tokenForWPSObject ═══ Returns the token for the Workplace Shell object that can be passed to the OBJECT_FOR_PREC macro that returns a WPObject pointer. Note: The application using the token must be shell enabled or OBJECT_FOR_PREC will trap. public: unsigned long tokenForWPSObject() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.96. IDMItem::trueType ═══ Returns the true type of the drag item. For example, if the object is a text file, the type is IDM::plainText. If the file is an icon, the type is IDM::icon. public: virtual IString trueType() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.97. IDMItem::types ═══ Returns all types previously set for the drag item. Individual types are separated by a comma. See IDMCOMM.HPP for the available types. public: virtual IString types() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Direct Manipulation Sample 2: dmsamp2.cpp ═══ 1.9.98. IDMItem::unknown ═══ No supported drag operations are available. public: static const unsigned long unknown; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.99. IDMItem::~IDMItem ═══ This destructor decrements the drag operation's use count. The drag operation use count is used to manage the destruction of the respective source and target operation objects. public: virtual ~IDMItem(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ Nested Types - IDMItem ═══ Type Definitions Handle ═══ Type Definition - IDMItem::Handle ═══ typedef IReference < IDMItem > Handle; IDMItem::Handle provides access to the IDMItem objects associated with a direct manipulation. The handle manages the references to the IDMItem object and ensures that this object is not destructed until the direct manipulation is completed. Use Handle to reference an item handle within this class and IDMItem::Handle externally. The handle provides a "->" operator, which enables instances to be treated just like a pointer to an IDMItem object. ═══ 1.10. IDMItemProvider ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMItemProvider ═══ IBase │ IVBase │ IDMItemProvider Inherited by: IDMItemProviderFor ═══ Class Description - IDMItemProvider ═══ idmprov.hpp Objects of the IDMItemProvider class provide application-specific direct manipulation behavior to windows and controls. The responsibilities of such objects include:  Providing source and target items (as described)  Providing help when requested while a dragged object is positioned over a window  Providing application-defined checking when a dragged object is moved over or exits a window; for example, to draw target emphasis When the source handler detects a direct manipulation is being initiated from one of its windows, it calls IDMItemProvider::provideSourceItems. When items enter a potential target, generic IDMItem objects are created to represent them. Next, the target handler calls IDMItemProvider::provideTargetItemFor once for each item to give a derived IDMItemProvider class the opportunity to replace the generic IDMItem objects with objects of some IDMItem derived class that provides application-specific behavior. See also the template class IDMItemProviderFor which can be used to generate a derived IDMItemProvider class for your IDMItem derived classes. ═══ Public Functions - IDMItemProvider ═══ Constructors IDMItemProvider ~IDMItemProvider Drag Item Support provideEnterSupport provideHelpFor provideLeaveSupport provideSourceItems provideTargetItemFor Inherited Members IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMItemProvider - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMItemProvider - Drag Item Support ═══ Use these members to provide event-specific support during a direct manipulation. ═══ Protected Data - IDMItemProvider ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.10.1. IDMItemProvider::IDMItemProvider ═══ Use this constructor, the default constructor, to construct objects of this class. public: IDMItemProvider(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.2. IDMItemProvider::provideEnterSupport ═══ Use this function to provide support for the target enter event. This function is called when the user moves a dragged object over the window for which the provider is providing direct manipulation support. Derived classes should override this function to accomplish any of the following:  Draw target emphasis on the target window  Validate that the object can be dropped. If it cannot be dropped, you should call IDMTargetEnterEvent::setDropIndicator for the specified IDMTargetEnterEvent. The default implementation of this function does the following:  For multiple-line edit (MLE) controls and the entry field, if the source and target windows are the same window, the drop indicator is set to IDM::neverOk.  For intraprocess containers, if the operation is a move, IContainerControl::isMoveValid is called. public: virtual Boolean provideEnterSupport( IDMTargetEnterEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.3. IDMItemProvider::provideHelpFor ═══ Use this function to provide window-specific drop help. This function is called when the user requests help while dragging an object over the drop target. Derived classes should override this function in order to provide the specific help for the target drop window. The default implementation of this function does nothing. public: virtual Boolean provideHelpFor(IDMTargetHelpEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.4. IDMItemProvider::provideLeaveSupport ═══ Use this function to provide support for the target leave event. This function is called when the user moves a dragged object off the window for which the provider is providing direct manipulation support. Derived classes should override this function in order to remove target emphasis from the target window. The default implementation of this function does nothing. public: virtual Boolean provideLeaveSupport( IDMTargetLeaveEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.5. IDMItemProvider::provideSourceItems ═══ Use this function to attach IDMItem (or derived class) objects to the specified sourceOperation. This function is called when a direct manipulation begins over a control object. Returns true, if items are provided. public: virtual Boolean provideSourceItems( const IDMSourceOperation::Handle& sourceOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.6. IDMItemProvider::provideTargetItemFor ═══ Use this function to replace generic IDMItem objects with a derived class during the processing of the initial target enter event. The event is processed in the target handler for a target window. The default implementation returns the item handle that was passed as the argument to the function. public: virtual IDMItem::Handle provideTargetItemFor( const IDMItem::Handle& dragItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.7. IDMItemProvider::~IDMItemProvider ═══ public: virtual ~IDMItemProvider(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.11. IDMItemProviderFor ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMItemProviderFor ═══ IBase │ IVBase │ IDMItemProvider │ IDMItemProviderFor Inherited by none. ═══ Class Description - IDMItemProviderFor ═══ idmprov.hpp IDMItemProviderFor is a template class that can be used to generate an IDMItemProvider derived class for your derived IDMItem classes. This class overrides the key functions of the class and dispatches static functions of your IDMItem derived class specified as the template argument. provideSourceItems will call the static generateSourceItems function of your IDMItem derived class. provideTargetItemFor creates a new object of your IDMItem derived class. This requires that your class provide a constructor that accepts as an argument a const IDMItem::Handle&. This argument is a handle to the generic IDMItem that the target handler creates. If you need to override additional IDMItemProvider functions (such as provideHelpFor and provideEnterSupport), you can derive your item provider class from this template class. ═══ Public Functions - IDMItemProviderFor ═══ Constructors IDMItemProviderFor ~IDMItemProviderFor Drag Item Support provideSourceItems provideTargetItemFor Inherited Members IDMItemProvider provideEnterSupport provideHelpFor provideLeaveSupport provideSourceItems provideTargetItemFor IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMItemProviderFor - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMItemProviderFor - Drag Item Support ═══ Use these members to provide event-specific support during a direct manipulation. These members are called when a direct manipulation begins over a control object, and during the processing of the initial target enter event. ═══ Protected Data - IDMItemProviderFor ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.11.1. IDMItemProviderFor::IDMItemProviderFor ═══ Use this constructor, the default constructor, to construct objects of this class. public: IDMItemProviderFor(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.11.2. IDMItemProviderFor::provideSourceItems ═══ Use this function to delegate requests to the static function generateSourceItems of the template's argument class. ::generateSourceItems should create appropriate source items and add them to this function's specified operation, where T represents the derived IDMItem class. This function is called when a direct manipulation begins over a control object. Returns true, if items are provided. public: virtual Boolean provideSourceItems( const IDMSourceOperation::Handle& sourceOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.11.3. IDMItemProviderFor::provideTargetItemFor ═══ Use this function to create a new object of the template argument class, constructed from the generic target item passed to this function. The template argument class must provide a constructor that accepts as an argument a const IDMItem::Handle&. This function is called during the processing of the initial target enter event. public: virtual IDMItem::Handle provideTargetItemFor( const IDMItem::Handle& dragItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.11.4. IDMItemProviderFor::~IDMItemProviderFor ═══ public: virtual ~IDMItemProviderFor(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.12. IDMMenuItem ═══ Description Derivation Constructors Public Functions Protected Functions Public Data Protected Data Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMMenuItem ═══ IBase │ IVBase │ IRefCounted │ IDMItem │ IDMMenuItem Inherited by none. ═══ Class Description - IDMMenuItem ═══ idmmenit.hpp Objects of the IDMMenuItem class are created by menu items when a direct manipulation commences over a menu item. Objects of this class possess the following attributes (in addition to those inherited from its base class):  Association with a source or target drag operation object.  Association with IDM::rmLibrary rendering mechanism and IDM::rfProcess rendering format. This class provides virtual functions that implement direct manipulation support for menu items. ═══ Public Functions - IDMMenuItem ═══ Constructors IDMMenuItem ~IDMMenuItem Menu Cleanup sourceEnd Menu Item Operations supportedOperationsFor Source Items generateSourceItems Inherited Members IDMItem addRMF addType appendRMF attributes canBeCopied canBeLinked canBeMoved compressedRMFs containerName contents contentsSize deleteRMF dropStatus enableCopy enableLink enableMove generateSourceItems hasImage hasType image imageOffset isContainer isGroup isOnRemovableMedia isOpen isReference isTargetTheSource matchingRMFs nativeRF nativeRM nativeRMF object operator = removeRMF removeType renderer requiresPreparation rfForThisProcess rfFrom rmfFrom rmFrom rmfs rmfsFrom selectedRMF setContainer setContainerName setContents setDropStatus setGroup setImage setNativeRMF setObject setOnRemovableMedia setOpen setReference setRenderer setRequiresPreparation setRMFs setSelectedRMF setSourceName setSourceWindowHandle setTargetName setTrueType setTypes sourceDiscard sourceEnd sourceItemFor sourceName sourceOperation sourcePrepare sourcePrint sourceRender sourceWindow sourceWindowHandle supportedOperations supportedOperationsFor supportsRMF targetDrop targetEnd targetName targetOperation tokenForWPSObject trueType types IRefCounted addRef removeRef useCount IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMMenuItem - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMMenuItem - Menu Cleanup ═══ Use these members to handle cleanup of the menu after the direct manipulation has completed. ═══ IDMMenuItem - Menu Item Operations ═══ Use these members to set the supported direct manipulation operations for this class. ═══ IDMMenuItem - Source Items ═══ Use these members to access and manipulate source items involved in a direct manipulation. ═══ Protected Functions - IDMMenuItem ═══ Inherited Members IDMItem generateSourceName ═══ Public Data - IDMMenuItem ═══ Inherited Members IDMItem container copyable group linkable moveable none open prepare reference removableMedia unknown ═══ Protected Data - IDMMenuItem ═══ Inherited Members IDMItem strContents IBase recoverable unrecoverable ═══ 1.12.1. IDMMenuItem::generateSourceItems ═══ Use this function to generate a drag item that represents a menu item object selected in the source menu. public: static Boolean generateSourceItems( IDMSourceOperation* sourceOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.12.2. IDMMenuItem::IDMMenuItem ═══ You can construct and destruct objects of this class. Overload 1 public: IDMMenuItem(const IDMItem::Handle& dragItem); Use this constructor to construct items for the target of a direct manipulation. It accepts a handle to a generic drag item. The generic drag item is passed to IDMItemProviderFor::provideTargetItemFor of the target menu item's drag item provider. IDMItemProviderFor::provideTargetItemFor uses the generic drag item to construct a menu item drag item by calling this constructor. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMMenuItem(IDMSourceOperation* sourceOperation); Use this constructor to construct items for the source of a direct manipulation. It accepts a pointer to the drag source operation. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.12.3. IDMMenuItem::sourceEnd ═══ Use this function to process a source end event for a drag item that represents a menu item object. This function dismisses the menu that is the source of the direct manipulation. Derived classes should override this function when the default processing cannot be used. public: virtual Boolean sourceEnd( IDMSourceEndEvent& sourceEndEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.12.4. IDMMenuItem::supportedOperationsFor ═══ Returns IDMItem::linkable as the only operation this drag item supports. public: virtual unsigned long supportedOperationsFor( const IString& str) const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.12.5. IDMMenuItem::~IDMMenuItem ═══ public: virtual ~IDMMenuItem(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.13. IDMMLEItem ═══ Description Derivation Constructors Public Functions Protected Functions Public Data Protected Data Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMMLEItem ═══ IBase │ IVBase │ IRefCounted │ IDMItem │ IDMMLEItem Inherited by none. ═══ Class Description - IDMMLEItem ═══ idmmleit.hpp Multiple-line edit (MLE) controls create objects of the IDMMLEItem class when:  A direct manipulation operation begins in a source MLE.  A text object is dropped on a target MLE during a direct manipulation. Objects of this class have the following attributes in addition to those inherited from its base class:  An association with a source or target drag operation object  An association with the IDM::rmLibrary rendering mechanism and the IDM::rfProcess rendering format. If the text size is <= 255 bytes and the IDM::rmFile rendering mechanism is not being used, the IDM::rfText rendering format is used by this class's constructor. Otherwise, the IDM::rfSharedMem rendering format is used. This class provides virtual functions that implement direct manipulation support for the MLE. ═══ Public Functions - IDMMLEItem ═══ Constructors IDMMLEItem ~IDMMLEItem Drop Processing targetDrop Source Items generateSourceItems object Inherited Members IDMItem addRMF addType appendRMF attributes canBeCopied canBeLinked canBeMoved compressedRMFs containerName contents contentsSize deleteRMF dropStatus enableCopy enableLink enableMove generateSourceItems hasImage hasType image imageOffset isContainer isGroup isOnRemovableMedia isOpen isReference isTargetTheSource matchingRMFs nativeRF nativeRM nativeRMF object operator = removeRMF removeType renderer requiresPreparation rfForThisProcess rfFrom rmfFrom rmFrom rmfs rmfsFrom selectedRMF setContainer setContainerName setContents setDropStatus setGroup setImage setNativeRMF setObject setOnRemovableMedia setOpen setReference setRenderer setRequiresPreparation setRMFs setSelectedRMF setSourceName setSourceWindowHandle setTargetName setTrueType setTypes sourceDiscard sourceEnd sourceItemFor sourceName sourceOperation sourcePrepare sourcePrint sourceRender sourceWindow sourceWindowHandle supportedOperations supportedOperationsFor supportsRMF targetDrop targetEnd targetName targetOperation tokenForWPSObject trueType types IRefCounted addRef removeRef useCount IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMMLEItem - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMMLEItem - Drop Processing ═══ Use these members during the drop operation of a direct manipulation. ═══ IDMMLEItem - Source Items ═══ Use these members to access and manipulate source items involved in a direct manipulation. ═══ Protected Functions - IDMMLEItem ═══ Inherited Members IDMItem generateSourceName ═══ Public Data - IDMMLEItem ═══ Inherited Members IDMItem container copyable group linkable moveable none open prepare reference removableMedia unknown ═══ Protected Data - IDMMLEItem ═══ Inherited Members IDMItem strContents IBase recoverable unrecoverable ═══ 1.13.1. IDMMLEItem::generateSourceItems ═══ Use this function to generate a drag item that represents a text object. The text object can be the entire contents of the source multi-line edit, or a selected portion. public: static Boolean generateSourceItems( IDMSourceOperation* sourceOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.13.2. IDMMLEItem::IDMMLEItem ═══ You can construct and destruct objects of this class. Overload 1 public: IDMMLEItem(const IDMItem::Handle& dragItem); Use this constructor to construct items for the target of a direct manipulation. It accepts a handle to a generic drag item. The generic drag item is passed to IDMItemProviderFor::provideTargetItemFor of the target multi-line edit's drag item provider. IDMItemProviderFor::provideTargetItemFor uses the generic drag item to construct a multi-line edit drag item by calling this constructor. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMMLEItem(IDMSourceOperation* sourceOperation); Use this constructor to construct items for the source of a direct manipulation. It accepts a pointer to the drag source operation. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.13.3. IDMMLEItem::object ═══ Returns a pointer to the contents of the IString that contains the text being manipulated. The pointer can be cast to the type char * to directly access the text. public: virtual void* object() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.13.4. IDMMLEItem::targetDrop ═══ Use this function to process the drop of a drag item that represents a text object. This function sets the object into the target multi-line edit. Derived classes should override this function to insert the associated text object into the target multi-line edit when the default processing cannot be used. public: virtual Boolean targetDrop( IDMTargetDropEvent& targetDropEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.13.5. IDMMLEItem::~IDMMLEItem ═══ public: virtual ~IDMMLEItem(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14. IDMOperation ═══ Description Derivation Public Functions Protected Functions Public Data Protected Data Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMOperation ═══ IBase │ IVBase │ IRefCounted │ IDMOperation Inherited by: IDMSourceOperation IDMTargetOperation ═══ Class Description - IDMOperation ═══ idmoper.hpp IDMOperation is an abstract base class for the direct manipulation source and target drag operation classes. Objects of this class provide general-purpose information about direct manipulation operations. Access this information through its derived classes. Objects of this class have information about a direct manipulation as a whole:  An operation type (for example, copy, move, or link)  The position of the pointing device within the source or target window  The source of the operation (pointing device versus keyboard)  The number of associated drag items, IDMItems  A pointer to the collection of IDMItems  A collection of IDMItem objects, one object for each item being dragged during this operation This class manages a drag item collection that associates drag items with this class. This class is an abstract base class. Your programs should only deal with objects of either of the derived classes IDMSourceOperationand IDMTargetOperation. ═══ Public Functions - IDMOperation ═══ Container Support containerObject setContainerObject setContainerRefreshOff setContainerRefreshOn Drag Items addItem item numberOfItems removeItem replaceItem Drag Operations operation setOperation Drag Source Device setSource source Pointing Device Position position setPosition Source and Target Window Support setSourceWindowHandle setTargetWindowHandle sourceWindow sourceWindowHandle targetWindow targetWindowHandle Inherited Members IRefCounted addRef removeRef useCount IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMOperation - Constructors ═══ You can construct and destruct objects of this class. These members are used by derived classes of this class. ═══ IDMOperation - Container Support ═══ Use these members to work with a container control in a direct manipulation. ═══ IDMOperation - Drag Items ═══ Use these members to add, remove, and query the IDMItem objects involved in a direct manipulation. ═══ IDMOperation - Drag Operations ═══ Use these members to set and query the default drag operation. ═══ IDMOperation - Drag Source Device ═══ Use these members to set and query the type of device that is used to initiate a direct manipulation. ═══ IDMOperation - Obsolete Members ═══ Do not use these members. They are obsolete and may be removed in a future release. ═══ IDMOperation - Operation Services ═══ Use these members for various utility services. ═══ IDMOperation - Pointing Device Position ═══ Use these members to set or query the pointing device's position. ═══ IDMOperation - Source and Target Window Support ═══ Use these members to set and query the source and target windows. ═══ Protected Functions - IDMOperation ═══ Constructors IDMOperation ~IDMOperation Operation Services dragInfo dragWasInterrupted setDragInfo setDragResult ═══ Public Data - IDMOperation ═══ Drag Operations copy drag link move unknown ═══ Protected Data - IDMOperation ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.14.1. IDMOperation::addItem ═══ Associates another drag item with the operation. public: IDMOperation& addItem(const IDMItem::Handle& newItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.2. IDMOperation::containerObject ═══ Returns a pointer to the container object over which the user has dragged or upon which the user has dropped. It returns 0 if one of the following conditions occur:  The target window is not a container,  The dragged items are positioned over container white space, or  The dragged items are dropped on container white space, public: IContainerObject* containerObject() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.3. IDMOperation::copy ═══ Copy (the copy augmentation key is pressed). public: static const unsigned long copy; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.4. IDMOperation::drag ═══ Drag (no augmentation keys are pressed). This is the default operation. public: static const unsigned long drag; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.5. IDMOperation::dragInfo ═══ Returns the pointer to the drag information structure. protected: _DRAGINFO* dragInfo() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Presentation Manager: Return value is a pointer to the Presentation Manager DRAGINFO structure. ═══ 1.14.6. IDMOperation::dragWasInterrupted ═══ Returns true if the direct manipulation is interrupted. Interrupts may occur when you do one of the following:  End the drag operation by pressing the key  Request help while dragging over an object  End the drag operation when the drop is rejected protected: Boolean dragWasInterrupted() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.7. IDMOperation::IDMOperation ═══ You can construct and destruct objects of this class. These members are used by derived classes of this class. Overload 1 protected: IDMOperation(IDMSourceBeginEvent& event); Use this function to construct an IDMOperation object by providing a reference to the source begin event. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 protected: IDMOperation(IDMTargetEnterEvent& event); Use this function to construct an IDMOperation object by providing a reference to the target enter event. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.8. IDMOperation::item ═══ Returns the drag item with a given position. If the position is not valid, 0 is returned. Note: Positions are 1-based. public: IDMItem::Handle item(unsigned position); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The drag item handle was not returned. │ │ │The specified index is not within the │ │ │valid range. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.14.9. IDMOperation::link ═══ Link (the link augmentation keys are pressed). public: static const unsigned long link; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.10. IDMOperation::move ═══ Move (the move augmentation key is pressed). public: static const unsigned long move; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.11. IDMOperation::numberOfItems ═══ Returns the number of items being dragged or dropped during a direct manipulation. This number is the same as the number of IDMItems added to the operation object. public: unsigned numberOfItems(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.14.12. IDMOperation::operation ═══ Returns the default direct manipulation operation. public: virtual unsigned long operation() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.13. IDMOperation::position ═══ Returns the pointing device position within the source or target window. public: virtual IPoint position() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.14. IDMOperation::removeItem ═══ Removes a drag item from the operation. Overload 1 public: IDMOperation& removeItem(unsigned position); Use this version of the function to removes a drag item using a position. Note: Positions are 1-based. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMOperation& removeItem( const IDMItem::Handle& itemToRemove); Use this version of the function to removes a drag item using a reference to the drag item handle. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.15. IDMOperation::replaceItem ═══ Replaces a given drag item with another specified drag item. Note: Positions are 1-based. public: IDMOperation& replaceItem( unsigned position, const IDMItem::Handle& replacement); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The drag item was not replaced. The │ │ │specified index is not within the valid │ │ │range. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.14.16. IDMOperation::setContainerObject ═══ Sets a pointer to the container object over which the user has dragged or upon which the user has dropped. public: IDMOperation& setContainerObject(IContainerObject* object); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.17. IDMOperation::setContainerRefreshOff ═══ Sets the refresh off for the given container. When drop processing returns or the drag is cancelled, refresh is turned on again. public: IDMOperation& setContainerRefreshOff( IContainerControl* container); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.18. IDMOperation::setContainerRefreshOn ═══ Sets the refresh on for the container whose refresh was set off using IDMOperation::setContainerRefreshOff. The container is also refreshed. public: IDMOperation& setContainerRefreshOn(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.19. IDMOperation::setDragInfo ═══ Sets the pointer to the drag information structure. protected: IDMOperation& setDragInfo(_DRAGINFO* dragInfo); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Presentation Manager: The parameter, dragInfo, is a pointer to the Presentation Manager DRAGINFO structure. ═══ 1.14.20. IDMOperation::setDragResult ═══ Sets the overall result of a direct manipulation based upon the outcome of the operation. protected: IDMOperation& setDragResult(Boolean result); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.21. IDMOperation::setOperation ═══ Sets the default direct manipulation operation. public: virtual IDMOperation& setOperation(unsigned long op); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.22. IDMOperation::setPosition ═══ Sets the pointing device position for a direct manipulation. public: virtual IDMOperation& setPosition(IPoint position); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.23. IDMOperation::setSource ═══ Sets the type of the device that is the source of the direct manipulation operation. Note: Generally, you do not call this function. The operating system determines the source of a direct manipulation and the User Interface Class Library uses this function to save that information. public: virtual IDMOperation& setSource(Source source); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Presentation Manager: The source of a direct manipulation is always the pointing device, IDM::pointingDevice. ═══ 1.14.24. IDMOperation::setSourceWindowHandle ═══ Sets the source window handle for a direct manipulation. public: virtual IDMOperation& setSourceWindowHandle( IWindowHandle window); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.25. IDMOperation::setTargetWindowHandle ═══ Sets the target window handle for a direct manipulation. public: virtual IDMOperation& setTargetWindowHandle( IWindowHandle window); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.26. IDMOperation::source ═══ Returns the type of the device that was the source of the direct manipulation. public: virtual Source source() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Presentation Manager: The source of a direct manipulation operation is always a pointing device, IDM::pointingDevice. ═══ 1.14.27. IDMOperation::sourceWindow ═══ Returns a pointer to the source window for a direct manipulation. Returns 0 if the window is not valid. public: virtual IWindow* sourceWindow() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.14.28. IDMOperation::sourceWindowHandle ═══ Returns the handle of the source window for a direct manipulation. Returns 0 if the window is not valid. public: virtual IWindowHandle sourceWindowHandle() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.29. IDMOperation::targetWindow ═══ Returns a pointer to the target window for a direct manipulation. Returns 0 if the window is not valid. For example, if the source window attempts to access the target window before the target window is known, the window is not valid. public: virtual IWindow* targetWindow() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Direct Manipulation Sample 2: dmsamp2.cpp ═══ 1.14.30. IDMOperation::targetWindowHandle ═══ Returns the handle of the target window for a direct manipulation. Returns 0 if the window is not valid. For example, if the source window attempts to access the target window before the target window is known, the window is not valid. public: virtual IWindowHandle targetWindowHandle() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.31. IDMOperation::unknown ═══ Unknown (application-defined operation codes should be assigned values greater than this value). public: static const unsigned long unknown; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.32. IDMOperation::~IDMOperation ═══ This destructor deletes the drag item collection that manages associated drag items for this class. protected: virtual ~IDMOperation(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15. IDMRenderer ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMRenderer ═══ IBase │ IVBase │ IDMRenderer Inherited by: IDMSourceRenderer IDMTargetRenderer ═══ Class Description - IDMRenderer ═══ idmrendr.hpp The IDMRenderer class is the base class for the direct manipulation source and target renderer classes. Objects of this class render drag items during a direct manipulation. Rendering is the transfer or re-creation of the dragged object from the source window to the target window. The IDMRenderer class defines the common protocol for both source and target renderers. The derived classes, IDMSourceRenderer and IDMTargetRenderer, define the specific protocol for source renderers and target renderers, respectively. A generic renderer object has the following attributes:  A set of supported drag item types with which this renderer can work. An example of a drag item type is a string.  A set of supported rendering mechanisms and formats (RMFs). These RMFs describe the various means this renderer can use to transfer the dragged object. An example of a rendering mechanism is IDM::rmFile and an example of a rendering format is IDM::rfUnknown. You can perform two categories of operations on objects of this class:  Queries to determine whether the renderer can render a given item.  Requests to perform one of the basic rendering processes. ═══ Public Functions - IDMRenderer ═══ Constructors IDMRenderer ~IDMRenderer Default Renderers defaultSourceRenderer defaultTargetRenderer setDefaultSourceRenderer setDefaultTargetRenderer Supported Types and RMFs setSupportedRMFs setSupportedTypes supportedRMFs supportedTypes Inherited Members IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMRenderer - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMRenderer - Default Renderers ═══ Use these members to set and query the default source and target renderers. The default source and target renderers are added automatically to newly created source and target handlers. ═══ IDMRenderer - Supported Types and RMFs ═══ Use the following members to set and query the types and rendering mechanisms and formats (RMFs) supported by an object of this class. ═══ Protected Data - IDMRenderer ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.15.1. IDMRenderer::defaultSourceRenderer ═══ Returns the default source renderer, which is an IDMSourceRenderer object, unless the default has been set otherwise. public: static IDMSourceRenderer& defaultSourceRenderer(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15.2. IDMRenderer::defaultTargetRenderer ═══ Returns the default target renderer, which is an IDMTargetRenderer object, unless the default has been set otherwise. public: static IDMTargetRenderer& defaultTargetRenderer(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15.3. IDMRenderer::IDMRenderer ═══ You can construct and destruct objects of this class. Overload 1 public: IDMRenderer(); Use this constructor, the default constructor, to create a general purpose renderer that supports all item types using any library-supported RMF. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMRenderer(const char* rmfs, const char* types); Use this constructor to create a special purpose renderer that renders items of a specific type using a specific RMF. You can construct a renderer by providing rendering mechanisms and formats (RMFs) and types that indicate which drag item can be rendered by this renderer. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15.4. IDMRenderer::setDefaultSourceRenderer ═══ Sets the default source renderer. public: static void setDefaultSourceRenderer( IDMSourceRenderer& sourceRenderer); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15.5. IDMRenderer::setDefaultTargetRenderer ═══ Sets the default target renderer. public: static void setDefaultTargetRenderer( IDMTargetRenderer& targetRenderer); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15.6. IDMRenderer::setSupportedRMFs ═══ Sets the RMFs supported by the renderer. public: virtual IDMRenderer& setSupportedRMFs(const char* rmfs); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15.7. IDMRenderer::setSupportedTypes ═══ Sets the drag item types supported by the renderer. public: virtual IDMRenderer& setSupportedTypes(const char* types); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15.8. IDMRenderer::supportedRMFs ═══ Returns the RMFs supported by the renderer. public: virtual IString supportedRMFs() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15.9. IDMRenderer::supportedTypes ═══ Returns the drag item types supported by the renderer. public: virtual IString supportedTypes() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15.10. IDMRenderer::~IDMRenderer ═══ public: virtual ~IDMRenderer(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16. IDMSourceBeginEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMSourceBeginEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMSourceBeginEvent Inherited by none. ═══ Class Description - IDMSourceBeginEvent ═══ idmevent.hpp Objects of the IDMSourceBeginEvent class represent the event that occurs upon the start of a direct manipulation at the source window. Objects are created by the source handler and passed as parameters to functions that participate in the handling of this event. ═══ Public Functions - IDMSourceBeginEvent ═══ Constructors IDMSourceBeginEvent ~IDMSourceBeginEvent Container Support container containerId object offset Event Information position source Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMSourceBeginEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMSourceBeginEvent - Container Support ═══ Use these members to query information about a container control that is the source of a direct manipulation. ═══ IDMSourceBeginEvent - Event Information ═══ Use these members to query event information for this class. ═══ Protected Data - IDMSourceBeginEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.16.1. IDMSourceBeginEvent::container ═══ Returns a pointer to the source container from which the source begin event occurred. public: virtual IContainerControl* container() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.2. IDMSourceBeginEvent::containerId ═══ Returns the source container's identifier value. public: virtual unsigned long containerId() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.3. IDMSourceBeginEvent::IDMSourceBeginEvent ═══ Use this function to construct an IDMSourceBeginEvent from a generic IEvent object. public: IDMSourceBeginEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.4. IDMSourceBeginEvent::object ═══ Returns a pointer to the object over which the drag started. If the drag started over the container's white space or if the window is not a container, 0 is returned. Note: The white space of a container is an area that no container objects occupy. public: virtual IContainerObject* object() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.5. IDMSourceBeginEvent::offset ═══ Returns the position of the pointing device relative to the source container object's origin. public: virtual ISize offset() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.6. IDMSourceBeginEvent::position ═══ Returns the pointing device position. public: virtual IPoint position() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.7. IDMSourceBeginEvent::source ═══ Returns the source of the drag operation. public: virtual Source source() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.8. IDMSourceBeginEvent::~IDMSourceBeginEvent ═══ public: virtual ~IDMSourceBeginEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.17. IDMSourceDiscardEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMSourceDiscardEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMSourceDiscardEvent Inherited by none. ═══ Class Description - IDMSourceDiscardEvent ═══ idmevent.hpp Objects of the IDMSourceDiscardEvent class are sent to the source window when the dragged objects are dropped on a shredder object. The event is used to return an indicator to the target, which identifies who has responsibility for deletion of the items or aborts the discard operation. ═══ Public Functions - IDMSourceDiscardEvent ═══ Constructors IDMSourceDiscardEvent ~IDMSourceDiscardEvent Event Information setSourceOperation setWhoDiscards sourceOperation whoDiscards Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMSourceDiscardEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMSourceDiscardEvent - Event Information ═══ Use these members to set and query event information for this class. ═══ Protected Data - IDMSourceDiscardEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.17.1. IDMSourceDiscardEvent::IDMSourceDiscardEvent ═══ Use this function to construct an IDMSourceDiscardEvent from a generic IEvent object. public: IDMSourceDiscardEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.17.2. IDMSourceDiscardEvent::setSourceOperation ═══ Sets the handle of the drag source operation for this event. public: IDMSourceDiscardEvent& setSourceOperation( const IDMSourceOperation::Handle& operation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.17.3. IDMSourceDiscardEvent::setWhoDiscards ═══ Sets the discard indicator, that identifies the following:  The source discards the item. This is the default. This is usually accomplished by calling the sourceDiscard function of the dragged item.  The target discards the item. The target is usually the desktop shredder. You should let it discard the object only if the object is a file; otherwise, it does not know how to discard your application objects.  The discard is aborted. public: IDMSourceDiscardEvent& setWhoDiscards( DiscardIndicator indicator); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.17.4. IDMSourceDiscardEvent::sourceOperation ═══ Returns the handle of the drag source operation for this event. public: IDMSourceOperation::Handle sourceOperation() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.17.5. IDMSourceDiscardEvent::whoDiscards ═══ Returns the discard indicator identifying who should delete the items. public: virtual DiscardIndicator whoDiscards() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.17.6. IDMSourceDiscardEvent::~IDMSourceDiscardEvent ═══ public: virtual ~IDMSourceDiscardEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.18. IDMSourceEndEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMSourceEndEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMSourceEndEvent Inherited by none. ═══ Class Description - IDMSourceEndEvent ═══ idmevent.hpp Objects of the IDMSourceEndEvent class are sent to the direct manipulation source window when a target renderer has completed the rendering of a drag item. One of these events is expected for each of the drag items involved in a direct manipulation. ═══ Public Functions - IDMSourceEndEvent ═══ Constructors IDMSourceEndEvent ~IDMSourceEndEvent Rendering dragItem wasTargetSuccessful Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMSourceEndEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMSourceEndEvent - Rendering ═══ Use these members to query information about the rendering process. ═══ Protected Data - IDMSourceEndEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.18.1. IDMSourceEndEvent::dragItem ═══ Returns the handle of drag item for which the target has completed rendering. public: virtual IDMItem::Handle dragItem() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.18.2. IDMSourceEndEvent::IDMSourceEndEvent ═══ Use this function to construct an IDMSourceEndEvent from a generic IEvent object. public: IDMSourceEndEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.18.3. IDMSourceEndEvent::wasTargetSuccessful ═══ Returns true if the target successfully completed rendering. public: virtual Boolean wasTargetSuccessful() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.18.4. IDMSourceEndEvent::~IDMSourceEndEvent ═══ public: virtual ~IDMSourceEndEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19. IDMSourceHandler ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMSourceHandler ═══ IBase │ IVBase │ IHandler │ IDMHandler │ IDMSourceHandler Inherited by none. ═══ Class Description - IDMSourceHandler ═══ idmsrch.hpp Objects of the IDMSourceHandler class process events occurring on the source of a direct manipulation. You must add an object of this class to a window so it can support direct manipulation. This handler does not allow objects to be dropped on a window. See IDMTargetHandler for information about dropping objects on a window. ═══ Public Functions - IDMSourceHandler ═══ Constructors IDMSourceHandler ~IDMSourceHandler Renderer Processing addRenderer numberOfRenderers removeRenderer renderer replaceRenderer setRenderer Inherited Members IDMHandler defaultSourceHandler defaultTargetHandler enableDragDropFor enableDragFrom enableDropOn setDefaultSourceHandler setDefaultTargetHandler IHandler asDebugInfo asString disable enable handleEventsFor isEnabled stopHandlingEventsFor IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMSourceHandler - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMSourceHandler - Event Dispatching ═══ These members dispatch the various events for a direct manipulation source. ═══ IDMSourceHandler - Event Processing ═══ These members are dispatched in response to specific direct manipulation events for the source. ═══ IDMSourceHandler - Hidden Members ═══ You cannot access these members. ═══ IDMSourceHandler - Implementation ═══ These members provide utilities used to implement this class. They are used by the User Interface Class Library. ═══ IDMSourceHandler - Renderer Processing ═══ These members override the rendering functions defined in the base IDMHandler class. Use them to access the IDMSourceRenderer objects involved in a direct manipulation. Objects of this class render the dragged objects that are compatible with the rendering mechanisms and formats that the User Interface Class Library supports. ═══ Protected Functions - IDMSourceHandler ═══ Event Dispatching dispatchHandlerEvent Event Processing sourceBegin sourceDiscard sourceEnd sourcePrepare sourcePrint sourceRender Implementation allocateOperation findRendererFor findRenderersFor Inherited Members IDMHandler addRenderer isContainerControl numberOfRenderers removeRenderer renderer replaceRenderer setItemProvider setRenderer IHandler defaultProcedure dispatchHandlerEvent ═══ Protected Data - IDMSourceHandler ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.19.1. IDMSourceHandler::addRenderer ═══ Adds the specified renderer to the set of candidates maintained by this handler and used to render objects dragged from a source window where this handler is attached. The renderer is added to the end of the renderer collection. Note: Renderers are maintained by positions, which are 1-based. public: virtual IDMSourceHandler& addRenderer( const IDMSourceRenderer& newRenderer); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.2. IDMSourceHandler::allocateOperation ═══ Use this function to create a new IDMSourceOperation object. This function is called when the source handler is handling the processing of a new direct manipulation. Derived classes should override this function and return a class derived from IDMSourceOperation. Returns a handle to the source operation object. protected: virtual IDMSourceOperation::Handle allocateOperation( IDMSourceBeginEvent& event, DragImageStyle dragItemStyle) const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.3. IDMSourceHandler::dispatchHandlerEvent ═══ This function overrides of the default handler's dispatcher. It processes the direct manipulation events for the source. protected: virtual Boolean dispatchHandlerEvent(IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.4. IDMSourceHandler::findRendererFor ═══ Use this function to find the appropriate source renderer for the drag item. Returns the position of the renderer, or 0 if a renderer cannot be found. protected: virtual unsigned findRendererFor( const IDMItem::Handle& item); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.5. IDMSourceHandler::findRenderersFor ═══ Use this function to find the appropriate source renderers for the specified source operation. protected: virtual Boolean findRenderersFor( const IDMSourceOperation::Handle& sourceOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.6. IDMSourceHandler::IDMSourceHandler ═══ You can construct and destruct objects of this class. Overload 1 public: IDMSourceHandler(IEntryField* entryField); Use this function to create an object of this class by providing a pointer to an entry field object. The constructed handler is automatically attached to the specified entry field. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMSourceHandler(IWindow* window); Use this function to create an object of this class by providing a pointer to an IWindow object. The constructed handler is automatically attached to the specified window. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 3 public: IDMSourceHandler(IMultiLineEdit* multiLineEdit); Use this function to create an object of this class by providing a pointer to a multi-line edit (MLE) object. The constructed handler is automatically attached to the specified MLE. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 4 public: IDMSourceHandler(IContainerControl* containerControl); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 5 public: IDMSourceHandler(); This is the default constructor. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.7. IDMSourceHandler::numberOfRenderers ═══ Returns the number of renderers associated with the source handler. public: virtual unsigned numberOfRenderers(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.8. IDMSourceHandler::removeRenderer ═══ Removes a specified renderer from this handler. Note: Renderers are maintained by positions, which are 1-based. public: virtual IDMSourceHandler& removeRenderer( const IDMSourceRenderer& rendererToRemove); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.9. IDMSourceHandler::renderer ═══ Returns the renderer with the specified position. Note: Renderers are maintained by positions, which are 1-based. public: virtual IDMSourceRenderer* renderer(unsigned position); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.10. IDMSourceHandler::replaceRenderer ═══ Replaces the given renderer with another specified renderer. Note: Renderers are maintained by positions, which are 1-based. public: virtual IDMSourceHandler& replaceRenderer( unsigned position, const IDMSourceRenderer& replacement); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.11. IDMSourceHandler::setRenderer ═══ Sets the renderer for this handler. Removes any pre-existing renderers. public: virtual IDMSourceHandler& setRenderer( const IDMSourceRenderer& newRenderer); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.12. IDMSourceHandler::sourceBegin ═══ Called to process the start of a direct manipulation in response to a system begin drag event. Initial processing invokes IDMSourceOperation::allocateOperation. Next, a pointer to the drag item provider is obtained by calling IWindow::itemProvider. Afterwards, IDMItemProvider::provideSourceItems is invoked to retrieve the items to be dragged. IDMSourceOperation::findRenderersFor is called to find appropriate source renderers for the items that were provided. If there are items to be dragged, IDMSourceOperation::begin is called to begin the direct manipulation. protected: virtual Boolean sourceBegin( IDMSourceBeginEvent& event, Boolean container = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.13. IDMSourceHandler::sourceDiscard ═══ Called to indicate that an item or items have been dropped on a shredder object. The source response determines who deletes the items or if the operation is cancelled. The default implementation dispatches IDMSourceRenderer::sourceDiscard. protected: virtual Boolean sourceDiscard(IDMSourceDiscardEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.14. IDMSourceHandler::sourceEnd ═══ Called to indicate that a given item has been processed by the target. The default implementation for this class dispatches IDMSourceRenderer::sourceEnd on the corresponding drag item object. After all end conversations are received, the IDMSourceOperation object is deleted. protected: virtual Boolean sourceEnd(IDMSourceEndEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.15. IDMSourceHandler::sourcePrepare ═══ Called to indicate to the source that rendering is ready to start. Requests for rendering preparation are made within the source item constructors. The default implementation in this class dispatches IDMSourceRenderer::sourcePrepare on the corresponding drag item object. protected: virtual Boolean sourcePrepare(IDMSourcePrepareEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.16. IDMSourceHandler::sourcePrint ═══ Called to indicate that a drag item or items have been dropped on a printer object. The source response determines who prints the items or if the operation is cancelled. The default implementation dispatches IDMSourceRenderer::sourcePrint. protected: virtual Boolean sourcePrint(IDMSourcePrintEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.17. IDMSourceHandler::sourceRender ═══ Called to start the rendering of a drag item by the source renderer. The default implementation for this class dispatches IDMSourceRenderer::sourceRenderer on the drag item object. protected: virtual Boolean sourceRender(IDMSourceRenderEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.18. IDMSourceHandler::~IDMSourceHandler ═══ public: virtual ~IDMSourceHandler(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20. IDMSourceOperation ═══ Description Derivation Constructors Public Functions Protected Functions Public Data Protected Data Nested Types Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMSourceOperation ═══ IBase │ IVBase │ IRefCounted │ IDMOperation │ IDMSourceOperation Inherited by none. ═══ Class Description - IDMSourceOperation ═══ idmsrcop.hpp Objects of the IDMSourceOperation class provide information about direct manipulation source operations. You can access to this information using IDMItem::sourceOperation. Objects of this class are not intended to be created by application programmers. The source event handler class, IDMSourceHandler, creates them. You can access an object of this class using IDMSourceOperation::Handle which reference counts the object. ═══ Public Functions - IDMSourceOperation ═══ Constructors IDMSourceOperation ~IDMSourceOperation Drag Image Support imageStyle setImageStyle setStackingPercentage stackingPercentage Implementation begin Operation Services operation operationFrom Pointing Device Position pointerOffset setPointerOffset Inherited Members IDMOperation addItem containerObject item numberOfItems operation position removeItem replaceItem setContainerObject setContainerRefreshOff setContainerRefreshOn setOperation setPosition setSource setSourceWindowHandle setTargetWindowHandle source sourceWindow sourceWindowHandle targetWindow targetWindowHandle IRefCounted addRef removeRef useCount IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMSourceOperation - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMSourceOperation - Drag Image Support ═══ Use these functions to set and query the drag image style and the stacking percentage that determines the placement of stacked drag images. ═══ IDMSourceOperation - IDMSourceOperation::Handle ═══ This typedef defines a handle that is used to access objects of this class. ═══ IDMSourceOperation - Implementation ═══ These members provide utilities used to implement this class. They are used by the User Interface Class Library. ═══ IDMSourceOperation - Operation Services ═══ Use these members for various operational services. ═══ IDMSourceOperation - Pointing Device Position ═══ Use these members to set or query the pointing device's position. ═══ Protected Functions - IDMSourceOperation ═══ Inherited Members IDMOperation dragInfo dragWasInterrupted setDragInfo setDragResult ═══ Public Data - IDMSourceOperation ═══ Inherited Members IDMOperation copy drag link move unknown ═══ Protected Data - IDMSourceOperation ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.20.1. IDMSourceOperation::begin ═══ Initiates the dragging of the objects. Note: Generally, you do not call this function. This function is called by an IDMSourceHandler object during the processing of a source begin event. public: IDMSourceOperation& begin(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The drag operation was not started. The │ │ │drag information could not be allocated.│ │ │The system resources may be exhausted. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The drag operation was not started. │ │ │Allocation of a drag item failed. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The drag operation was not started. A │ │ │drag item may be invalid. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.20.2. IDMSourceOperation::IDMSourceOperation ═══ Use this function to create objects of this class by providing a reference to the source begin event and a drag image style. public: IDMSourceOperation( IDMSourceBeginEvent& event, DragImageStyle dragStyle = IDM::systemImages); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20.3. IDMSourceOperation::imageStyle ═══ Returns the drag image style for the source operation. public: virtual DragImageStyle imageStyle() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20.4. IDMSourceOperation::operation ═══ Returns the default direct manipulation operation. Use this function to determine the actual operation that occurred at the target, after the drop has occurred. public: virtual unsigned long operation() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20.5. IDMSourceOperation::operationFrom ═══ Retrieves a handle to the drag source operation from the drag information structure. public: static Handle operationFrom(_DRAGINFO* dragInformation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Presentation Manager: The parameter, dragInformation, is a pointer to the Presentation Manager DRAGINFO structure. Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The source operation handle was not │ │ │retrieved. The drag information is not │ │ │accessible. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.20.6. IDMSourceOperation::pointerOffset ═══ Returns the position of the pointing device relative to the source container object's origin. public: virtual ISize pointerOffset() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20.7. IDMSourceOperation::setImageStyle ═══ Sets the drag image style for the source operation. public: virtual IDMSourceOperation& setImageStyle( DragImageStyle dragImageStyle = IDM::systemImages); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.20.8. IDMSourceOperation::setPointerOffset ═══ Sets the position of the pointing device relative to the source container object's origin. public: virtual IDMSourceOperation& setPointerOffset( const ISize& offset); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20.9. IDMSourceOperation::setStackingPercentage ═══ Sets the stacking percentage that is used to calculate the placement of the next "stacked" image, when the drag image style, IDM::stack3AndFade or IDM::allStacked, is specified. public: virtual IDMSourceOperation& setStackingPercentage( const IPair& stackingPercentage); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Direct Manipulation Sample 4: dmsamp4.cpp ═══ 1.20.10. IDMSourceOperation::stackingPercentage ═══ Returns the stacking percentage that is used to calculate the placement of the next "stacked" image, when the drag image style, IDM::stack3AndFade or IDM::allStacked, is specified. public: IPair stackingPercentage() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20.11. IDMSourceOperation::~IDMSourceOperation ═══ This destructor will enable the container refresh and refresh the container if a container is the source of the direct manipulation. public: virtual ~IDMSourceOperation(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ Nested Types - IDMSourceOperation ═══ Type Definitions Handle ═══ Type Definition - IDMSourceOperation::Handle ═══ typedef IReference < IDMSourceOperation > Handle; IDMSourceOperation::Handle provides access to the IDMSourceOperation objects associated with a direct manipulation operation. Handle manages the references to the IDMSourceOperation object and ensures that this object is not deleted until the direct manipulation operation is completed. Use Handle to reference a source operation handle within this class and IDMSourceOperation::Handle externally. Handle provides a "->" operator that enables instances to be treated just like a pointer to an IDMSourceOperation object. ═══ 1.21. IDMSourcePrepareEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMSourcePrepareEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMSourceRenderEvent │ IDMSourcePrepareEvent Inherited by none. ═══ Class Description - IDMSourcePrepareEvent ═══ idmevent.hpp Objects of the IDMSourcePrepareEvent class are sent to the source window when the source renderer for a given object has indicated notification is necessary before starting the source rendering of a drag item. Objects of this class provide all the query functions inherited from IDMSourceRenderEvent. In addition, functions are provided to return the following information to the target:  An alternate source window with which the target can communicate during rendering  Two result flags indicating whether the target: Performs the rendering Retries the rendering with a different rendering mechanism and format ═══ Public Functions - IDMSourcePrepareEvent ═══ Alternate Window alternateWindow alternateWindowHandle setAlternateWindowHandle Constructors IDMSourcePrepareEvent ~IDMSourcePrepareEvent Rendering noSourceRendering setNoSourceRendering setTargetCanRetry targetCanRetry Inherited Members IDMSourceRenderEvent alternateWindow alternateWindowHandle canRetry completion dragItem selectedFormat selectedMechanism setCompletion setRetry setTargetInfo targetInfo targetName targetWindow targetWindowHandle IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMSourcePrepareEvent - Alternate Window ═══ Use these members to set and query the alternate source window. The alternate source window can be used to implement source rendering on a secondary thread. ═══ IDMSourcePrepareEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMSourcePrepareEvent - Rendering ═══ Use these members to provide the render preparation support. The results of the preparation are returned to the target. ═══ Protected Data - IDMSourcePrepareEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.21.1. IDMSourcePrepareEvent::alternateWindow ═══ Returns a pointer to the alternate source window. public: virtual IWindow* alternateWindow() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.2. IDMSourcePrepareEvent::alternateWindowHandle ═══ Returns the handle of the alternate source window. public: virtual IWindowHandle alternateWindowHandle() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.3. IDMSourcePrepareEvent::IDMSourcePrepareEvent ═══ Use this function to construct an IDMSourcePrepareEvent from a generic IEvent object. public: IDMSourcePrepareEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.4. IDMSourcePrepareEvent::noSourceRendering ═══ Returns true if only the target can perform the rendering. The default is false. public: Boolean noSourceRendering() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.5. IDMSourcePrepareEvent::setAlternateWindowHandle ═══ Sets the handle of the alternate source window. public: IDMSourcePrepareEvent& setAlternateWindowHandle( const IWindowHandle& window); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.6. IDMSourcePrepareEvent::setNoSourceRendering ═══ Sets the no source rendering flag that indicates that only the target can perform the rendering. public: IDMSourcePrepareEvent& setNoSourceRendering(Boolean flag); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.7. IDMSourcePrepareEvent::setTargetCanRetry ═══ Sets the retry flag that indicates if the target can retry a failed rendering with a different rendering mechanism and format. public: IDMSourcePrepareEvent& setTargetCanRetry(Boolean flag); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.8. IDMSourcePrepareEvent::targetCanRetry ═══ Returns true if the target can retry a failed rendering with a different rendering mechanism and format. The default is false. public: Boolean targetCanRetry() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.9. IDMSourcePrepareEvent::~IDMSourcePrepareEvent ═══ public: virtual ~IDMSourcePrepareEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.22. IDMSourcePrintEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMSourcePrintEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMSourcePrintEvent Inherited by none. ═══ Class Description - IDMSourcePrintEvent ═══ idmevent.hpp Objects of the IDMSourcePrintEvent class are sent to the source window when the user drops the dragged objects on a printer object. The event returns an indicator to the target window, which identifies who prints the items or aborts the print operation. ═══ Public Functions - IDMSourcePrintEvent ═══ Constructors IDMSourcePrintEvent ~IDMSourcePrintEvent Print Support printDestination setSourceOperation setWhoPrints sourceOperation whoPrints Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMSourcePrintEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMSourcePrintEvent - Print Support ═══ Use these members to set and query printing attributes. ═══ Protected Data - IDMSourcePrintEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.22.1. IDMSourcePrintEvent::IDMSourcePrintEvent ═══ Use this function to construct an IDMSourcePrintEvent from a generic IEvent object. public: IDMSourcePrintEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The object for the source print event │ │ │was not created. The drag item may be │ │ │invalid. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.22.2. IDMSourcePrintEvent::printDestination ═══ Returns the pointer to the print destination structure. public: _PRINTDEST* printDestination() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Presentation Manager: Return value is a pointer to the Presentation Manager PRINTDEST structure. ═══ 1.22.3. IDMSourcePrintEvent::setSourceOperation ═══ Sets the handle to the drag source operation for this event. public: IDMSourcePrintEvent& setSourceOperation( const IDMSourceOperation::Handle& operation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.22.4. IDMSourcePrintEvent::setWhoPrints ═══ Sets the print indicator, which identifies the following:  The source prints the item. This is the default.  The target prints the item.  The print operation is aborted. public: IDMSourcePrintEvent& setWhoPrints(PrintIndicator indicator); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.22.5. IDMSourcePrintEvent::sourceOperation ═══ Returns the handle to the drag source operation for this event. public: IDMSourceOperation::Handle sourceOperation() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.22.6. IDMSourcePrintEvent::whoPrints ═══ Returns the print indicator identifying who should print the items. public: virtual PrintIndicator whoPrints() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.22.7. IDMSourcePrintEvent::~IDMSourcePrintEvent ═══ public: virtual ~IDMSourcePrintEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23. IDMSourceRenderer ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMSourceRenderer ═══ IBase │ IVBase │ IDMRenderer │ IDMSourceRenderer Inherited by none. ═══ Class Description - IDMSourceRenderer ═══ idmsrcrn.hpp Objects of the IDMSourceRenderer class provide source rendering support for a direct manipulation. Objects of this class are registered with the source handler. The handler selects a best match renderer by calling IDMSourceHandler::findRendererFor for a given drag item and invokes the rendering functions of this renderer when source rendering events occur. ═══ Public Functions - IDMSourceRenderer ═══ Constructors IDMSourceRenderer ~IDMSourceRenderer Source and Target Rendering canRender informTargetOfCompletion sourceDiscard sourceEnd sourcePrepare sourcePrint sourceRender Inherited Members IDMRenderer defaultSourceRenderer defaultTargetRenderer setDefaultSourceRenderer setDefaultTargetRenderer setSupportedRMFs setSupportedTypes supportedRMFs supportedTypes IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMSourceRenderer - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMSourceRenderer - Renderer Specifics ═══ Use these members to process the different rendering operations that are specific to the supported rendering mechanisms and formats. ═══ IDMSourceRenderer - Source and Target Rendering ═══ Use these members to support the implementation of source rendering. Members that you can use to support target rendering are identified on an individual basis. ═══ Protected Functions - IDMSourceRenderer ═══ Renderer Specifics doDiscard doPrint doRender doRenderEnd doRenderPrepare ═══ Protected Data - IDMSourceRenderer ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.23.1. IDMSourceRenderer::canRender ═══ Returns true if the renderer can render items with the specified attributes. This function is used when the drag begins. Note: This function can be used for either source or target rendering. public: virtual Boolean canRender(const IString& types); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.2. IDMSourceRenderer::doDiscard ═══ Called when a discard event occurs and this renderer must discard a drag item. The User Interface Class Library performs no default processing in this function. protected: virtual Boolean doDiscard(IDMSourceDiscardEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.3. IDMSourceRenderer::doPrint ═══ Called when a print event occurs and this renderer must print a drag item. The User Interface Class Library performs no default processing in this function. protected: virtual Boolean doPrint(IDMSourcePrintEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.4. IDMSourceRenderer::doRender ═══ Called when a render event occurs and this renderer must use source rendering to render a drag item. The User Interface Class Library uses this function to implement the support for the rendering mechanism and format. protected: virtual Boolean doRender(IDMSourceRenderEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.5. IDMSourceRenderer::doRenderEnd ═══ Called when an end event occurs and this renderer must end the render operation. The User Interface Class Library performs no default processing in this function. protected: virtual Boolean doRenderEnd(IDMSourceEndEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.6. IDMSourceRenderer::doRenderPrepare ═══ Called when a render prepare event occurs and this renderer must use source rendering to render a drag item. The User Interface Class Library uses this function to implement the support for the rendering mechanism and format. protected: virtual Boolean doRenderPrepare( IDMSourcePrepareEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.7. IDMSourceRenderer::IDMSourceRenderer ═══ You can construct and destruct objects of this class. Overload 1 public: IDMSourceRenderer(); This is the default constructor. When this constructor is used, the renderer supports any type and all of the default source RMFs supported by the User Interface Class Library: (IDM::rmLibrary)x(IDM::rfProcess,IDM::rfText,IDM::rfSharedMem), (IDM::rmDiscard,IDM::rmPrint)x(IDM::unKnown), Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMSourceRenderer( const char* rmfs, const char* type = IDM::any); Use this function to create objects of this class by providing rendering mechanisms and formats (RMFs) and types that indicate which drag item can be rendered by this source renderer. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.8. IDMSourceRenderer::informTargetOfCompletion ═══ Informs the target when source rendering has completed on the drag item. It is not used by any of the default renderers supported by the User Interface Class Library. Note: This function can be used for source rendering only. public: virtual IDMSourceRenderer& informTargetOfCompletion( IDMSourceRenderEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The target could not be informed that │ │ │source rendering completed. The drag │ │ │transfer information is invalid. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The target could not be informed that │ │ │source rendering completed. Posting the│ │ │target end event to the target failed. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.23.9. IDMSourceRenderer::sourceDiscard ═══ Called by IDMSourceHandler::sourceDiscard when the source has responsibility for discarding the item. public: virtual IDMSourceRenderer& sourceDiscard( IDMSourceDiscardEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.10. IDMSourceRenderer::sourceEnd ═══ Called when the target informs the source that it has finished processing the data associated with the dropped item. Note: This function can be used for either source or target rendering. public: virtual IDMSourceRenderer& sourceEnd( IDMSourceEndEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.11. IDMSourceRenderer::sourcePrepare ═══ Called when an item indicates it requires preparation, which can be any activity the source needs to perform before rendering the data. For example, the drag item may require the source to create a secondary thread when source rendering occurs. This allows the system to remain responsive to the users. Note: This function can be used for source rendering only. public: virtual IDMSourceRenderer& sourcePrepare( IDMSourcePrepareEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.12. IDMSourceRenderer::sourcePrint ═══ Called by IDMSourceHandler::sourcePrint when the source has responsibility for printing the item. public: virtual IDMSourceRenderer& sourcePrint( IDMSourcePrintEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.13. IDMSourceRenderer::sourceRender ═══ Called when the target renderer requests that a source renderer render an item. Note: This function can be used for source rendering only. public: virtual IDMSourceRenderer& sourceRender( IDMSourceRenderEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The source renderer could not render the│ │ │item. The rendering format is invalid. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │The source renderer could not render the│ │ │item. The rendering mechanism is │ │ │invalid. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.23.14. IDMSourceRenderer::~IDMSourceRenderer ═══ public: virtual ~IDMSourceRenderer(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24. IDMSourceRenderEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMSourceRenderEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMSourceRenderEvent Inherited by: IDMSourcePrepareEvent ═══ Class Description - IDMSourceRenderEvent ═══ idmevent.hpp Objects of the IDMSourceRenderEvent class represent direct manipulation rendering events. Such events are created and dispatched to source handlers when a direct manipulation target renderer requests source rendering. In addition to the standard IEvent attributes of event and window identifiers, such objects also have:  An associated drag item object  An alternate window handle  A target window handle  A rendering mechanism and format (RMF) selected by the target  A target name  Target-defined information ═══ Public Functions - IDMSourceRenderEvent ═══ Constructors IDMSourceRenderEvent ~IDMSourceRenderEvent Rendering alternateWindow alternateWindowHandle canRetry completion dragItem selectedFormat selectedMechanism setCompletion setRetry setTargetInfo targetInfo targetName targetWindow targetWindowHandle Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMSourceRenderEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMSourceRenderEvent - Rendering ═══ Use these members set and query attributes related to rendering. ═══ Protected Data - IDMSourceRenderEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.24.1. IDMSourceRenderEvent::alternateWindow ═══ Returns a pointer to the alternate source window. The alternate window can be used to implement source rendering on a secondary thread. public: virtual IWindow* alternateWindow() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.2. IDMSourceRenderEvent::alternateWindowHandle ═══ Returns the handle of the alternate source window. The alternate window can be used to implement source rendering on a secondary thread. public: virtual IWindowHandle alternateWindowHandle() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.3. IDMSourceRenderEvent::canRetry ═══ Returns true if the renderer processing the event can retry processing the event if a failure occurs. This flag is passed to the target renderer by IDMSourceRenderer::informTargetOfCompletion. The default is false. public: virtual Boolean canRetry() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.4. IDMSourceRenderEvent::completion ═══ Returns the flag that indicates if the rendering completed. This flag is passed to the target renderer by IDMSourceRenderer::informTargetOfCompletion. The default is IDM::renderOk. public: virtual IDM::RenderCompletion completion() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.5. IDMSourceRenderEvent::dragItem ═══ Returns the IDMItem handle corresponding to the drag item being rendered. public: virtual IDMItem::Handle dragItem() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.6. IDMSourceRenderEvent::IDMSourceRenderEvent ═══ Use this function to construct an IDMSourceRenderEvent from a generic IEvent object. public: IDMSourceRenderEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The object for the source render event │ │ │was not created. The drag transfer │ │ │information may be invalid. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.24.7. IDMSourceRenderEvent::selectedFormat ═══ Returns the selected rendering format. public: virtual IString selectedFormat() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.8. IDMSourceRenderEvent::selectedMechanism ═══ Returns the selected rendering mechanism. public: virtual IString selectedMechanism() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.9. IDMSourceRenderEvent::setCompletion ═══ Sets the completion flag that indicates that the rendering completed successfully. public: virtual IDMSourceRenderEvent& setCompletion( IDM::RenderCompletion code); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.10. IDMSourceRenderEvent::setRetry ═══ Sets the retry flag that indicates the renderer processing the event can retry a failed rendering. public: virtual IDMSourceRenderEvent& setRetry( Boolean allowRetry = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.11. IDMSourceRenderEvent::setTargetInfo ═══ Sets information that is passed to the target renderer. public: virtual IDMSourceRenderEvent& setTargetInfo( unsigned long info); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.12. IDMSourceRenderEvent::targetInfo ═══ Returns the target defined information. Note: This is an extra field the target can use to pass additional information to the source. You can use it to implement the specialized behavior for your rendering mechanisms and formats. public: virtual unsigned long targetInfo() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.13. IDMSourceRenderEvent::targetName ═══ Returns the target render-to name. The source can use this field to indicate to the target where it has placed the data it has rendered (that is, the name of a shared memory segment or file). public: virtual IString targetName() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.14. IDMSourceRenderEvent::targetWindow ═══ Returns a pointer to the target window. public: virtual IWindow* targetWindow() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.15. IDMSourceRenderEvent::targetWindowHandle ═══ Returns the handle of the target window. public: virtual IWindowHandle targetWindowHandle() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.24.16. IDMSourceRenderEvent::~IDMSourceRenderEvent ═══ public: virtual ~IDMSourceRenderEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.25. IDMTargetDropEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMTargetDropEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMTargetEvent │ IDMTargetDropEvent Inherited by none. ═══ Class Description - IDMTargetDropEvent ═══ idmevent.hpp Objects of the IDMTargetDropEvent class encapsulate direct manipulation events occurring at the target handler when a user drops a drag item onto a target window. Target handlers access information about the dropped items from the stored IDMTargetOperation object created as part of the IDMTargetEnterEvent processing. ═══ Public Functions - IDMTargetDropEvent ═══ Constructors IDMTargetDropEvent ~IDMTargetDropEvent Container Support container containerId object Target Drop Information dropPosition setDropPosition setTargetInfo targetInfo Inherited Members IDMTargetEvent presSpace releasePresSpace IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMTargetDropEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMTargetDropEvent - Container Support ═══ Use these members to provide drop support for the container drop event. ═══ IDMTargetDropEvent - Target Drop Information ═══ Use these members to set and query drop and target information. ═══ Protected Data - IDMTargetDropEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.25.1. IDMTargetDropEvent::container ═══ Returns a pointer to the container where the target drop event occurred. public: virtual IContainerControl* container() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: Direct Manipulation Sample 4: dmsamp4.cpp Lancelot - A Valiant Example: lperswdm.cpp ═══ 1.25.2. IDMTargetDropEvent::containerId ═══ Returns the target container's identifier value. public: virtual unsigned long containerId() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.25.3. IDMTargetDropEvent::dropPosition ═══ Returns the position where the drop occurred. This position is given in desktop coordinates. public: virtual IPoint dropPosition() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.25.4. IDMTargetDropEvent::IDMTargetDropEvent ═══ Use this function to construct an IDMTargetDropEvent from a generic IEvent object. public: IDMTargetDropEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The object for the target drop event was│ │ │not created. The drag information is not│ │ │accessible. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.25.5. IDMTargetDropEvent::object ═══ Returns a pointer to the object over which the target drop event occurred. If this event occurred over the container's white space or the window is not a container, 0 is returned. Note: The white space of a container is an area that no container objects occupy. public: virtual IContainerObject* object() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.25.6. IDMTargetDropEvent::setDropPosition ═══ Sets the position where the drop occurred. This position is given in desktop coordinates. public: virtual IDMTargetDropEvent& setDropPosition( const IPoint& position); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.25.7. IDMTargetDropEvent::setTargetInfo ═══ Passes information to the target. public: virtual IDMTargetDropEvent& setTargetInfo( unsigned long info); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.25.8. IDMTargetDropEvent::targetInfo ═══ Returns the target defined information. Note: This is an extra field the source can use to pass additional information to the target. You can use it to implement the specialized behavior for your rendering mechanisms and formats. public: virtual unsigned long targetInfo() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.25.9. IDMTargetDropEvent::~IDMTargetDropEvent ═══ public: virtual ~IDMTargetDropEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.26. IDMTargetEndEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMTargetEndEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMTargetEndEvent Inherited by none. ═══ Class Description - IDMTargetEndEvent ═══ idmevent.hpp Objects of the IDMTargetEndEvent class are sent to the target window when the source window completes the rendering of a drag item. The event provides source window information about the item rendering results. Note: The User Interface Class Library does not process this event in any of its default rendering mechanisms and formats. ═══ Public Functions - IDMTargetEndEvent ═══ Alternate Window alternateWindow alternateWindowHandle Constructors IDMTargetEndEvent ~IDMTargetEndEvent Rendering dragItem renderingFailed targetCanRetry targetInfo Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMTargetEndEvent - Alternate Window ═══ Use these members to query the alternate source window. The alternate source window can be used to implement source rendering on a secondary thread. ═══ IDMTargetEndEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMTargetEndEvent - Rendering ═══ Use these members to provide the rendering results returned by the source. ═══ Protected Data - IDMTargetEndEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.26.1. IDMTargetEndEvent::alternateWindow ═══ Returns a pointer to the alternate source window. public: virtual IWindow* alternateWindow() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.26.2. IDMTargetEndEvent::alternateWindowHandle ═══ Returns the handle of the alternate source window. public: virtual IWindowHandle alternateWindowHandle() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.26.3. IDMTargetEndEvent::dragItem ═══ Returns the handle of the drag item that the source has completed rendering. public: virtual IDMItem::Handle dragItem() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.26.4. IDMTargetEndEvent::IDMTargetEndEvent ═══ Use this function to construct an IDMTargetEndEvent from a generic IEvent object. public: IDMTargetEndEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The object for the target end event was │ │ │not created. The drag transfer │ │ │information may be invalid. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │The object for the target end event was │ │ │not created. The drag item may be │ │ │invalid. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.26.5. IDMTargetEndEvent::renderingFailed ═══ Returns true if the source cannot perform the rendering operation. The target can accept a retry, but if the target is not prepared to retry, it must call IDMTargetRenderer::informSourceOfCompletion to end the operation. public: Boolean renderingFailed() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.26.6. IDMTargetEndEvent::targetCanRetry ═══ Returns true if the target can retry its part of a failed rendering. The source has successfully completed its part of the rendering. public: Boolean targetCanRetry() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.26.7. IDMTargetEndEvent::targetInfo ═══ Returns the target defined information. Note: This is an extra field the source can use to pass additional information to the target. You can use it to implement the specialized behavior for your rendering mechanisms and formats. public: virtual unsigned long targetInfo() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.26.8. IDMTargetEndEvent::~IDMTargetEndEvent ═══ public: virtual ~IDMTargetEndEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.27. IDMTargetEnterEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMTargetEnterEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMTargetEvent │ IDMTargetEnterEvent Inherited by none. ═══ Class Description - IDMTargetEnterEvent ═══ idmevent.hpp Objects of the IDMTargetEnterEvent class encapsulate direct manipulation events occurring at the target handler when a drag operation enters a potential target window. Target handlers access information about the dragged items from the associated IDMTargetOperation object. The event result field is of particular importance for these event objects. The result indicates whether the dragged objects can be dropped on this target, and if so, what the default operation is. This class provides specialized functions to set the components of the event result. ═══ Public Functions - IDMTargetEnterEvent ═══ Constructors IDMTargetEnterEvent ~IDMTargetEnterEvent Container Support container containerId isAboveFirst isDragAfter object Event Information defaultOperation dropIndicator position setDefaultOperation setDropIndicator Inherited Members IDMTargetEvent presSpace releasePresSpace IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMTargetEnterEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMTargetEnterEvent - Container Support ═══ Use these members to query information about the container control that was just entered. ═══ IDMTargetEnterEvent - Event Information ═══ Use these members to set and query event information for this class. ═══ Protected Data - IDMTargetEnterEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.27.1. IDMTargetEnterEvent::container ═══ Returns a pointer to the container within which the target enter event occurred. public: virtual IContainerControl* container() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.27.2. IDMTargetEnterEvent::containerId ═══ Returns the target container's identifier value. public: virtual unsigned long containerId() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.27.3. IDMTargetEnterEvent::defaultOperation ═══ Returns the default operation for the target. public: virtual unsigned long defaultOperation() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.27.4. IDMTargetEnterEvent::dropIndicator ═══ Returns the drop indicator that is one of the following:  IDM::notOk  IDM::ok  IDM::operationNotOk  IDM::neverOk public: virtual DropIndicator dropIndicator() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.27.5. IDMTargetEnterEvent::IDMTargetEnterEvent ═══ Use this function to construct an IDMTargetEnterEvent from a generic IEvent object. public: IDMTargetEnterEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.27.6. IDMTargetEnterEvent::isAboveFirst ═══ Returns true if the target enter event was generated above the first list item in one of the list views of a container. An example of a container list view is details view. public: virtual Boolean isAboveFirst() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.27.7. IDMTargetEnterEvent::isDragAfter ═══ Returns true if the target enter event was generated above the first list item, between list items, or after the last list item in one of the list views of a container. An example of a container list view is details view. Returns false if the event was generated over a list item. public: virtual Boolean isDragAfter() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.27.8. IDMTargetEnterEvent::object ═══ Returns a pointer to the object over which the target enter event occurred. If the event occurred over the container's white space or the window is not a container, 0 is returned. Note: The white space of a container is an area that no container objects occupy. public: virtual IContainerObject* object() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.27.9. IDMTargetEnterEvent::position ═══ Returns the position of the pointing device. public: virtual IPoint position() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The pointing device's position was not │ │ │returned. The drag information is not │ │ │accessible. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.27.10. IDMTargetEnterEvent::setDefaultOperation ═══ Sets the default operation for the target. public: IDMTargetEnterEvent& setDefaultOperation( unsigned long operation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.27.11. IDMTargetEnterEvent::setDropIndicator ═══ Sets the drop indicator which is one of the following:  IDM::notOk  IDM::ok  IDM::operationNotOk  IDM::neverOk public: IDMTargetEnterEvent& setDropIndicator( DropIndicator indicator); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Direct Manipulation Sample 2: dmsamp2.cpp ═══ 1.27.12. IDMTargetEnterEvent::~IDMTargetEnterEvent ═══ public: virtual ~IDMTargetEnterEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.28. IDMTargetEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMTargetEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMTargetEvent Inherited by: IDMTargetDropEvent IDMTargetEnterEvent IDMTargetLeaveEvent ═══ Class Description - IDMTargetEvent ═══ idmevent.hpp This is the common base class for the direct manipulation target event classes, IDMTargetEnterEvent, IDMTargetLeaveEvent, and IDMTargetDropEvent. ═══ Public Functions - IDMTargetEvent ═══ Constructors IDMTargetEvent ~IDMTargetEvent Target Emphasis presSpace releasePresSpace Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMTargetEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMTargetEvent - Target Emphasis ═══ Use these members to access and release the drawing space needed to draw target emphasis. Note: You must use the drawing (presentation) space returned by IDMTargetEvent::presSpace to draw the target emphasis. The drawing space returned by IWindow::presSpace will not work. ═══ Protected Data - IDMTargetEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.28.1. IDMTargetEvent::IDMTargetEvent ═══ Use this function to construct an IDMTargetEvent from a generic IEvent object. public: IDMTargetEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.28.2. IDMTargetEvent::presSpace ═══ Acquires and returns the presentation space handle to use for drawing the target emphasis. public: virtual IPresSpaceHandle presSpace(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The presentation space was not obtained.│ │ │An invalid window handle may have been │ │ │specified or a direct manipulation is │ │ │not in progress. │ └────────────────────┴────────────────────────────────────────┘ Used in sample: Direct Manipulation Sample 2: dmsamp2.cpp ═══ 1.28.3. IDMTargetEvent::releasePresSpace ═══ Releases the presentation space handle that is used for drawing the target emphasis. public: virtual void releasePresSpace(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The presentation space was not released.│ │ │An invalid presentation space may have │ │ │been specified or a direct manipulation │ │ │is not in progress. │ └────────────────────┴────────────────────────────────────────┘ Used in sample: Direct Manipulation Sample 2: dmsamp2.cpp ═══ 1.28.4. IDMTargetEvent::~IDMTargetEvent ═══ This destructor will release the drawing (presentation) space if you have not explicitly released it. public: virtual ~IDMTargetEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29. IDMTargetHandler ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMTargetHandler ═══ IBase │ IVBase │ IHandler │ IDMHandler │ IDMTargetHandler Inherited by none. ═══ Class Description - IDMTargetHandler ═══ idmtgth.hpp Objects of the IDMTargetHandler class process events occurring on the target of a direct manipulation. You must add an object of this class to a window so it can support direct manipulation. This handler does not allow objects to be dragged from a window. See IDMSourceHandler for information about dragging objects from a window. ═══ Public Functions - IDMTargetHandler ═══ Constructors IDMTargetHandler ~IDMTargetHandler Renderer Processing addRenderer numberOfRenderers removeRenderer renderer replaceRenderer setRenderer Inherited Members IDMHandler defaultSourceHandler defaultTargetHandler enableDragDropFor enableDragFrom enableDropOn setDefaultSourceHandler setDefaultTargetHandler IHandler asDebugInfo asString disable enable handleEventsFor isEnabled stopHandlingEventsFor IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMTargetHandler - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMTargetHandler - Event Dispatching ═══ These members dispatch the various events for a direct manipulation target. ═══ IDMTargetHandler - Event Processing ═══ These members are dispatched in response to specific direct manipulation events for the target. ═══ IDMTargetHandler - Hidden Members ═══ You cannot access these members. ═══ IDMTargetHandler - Implementation ═══ These members provide utilities used to implement this class. They are used by the User Interface Class Library. ═══ IDMTargetHandler - Renderer Processing ═══ 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 dragged objects that are compatible with the rendering mechanisms and formats that the User Interface Class Library supports. ═══ Protected Functions - IDMTargetHandler ═══ Event Dispatching dispatchHandlerEvent Event Processing targetDrop targetEnd targetEnter targetHelp targetLeave Implementation allocateOperation findRendererFor findRenderersFor Inherited Members IDMHandler addRenderer isContainerControl numberOfRenderers removeRenderer renderer replaceRenderer setItemProvider setRenderer IHandler defaultProcedure dispatchHandlerEvent ═══ Protected Data - IDMTargetHandler ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.29.1. IDMTargetHandler::addRenderer ═══ Adds the specified renderer to the set of candidates maintained by this handler and used to render objects dragged over a target window where this handler is attached. The renderer is added to the end of the renderer collection. Note: Renderers are maintained by positions, which are 1-based. public: virtual IDMTargetHandler& addRenderer( const IDMTargetRenderer& newRenderer); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.2. IDMTargetHandler::allocateOperation ═══ Use this function to create 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. Returns a handle to the target operation object. protected: virtual IDMTargetOperation::Handle allocateOperation( IDMTargetEnterEvent& event) const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.3. IDMTargetHandler::dispatchHandlerEvent ═══ This function overrides of the default handler's dispatcher. It processes the direct manipulation events for the target. protected: virtual Boolean dispatchHandlerEvent(IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.4. IDMTargetHandler::findRendererFor ═══ Use this function to find the appropriate target renderer for the drag item. Returns the position of the renderer, or 0 if a renderer cannot be found. protected: virtual unsigned findRendererFor( const IDMItem::Handle& item); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.5. IDMTargetHandler::findRenderersFor ═══ Use this function to find the appropriate target renderers for the specified target operation. protected: virtual Boolean findRenderersFor( const IDMTargetOperation::Handle& targetOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.6. IDMTargetHandler::IDMTargetHandler ═══ You can construct and destruct objects of this class. Overload 1 public: IDMTargetHandler(IEntryField* entryField); Use this function to create an object of this class by providing a pointer to an entry field object. The constructed handler is automatically attached to the specified entry field. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMTargetHandler(IWindow* window); Use this function to create an object of this class by providing a pointer to an IWindow object. The constructed handler is automatically attached to the specified window. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 3 public: IDMTargetHandler(IMultiLineEdit* multiLineEdit); Use this function to create an object of this class by providing a pointer to a multi-line edit (MLE) object. The constructed handler is automatically attached to the specified MLE. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 4 public: IDMTargetHandler(IContainerControl* containerControl); Use this function to create an object of this class by providing a pointer to a container. The constructed handler is automatically attached to the specified container. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 5 public: IDMTargetHandler(); This is the default constructor. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.7. IDMTargetHandler::numberOfRenderers ═══ Returns the number of renderers associated with the target handler. public: virtual unsigned numberOfRenderers(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.8. IDMTargetHandler::removeRenderer ═══ Removes the specified renderer from this target handler. Note: Renderers are maintained by positions, which are 1-based. public: virtual IDMTargetHandler& removeRenderer( const IDMTargetRenderer& rendererToRemove); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.9. IDMTargetHandler::renderer ═══ Returns the renderer with the specified position. Note: Renderers are maintained by positions, which are 1-based. public: virtual IDMTargetRenderer* renderer(unsigned position); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.10. IDMTargetHandler::replaceRenderer ═══ Replaces a given renderer with another specified renderer. Note: Renderers are maintained by positions, which are 1-based. public: virtual IDMTargetHandler& replaceRenderer( unsigned position, const IDMTargetRenderer& replacement); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.11. IDMTargetHandler::setRenderer ═══ Sets the renderer for this handler. Removes any pre-existing renderers. public: virtual IDMTargetHandler& setRenderer( const IDMTargetRenderer& newRenderer); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.12. IDMTargetHandler::targetDrop ═══ Called when the dragged objects are dropped onto the target window. protected: virtual Boolean targetDrop( IDMTargetDropEvent& event, Boolean container = true); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.13. IDMTargetHandler::targetEnd ═══ Called when the source renderer completes rendering a specific drag item. The source renderer posts the target end event and this function process it. This function is not used by any of the default renderers supported by the User Interface Class Library. protected: virtual Boolean targetEnd(IDMTargetEndEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.14. IDMTargetHandler::targetEnter ═══ Called when the dragged objects enter the target window. protected: virtual Boolean targetEnter(IDMTargetEnterEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.15. IDMTargetHandler::targetHelp ═══ Called when the user requests help while dragging an object over the target window. protected: virtual Boolean targetHelp(IDMTargetHelpEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.16. IDMTargetHandler::targetLeave ═══ Called when the dragged objects leave the target window. protected: virtual Boolean targetLeave(IDMTargetLeaveEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.29.17. IDMTargetHandler::~IDMTargetHandler ═══ public: virtual ~IDMTargetHandler(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.30. IDMTargetHelpEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMTargetHelpEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMTargetHelpEvent Inherited by none. ═══ Class Description - IDMTargetHelpEvent ═══ idmevent.hpp Objects of the IDMTargetHelpEvent class are sent to the target when help is requested while the objects are over the target. ═══ Public Functions - IDMTargetHelpEvent ═══ Constructors IDMTargetHelpEvent ~IDMTargetHelpEvent Event Information operation Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMTargetHelpEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMTargetHelpEvent - Event Information ═══ Use these members to query event information for this class. ═══ Protected Data - IDMTargetHelpEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.30.1. IDMTargetHelpEvent::IDMTargetHelpEvent ═══ Use this function to construct an IDMTargetHelpEvent from a generic IEvent object. public: IDMTargetHelpEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.30.2. IDMTargetHelpEvent::operation ═══ Returns the operation (for example, IDMOperation::move). Use this information to provide operation-specific help for the drag operation. public: virtual unsigned long operation() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The operation was not returned. The drag│ │ │information is not accessible. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.30.3. IDMTargetHelpEvent::~IDMTargetHelpEvent ═══ public: virtual ~IDMTargetHelpEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.31. IDMTargetLeaveEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMTargetLeaveEvent ═══ IBase │ IVBase │ IEvent │ IDMEvent │ IDMTargetEvent │ IDMTargetLeaveEvent Inherited by none. ═══ Class Description - IDMTargetLeaveEvent ═══ idmevent.hpp Objects of the IDMTargetLeaveEvent class are sent to the target when:  The user drags the objects out of the target.  The user terminates the drag while the objects are over the target. ═══ Public Functions - IDMTargetLeaveEvent ═══ Constructors IDMTargetLeaveEvent ~IDMTargetLeaveEvent Inherited Members IDMTargetEvent presSpace releasePresSpace IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMTargetLeaveEvent - Constructors ═══ You can construct and destruct objects of this class. ═══ Protected Data - IDMTargetLeaveEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.31.1. IDMTargetLeaveEvent::IDMTargetLeaveEvent ═══ Use this function to construct an IDMTargetLeaveEvent from a generic IEvent object. public: IDMTargetLeaveEvent(const IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.31.2. IDMTargetLeaveEvent::~IDMTargetLeaveEvent ═══ public: virtual ~IDMTargetLeaveEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.32. IDMTargetOperation ═══ Description Derivation Constructors Public Functions Protected Functions Public Data Protected Data Nested Types Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMTargetOperation ═══ IBase │ IVBase │ IRefCounted │ IDMOperation │ IDMTargetOperation Inherited by none. ═══ Class Description - IDMTargetOperation ═══ idmtgtop.hpp Objects of the IDMTargetOperation class provide information about direct manipulation target operations. You can access this information through the static function IDMTargetOperation::targetOperation. The target event handler class creates the objects of this class, not you, the application programmer. You can access an object of this class using IDMTargetOperation::Handle which reference counts the object. ═══ Public Functions - IDMTargetOperation ═══ Constructors IDMTargetOperation ~IDMTargetOperation Container Support dropOffset dropPosition isStyle positionRelativeTo setDropOffset setStyle style wasDragAfter Implementation instanceFor Operation Services setTargetOperation targetOperation Inherited Members IDMOperation addItem containerObject item numberOfItems operation position removeItem replaceItem setContainerObject setContainerRefreshOff setContainerRefreshOn setOperation setPosition setSource setSourceWindowHandle setTargetWindowHandle source sourceWindow sourceWindowHandle targetWindow targetWindowHandle IRefCounted addRef removeRef useCount IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMTargetOperation - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMTargetOperation - Container Support ═══ Use these members to set and query container-specific attributes. ═══ IDMTargetOperation - IDMTargetOperation::Handle ═══ This typedef defines a handle that is used to access objects of this class. ═══ IDMTargetOperation - Implementation ═══ These members provide utilities used to implement this class. They are used by the User Interface Class Library. ═══ IDMTargetOperation - Operation Services ═══ Use these members for various operational services. ═══ Protected Functions - IDMTargetOperation ═══ Inherited Members IDMOperation dragInfo dragWasInterrupted setDragInfo setDragResult ═══ Public Data - IDMTargetOperation ═══ Inherited Members IDMOperation copy drag link move unknown ═══ Protected Data - IDMTargetOperation ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.32.1. IDMTargetOperation::dropOffset ═══ Queries the current drop offset. The drop offset is the location where the next container object dropped would be positioned as long as the target operation's drop style is not IDM::dropPosition. The location is the offset relative to the position of the last object dropped. public: ISize dropOffset() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.32.2. IDMTargetOperation::dropPosition ═══ Returns the drop position for this item in container workspace coordinates, and sets the offset for the next item, according to the target operation's drop style. public: IPoint dropPosition( const IDMItem::Handle& dragItem, IDMTargetDropEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.32.3. IDMTargetOperation::IDMTargetOperation ═══ Use this function to create objects of this class by providing a reference to the target enter event. public: IDMTargetOperation(IDMTargetEnterEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The object for the target operation was │ │ │not created. The drag information is not│ │ │accessible. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │The object for the target operation was │ │ │not created. The target item provider │ │ │failed to provide any items. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.32.4. IDMTargetOperation::instanceFor ═══ Returns an IDMTargetOperation object. Note: Generally, you do not call this function. This function is called by an IDMTargetHandler object during the processing of a target enter event. public: static IDMTargetOperation::Handle instanceFor( IDMTargetEnterEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The handle for the target operation │ │ │object was not returned. The drag │ │ │information is not accessible. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.32.5. IDMTargetOperation::isStyle ═══ Returns true if the specified drop-style flag is set. public: Boolean isStyle(DropStyle dropStyle); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.32.6. IDMTargetOperation::positionRelativeTo ═══ Returns a drag item's position relative to the target container. If the drag item handle is 0, the drop point relative to the target container's origin is returned. public: IPoint positionRelativeTo( const IDMItem::Handle& item, IDMTargetDropEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.32.7. IDMTargetOperation::setDropOffset ═══ Sets the current drop offset in window coordinates. The drop offset is the location where the next container object dropped would be positioned as long as the target operation's drop style is not IDM::dropPosition. The location is the offset relative to the position of the last object dropped. public: IDMTargetOperation& setDropOffset( const ISize& newPointerOffset); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.32.8. IDMTargetOperation::setStyle ═══ Sets the drop style for the target operation. public: IDMTargetOperation& setStyle(DropStyle dropStyle); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.32.9. IDMTargetOperation::setTargetOperation ═══ Sets an IDMTargetOperation handle during the initial target enter event. public: static void setTargetOperation( IDMTargetOperation::Handle tgtOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.32.10. IDMTargetOperation::style ═══ Returns the target operation's drop style. public: DropStyle style() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.32.11. IDMTargetOperation::targetOperation ═══ Returns the IDMTargetOperation handle created during the initial target enter event. public: static IDMTargetOperation::Handle targetOperation(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: Direct Manipulation Sample 2: dmsamp2.cpp ═══ 1.32.12. IDMTargetOperation::wasDragAfter ═══ Returns true if the target enter event was generated above the first list item, between list items, or after the last list item in one of the list views of a container. An example of a container list view is details view. Returns false if the event was generated over a list item. public: Boolean wasDragAfter() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.32.13. IDMTargetOperation::~IDMTargetOperation ═══ This destructor will enable the container refresh and refresh the container if a container is the target of the direct manipulation. public: virtual ~IDMTargetOperation(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ Nested Types - IDMTargetOperation ═══ Type Definitions Handle ═══ Type Definition - IDMTargetOperation::Handle ═══ typedef IReference < IDMTargetOperation > Handle; IDMTargetOperation::Handle provides access to the IDMTargetOperation objects associated with a direct manipulation operation. Handle manages the references to the IDMTargetOperation object and ensures this object is not deleted until the direct manipulation operation is completed. Use Handle to reference a target operation handle within this class and IDMTargetOperation::Handle externally. The handle provides a "->" operator that enables instances to be treated just like pointers to an IDMTargetOperation object. ═══ 1.33. IDMTargetRenderer ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMTargetRenderer ═══ IBase │ IVBase │ IDMRenderer │ IDMTargetRenderer Inherited by none. ═══ Class Description - IDMTargetRenderer ═══ idmtgtrn.hpp Objects of the IDMTargetRenderer class provide target rendering support for a direct manipulation. Objects of this class are registered with the target handler. The target handler selects a best match renderer for a given drag item by calling IDMTargetHandler::findRendererFor. The target handler invokes the rendering functions of the selected renderer when the source or target rendering events occur. ═══ Public Functions - IDMTargetRenderer ═══ Constructors IDMTargetRenderer ~IDMTargetRenderer Source and Target Rendering canRender informSourceOfCompletion supportsOperation targetRender targetRenderComplete targetRenderPrepare Inherited Members IDMRenderer defaultSourceRenderer defaultTargetRenderer setDefaultSourceRenderer setDefaultTargetRenderer setSupportedRMFs setSupportedTypes supportedRMFs supportedTypes IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMTargetRenderer - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMTargetRenderer - Renderer Specifics ═══ Use these members to process the different rendering operations that are specific to the supported rendering mechanisms and formats. ═══ IDMTargetRenderer - Source and Target Rendering ═══ Use these members to support the implementation of source or target rendering. ═══ Protected Functions - IDMTargetRenderer ═══ Renderer Specifics prepareAtSource renderAtSource renderComplete renderToName ═══ Protected Data - IDMTargetRenderer ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.33.1. IDMTargetRenderer::canRender ═══ Returns an indication of the renderer's ability to render the item based upon the rendering mechanisms and formats associated with the item. Note: This function can be used for either source or target rendering. public: virtual DropIndicator canRender( const IDMItem::Handle& dragItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.33.2. IDMTargetRenderer::IDMTargetRenderer ═══ You can construct and destruct objects of this class. Overload 1 public: IDMTargetRenderer( const char* rmfs, const char* type = IDM::any); Use this function to create objects of this class by providing rendering mechanisms and formats (RMFs) and types that indicate which drag item can be rendered by this target renderer. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMTargetRenderer(); This is the default constructor. When this constructor is used, the renderer supports any type and all of the default target RMFs supported by the User Interface Class Library: (IDM::rmLibrary)x(IDM::rfProcess,IDM::rfText,IDM::rfSharedMem), Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.33.3. IDMTargetRenderer::informSourceOfCompletion ═══ Informs the source that the target has finished processing the data associated with the dropped item. The render completion code indicates if the target successfully processed the data or if it failed. Note: This function must be used for either source or target rendering. public: virtual IDMTargetRenderer& informSourceOfCompletion( const IDMItem::Handle& dragItem, IDM::RenderCompletion code = IDM::targetSuccessful); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The source could not be informed that │ │ │the target finished processing. The │ │ │drag item is invalid. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.33.4. IDMTargetRenderer::prepareAtSource ═══ Sends a source prepare event to the source to request source preparation for the specified drag item. The User Interface Class Library uses this function to implement the support for the rendering mechanism and format. protected: virtual Boolean prepareAtSource( IDMTargetDropEvent& event, const IDMItem::Handle& dragItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.33.5. IDMTargetRenderer::renderAtSource ═══ Sends a render event to the source to request source rendering for the specified drag item. The User Interface Class Library uses this function to implement the support for the rendering mechanism and format. protected: virtual Boolean renderAtSource( IDMTargetDropEvent& event, const IDMItem::Handle& dragItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The render event was not sent to the │ │ │source. The source window handle may be │ │ │invalid. │ ├────────────────────┼────────────────────────────────────────┤ │IOutOfMemory │The render event was not sent to the │ │ │source. The system was unable to │ │ │allocate the required memory. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The render event was not sent to the │ │ │source. The target process could not │ │ │give the source process access to the │ │ │shared memory buffer because the system │ │ │may be out of memory or the buffer may │ │ │be locked. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The render event was not sent to the │ │ │source. The source reported an error │ │ │during the processing of the source │ │ │render event. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.33.6. IDMTargetRenderer::renderComplete ═══ Called to process a completion event for the specified drag item. The User Interface Class Library uses this function to implement the support for the rendering mechanism and format. protected: virtual Boolean renderComplete( const IDMItem::Handle& dragItem, void* pBuffer); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.33.7. IDMTargetRenderer::renderToName ═══ Provides the name of the location to which the data is rendered. This name could be a file name or a shared memory buffer. protected: virtual IString renderToName( const IDMItem::Handle& dragItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.33.8. IDMTargetRenderer::supportsOperation ═══ Determines if the default operation, that is set by the source, is supported by the drag item. If the default operation is IDMOperation::drag, the target must select an operation. If no operation is selected, the User Interface Class Library's default selection is IDMOperation::move, based upon Common User Access (CUA) guidelines. If the default operation defined by the source is >= IDMOperation::unknown, the application must define the functionality of this operation and process the operation accordingly. When the default operation defined by the source is one of the following: IDMOperation::move IDMOperation::copy IDMOperation::link The default processing verifies if item supports the operation. Note: This function can be used for either source or target rendering. public: virtual Boolean supportsOperation( const IDMItem::Handle& dragItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.33.9. IDMTargetRenderer::targetRender ═══ Called when a drop event occurs for a drag item and the renderer must render the drag item. Use the rendering mechanism and format (RMF) to determine the type of rendering to implement. Note: This function can be used for either source or target rendering. public: virtual IDMTargetRenderer& targetRender( IDMTargetDropEvent& event, const IDMItem::Handle& dragItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The drag item was not rendered. The │ │ │IDM::rfProcess rendering format can only│ │ │be used if the source and the target are│ │ │in the same process. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │The drag item was not rendered. Source │ │ │rendering of the drag item failed. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │The drag item was not rendered. The │ │ │rendering format is invalid. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │The drag item was not rendered. The │ │ │rendering mechanism is invalid. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.33.10. IDMTargetRenderer::targetRenderComplete ═══ Called when the source has completed the rendering of a drag item. This function is not used by any of the default renderers supported by the User Interface Class Library. Note: This function can be used for source rendering only. public: virtual IDMTargetRenderer& targetRenderComplete( IDMTargetEndEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.33.11. IDMTargetRenderer::targetRenderPrepare ═══ Called when the source requests that the target generate a preparation event. Note: This function can be used for source rendering only. public: virtual IDMTargetRenderer& targetRenderPrepare( IDMTargetDropEvent& event, const IDMItem::Handle& dragItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.33.12. IDMTargetRenderer::~IDMTargetRenderer ═══ public: virtual ~IDMTargetRenderer(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.34. IDMTBarButtonItem ═══ Description Derivation Constructors Public Functions Protected Functions Public Data Protected Data Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMTBarButtonItem ═══ IBase │ IVBase │ IRefCounted │ IDMItem │ IDMTBarButtonItem Inherited by none. ═══ Class Description - IDMTBarButtonItem ═══ idmtbbit.hpp Objects of the IDMTBarButtonItem class are created by tool bars when tool bar buttons are moved. Objects of this class possess the following attributes (in addition to those inherited from its base class):  Association with a source drag operation object.  Association with IDM::rmLibrary rendering mechanism and IDM::rfProcess rendering format. This class provides virtual functions that implement direct manipulation support for tool bar buttons. ═══ Public Functions - IDMTBarButtonItem ═══ Constructors IDMTBarButtonItem ~IDMTBarButtonItem Drop Processing targetDrop Shredder Support sourceDiscard Source and Target Tool Bar sourceToolBar sourceToolBarButton targetToolBar targetToolBarButton Source Items generateSourceItems Tool Bar Button Operations supportedOperationsFor Inherited Members IDMItem addRMF addType appendRMF attributes canBeCopied canBeLinked canBeMoved compressedRMFs containerName contents contentsSize deleteRMF dropStatus enableCopy enableLink enableMove generateSourceItems hasImage hasType image imageOffset isContainer isGroup isOnRemovableMedia isOpen isReference isTargetTheSource matchingRMFs nativeRF nativeRM nativeRMF object operator = removeRMF removeType renderer requiresPreparation rfForThisProcess rfFrom rmfFrom rmFrom rmfs rmfsFrom selectedRMF setContainer setContainerName setContents setDropStatus setGroup setImage setNativeRMF setObject setOnRemovableMedia setOpen setReference setRenderer setRequiresPreparation setRMFs setSelectedRMF setSourceName setSourceWindowHandle setTargetName setTrueType setTypes sourceDiscard sourceEnd sourceItemFor sourceName sourceOperation sourcePrepare sourcePrint sourceRender sourceWindow sourceWindowHandle supportedOperations supportedOperationsFor supportsRMF targetDrop targetEnd targetName targetOperation tokenForWPSObject trueType types IRefCounted addRef removeRef useCount IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMTBarButtonItem - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMTBarButtonItem - Drop Processing ═══ Use these members during the drop operation of a direct manipulation. ═══ IDMTBarButtonItem - Shredder Support ═══ Use these members for tool bar button deletion when a tool bar button item is dropped on the system shredder. ═══ IDMTBarButtonItem - Source and Target Tool Bar ═══ Use these members to query the source and target tool bar and the tool bar buttons. ═══ IDMTBarButtonItem - Source Items ═══ Use these members to access and manipulate source items involved in a direct manipulation. ═══ IDMTBarButtonItem - Tool Bar Button Operations ═══ Use these members to set the supported direct manipulation operations for this class. ═══ Protected Functions - IDMTBarButtonItem ═══ Inherited Members IDMItem generateSourceName ═══ Public Data - IDMTBarButtonItem ═══ Inherited Members IDMItem container copyable group linkable moveable none open prepare reference removableMedia unknown ═══ Protected Data - IDMTBarButtonItem ═══ Inherited Members IDMItem strContents IBase recoverable unrecoverable ═══ 1.34.1. IDMTBarButtonItem::generateSourceItems ═══ Use this function to generate a drag item that represents a tool bar button object. public: static Boolean generateSourceItems( IDMSourceOperation* sourceOperation); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.34.2. IDMTBarButtonItem::IDMTBarButtonItem ═══ You can construct and destruct objects of this class. Overload 1 public: IDMTBarButtonItem(IDMSourceOperation* sourceOperation); Use this constructor to construct items for the source of a direct manipulation. It accepts a pointer to the drag source operation. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDMTBarButtonItem(const IDMItem::Handle& dragItem); Use this constructor to construct items for the target of a direct manipulation. It accepts a handle to a generic drag item. The generic drag item is passed to IDMItemProviderFor::provideTargetItemFor of the target tool bar button's drag item provider. IDMItemProviderFor::provideTargetItemFor uses the generic drag item to construct a tool bar button drag item by calling this constructor. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.34.3. IDMTBarButtonItem::sourceDiscard ═══ Use this function to process a source discard event for a drag item that represents a tool bar button object. This function deletes the tool bar button object that is dropped on the system shredder. Derived classes should override this function when the default processing cannot be used. public: virtual Boolean sourceDiscard(IDMSourceDiscardEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.34.4. IDMTBarButtonItem::sourceToolBar ═══ Returns the source tool bar where the drag was initiated. public: virtual IToolBar* sourceToolBar() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.34.5. IDMTBarButtonItem::sourceToolBarButton ═══ Returns the source tool bar button where the drag was initiated. public: virtual IToolBarButton* sourceToolBarButton() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.34.6. IDMTBarButtonItem::supportedOperationsFor ═══ Returns operations this item supports using the specified rendering mechanism and format (RMF). If the specified RMF is the operation is set to IDMItem::copyable. Otherwise, the default operation is returned. public: virtual unsigned long supportedOperationsFor( const IString& selectedRMFs) const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.34.7. IDMTBarButtonItem::targetDrop ═══ Use this function to process the drop of a drag item that represents a tool bar button object. This function processes the drop in the following manner:  If a tool bar button is dropped on another tool bar button, it is moved either before or after the tool bar button where the drop occurred. The positioning depends upon the location of the mouse pointer. If the mouse pointer is over the left-half or top-half of the target button, the button being dragged is moved before the target button. If it is over the middle, right-half, or bottom-half of the target button, the button being dragged is moved after the target button.  If the drag was initiated from a drop down menu, a new tool bar button is created based upon the bitmap, text, or bitmap and text in the drag object. The same positioning applies that is discussed in the previous paragraph.  If a bitmap file is dropped on a tool bar button, the button's bitmap is set using the bitmap stored within the bitmap file. Derived classes should override this function when the default processing cannot be used. public: virtual Boolean targetDrop(IDMTargetDropEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.34.8. IDMTBarButtonItem::targetToolBar ═══ Returns the target tool bar where the drop occurred. public: virtual IToolBar* targetToolBar() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.34.9. IDMTBarButtonItem::targetToolBarButton ═══ Returns the target tool bar button where the drop occurred. public: virtual IToolBarButton* targetToolBarButton() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.34.10. IDMTBarButtonItem::~IDMTBarButtonItem ═══ public: virtual ~IDMTBarButtonItem(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.35. IDMToolBarItem ═══ Description Derivation Constructors Public Functions Protected Functions Public Data Protected Data Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDMToolBarItem ═══ IBase │ IVBase │ IRefCounted │ IDMItem │ IDMToolBarItem Inherited by none. ═══ Class Description - IDMToolBarItem ═══ idmtbrit.hpp Objects of the IDMToolBarItem class are created by tool bars when a tool bar button or a menu item object is dropped on a tool bar. Objects of this class possess the following attributes (in addition to those inherited from its base class):  Association with a target drag operation object.  Association with IDM::rmLibrary rendering mechanism and IDM::rfProcess rendering format, or IDM::rmFile rendering mechanism and IDM::rfUnknown rendering format. This class provides virtual functions that implement direct manipulation support for tool bars. ═══ Public Functions - IDMToolBarItem ═══ Constructors IDMToolBarItem ~IDMToolBarItem Drop Processing targetDrop Inherited Members IDMItem addRMF addType appendRMF attributes canBeCopied canBeLinked canBeMoved compressedRMFs containerName contents contentsSize deleteRMF dropStatus enableCopy enableLink enableMove generateSourceItems hasImage hasType image imageOffset isContainer isGroup isOnRemovableMedia isOpen isReference isTargetTheSource matchingRMFs nativeRF nativeRM nativeRMF object operator = removeRMF removeType renderer requiresPreparation rfForThisProcess rfFrom rmfFrom rmFrom rmfs rmfsFrom selectedRMF setContainer setContainerName setContents setDropStatus setGroup setImage setNativeRMF setObject setOnRemovableMedia setOpen setReference setRenderer setRequiresPreparation setRMFs setSelectedRMF setSourceName setSourceWindowHandle setTargetName setTrueType setTypes sourceDiscard sourceEnd sourceItemFor sourceName sourceOperation sourcePrepare sourcePrint sourceRender sourceWindow sourceWindowHandle supportedOperations supportedOperationsFor supportsRMF targetDrop targetEnd targetName targetOperation tokenForWPSObject trueType types IRefCounted addRef removeRef useCount IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDMToolBarItem - Constructors ═══ You can construct and destruct objects of this class. ═══ IDMToolBarItem - Drop Processing ═══ Use these members during the drop operation of a direct manipulation. ═══ Protected Functions - IDMToolBarItem ═══ Inherited Members IDMItem generateSourceName ═══ Public Data - IDMToolBarItem ═══ Inherited Members IDMItem container copyable group linkable moveable none open prepare reference removableMedia unknown ═══ Protected Data - IDMToolBarItem ═══ Inherited Members IDMItem strContents IBase recoverable unrecoverable ═══ 1.35.1. IDMToolBarItem::IDMToolBarItem ═══ Use this constructor to construct items for the target of a direct manipulation. It accepts a handle to a generic drag item. The generic drag item is passed to IDMItemProviderFor::provideTargetItemFor of the target tool bar's drag item provider. IDMItemProviderFor::provideTargetItemFor uses the generic drag item to construct a tool bar drag item by calling this constructor. Note: Source items are not supported for this class. public: IDMToolBarItem(const IDMItem::Handle& dragItem); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.35.2. IDMToolBarItem::targetDrop ═══ Use this function to process the drop of a drag item that represents a tool bar button or a menu item object. This function processes the drop in the following manner:  If the drag was initiated from a drop down menu, a new tool bar button is created based upon the bitmap, text, or bitmap and text in the drag object. The button is placed at the end of the tool bar.  If an existing tool bar button is dropped on a tool bar, it is treated as a move and is placed at the end of the tool bar. Derived classes should override this function when the default processing cannot be used. public: virtual Boolean targetDrop(IDMTargetDropEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.35.3. IDMToolBarItem::~IDMToolBarItem ═══ public: virtual ~IDMToolBarItem(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘