「轉」高仿X管理器进度条、提示框模块
by爱不只是说说
by爱不只是说说
2011/01/24
'''
cn = lambda x:unicode(x,'utf8','ignore')
zt = 'dense'
class Module:
def __init__(s):
import e32
import sysinfo
import graphics
import topWindow
s.E, s.G, s.T = e32, graphics, topWindow.TopWindow()
s.x, s.y = sysinfo.display_pixels()
s.T.position=(14,s.y/2-30)
s.T.size=(s.x-28, 60)
# s.T.shadow=1
s.x, s.y = s.x-28, 60
s.img = s.G.Image.new((s.x, s.y))
m = Module()
del Module
class note:
def __init__(s, title='', content = '', cut='info', delay=3):
if cut=='error':
(r, g, b)=(189,48,49)
else:
(r, g, b)=(99,97,189)
m.img.rectangle((0, 0,m.x, m.y), 0, 0xdef7de)
for i in range(20):m.img.line((2,21-i, m.x-1, 21-i), (r+i*2, g+i*2, b+i*2), 1)
m.img.text((10,20),cn('%s'%title),0,(zt,16))
m.img.text((10,55),cn('%s'%content),0,(zt,16))
m.T.add_image(m.img,(0,0))
m.T.show()
m.E.ao_sleep(delay)
m.T.hide()
class progress:
def __init__(s, title='', content = ''):
s.img =m.G.Image.new((m.x, m.y))
m.img.rectangle((0, 0,m.x, m.y), 0, 0xdef7de)
for i in range(20):m.img.line((2,21-i, m.x-1, 21-i), (148+i*2, 154+i*2, 156+i*2), 1)
m.img.text((10,20),cn('%s'%title),0,(zt,16))
m.img.text((10,40),cn('%s'%content),0,(zt,14))
s.img.blit(m.img)
s.img.rectangle((9,40,m.x-10, 55), 0x848484, 0x848484)
m.T.add_image(s.img,(0,0))
m.img.rectangle((9,40,m.x-10, 55), 0x5a695a, 0xdef7de)
h, r, g, b = m.x-21, 255, 0, 0
x, s.h = 1020/h, h/100.
for i in range(h):
if g<255-x and r==255:g+=x
elif x<r:g=255;r-=x
elif b<255-x:r=0;b+=x
elif x<g:b=255;g-=x
m.img.line((11+i, 42, 11+i, 54), (r, g, b))
del i, x, h, r, g, b, title
m.T.show()
def bar(s, k=0, content=''):
s.img.blit(m.img)
s.img.rectangle((11+k*s.h,40,m.x-10, 55), 0x848694, 0x848484)
s.img.text((m.x/2-20,55),cn('%s'%content),0,(zt,14))
m.T.add_image(s.img,(0,0))
def stop(s):
m.T.hide()
if __name__=='__main__':
note('提示:','Prompt提示框模块')
note('提示:','感觉效果如何?','error')
p=progress('请稍候……')
for i in range(101):
p.bar(i)
m.E.ao_sleep(0.05)
for i in range(101):
i=100-i
p.bar(i,'%s%s'%(i,'%'))
m.E.ao_sleep(0.05)
p.stop()