|
TEvasObject
objet de base des éléments visuel de Cauldron
IntroductionDans EFL, l'API evas permet d'afficher des éléments graphiques à l'écran. Cauldron propose une classe Javascript pour encapsuler ces objets :
TEvasObject est un ancêtre commun à tous ces objets, il n'a pas vocation à être utilisé directement dans vos scripts Elixir, mais toutes ses propriétés sont utilisables dans les objets qui en descendent. Objet TEvasObject (version 0.1.2)Propriétés
Les objets Cauldron sont positionnés en coordonnées absolues en pixel à l'écran. Evas ne gérant pas de notion de hiérarchie d'objets, il n'existe pas de relation parent/enfant entre les différents objets Cauldron, l'ordre d'affichage des objets est simplement celui de leur création. Méthodes
Evènementspas d'évènements DetailsL'objet TEvasObject possède une méthode supplémentaire init() qui permet à ses descendant de l'initialiser. TEvasObject.prototype.init = function(handle, x, y, color, alpha) {
this.handle = handle;
this.move(x, y);
this.setColor(color, alpha);
this.setVisibility(true);
}Méthode ajoutée dans la version 0.1.1 TEvasObject.setSize = function(width, height) {
this.width = width;
this.height = height;
evas_object_resize(this.handle, width, height);
}Contrairement à l'API evas, TEvasObject utilise une couleur au format RGB (0xRRGGBB) TEvasObject.prototype.setColor = function(rgb, alpha) {
var r = (rgb >> 16) & 255;
var g = (rgb >> 8) & 255;
var b = rgb & 255;
var a = alpha || 255;
evas_object_color_set(this.handle, r, g, b, a);
}L'objet TEvasObject conserve une copie Javascript de sa position, il n'utilise donc pas la fonction evas_object_geometry_get() TEvasObject.prototype.move = function(x, y) {
this.x = x;
this.y = y;
evas_object_move(this.handle, x, y);
}La visibilité est directement gérée par Evas. TEvasObject.setVisibility = function(visible) {
if (visible) {
evas_object_show(this.handle);
} else {
evas_object_hide(this.handle);
}
}L'ordre d'affichage par défaut est l'ordre de création des objets, mais vous changer l'ordre d'affichage d'un objet avec la méthode setDepth() TEvasObject.prototype.setDepth = function(index) {
evas_object_layer_set(this.handle, index);
}Une notion assez particulière d'evas est le clipping, avec la méthode clipTo(), le rendu d'un objet est fait à travers un autre...ce qui implique que les effets de l'objet target sont appliqués à l'objet clippé ! TEvasObject.prototype.clipTo(target) {
evas_object_clip_set(this.handle, target.handle);
}Il est possible de demander à Cauldron de détruire l'objet evas associé avec la méthode release() TEvasObject.prototpye.release = function() {
evas_object_del(this.handle);
}
|