home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / education / a / biology1 / !Biology1 / c / Icons < prev    next >
Text File  |  1991-12-02  |  1KB  |  46 lines

  1. /* Icons.c */
  2. /* General bits n bobs for icons */
  3.  
  4. #include <string.h>
  5.  
  6. #include "wimp.h"
  7.  
  8. #include "icons.h"
  9.  
  10. void icon_select (wimp_w wnd, wimp_i icon, icon_select_command comm)
  11.   {
  12.     wimp_iconflags value = (comm==on || comm==perm_on ? wimp_ISELECTED : 0);
  13.     wimp_iconflags mask  = wimp_ISELECTED |
  14.                        (comm==perm_on || comm==perm_off ? wimp_IBTYPE*15 : 0);
  15.     wimp_icon info;
  16.     wimp_redrawstr r;
  17.  
  18.     wimp_get_icon_info (wnd, icon, &info);
  19.  
  20.     wimp_set_icon_state (wnd, icon, value, mask);
  21.  
  22.     /* Only force redraw if we've actually changed something visible */
  23.  
  24.     if (((info.flags & wimp_ISELECTED) == wimp_ISELECTED)
  25.               != (comm == on || comm == perm_on))
  26.       {
  27.         r.w = wnd;
  28.         memcpy (&r.box, &info.box, sizeof (wimp_box));
  29.  
  30.         wimp_force_redraw (&r);
  31.       }
  32.   }
  33.  
  34. void icon_redraw (wimp_w wnd, wimp_i icon)
  35.   {
  36.     wimp_icon info;
  37.     wimp_redrawstr r;
  38.  
  39.     wimp_get_icon_info (wnd, icon, &info);
  40.  
  41.     r.w = wnd;
  42.     memcpy (&r.box, &info.box, sizeof (wimp_box));
  43.  
  44.     wimp_force_redraw (&r);
  45.   }
  46.