home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / idmtgtrn.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  3.5 KB  |  100 lines

  1. #ifndef _IDMTGTRN_
  2. #define _IDMTGTRN_
  3. /*******************************************************************************
  4. * FILE NAME: idmtgtrn.hpp                                                      *
  5. *                                                                              *
  6. * DESCRIPTION:                                                                 *
  7. *   Declaration of the classes:                                                *
  8. *     IDMTargetRenderer                                                        *
  9. *                                                                              *
  10. * COPYRIGHT:                                                                   *
  11. *   IBM Open Class Library                                                     *
  12. *   (C) Copyright International Business Machines Corporation 1992, 1996       *
  13. *   Licensed Material - Program-Property of IBM - All Rights Reserved.         *
  14. *   US Government Users Restricted Rights - Use, duplication, or disclosure    *
  15. *   restricted by GSA ADP Schedule Contract with IBM Corp.                     *
  16. *                                                                              *
  17. *******************************************************************************/
  18. #include <idmcomm.hpp>
  19. #include <idmrendr.hpp>
  20. #include <idmitem.hpp>
  21. #include <istring.hpp>
  22.  
  23. struct  _DRAGTRANSFER;
  24.  
  25. class   IDMTargetDropEvent;
  26. class   IDMTargetEndEvent;
  27. class   IDMTargetRendererData;
  28.  
  29. #pragma pack(4)
  30.  
  31. class IDMTargetRenderer : public IDMRenderer {
  32. typedef IDMRenderer
  33.   Inherited;
  34. typedef IDM::DropIndicator
  35.   DropIndicator;
  36. public:
  37.  
  38. /*------------------------------- Constructors -------------------------------*/
  39.   IDMTargetRenderer  ( const char* rmfs, const char* type = IDM::any );
  40.  
  41.   IDMTargetRenderer  ( );
  42.  
  43. virtual
  44.   ~IDMTargetRenderer ( );
  45.  
  46. /*-------------------------- Source and Target Rendering ---------------------*/
  47. virtual IDMTargetRenderer
  48.  &targetRender             ( IDMTargetDropEvent&    event,
  49.                              const IDMItem::Handle& dragItem ),
  50.  
  51. #ifndef IC_WIN_FLAGNOP
  52.  &targetRenderPrepare      ( IDMTargetDropEvent&    event,
  53.                              const IDMItem::Handle& dragItem ),
  54.  &targetRenderComplete     ( IDMTargetEndEvent&     event ),
  55. #endif
  56.  &informSourceOfCompletion ( const IDMItem::Handle& dragItem,
  57.                              IDM::RenderCompletion  code =
  58.                                            IDM::targetSuccessful );
  59.  
  60. virtual DropIndicator
  61.   canRender                ( const IDMItem::Handle& dragItem );
  62.  
  63. virtual Boolean
  64.   supportsOperation        ( const IDMItem::Handle& dragItem );
  65.  
  66. protected:
  67. /*----------------------------- Renderer Specifics ---------------------------*/
  68. virtual Boolean
  69.   renderAtSource  ( IDMTargetDropEvent&    event,
  70.                     const IDMItem::Handle& dragItem ),
  71.   prepareAtSource ( IDMTargetDropEvent&    event,
  72.                     const IDMItem::Handle& dragItem ),
  73.   renderComplete  ( const IDMItem::Handle& dragItem,
  74.                     void*                  pBuffer );
  75.  
  76. virtual IString
  77.   renderToName    ( const IDMItem::Handle& dragItem );
  78.  
  79. private:
  80. /*--------------------------------- Private ----------------------------------*/
  81.  
  82. _DRAGTRANSFER
  83.  *pPMDragTransfer;
  84.  
  85. _DRAGTRANSFER
  86.  *allocDragTransfer ( IDMTargetDropEvent&    dropEvent,
  87.                       const IDMItem::Handle& pDI );
  88.  
  89. _DRAGTRANSFER
  90.  *dragTransfer      ( ) const;
  91.  
  92. IDMTargetRendererData
  93.  *fDMTargetRendererData;
  94.  
  95. }; // class IDMTargetRenderer
  96.  
  97. #pragma pack()
  98.  
  99. #endif // _IDMTGTRN_
  100.