############################################################################# ## This file is part of the Ostendo Resource Manager. ## ##-------------------------------------------------------------------------## ## Copyright 2007-2008 Bryce Schroeder ## ## bryce.schroeder@gmail.com ## ## http://www.ferazelhosting.net/~bryce/ ## ##-------------------------------------------------------------------------## ## This program is free software: you can redistribute it and/or modify ## ## it under the terms of the GNU General Public License as published by ## ## the Free Software Foundation, either version 3 of the License, or ## ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## ## along with this program. If not, see . ## ############################################################################# #TODO - determine if this is finished or not! from .standard_interpreters import Resource, R import cStringIO import pygame class Theme(Resource): """ This class is for interface themes. """ MANDATORY = ['image'] #OPTIONAL = ['meta'] def init(self): self.meta = {} if self.parts.has_key('meta'): self.meta = self.process_meta(self.parts['meta']) self.surface = pygame.image.load(cStringIO.StringIO( self.parts['image'])).convert_alpha() def blit(self, tile, target, x, y): """ tile is a two digit hex number, 00-FF, or a tuple. If it is a hex number, the first digit is X and the second is Y. X and Y are in tiles = multiplied by 16. """ if isinstance(tile, int): tile = (tile&0xF0), (tile&0xF)<<4 else: tile = (tile[0]*16,tile[1]*16) target.blit(self.surface, (x,y), tile+(16,16))