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

  1. #ifndef _IDMHNDLR_
  2. #define _IDMHNDLR_
  3. /*******************************************************************************
  4. * FILE NAME: idmhndlr.hpp                                                      *
  5. *                                                                              *
  6. * DESCRIPTION:                                                                 *
  7. *   Declaration of the classes:                                                *
  8. *     IDMHandler                                                               *
  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 <ihandler.hpp>
  19.  
  20. class IDMSourceHandler;
  21. class IDMTargetHandler;
  22. class IDMRenderer;
  23. class IDMRendererSeq;
  24. class IWindow;
  25. class IEntryField;
  26. class IMultiLineEdit;
  27. class IContainerControl;
  28. class IMenuBar;
  29. class ISubmenu;
  30.  
  31. class IToolBar;
  32. class IToolBarButton;
  33.  
  34. class IDMHandlerData;
  35.  
  36. class IDMDropTargetHandler;
  37. class IDMDragHandler;
  38.  
  39. #pragma pack(4)
  40.  
  41. class IDMHandler : public IHandler {
  42. typedef IHandler
  43.   Inherited;
  44. public:
  45.  
  46. /*----------------------- Enabling Direct Manipulation -----------------------*/
  47. static void
  48.   enableDragFrom    ( IWindow*           window ),
  49.   enableDragFrom    ( IEntryField*       entryField ),
  50.   enableDragFrom    ( IMultiLineEdit*    mle ),
  51.   enableDragFrom    ( IContainerControl* container ),
  52. #ifndef IC_WIN_FLAGNOP
  53.   enableDragFrom    ( IMenuBar*          menuBar ),
  54.   enableDragFrom    ( ISubmenu*          submenu ),
  55. #endif
  56.   enableDropOn      ( IWindow*           window ),
  57.   enableDropOn      ( IEntryField*       entryField ),
  58.   enableDropOn      ( IMultiLineEdit*    mle ),
  59.   enableDropOn      ( IContainerControl* container ),
  60.   enableDropOn      ( IToolBar*          toolBar ),
  61.  
  62.   enableDragDropFor ( IWindow*           window ),
  63.   enableDragDropFor ( IEntryField*       entryField ),
  64.   enableDragDropFor ( IMultiLineEdit*    mle ),
  65.   enableDragDropFor ( IContainerControl* container );
  66.  
  67. static void
  68.   enableDragDropFor ( IToolBarButton*    toolBarButton );
  69.  
  70. /*----------------------------- Default Handlers -----------------------------*/
  71. static IDMSourceHandler
  72.  &defaultSourceHandler    ( );
  73.  
  74. static IDMTargetHandler
  75.  &defaultTargetHandler    ( );
  76.  
  77. static IDMDropTargetHandler
  78.  &defaultDropTargetHandler    ( );
  79. static IDMDragHandler
  80.  &defaultDragHandler      ( );
  81.  
  82. static void
  83.   setDefaultSourceHandler ( IDMSourceHandler& source ),
  84.   setDefaultTargetHandler ( IDMTargetHandler& target );
  85.  
  86.  
  87. protected:
  88. /*------------------------------- Constructors -------------------------------*/
  89.   IDMHandler  ( );
  90.  
  91. virtual
  92.   ~IDMHandler ( );
  93.  
  94. /*------------------------------ Item Providers ------------------------------*/
  95. static void
  96.   setItemProvider ( IEntryField*       entryField ),
  97.   setItemProvider ( IMultiLineEdit*    mle ),
  98.   setItemProvider ( IContainerControl* container );
  99. #ifndef IC_WIN_FLAGNOP
  100. static void
  101.   setItemProvider ( ISubmenu*          submenu );
  102. #endif
  103. static void
  104.   setItemProvider ( IToolBar*          toolBar ),
  105.   setItemProvider ( IToolBarButton*    toolBar );
  106.  
  107. /*---------------------------- Handler Processing ----------------------------*/
  108. Boolean
  109.   isContainerControl ( const IWindow* window ) const;
  110.  
  111. /*-------------------------------- Rendering ---------------------------------*/
  112. virtual unsigned
  113.   numberOfRenderers  ( );
  114.  
  115. virtual IDMRenderer
  116.  *renderer           ( unsigned           position );
  117.  
  118. virtual IDMHandler
  119.  &replaceRenderer    ( unsigned           position,
  120.                        const IDMRenderer& replacement ),
  121.  &addRenderer        ( const IDMRenderer& newRenderer ),
  122.  &removeRenderer     ( unsigned           position ),
  123.  &removeRenderer     ( const IDMRenderer& rendererToRemove ),
  124.  &setRenderer        ( const IDMRenderer& newRenderer );
  125.  
  126. private:
  127. /*--------------------------------- Private ----------------------------------*/
  128.  
  129. static IDMSourceHandler
  130.  *pSource;
  131. static IDMTargetHandler
  132.  *pTarget;
  133. static IDMDropTargetHandler
  134.  *pDropTarget;
  135. static IDMDragHandler
  136.  *pDragHandler;
  137.  
  138. IDMRendererSeq
  139.  *pRendererSeqCl;
  140.  
  141. IDMRendererSeq
  142.  *rendererCollection ( );
  143.  
  144. IDMHandlerData
  145.  *fDMHandlerData;
  146. }; // class IDMHandler
  147.  
  148. #pragma pack()
  149.  
  150. #endif // _IDMHNDLR_
  151.