00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 import gtk
00029 import os
00030 import pixmaps
00031
00032
00033 class PixMan(object):
00034 """
00035 Pixbuf Manager
00036 """
00037 def __init__(self, w):
00038 self.__pixbufs = { }
00039 self.__w = w
00040 self.create_from_data("arrow", pixmaps.right_arrow)
00041 self.create_from_file("brkpnt", "stop.png")
00042
00043
00044 def create_from_data(self, name, pixdata, width = 20, height = 20):
00045 try:
00046 pixbuf = gtk.gdk.pixbuf_new_from_xpm_data(pixdata)
00047 except:
00048 colormap = self.__w.get_colormap()
00049 pix, mask = gtk.gdk.pixmap_colormap_create_from_xpm_d(
00050 None,
00051 colormap,
00052 None,
00053 pixdata)
00054 pixbuf = gtk.gdk.Pixbuf(
00055 gtk.gdk.COLORSPACE_RGB,
00056 True,
00057 8,
00058 20,
00059 20)
00060 pixbuf.get_from_drawable(mask, colormap, 0, 0, 0, 0, -1, -1)
00061 self.__pixbufs[name] = pixbuf
00062
00063
00064 def create_from_file(self, name, filename):
00065 topPath = os.environ["ZTOP"]
00066 try:
00067
00068 filename = topPath + "/view/" + filename
00069 pixbuf = gtk.gdk.pixbuf_new_from_file(filename)
00070 self.__pixbufs[name] = pixbuf
00071 except:
00072 pass
00073
00074
00075 def get_pixbuf(self, name):
00076
00077 try:
00078 return self.__pixbufs[name]
00079 except KeyError:
00080 return None
00081
00082
00083 def compose(self, first, second):
00084 "Compose two pixbufs"
00085 pixbuf = first.copy()
00086 second.composite(
00087 pixbuf, 0, 0,
00088 first.props.width, first.props.height,
00089 0, 0,
00090 1.0, 1.0,
00091 gtk.gdk.INTERP_HYPER,
00092 127)
00093 return pixbuf
00094