home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 April / enter-2004-04.iso / files / EVE_1424_100181.exe / SimplePalette.py < prev    next >
Encoding:
Python Source  |  2004-04-20  |  1.3 KB  |  53 lines

  1. class Palette:
  2.     def __init__(self):
  3.         self.__dict__['palette'] = []
  4.  
  5.     def __call__(self, rgb, g=None, b=None):
  6.         if (g,b) != (None,None):
  7.             rgb = (rgb,g,b)
  8.         # map rgb tuple to colour index
  9.         try:
  10.             return self.palette.index(rgb)
  11.         except:
  12.             i = len(self.palette)
  13.             if i >= 256:
  14.                 raise RuntimeError, "all palette entries are used"
  15.             self.palette.append(rgb)
  16.             return i
  17.     
  18.     def __setattr__(self, name, value):
  19.         ' assign an attribute of a given colour to the palette entry '
  20.         self.__dict__[name] = self.__call__(value)
  21.  
  22.     def __getitem__(self, name):
  23.         ' allow dict lookups using colour names '
  24.         return self.__dict__[name]
  25.  
  26.     def getpalette(self):
  27.         # return flattened palette
  28.         palette = []
  29.         for r, g, b in self.palette:
  30.             palette = palette + [r, g, b]
  31.         return palette
  32.  
  33.     def simple_palette(self):
  34.         self.white = (255, 255, 255)
  35.         self.lightgrey = (200, 200, 200)
  36.         self.lightmediumgrey = (150, 150, 150)
  37.         self.mediumgrey = (100, 100, 100)
  38.         self.darkgrey = (50, 50, 50)
  39.         self.black = (0, 0, 0)
  40.  
  41.         self.blue = (0, 0, 255) 
  42.         self.lightblue = (128, 128, 255) 
  43.         self.green = (0, 255, 0)
  44.  
  45.         self.lightgreen = (128, 255, 128)
  46.         self.red = (255, 0, 0)
  47.         self.lightred = (255, 128, 128)
  48.  
  49.         self.cyan = (0, 255, 255)
  50.         self.purple = (255, 0, 255)
  51.         self.yellow = (255, 255, 0)
  52.  
  53.