PDA

View Full Version : Reneder for picon?



fairbird
18-10-13, 19:18
29530Hi alll...
I'm looking for any reneder to make autoscale for picons, what mean to change size for picons from (100X60) to (250X250) as widget on skin.xml ...
Actually i'm using (eXcPicon) below code for it (BUT) this reneder make some problem
with shutdown ... box doesn't shutdown if you selected this reneder
change shutdown to restart...



from Renderer import Renderer
from enigma import ePixmap, eEnv, ePicLoad
from Tools.Directories import fileExists, SCOPE_SKIN_IMAGE, SCOPE_CURRENT_SKIN, resolveFilename

class eXcPicon(Renderer):
searchPaths = (eEnv.resolve('${datadir}/enigma2/%s/'),
'/media/cf/%s/',
'/media/usb/%s/',
'/media/ba/%s/',
'/media/hdd/%s/')

def __init__(self):
Renderer.__init__(self)
self.path = 'picon'
self.nameCache = {}
self.pngname = ''

def applySkin(self, desktop, parent):
attribs = []
for attrib, value in self.skinAttributes:
if attrib == 'path':
self.path = value
else:
attribs.append((attrib, value))

self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)

GUI_WIDGET = ePixmap

def changed(self, what):
if self.instance:
pngname = ''
if what[0] != self.CHANGED_CLEAR:
sname = self.source.text
pos = sname.rfind(':')
if pos != -1:
sname = sname[:pos].rstrip(':').replace(':', '_')
pngname = self.nameCache.get(sname, '')
if pngname == '':
pngname = self.findPicon(sname)
if pngname != '':
self.nameCache[sname] = pngname
if pngname == '':
pngname = self.nameCache.get('default', '')
if pngname == '':
pngname = self.findPicon('picon_default')
if pngname == '':
tmp = resolveFilename(SCOPE_CURRENT_SKIN, 'picon_default.png')
if fileExists(tmp):
pngname = tmp
else:
pngname = resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/picon_default.png')
self.nameCache['default'] = pngname
if self.pngname != pngname:
self.picload = ePicLoad()
self.picload.PictureData.get().append(self.piconSh ow)
self.picload.setPara((self.instance.size().width() ,
self.instance.size().height(),
1,
1,
False,
1,
'#00000000'))
self.picload.startDecode(pngname)
self.pngname = pngname

def piconShow(self, picInfo = None):
ptr = self.picload.getData()
if ptr != None:
self.instance.setPixmap(ptr.__deref__())
return

def findPicon(self, serviceName):
for path in self.searchPaths:
pngname = path % self.path + serviceName + '.png'
if fileExists(pngname):
return pngname

return ''



So please if any one have any other render send it to me if you can...

Thank you advanced...

fairbird
18-10-13, 23:44
Find (CoolPico) ... work well
Thank you (Maggy)

judge
18-10-13, 23:50
??????????

Rob van der Does
19-10-13, 07:41
If you would be using ViX you would see that the image has auto-scaling of picons embedded.