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

  1. #ifndef _IDMSRCH_
  2. #define _IDMSRCH_
  3. /*******************************************************************************
  4. * FILE NAME: idmsrch.hpp                                                       *
  5. *                                                                              *
  6. * DESCRIPTION:                                                                 *
  7. *   Declaration of the classes:                                                *
  8. *     IDMSourceHandler                                                         *
  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 <idmhndlr.hpp>
  20. #include <idmsrcop.hpp>
  21. #include <idmsrcrn.hpp>
  22. #include <idmitem.hpp>
  23.  
  24. class IWindow;
  25. class IEntryField;
  26. class IMultiLineEdit;
  27. class IContainerControl;
  28. class IDMSourceBeginEvent;
  29. class IDMSourcePrepareEvent;
  30. class IDMSourceRenderEvent;
  31. class IDMSourceEndEvent;
  32. class IDMSourceDiscardEvent;
  33. class IDMSourcePrintEvent;
  34. class IDMSourceHandlerData;
  35.  
  36. #pragma pack(4)
  37.  
  38.  
  39. class IDMSourceHandler : public IDMHandler {
  40. typedef IDMHandler
  41.   Inherited;
  42. typedef IDM::DragImageStyle
  43.   DragImageStyle;
  44. public:
  45.  
  46. /*------------------------------- Constructors -------------------------------*/
  47.   IDMSourceHandler  ( IWindow*           window );
  48.  
  49.   IDMSourceHandler  ( IEntryField*       entryField );
  50.  
  51.   IDMSourceHandler  ( IMultiLineEdit*    multiLineEdit );
  52.  
  53.   IDMSourceHandler  ( IContainerControl* containerControl );
  54.  
  55.   IDMSourceHandler  ( );
  56.  
  57. virtual
  58.   ~IDMSourceHandler ( );
  59.  
  60. /*--------------------------- Renderer Processing ----------------------------*/
  61. virtual unsigned
  62.   numberOfRenderers ( );
  63.  
  64. virtual IDMSourceRenderer
  65.  *renderer          ( unsigned                 position );
  66.  
  67. virtual IDMSourceHandler
  68.  &replaceRenderer   ( unsigned                 position,
  69.                       const IDMSourceRenderer& replacement ),
  70.  &addRenderer       ( const IDMSourceRenderer& newRenderer ),
  71.  &removeRenderer    ( const IDMSourceRenderer& rendererToRemove ),
  72.  &setRenderer       ( const IDMSourceRenderer& newRenderer );
  73.  
  74. protected:
  75. /*----------------------------- Event Dispatching ----------------------------*/
  76. virtual Boolean
  77.   dispatchHandlerEvent ( IEvent&                event );
  78.  
  79. /*----------------------------- Event Processing -----------------------------*/
  80. virtual Boolean
  81.   sourceBegin          ( IDMSourceBeginEvent&   event,
  82.                          Boolean                container = true ),
  83.   sourcePrepare        ( IDMSourcePrepareEvent& event ),
  84.   sourceRender         ( IDMSourceRenderEvent&  event ),
  85.   sourceEnd            ( IDMSourceEndEvent&     event );
  86. virtual Boolean
  87.   sourceDiscard        ( IDMSourceDiscardEvent& event ),
  88.   sourcePrint          ( IDMSourcePrintEvent&   event );
  89.  
  90. /*------------------------------ Implementation ------------------------------*/
  91. virtual IDMSourceOperation::Handle
  92.   allocateOperation ( IDMSourceBeginEvent&              event,
  93.                       DragImageStyle                    dragItemStyle ) const;
  94.  
  95. virtual Boolean
  96.   findRenderersFor  ( const IDMSourceOperation::Handle& sourceOperation );
  97.  
  98. virtual unsigned
  99.   findRendererFor   ( const IDMItem::Handle&            item );
  100.  
  101. private:
  102. /*------------------------------ Hidden Members ------------------------------*/
  103. virtual IDMHandler
  104.  &replaceRenderer ( unsigned           position,
  105.                     const IDMRenderer& replacement ),
  106.  &addRenderer     ( const IDMRenderer& newRenderer ),
  107.  &removeRenderer  ( unsigned           position ),
  108.  &removeRenderer  ( const IDMRenderer& rendererToRemove ),
  109.  &setRenderer     ( const IDMRenderer& newRenderer );
  110.  
  111. /*--------------------------------- Private ----------------------------------*/
  112. void
  113.   resolveRMFConflict (IDMItem::Handle&   item,
  114.                       IDMSourceRenderer* pIDMSrcRenderer);
  115.  
  116. IDMSourceHandlerData
  117.  *fDMSourceHandlerData;
  118.  
  119. }; // IDMSourceHandler
  120.  
  121. #pragma pack()
  122.  
  123. #endif //_IDMSRCH_
  124.