def draw_character_key(self, surface, key, special=False):
background_color = self.key_background_color<EOL>if special and self.special_key_background_color is not None:<EOL><INDENT>background_color = self.special_key_background_color<EOL><DEDENT>pygame.draw.rect(surface, background_color[key.state], key.position + key.size)<EOL>size = self.font.size(key.value)<EOL>x = key.position[<NUM_LIT:0>] + ((key.size[<NUM_LIT:0>] - size[<NUM_LIT:0>]) / <NUM_LIT:2>)<EOL>y = key.position[<NUM_LIT:1>] + ((key.size[<NUM_LIT:1>] - size[<NUM_LIT:1>]) / <NUM_LIT:2>)<EOL>surface.blit(self.font.render(key.value, <NUM_LIT:1>, self.text_color[key.state], None), (x, y))<EOL>
Default drawing method for key. 

        Key is drawn as a simple rectangle filled using this
        cell style background color attribute. Key value is printed
        into drawn cell using internal font.

        :param surface: Surface background should be drawn in.
        :param key: Target key to be drawn.
        :param special: BOolean flag that indicates if the drawn key should use special background color if available.