view pytouhou/game/text.pxd @ 553:8f51e34d911c

Refactor graphics backend selection, to make them fallbackable and optional.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Thu, 29 May 2014 12:31:55 +0200
parents b895ed2de71f
children e15672733c93
line wrap: on
line source

from pytouhou.game.element cimport Element
from pytouhou.game.sprite cimport Sprite
from pytouhou.utils.interpolator cimport Interpolator

cdef class Glyph(Element):
    pass


cdef class Widget(Element):
    cdef public object update
    cdef public bint changed

    cdef unsigned long frame
    cdef object back_anm

    #def update(self)


cdef class GlyphCollection(Widget):
    cdef Sprite ref_sprite
    cdef object anm
    cdef list glyphes
    cdef long xspacing

    cpdef set_length(self, unsigned long length)
    cpdef set_sprites(self, list sprite_indexes)
    cpdef set_color(self, text=*, color=*)
    cpdef set_alpha(self, unsigned char alpha)


cdef class Text(GlyphCollection):
    cdef bytes text
    cdef unsigned long timeout, duration, start
    cdef long shift
    cdef Interpolator fade_interpolator
    cdef unsigned char alpha

    cpdef set_text(self, bytes text)
    #def timeout_update(self)
    #def move_timeout_update(self)
    #def fadeout_timeout_update(self)
    cdef void fade(self, unsigned long duration, unsigned char alpha, formula=*) except *
    cpdef set_timeout(self, unsigned long timeout, str effect=*, unsigned long duration=*, unsigned long start=*)


cdef class Counter(GlyphCollection):
    cdef long value

    cpdef set_value(self, long value)


cdef class Gauge(Element):
    cdef public long value, max_length, maximum

    cpdef set_value(self, long value)
    cpdef update(self)


cdef class NativeText(Element):
    cdef public object update

    cdef unicode text
    cdef bytes align #TODO: use a proper enum.
    cdef unsigned long frame, timeout, duration, start
    cdef double to[2]
    cdef double end[2]
    cdef list gradient
    cdef Interpolator fade_interpolator, offset_interpolator

    #XXX
    cdef public bint shadow
    cdef public long width, height
    cdef public unsigned char alpha
    cdef public object texture

    #def normal_update(self)
    #def timeout_update(self)
    #def move_timeout_update(self)
    #def move_ex_timeout_update(self)
    #def fadeout_timeout_update(self)

    cdef void fade(self, unsigned long duration, unsigned char alpha, formula=*) except *
    cdef void move_in(self, unsigned long duration, double x, double y, formula=*) except *
    cpdef set_timeout(self, unsigned long timeout, str effect=*, unsigned long duration=*, unsigned long start=*, to=*, end=*)