「轉」高仿X管理器进度条、提示框模块 by爱不只是说说

@Ta 2012-10-23 3882点击
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()
回复列表(3|隐藏机器人聊天)
添加新回复
回复需要登录