import pygtk
pygtk.require("2.0")

import gobject, gtk

class Cell(gtk.EventBox):

    def __init__(self):
        gobject.GObject.__init__(self)
        self.set_border_width(1)
        
        self.__frame = gtk.Frame(None)
        self.__frame.set_shadow_type(gtk.SHADOW_OUT)
        self.add(self.__frame)
        self.__frame.show_all()

        bg = self.get_colormap().alloc_color("yellow")
        style = self.get_style().copy()
        style.bg[gtk.STATE_PRELIGHT] = bg
        self.set_style(style)


    def set_color(self, background=None, foreground=None):
        bg = background and self.get_colormap().alloc_color(background)
        fg = foreground and self.get_colormap().alloc_color(foreground)
        style = self.get_style().copy()
        style.bg[gtk.STATE_NORMAL] = bg
        style.fg[gtk.STATE_NORMAL] = fg
        self.set_style(style)


    def set_text(self, text=""):
        for c in self.__frame.get_children():
            self.__frame.remove(c)
        w = gtk.Label(text)
        w.set_padding(5, 5)
        w.show_all()
        self.__frame.add(w)


gobject.type_register(Cell)
