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

  1. /* @(#)Z 1.7 com/src/ui/DspUtilM.h, odui, od96os2, odos29646d 96/11/15 15:29:30 (96/07/15 18:26:23) */
  2. /*====START_GENERATED_PROLOG======================================
  3.  */
  4. /*
  5.  *   COMPONENT_NAME: odui
  6.  *
  7.  *   CLASSES: none
  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. /*
  29.     File:           DspUtilM.h
  30.  
  31.     Contains:       Dispatcher utilities.
  32.  
  33.     Owned by:       Richard Rodseth
  34.  
  35.     Copyright:      ⌐ 1995 by Apple Computer, Inc., all rights reserved.
  36.  
  37.     Change History (most recent first):
  38.  
  39.          <4>     8/29/95        RR              #1267251 Utilites for synthsized activate
  40.                                     events
  41.          <3>     5/25/95        jpa             Fixed usage of ODDebug. [1253321]
  42.          <2>     5/10/95        RR              # 1239139 Added LogEvent, and
  43.                                     GetActiveFacetWithBorderUnderPoint
  44.  
  45.     To Do:
  46.     In Progress:
  47. */
  48.  
  49. #ifndef _DSPUTILM_
  50. #define _DSPUTILM_
  51.  
  52. #ifndef _ODTYPES_
  53. #include "ODTypes.h"
  54. #endif
  55.  
  56. const kODGeneratedActivate = 0x0002;
  57.  
  58. class ODFacet;
  59. class ODFrame;
  60. class ODWindow;
  61.  
  62. void WindowToLocal(Environment* ev, ODPoint& point, ODFacet* facet);
  63.  
  64. ODFacet* GetActiveFacetWithBorderUnderPoint(Environment* ev, ODFrame* frame, ODWindow* window, ODPoint& windowPoint);
  65.  
  66. inline long Min(long a, long b)
  67. {
  68.     return a < b ? a : b;
  69. }
  70.  
  71. #ifdef _PLATFORM_MACINTOSH_
  72. inline void SetEvent(ODEventData& event, short what)
  73. {
  74.     event.what = what;
  75.     event.message = 0;
  76.     event.when = 0;
  77.     event.where.h = 0; event.where.v = 0;
  78.     event.modifiers = 0;
  79. }
  80.  
  81. inline void SetEvent(ODEventData& event, short what, Point globalWhere)
  82. {
  83.     event.what = what;
  84.     event.message = 0;
  85.     event.when = 0;
  86.     event.where.h = globalWhere.h; event.where.v = globalWhere.v;
  87.     event.modifiers = 0;
  88. }
  89. #endif // _PLATFORM_MACINTOSH_
  90.  
  91. #ifdef _PLATFORM_OS2_
  92. inline void SetEvent(ODEventData& event, HWND hwnd, ULONG msg, MPARAM mp1 = 0, MPARAM mp2 = 0)
  93. {
  94.   event.hwnd = hwnd;
  95.   event.msg = msg;
  96.   event.mp1 = mp1;
  97.   event.mp2 = mp2;
  98.   event.result = 0;
  99. }
  100. #endif // _PLATFORM_OS2_
  101.  
  102. #ifdef _PLATFORM_WIN32_
  103. inline void SetEvent(ODEventData& event, unsigned long what)
  104. {
  105.     event.hwnd = NULL;
  106.     event.message = what;
  107.     event.wParam = 0;
  108.     event.lParam = 0;
  109.     event.time = 0;
  110.     event.pt.x = 0; event.pt.y = 0;
  111. }
  112.  
  113. inline void SetEvent(ODEventData& event, unsigned long what, Point globalWhere)
  114. {
  115.     event.hwnd = NULL;
  116.     event.message = what;
  117.     event.wParam = 0;
  118.     event.lParam = 0;
  119.     event.time = 0;
  120.     event.pt.x = globalWhere.x; event.pt.y = globalWhere.y;
  121. }
  122. #endif // _PLATFORM_WIN32_
  123.  
  124. #ifdef _PLATFORM_MACINTOSH_
  125. inline void SetActivateEvent(ODEventData& event, WindowPtr window, ODBoolean activate)
  126. {       
  127.     event.what = activateEvt;
  128.     event.message = (long) window;
  129.     event.when = 0;
  130.     event.where.h = 0; event.where.v = 0;
  131.     if (activate)
  132.         event.modifiers = 1 | kODGeneratedActivate; 
  133.     else
  134.         event.modifiers = 0 | kODGeneratedActivate; 
  135. }
  136.  
  137. inline ODBoolean IsODActivateEvent(ODEventData& event)
  138. {       
  139.     return (event.modifiers & kODGeneratedActivate);
  140. }
  141. #endif // _PLATFORM_MACINTOSH_
  142.  
  143. #ifdef _PLATFORM_WIN32_
  144. inline void SetActivateEvent(ODEventData& event, WindowPtr window, ODBoolean activate)
  145. {       
  146.     event.hwnd    = (HWND)window;
  147.     event.message = WM_ACTIVATE;
  148.  
  149.     if (activate)
  150.         event.wParam = MAKEWPARAM(WA_ACTIVE,   0);
  151.     else
  152.         event.wParam = MAKEWPARAM(WA_INACTIVE, 0);
  153.  
  154.     event.lParam         = NULL;
  155.  
  156.     event.time = 0;
  157.     event.pt.x = 0; 
  158.     event.pt.y = 0;
  159. }
  160.  
  161. inline ODBoolean IsODActivateEvent(ODEventData& event)
  162. {       
  163.     return (LOWORD(event.wParam) == WA_ACTIVE);
  164.  
  165. }
  166. #endif // _PLATFORM_WIN32_
  167.  
  168. #ifdef _PLATFORM_OS2_
  169. inline void SetActivateEvent(ODEventData& event, WindowPtr window, ODBoolean activate)
  170. {       
  171.     event.hwnd = (HWND)window;
  172.     event.msg  = WM_ACTIVATE;
  173.  
  174.     if (activate)
  175.         event.mp1 = MPFROMSHORT(TRUE);
  176.     else
  177.         event.mp1 = MPFROMSHORT(FALSE);
  178.  
  179.     event.mp2     = MPFROMHWND(window);
  180.  
  181.     event.result  = MRFROMSHORT(0);
  182. }
  183.  
  184. inline ODBoolean IsODActivateEvent(ODEventData& event)
  185. {       
  186.     return SHORT1FROMMP(event.mp1);
  187. }
  188. #endif // _PLATFORM_OS2_
  189.  
  190. #if defined(_PLATFORM_MACINTOSH) || defined(_PLATFORM_WIN32_)
  191. inline void SetEventInfo(ODEventInfo& info, ODPoint where)
  192. {
  193.     info.embeddedFrame = kODNULL;
  194.     info.embeddedFacet = kODNULL;
  195.     info.where = where;
  196.     info.propagated = kODFalse;
  197. }
  198. #endif // _PLATFORM_MACINTOSH, _PLATFORM_WIN32_
  199.  
  200. #ifdef _PLATFORM_OS2_
  201. inline void SetEventInfo(ODEventInfo& info, ODPoint where, ODFrame* embeddedFrame = kODNULL,
  202.              ODFacet* embeddedFacet = kODNULL, ODULong flags = 0)
  203. {
  204.   info.embeddedFrame = embeddedFrame;
  205.   info.embeddedFacet = embeddedFacet;
  206.   info.where = where;
  207.   info.flags = flags;
  208. }
  209. #endif // _PLATFORM_OS2_
  210.  
  211.  
  212. #if ODDebug
  213. void LogEvent(ODEventData* event, ODEventInfo* eventInfo, ODFrame* frame, ODFacet* facet);
  214. #endif
  215.  
  216. #endif // _DSPUTILM_
  217.