home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ctlcpp.zip / IMMOVHDR.CPP < prev    next >
C/C++ Source or Header  |  1994-06-06  |  4KB  |  142 lines

  1. /***************************************************************/
  2. /* Filename: immovhdr.cpp                                      */
  3. /*                                                             */
  4. /* Purpose: Definition of IMouseMoveHandler class.             */
  5. /*          This class handles several different types         */
  6. /*          of mouse movement events, including WM_MOUSEMOVE,  */
  7. /*          WM_CONTROLPOINTER, WM_BEGIN/ENDDRAG, and           */
  8. /*          WM_BEGIN/ENDSELECT. Associated classes are         */
  9. /*          IMouseMoveEvent, IControlPointerEvent, and         */
  10. /*          IMouseDragSelectEvent.                             */
  11. /*                                                             */
  12. /* Program name: cppctl.exe     Title: C++ PM Control Test App */
  13. /* OS/2 Developer Magazine, Issue: Sept. '94, page             */
  14. /* Article title: Writing OS/2 PM Controls in C++              */
  15. /* Authors: Eric Snell and Lori Ruffing                        */
  16. /*                                                             */
  17. /* Description: This example shows how to implement an OS/2 PM */
  18. /*              control window in C++.                         */
  19. /*                                                             */
  20. /* Program Requirements: This example requires the IBM C Set++ */
  21. /*                       compiler and libraries.               */
  22. /***************************************************************/
  23. extern "C"
  24.    {
  25.    #define INCL_WININPUT
  26.    #define INCL_WINMESSAGEMGR
  27.    #include <os2.h>
  28.    }
  29.  
  30. #ifndef _IMMOVEVT_
  31.    #include "immovevt.hpp"
  32. #endif
  33.  
  34. #include "immovhdr.hpp"
  35.  
  36. IMouseMoveHandler::IMouseMoveHandler()
  37.    : IHandler()
  38.    {
  39.    }
  40.  
  41. IMouseMoveHandler::~IMouseMoveHandler()
  42.    {
  43.    }
  44.  
  45. //----------------------------------------------------------------------------
  46. // Method: IMouseMoveHandler::dispatchHandlerEvent
  47. //
  48. // Description: 'dispatchHandlerEvent' receives an IEvent 'evt', examines
  49. //              the contents and invokes a virtual function if the event
  50. //              is recognized.
  51. //----------------------------------------------------------------------------
  52. Boolean IMouseMoveHandler::dispatchHandlerEvent(IEvent &evt)
  53.    {
  54.    Boolean        fHandled = false;
  55.  
  56.    switch (evt.eventId())
  57.       {
  58.       case WM_MOUSEMOVE:
  59.          {
  60.          IMouseMoveEvent mouEvt(evt);
  61.          fHandled = mouseMove(mouEvt);
  62.          evt.setResult(mouEvt.result());
  63.          break;
  64.          }
  65.  
  66.       case WM_CONTROLPOINTER:
  67.          {
  68.          IControlPointerEvent ctlEvt(evt);
  69.          fHandled = controlPointer(ctlEvt);
  70.          evt.setResult(ctlEvt.result());
  71.          break;
  72.          }
  73.  
  74.       case WM_BEGINDRAG:
  75.       case WM_ENDDRAG:
  76.       case WM_BEGINSELECT:
  77.       case WM_ENDSELECT:
  78.          {
  79.          IMouseDragSelectEvent drgEvt(evt);
  80.          switch (evt.eventId())
  81.             {
  82.             case WM_BEGINDRAG:
  83.                fHandled = beginDrag(drgEvt);
  84.                break;
  85.  
  86.             case WM_ENDDRAG:
  87.                fHandled = endDrag(drgEvt);
  88.                break;
  89.  
  90.             case WM_BEGINSELECT:
  91.                fHandled = beginSelect(drgEvt);
  92.                break;
  93.  
  94.             case WM_ENDSELECT:
  95.                fHandled = endSelect(drgEvt);
  96.                break;
  97.             }
  98.          evt.setResult(drgEvt.result());
  99.          break;
  100.          }
  101.  
  102.       }
  103.  
  104.    return fHandled;
  105.    }
  106.  
  107. Boolean IMouseMoveHandler::mouseMove(IMouseMoveEvent &evt)
  108.    {
  109.    evt;
  110.    return false;
  111.    }
  112.  
  113. Boolean IMouseMoveHandler::controlPointer(IControlPointerEvent &evt)
  114.    {
  115.    evt;
  116.    return false;
  117.    }
  118.  
  119. Boolean IMouseMoveHandler::beginDrag(const IMouseDragSelectEvent& evt)
  120.    {
  121.    evt;
  122.    return false;
  123.    }
  124.  
  125. Boolean IMouseMoveHandler::endDrag(const IMouseDragSelectEvent& evt)
  126.    {
  127.    evt;
  128.    return false;
  129.    }
  130.  
  131. Boolean IMouseMoveHandler::beginSelect(const IMouseDragSelectEvent& evt)
  132.    {
  133.    evt;
  134.    return false;
  135.    }
  136.  
  137. Boolean IMouseMoveHandler::endSelect(const IMouseDragSelectEvent& evt)
  138.    {
  139.    evt;
  140.    return false;
  141.    }
  142.