home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0040 - 0049 / ibm0040-0049 / ibm0040.tar / ibm0040 / ZINC_6.ZIP / DOSSRC.ZIP / MAP1.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-01  |  1.1 KB  |  40 lines

  1. //    Zinc Interface Library - MAP1.CPP
  2. //    COPYRIGHT (C) 1990, 1991.  All Rights Reserved.
  3. //    Zinc Software Incorporated.  Pleasant Grove, Utah  USA
  4.  
  5. #include "ui_map.hpp"
  6.  
  7. UI_PALETTE *MapPalette(UI_PALETTE_MAP *mapTable, int logicalValue,
  8.     int id1, int id2, int id3, int id4, int id5)
  9. {
  10.     int level = 10;
  11.     UI_PALETTE *palette = &mapTable[0].palette;
  12.     int id[5] = { id1, id2, id3, id4, id5 };
  13.  
  14.     // Try to find a matching palette.
  15.     for (UI_PALETTE_MAP *map = mapTable; map->windowID != ID_END; map++)
  16.         if (map->windowID == id1 && FlagSet(map->logicalValue, logicalValue))
  17.             return(&map->palette);
  18.         else
  19.         {
  20.             for (int i = 0; i < 5; i++)
  21.                 if (map->windowID == id[i] &&
  22.                     map->logicalValue == PM_ANY && level > 2 * i + 1)
  23.                 {
  24.                     level = 2 * i + 1;
  25.                     palette = &map->palette;
  26.                     break;
  27.                 }
  28.                 else if (map->windowID == id[i] &&
  29.                     FlagSet(map->logicalValue, logicalValue) && level > 2 * i)
  30.                 {
  31.                     level = 2 * i;
  32.                     palette = &map->palette;
  33.                     break;
  34.                 }
  35.         }
  36.  
  37.     // Return the logical match palette.
  38.     return (palette);
  39. }
  40.