### IDMRenderer

  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 of the data represented by the drag item from the source to the target.

  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. The source and target renderers implement the protocol defined by the rendering mechanisms and formats (RMFs) to render the data represented by the drag items.

  A generic renderer object has the following attributes:

  - A set of supported drag item types with which this renderer can work. IDM::Type lists the default drag item types. You can also define your own types.
  - A set of supported rendering mechanisms and formats (RMFs). These RMFs describe the various means this renderer can use to transfer the data represented by the drag item. IDM::RM and IDM::RF list the default rendering mechanisms and rendering formats, respectively. You can also define your own RMFs.

  You can perform two categories of operations on objects of this class:

  - Queries to determine whether the renderer can render a given drag item
  - Requests to perform one of the basic rendering processes

### IDMRenderer - Member Functions and Data by Group

### Constructors & Destructor

You can construct and destruct objects of this class.

~IDMRenderer

      public:
      virtual ~IDMRenderer()

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

IDMRenderer

  Overload 1

      public:
      IDMRenderer()

  Use this constructor, the default constructor, to create a general-purpose renderer that supports all drag item types using any library-supported RMF.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      public:
      IDMRenderer(const char* rmfs, const char* types)

  rmfs
    A pointer to the RMFs string.
  types
    A pointer to the drag item types string.

  Use this constructor to create a special-purpose renderer that renders drag items of a specific type using a specific RMF. You can construct a renderer by providing rendering mechanisms and formats (RMFs) and drag item types that indicate the drag items that can be rendered by this renderer.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Default Renderers

Use these members to set and query the default source and target renderers. The default Open Class Library source and target renderers are added automatically to newly created source and target handlers.

defaultSourceRenderer

      public:
      static IDMSourceRenderer& defaultSourceRenderer()

  Returns the default source renderer, which is an IDMSourceRenderer object, unless the default has been set to a derived IDMSourceRenderer object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

defaultTargetRenderer

      public:
      static IDMTargetRenderer& defaultTargetRenderer()

  Returns the default target renderer, which is an IDMTargetRenderer object, unless the default has been set to a derived IDMTargetRenderer object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setDefaultSourceRenderer

      public:
      static void
        setDefaultSourceRenderer( IDMSourceRenderer& sourceRenderer )

  Sets the default source renderer. Use this function to set the default source renderer prior to enabling the source for direct manipulation. Enable the source for direct manipulation with either IDMHandler::enableDragFrom or IDMHandler::enableDragDropFor.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setDefaultTargetRenderer

      public:
      static void
        setDefaultTargetRenderer( IDMTargetRenderer& targetRenderer )

  Sets the default target renderer. Use this function to set the default target renderer prior to enabling the target for direct manipulation. Enable the target for direct manipulation with either IDMHandler::enableDropOn or IDMHandler::enableDragDropFor.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Supported Types and RMFs

Use the following members to set and query the drag item types and rendering mechanisms and formats (RMFs) supported by renderers.

setSupportedRMFs

      public:
      virtual IDMRenderer& setSupportedRMFs(const char* rmfs)

  Sets the RMFs supported by the renderer.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setSupportedTypes

      public:
      virtual IDMRenderer& setSupportedTypes(const char* types)

  Sets the drag item types supported by the renderer.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

supportedRMFs

      public:
      virtual IString supportedRMFs() const

  Returns the RMFs supported by the renderer.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

supportedTypes

      public:
      virtual IString supportedTypes() const

  Returns the drag item types supported by the renderer.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### IDMRenderer - Inherited Member Functions and Data

#### Inherited Public Functions

  - None

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  - None

#### Inherited Protected Data

  - None