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

  1. #ifndef _IMOUSHDR_
  2. #define _IMOUSHDR_
  3. /*******************************************************************************
  4. * FILE NAME: imoushdr.hpp                                                      *
  5. *                                                                              *
  6. * DESCRIPTION:                                                                 *
  7. *   Declaration of the classes:                                                *
  8. *     IMouseHandler                                                            *
  9. *     IMouseConnectionTo                                                       *
  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 <ihandler.hpp>
  20. #include <imousevt.hpp>
  21.  
  22. #pragma pack(4)
  23.  
  24. class IMouseHandler : public IHandler {
  25. typedef IHandler
  26.   Inherited;
  27. public:
  28. /*------------------------------- Constructors -------------------------------*/
  29.   IMouseHandler ( );
  30. virtual
  31.  ~IMouseHandler ( );
  32.  
  33. protected:
  34. /*---------------------------- Event Dispatching -----------------------------*/
  35. virtual Boolean
  36.   dispatchHandlerEvent ( IEvent& event );
  37.  
  38. /*----------------------------- Event Processing -----------------------------*/
  39. virtual Boolean
  40.   mouseClicked       ( IMouseClickEvent&   event );
  41.  
  42. virtual Boolean
  43.   mouseMoved         ( IMouseEvent&        event ),
  44.   mousePointerChange ( IMousePointerEvent& event );
  45.  
  46. }; // IMouseHandler
  47.  
  48. #pragma info(nocpy)
  49.  
  50. template <class ATarget>
  51. class IMouseConnectionTo : public IMouseHandler {
  52. typedef IMouseHandler
  53.   Inherited;
  54. public:
  55. /*----------------------------- Type Definitions -----------------------------*/
  56. typedef Boolean  (ATarget::* ClickMemberFunction)( IMouseClickEvent& );
  57. typedef Boolean  (ATarget::* MoveMemberFunction)( IMouseEvent& );
  58. typedef Boolean  (ATarget::* PointerMemberFunction)( IMousePointerEvent& );
  59.  
  60. /*------------------------------- Constructors -------------------------------*/
  61.   IMouseConnectionTo ( ATarget&              target,
  62.                        ClickMemberFunction   clickMemberFunction = 0,
  63.                        MoveMemberFunction    moveMemberFunction = 0,
  64.                        PointerMemberFunction pointerMemberFunction = 0 );
  65. virtual
  66.  ~IMouseConnectionTo ( );
  67.  
  68. protected:
  69. /*----------------------------- Event Processing -----------------------------*/
  70. virtual Boolean
  71.   mouseClicked       ( IMouseClickEvent&   event ),
  72.   mouseMoved         ( IMouseEvent&        event ),
  73.   mousePointerChange ( IMousePointerEvent& event );
  74.  
  75. private:
  76. /*--------------------------------- Private ----------------------------------*/
  77. ATarget
  78.  &fTarget;
  79. ClickMemberFunction
  80.   fConnectedClickMember;
  81. MoveMemberFunction
  82.   fConnectedMoveMember;
  83. PointerMemberFunction
  84.   fConnectedPointerMember;
  85. }; // IMouseConnectionTo
  86.  
  87.  
  88. #ifndef __TEMPINC__
  89.   #include <imoushdr.c>
  90. #endif
  91.  
  92. #pragma info(restore)
  93.  
  94. #pragma pack()
  95.  
  96. #endif /* _IMOUSHDR_ */
  97.