home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / c / fli106c / winecho.cpp < prev    next >
C/C++ Source or Header  |  1992-03-11  |  2KB  |  105 lines

  1. //
  2. // The Fusion Library Interface for DOS
  3. // Version 1.06c
  4. // Copyright (C) 1990, 1991, 1992
  5. // Software Dimensions
  6. //
  7. // FusionWindow
  8. //
  9.  
  10. #include "fliwin.h"
  11.  
  12. #ifdef __BCPLUSPLUS__
  13. #pragma hdrstop
  14. #endif
  15.  
  16. #include <alloc.h>
  17.  
  18. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  19. //
  20. // CheckEcho()
  21. //
  22. // Checks for a signaling echo
  23. //
  24. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  25.  
  26. int FusionWindow::CheckEcho()
  27. {
  28.   if (!NumberOfWindows)
  29.     return 0;
  30.  
  31.   return Windows[0]->Echo();
  32. }
  33.  
  34. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  35. //
  36. // CheckForEcho()
  37. //
  38. // Checks all windows for a signaling echo
  39. //
  40. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  41.  
  42. int FusionWindow::CheckForEcho(int Signal)
  43. {
  44.   if (!NumberOfWindows)
  45.     return 0;
  46.  
  47.   for (int i=0,j=0;i<NumberOfWindows;i++)
  48.     if (Windows[i]->Echo()==Signal)
  49.       j++;
  50.  
  51.   return j;
  52. }
  53.  
  54. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  55. //
  56. // CloseEcho(int Echo)
  57. //
  58. // Closes all windows matching an echoing signal
  59. //
  60. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  61.  
  62. void FusionWindow::CloseEcho(int Echo)
  63. {
  64. TryAgain:
  65.  
  66.   if (!NumberOfWindows)
  67.     return;
  68.  
  69.   if (!Echo)
  70.   {
  71.     int WinCount=NumberOfWindows;
  72.     for (int i=0;i<WinCount;i++)
  73.       CloseWindow();
  74.   }
  75.   else
  76.   {
  77.     for (int i=0;i<NumberOfWindows;i++)
  78.     {
  79.       if (Echo==Windows[i]->Echo())
  80.       {
  81.         CallWindow(i);
  82.         CloseWindow();
  83.         goto TryAgain;
  84.       }
  85.     }
  86.   }
  87. }
  88.  
  89. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  90. //
  91. // FreshEcho(int Echo)
  92. //
  93. // Freshes all windows (currently doesn't respond to echo)
  94. //
  95. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  96.  
  97. #pragma warn -par
  98.  
  99. void FusionWindow::FreshEcho(int Echo)
  100. {
  101.   RefreshWindows();
  102. }
  103.  
  104. #pragma warn .par
  105.