home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / sdktools / windiff / windiff.h < prev    next >
C/C++ Source or Header  |  1997-10-05  |  4KB  |  134 lines

  1.  
  2. /******************************************************************************\
  3. *       This is a part of the Microsoft Source Code Samples. 
  4. *       Copyright (C) 1993-1997 Microsoft Corporation.
  5. *       All rights reserved. 
  6. *       This source code is only intended as a supplement to 
  7. *       Microsoft Development Tools and/or WinHelp documentation.
  8. *       See these sources for detailed information regarding the 
  9. *       Microsoft samples programs.
  10. \******************************************************************************/
  11.  
  12. /*
  13.  * WINDIFF.H
  14.  */
  15.  
  16. /* application-wide variables -------------------------------------*/
  17.  
  18. /* This is the section name in the win.ini file to which we
  19.  * write profile info
  20.  */
  21. #define APPNAME "WinDiff"
  22.  
  23. /* A gmem_init() heap shared by the app. call gmem_get to alloc. */
  24. extern HANDLE hHeap;
  25.  
  26. /* The instance handle for this app. Needed by anyone who uses resources
  27.  * such as dialogs
  28.  */
  29. extern HINSTANCE hInst;
  30.  
  31. extern HWND hwndClient;
  32. extern HWND hwndRCD;
  33.  
  34. /* global option flags-------------------------------------------  */
  35.  
  36. /* Which files do we show in outline mode ? all, changed... */
  37. extern int outline_include;
  38.  
  39. /* Outline_include is an OR of the following */
  40. #define INCLUDE_SAME            1
  41. #define INCLUDE_DIFFER          2
  42. #define INCLUDE_LEFTONLY        4
  43. #define INCLUDE_RIGHTONLY       8
  44.  
  45.  
  46. /* Do we ignore blanks during the line-by-line diff ? */
  47. extern BOOL ignore_blanks;
  48.  
  49. /* Which line numbers do we show - left original, right original or none ?*/
  50. extern int line_numbers;
  51.  
  52. /* What lines do we show in expand mode - all, left only, right only ? */
  53. extern int expand_mode;
  54.  
  55. /*--- colour scheme ----------------------------------------------  */
  56.  
  57. /* Outline */
  58. extern DWORD rgb_outlinehi;
  59.  
  60. /* Expand view */
  61. extern DWORD rgb_leftfore;
  62. extern DWORD rgb_leftback;
  63. extern DWORD rgb_rightfore;
  64. extern DWORD rgb_rightback;
  65. extern DWORD rgb_mleftfore;
  66. extern DWORD rgb_mleftback;
  67. extern DWORD rgb_mrightfore;
  68. extern DWORD rgb_mrightback;
  69.  
  70. /* Bar window */
  71. extern DWORD rgb_barleft;
  72. extern DWORD rgb_barright;
  73. extern DWORD rgb_barcurrent;
  74.  
  75.  
  76.  
  77. /* -- display layout constants---------------------------------------*/
  78.  
  79. /* Percentage of width of window taken by bar display (when visible) */
  80. #define BAR_WIN_WIDTH   10
  81.  
  82. /* Following are horizontal positions within the bar window, expressed
  83.  * in percent of the width of the bar window
  84.  */
  85. #define L_POS_START     10      /* start of left position marker */
  86. #define L_POS_WIDTH     5       /* width of left position marker */
  87. #define R_POS_START     80      /* start of right position marker */
  88. #define R_POS_WIDTH     5       /* width of right position marker */
  89.  
  90. #define L_UNMATCH_START 30      /* start of left bar for unmatched section */
  91. #define L_UNMATCH_WIDTH 10      /* width of above */
  92. #define R_UNMATCH_START 60      /* start of right bar for unmatch section */
  93. #define R_UNMATCH_WIDTH 10      /* width of right unmatched section marker */
  94. #define L_MATCH_START   30      /* start of left bar for matched section */
  95. #define L_MATCH_WIDTH   10      /* width of left bar for matched section */
  96. #define R_MATCH_START   60      /* start of right bar for matched section */
  97. #define R_MATCH_WIDTH   10      /* width of right bar for matched section */
  98.  
  99.  
  100.  
  101.  
  102. /* windiff.c functions */
  103. void windiff_UI(BOOL bAttach);
  104. BOOL Poll(void);                /* true if abort pending */
  105. void SetNames(LPSTR names);
  106. void SetStatus(LPSTR state);
  107.  
  108. /* in bar.c */
  109. BOOL InitBarClass(HINSTANCE hInstance);
  110. void BarDrawPosition(HWND hwndBar, HDC hdcIn, BOOL bErase);
  111.  
  112. /*-- private messages -- */
  113. /* Send this to the main window. Return value is the VIEW handle */
  114. #define TM_CURRENTVIEW  WM_USER
  115.  
  116.  
  117. /* --- synchronisation ----------------------------------------- */
  118. /*
  119.  * In WIN32 we spawn worker threads to do time-consuming actions.
  120.  * This causes a possible conflict with the UI thread when accessing the
  121.  * BUSY flag.
  122.  *
  123.  * To protect against this we have a critical section. The UI thread
  124.  * will get this before checking/changing the Busy flag,
  125.  * The worker thread will get this before Busy flag* changes.
  126.  *
  127.  */
  128.  
  129. CRITICAL_SECTION CSWindiff;
  130.  
  131. #define WDEnter()       EnterCriticalSection(&CSWindiff);
  132. #define WDLeave()       LeaveCriticalSection(&CSWindiff);
  133.  
  134.