import efl_types; struct @beta @free(efl_observable_tuple_free) Efl.Observable_Tuple { [[This type describes an observable touple]] key: string; [[Touple key]] data: iterator @owned; [[Touple data]] } class @beta Efl.Observable extends Efl.Object { [[Efl observable class]] methods { observer_add { [[Add an observer to a group of observers. Note: Observers that observe this observable are grouped by the $key and an observer can belong to multiple groups at the same time. ]] params { @in key: string; [[A key to classify observer groups]] @in obs: Efl.Observer; [[An observer object]] } } observer_del { [[Delete an observer from a group of observers. See also @.observer_add(). ]] params { @in key: string; [[A key to classify observer groups]] @in obs: Efl.Observer; [[An observer object]] } } observer_clean { [[Clear an observer from all groups of observers. ]] params { @in obs: Efl.Observer; [[An observer object]] } } observers_iterator_new { [[Return a new iterator associated with a group of observers. ]] return: iterator @owned; [[Iterator for observers group]] params { @in key: string; [[A key to classify observer groups]] } } observers_update { [[Update all observers in a group by calling their update() method. ]] params { @in key: string; [[A key to classify observer groups]] @in data: void_ptr; [[Required data to update observer]] } } iterator_tuple_new { [[Return a new iterator associated to this observable. ]] return: iterator @owned; [[Iterator for observer]] } } implements { Efl.Object.constructor; Efl.Object.destructor; } }