from kivy._event cimport EventDispatcher, EventObservers, BoundCallback, \ cache_properties_per_cls from kivy._metrics cimport dpi2px, pixel_scale_observers cdef class PropertyStorage: cdef object value cdef EventObservers observers cdef Property property_obj cdef class Property: cdef str _name cdef int allownone cdef int force_dispatch cdef object comparator cdef object errorvalue cdef object errorhandler cdef int errorvalue_set cdef public object defaultvalue cdef int deprecated cdef init_storage(self, EventDispatcher obj, PropertyStorage storage) cdef PropertyStorage create_property_storage(self) cdef inline PropertyStorage get_property_storage(self, EventDispatcher obj) cpdef set_name(self, EventDispatcher obj, str name) cpdef PropertyStorage link_eagerly(self, EventDispatcher obj) cpdef PropertyStorage link(self, EventDispatcher obj, str name) cpdef link_deps(self, EventDispatcher obj, str name) cpdef bind(self, EventDispatcher obj, observer) cpdef fbind(self, EventDispatcher obj, observer, int ref, tuple largs=*, dict kwargs=*) cpdef unbind(self, EventDispatcher obj, observer, int stop_on_first=*) cpdef funbind(self, EventDispatcher obj, observer, tuple largs=*, dict kwargs=*) cpdef unbind_uid(self, EventDispatcher obj, object uid) cdef compare_value(self, a, b) cpdef set(self, EventDispatcher obj, value) cpdef get(self, EventDispatcher obj) cdef check(self, EventDispatcher obj, x, PropertyStorage property_storage) cdef convert(self, EventDispatcher obj, x, PropertyStorage property_storage) cpdef dispatch(self, EventDispatcher obj) cdef _dispatch(self, EventDispatcher obj, PropertyStorage ps) cdef class NumericPropertyStorage(PropertyStorage): cdef object numeric_fmt cdef object original_num cdef class NumericProperty(Property): cdef float parse_str( self, EventDispatcher obj, value, NumericPropertyStorage ps) except * cdef float parse_list( self, EventDispatcher obj, value, ext, NumericPropertyStorage ps) except * cdef class StringProperty(Property): pass cdef class ListProperty(Property): pass cdef class DictProperty(Property): cdef public int rebind cdef class ObjectProperty(Property): cdef object baseclass cdef public int rebind cdef class BooleanProperty(Property): pass cdef class BoundedNumericPropertyStorage(PropertyStorage): cdef long bnum_min cdef long bnum_max cdef float bnum_f_min cdef float bnum_f_max cdef int bnum_use_min cdef int bnum_use_max cdef class BoundedNumericProperty(Property): cdef int use_min cdef int use_max cdef long min cdef long max cdef float f_min cdef float f_max cdef class OptionPropertyStorage(PropertyStorage): cdef list options cdef class OptionProperty(Property): cdef list options cdef class ReferenceListPropertyStorage(PropertyStorage): cdef tuple properties cdef int stop_event cdef class ReferenceListProperty(Property): cdef list properties cpdef trigger_change(self, EventDispatcher obj, value) cpdef setitem(self, EventDispatcher obj, key, value) cdef class AliasPropertyStorage(PropertyStorage): cdef object getter cdef object setter cdef int alias_initial cdef class AliasProperty(Property): cdef object getter cdef object setter cdef int watch_before_use cdef list bind_objects cdef int use_cache cdef public int rebind cpdef trigger_change(self, EventDispatcher obj, value) cdef class VariableListPropertyStorage(PropertyStorage): cdef object original_num cdef int uses_scaling cdef class VariableListProperty(Property): cdef public int length cdef _convert_numeric(self, EventDispatcher obj, x, VariableListPropertyStorage ps) cdef float parse_str( self, EventDispatcher obj, value, VariableListPropertyStorage ps ) except * cdef float parse_list( self, EventDispatcher obj, value, ext, VariableListPropertyStorage ps ) except * cdef class ConfigParserProperty(Property): cdef object config cdef object section cdef object key cdef object val_type cdef object verify cdef object obj cdef object last_value # last string config value cdef object config_name cpdef _edit_setting(self, section, key, value) cdef inline object _parse_str(self, object value) cdef class ColorProperty(Property): cdef list parse_str(self, EventDispatcher obj, value) cdef object parse_list(self, EventDispatcher obj, value)