home *** CD-ROM | disk | FTP | other *** search
/ Executor 2.0 / executorv2.0.iso / pc / dos / extra / source / browser / browser.hqx / Browser / windlist.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-01  |  942 b   |  60 lines

  1. #include "windlist.h"
  2. #include "go.h"
  3.  
  4. typedef struct browser_link_str
  5. {
  6.   WindowPtr wp;
  7.   struct browser_link_str *next;
  8. } browser_link_t;
  9.  
  10. static browser_link_t *head;
  11.  
  12. void
  13. add_browser_window (WindowPtr wp)
  14. {
  15.   browser_link_t *newp;
  16.   
  17.   newp = (browser_link_t *) NewPtr (sizeof (*newp));
  18.   newp->next = head;
  19.   newp->wp = wp;
  20.   head = newp;
  21. }
  22.  
  23. static browser_link_t **
  24. findpp (WindowPtr wp)
  25. {
  26.   browser_link_t **retval;
  27.   
  28.   for (retval = &head; *retval && (*retval)->wp != wp; retval = &(*retval)->next)
  29.     ;
  30.   return retval;
  31. }
  32.  
  33. void
  34. remove_browser_window (WindowPtr wp)
  35. {
  36.   browser_link_t **pp;
  37.   
  38.   pp = findpp (wp);
  39.   if (*pp)
  40.     {
  41.       browser_link_t *p;
  42.       
  43.       p = *pp;
  44.       *pp = p->next;
  45.       DisposePtr ((Ptr) p);
  46.     }
  47. }
  48.  
  49.  
  50. boolean_t
  51. browser_window_p (WindowPtr wp)
  52. {
  53.   return *(findpp (wp)) ? TRUE : FALSE;
  54. }
  55.  
  56. boolean_t
  57. browser_or_hotband_window_p (WindowPtr wp)
  58. {
  59.   return wp == g_hotband || browser_window_p (wp);
  60. }