home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warphead.zip / H / STDDISPM.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  7KB  |  189 lines

  1. /* @(#)Z 1.4 com/src/ui/StdDispM.h, odui, od96os2, odos29646d 96/11/15 15:28:19 (96/07/15 18:27:25) */
  2. /*====START_GENERATED_PROLOG======================================
  3.  */
  4. /*
  5.  *   COMPONENT_NAME: odui
  6.  *
  7.  *   CLASSES:   MacDispatchModule
  8.  *
  9.  *   ORIGINS: 82,27
  10.  *
  11.  *
  12.  *   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  13.  *   All Rights Reserved
  14.  *   Licensed Materials - Property of IBM
  15.  *   US Government Users Restricted Rights - Use, duplication or
  16.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  17.  *       
  18.  *   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  19.  *   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  20.  *   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  21.  *   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  22.  *   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  23.  *   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  24.  *   OR PERFORMANCE OF THIS SOFTWARE.
  25.  */
  26. /*====END_GENERATED_PROLOG========================================
  27.  */
  28. #ifdef _PLATFORM_MACINTOSH_
  29. /*
  30.     File:        StdDispM.h
  31.  
  32.     Contains:    Helper object for standard dispatch module for Macintosh
  33.  
  34.     Owned by:    Richard Rodseth
  35.  
  36.     Copyright:    ⌐ 1993 - 1995 by Apple Computer, Inc., all rights reserved.
  37.  
  38.     Change History (most recent first):
  39.  
  40.         <10>     9/21/95    RR        #1286167 Suppress mouse up after bg
  41.                                     mousedown. Renamed fInvalidClick to
  42.                                     fSuppressMouseUp
  43.          <9>     8/29/95    RR        #1276401 Added tokenized mousr focus
  44.          <8>     6/15/95    RR        #1254828/1255536 Adding Redispatching
  45.          <7>     5/10/95    RR        # 1242893, 1245692 Added fields to support
  46.                                     Mouse up dispatching
  47.          <6>      5/2/95    RR        # 1226050 Added fLastBorderFrame.
  48.          <5>     1/13/95    RR        Added eventInfo to event handling methods
  49.          <4>    10/27/94    RR        Added tokenized focus fields
  50.          <3>     9/30/94    RR        #1171182 Treat icons as bundled. Added
  51.                                     fViewAsFrameToken
  52.          <2>      9/6/94    RR        Added utility methods for event propagation
  53.          <1>     6/24/94    RR        first checked in
  54.         <14>     3/15/94    MB        Changes to support SCpp/ASLM builds,
  55.                                     #1150864.
  56.         <13>     2/16/94    JA        Stop including Point.h.
  57.         <12>      2/9/94    NP        Tiger Team cleanup.
  58.         <11>     1/21/94    RR        Restored Dispatch() signature
  59.         <10>     1/18/94    RR        Add fScrollingFocus. Added DispatchTheEvent
  60.                                     to propagate to container where appropriate
  61.          <9>     1/15/94    RR        WinState.h->WinStat.h,
  62.                                     Dispatch.h->Disptch.h
  63.          <8>     1/11/94    Té        Init... changes
  64.          <7>    12/20/93    RR        New init strategy
  65.          <6>    12/16/93    RR        DispatchToFacetUnderPoint became a member
  66.                                     function
  67.          <5>     12/2/93    RR        Use new eventType definition
  68.          <4>    11/19/93    RR        Added DispatchWindowEvent
  69.          <3>     8/13/93    CG        Added ASLM stuff.
  70.          <2>     8/11/93    RR        Added fields to cache handy references to
  71.                                     session globals
  72.          <1>     8/10/93    RCR        first checked in
  73.  
  74.     To Do:
  75. */
  76.  
  77. #ifndef _STDDISPM_
  78. #define _STDDISPM_
  79.  
  80. #ifndef _ODTYPES_
  81. #include "ODTypes.h"
  82. #endif
  83.  
  84. #ifndef _PLFMDEF_
  85. #include "PlfmDef.h"
  86. #endif
  87.  
  88. //=====================================================================================
  89. // Classes defined in this interface
  90. //=====================================================================================
  91.  
  92. class MacDispatchModule;
  93.  
  94. //=====================================================================================
  95. // Classes used by this interface
  96. //=====================================================================================
  97.  
  98. class ODWindow;
  99. class ODWindowState;
  100. class ODArbitrator;
  101. class ODDispatcher;
  102. class ODSession;
  103. class ODFrame;
  104. class ODFacet;
  105.  
  106. //=====================================================================================
  107. // Global Variables
  108. //=====================================================================================
  109.  
  110. //=====================================================================================
  111. // MacDispatchModule
  112. //=====================================================================================
  113.  
  114. class MacDispatchModule 
  115. {
  116. public:
  117.  
  118.     MacDispatchModule();
  119.             
  120.     ~MacDispatchModule();
  121.     
  122.     ODNVMethod void InitMacDispatchModule(Environment* ev, ODSession* session);
  123.  
  124.     ODNVMethod ODBoolean Dispatch(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  125.  
  126. protected:
  127.  
  128.     ODNVMethod void DispatchOSEvent(Environment* ev, ODEventData* event);
  129.     ODNVMethod void MouseMoved(Environment* ev, ODEventData* theEvent);
  130.     ODNVMethod void SuspendResume(Environment* ev, ODEventData* theEvent);
  131.     
  132.     ODNVMethod ODBoolean DispatchMouseDownEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  133.     ODNVMethod ODBoolean DispatchMouseUpEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  134.     ODNVMethod ODBoolean DispatchMenuEvent (Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo);
  135.     ODNVMethod ODBoolean DispatchMouseDownInContent (Environment* ev, ODWindow* theWindow,
  136.                                                 ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  137.     ODNVMethod ODBoolean DispatchMouseDownInBorder(Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  138.     ODNVMethod ODBoolean DispatchMouseDownEmbedded(Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  139.     ODNVMethod ODBoolean DispatchMouseUpEmbedded(Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  140.     ODNVMethod ODBoolean DispatchKeyDownEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  141.     ODNVMethod ODBoolean DispatchKeyUpEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  142.     
  143.     ODNVMethod ODBoolean DispatchUpdateEvent(Environment* ev, ODEventData* event);
  144.     ODNVMethod ODBoolean DispatchActivateEvent(Environment* ev, ODEventData* event);
  145.  
  146.     ODNVMethod ODBoolean DispatchWindowEvent(Environment* ev, ODWindow* window, 
  147.                                 short partCode, ODEventData* theEvent, ODEventInfo* eventInfo);
  148.  
  149.     ODNVMethod ODBoolean DispatchToFacetUnderPoint(Environment* ev, ODWindow* window, ODPoint& windowPt, 
  150.                                                     ODEventData* theEvent, ODEventInfo* eventInfo);
  151.  
  152.     ODNVMethod ODBoolean DispatchTheEvent(Environment* ev, 
  153.                             ODEventData* theEvent, 
  154.                             ODFrame* targetFrame,
  155.                             ODFacet* targetFacet,
  156.                             ODEventInfo* eventInfo);
  157.                             
  158.     ODNVMethod ODBoolean PropagateTheEvent(Environment* ev, 
  159.                             ODEventData* theEvent, 
  160.                             ODFrame* initialFrame,
  161.                             ODFacet* initialFacet,
  162.                             ODEventInfo* eventInfo);
  163.         
  164. protected:
  165.  
  166.     // Caches for frequently accessed items
  167.     ODSession*         fSession;
  168.     ODArbitrator*     fArbitrator;
  169.     ODWindowState* fWindowState;
  170.     ODDispatcher*     fDispatcher;
  171.  
  172.     ODTypeToken fKeyFocusToken;
  173.     ODTypeToken fMenuFocusToken;
  174.     ODTypeToken fSelectionFocusToken;
  175.     ODTypeToken fModalFocusToken;
  176.     ODTypeToken fMouseFocusToken;
  177.     ODTypeToken fScrollingFocusToken;
  178.     ODTypeToken fLargeIconViewToken;
  179.     ODTypeToken fSmallIconViewToken;
  180.     ODTypeToken fThumbnailViewToken;
  181.     
  182.     ODFacet* fMouseDownFacet; // The facet to which the last mouse down in border was sent. Used for the mouse up
  183.     ODFacet* fEmbeddedFacet;  // The embedded facet fpr a kODEvtMouseDownEmbedded. Used for the mouse up
  184.     ODBoolean fSuppressMouseUp;    // Mouse down outside active border; Background mouse down
  185. };
  186. #endif // _STDDISPM_
  187.  
  188. #endif // _PLATFORM_MACINTOSH_
  189.