X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d8dd53b239aa76efe99e7ce9e441f9954e1b84b7..13db99f1f56f8985adf9f3bdc6f1b68d4a358b94:/wxPython/wx/lib/art/img2pyartprov.py diff --git a/wxPython/wx/lib/art/img2pyartprov.py b/wxPython/wx/lib/art/img2pyartprov.py new file mode 100644 index 0000000000..79945efbbe --- /dev/null +++ b/wxPython/wx/lib/art/img2pyartprov.py @@ -0,0 +1,58 @@ +#----------------------------------------------------------------------------- +# Name: img2pyartprov.py +# Purpose: +# +# Author: Riaan Booysen +# +# RCS-ID: $Id$ +# Copyright: (c) 2006 +# Licence: wxPython +#----------------------------------------------------------------------------- +""" ArtProvider class that publishes images from modules generated by img2py. + +Image modules must be generated with the -u and -n parameters. + +Typical usage: +>>> import wx, wx.lib.art.img2pyartprov, myimagemodule +>>> wx.ArtProvider.PushProvider(wx.lib.art.img2pyartprov.Img2PyArtProvider(myimagemodule)) + +If myimagemodule.catalog['MYIMAGE'] is defined, it can be accessed as: +>>> wx.ArtProvider.GetBitmap('wxART_MYIMAGE') + +""" + +import wx + +_NULL_BMP = wx.NullBitmap +class Img2PyArtProvider(wx.ArtProvider): + def __init__(self, imageModule, artIdPrefix='wxART_'): + self.catalog = {} + self.index = [] + self.UpdateFromImageModule(imageModule) + self.artIdPrefix = artIdPrefix + + wx.ArtProvider.__init__(self) + + def UpdateFromImageModule(self, imageModule): + try: + self.catalog.update(imageModule.catalog) + except AttributeError: + raise Exception, 'No catalog dictionary defined for the image module' + + try: + self.index.extend(imageModule.index) + except AttributeError: + raise Exception, 'No index list defined for the image module' + + def GenerateArtIdList(self): + return [self.artIdPrefix+name for name in self.index] + + def CreateBitmap(self, artId, artClient, size): + if artId.startswith(self.artIdPrefix): + name = artId[len(self.artIdPrefix):] + if name in self.catalog: + return self.catalog[name].getBitmap() + + return _NULL_BMP + +