My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
TEvasObject  
objet de base des éléments visuel de Cauldron
Updated Mar 8, 2010 by papa2enf...@gmail.com

Introduction

Dans EFL, l'API evas permet d'afficher des éléments graphiques à l'écran. Cauldron propose une classe Javascript pour encapsuler ces objets :

  • rectangle : TRectangle
  • zone de texte simple : TText
  • zone de texte riche : TTextBlock
  • image : TImage

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

  • handle : objet evas créé par l'API evas
  • x : position horizontale de l'objet en pixels
  • y : position verticale de l'objet en pixels
  • width : largeur de l'objet en pixels
  • height : hauteur de l'objet en pixels

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

  • move(x, y) : place l'objet à la position indiquée en pixels
  • setColor(color, alpha) : défini la couleur RGB de l'objet et son canal alpha (optionel)
  • setVisibility(visible) : affiche ou cache l'objet à l'écran
  • setSize(width, height) : fixe la taille de l'objet
  • setDepth(index) : fixe la position de l'objet dans le canvas (comme un z-Index HTML)
  • clipTo(target) : l'objet sera dessiné "à travers" l'objet target
  • release() : destruction de l'objet

Evènements

pas d'évènements

Details

L'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); 
}

Sign in to add a comment
Powered by Google Project Hosting