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

  1. #ifndef _IDMPROV_
  2. #define _IDMPROV_
  3. /*******************************************************************************
  4. * FILE NAME: idmprov.hpp                                                       *
  5. *                                                                              *
  6. * DESCRIPTION:                                                                 *
  7. *   Declaration of the classes:                                                *
  8. *     IDMItemProvider                                                          *
  9. *       IDMItemProviderFor< >                                                  *
  10. *                                                                              *
  11. * COPYRIGHT:                                                                   *
  12. *   IBM Open Class Library                                                     *
  13. *   (C) Copyright International Business Machines Corporation 1992, 1996       *
  14. *   Licensed Material - Program-Property of IBM - All Rights Reserved.         *
  15. *   US Government Users Restricted Rights - Use, duplication, or disclosure    *
  16. *   restricted by GSA ADP Schedule Contract with IBM Corp.                     *
  17. *                                                                              *
  18. *******************************************************************************/
  19. #include <ivbase.hpp>
  20. #include <idmsrcop.hpp>
  21. #include <idmitem.hpp>
  22.  
  23. class IDMTargetEnterEvent;
  24. class IDMTargetLeaveEvent;
  25. class IDMTargetHelpEvent;
  26. class IDMItemProviderData;
  27.  
  28. #pragma pack(4)
  29.  
  30. class IDMItemProvider : public IVBase {
  31. typedef IVBase
  32.   Inherited;
  33. public:
  34.  
  35. /*------------------------------- Constructors -------------------------------*/
  36.   IDMItemProvider  ( );
  37.  
  38. virtual
  39.   ~IDMItemProvider ( );
  40.  
  41. /*----------------------------- Drag Item Support ----------------------------*/
  42. virtual Boolean
  43.   provideSourceItems    ( const IDMSourceOperation::Handle& sourceOperation ),
  44.   provideEnterSupport   ( IDMTargetEnterEvent&              event ),
  45.   provideLeaveSupport   ( IDMTargetLeaveEvent&              event );
  46. #ifndef IC_WIN_FLAGNOP
  47. virtual Boolean
  48.   provideHelpFor        ( IDMTargetHelpEvent&               event );
  49. #endif
  50.  
  51. virtual IDMItem::Handle
  52.   provideTargetItemFor  ( const IDMItem::Handle&            dragItem );
  53.  
  54. private:
  55. /*--------------------------------- Private ----------------------------------*/
  56.  
  57. IDMItemProviderData
  58.  *fDMItemProviderData;
  59.  
  60. }; // class IDMItemProvider
  61.  
  62.  
  63. template < class T >
  64. class IDMItemProviderFor : public IDMItemProvider {
  65. typedef IDMItemProvider
  66.   Inherited;
  67. public:
  68.  
  69. /*------------------------------- Constructors -------------------------------*/
  70.   IDMItemProviderFor  ( ) {}
  71.  
  72. virtual
  73.   ~IDMItemProviderFor ( ) {}
  74.  
  75. /*----------------------------- Drag Item Support ----------------------------*/
  76. virtual Boolean
  77.   provideSourceItems   ( const IDMSourceOperation::Handle& sourceOperation )
  78. {
  79.   return( T::generateSourceItems( sourceOperation ) );
  80. }
  81.  
  82. virtual IDMItem::Handle
  83.   provideTargetItemFor ( const IDMItem::Handle& dragItem )
  84. {
  85.   return( (IDMItem::Handle)new T( dragItem ) );
  86. }
  87.  
  88. }; // class IDMItemProviderFor
  89.  
  90. #pragma pack()
  91.  
  92. #endif //_IDMPROV_
  93.