Tutoriel 04 - Adapter un Plugin à ses besoins   page précédente    page suivante
-- page 3 -- On modifie maintenant le source




Ajout d'un bouton dans les paramètres

...
   {NUM|FLO, "Light", 1.0, 0., 1., "Value for active segments"},
   {NUM|FLO, "Dark", 0.0, 0., 1., "Value for inactive segments"},
   {NUM|INT, "Value", 8888, 0, 99999999., "Value to display"},
   {NUM|INT, "Target", 8888, 0, 99999999., "Maximaume Valioue to display"},
   {NUM|INT, "LZeros", 8.0, 0., 8., "Display leading zeros"},
   ... };

Je ne me suis pas embêté : j'ai fait un copier-coller de la ligne "Value", et ai ajouté une superbe info-bulle (notez en passant la qualité de mon accent).

La structure des variables

...
   float dark;
   int value;
   int target;
  
int zeros;
   int m_12_24;
   ...


Le calcul de l'affichage
... if (stype==COUNTER) {
   val+=delta;
   /* si on depasse target, on se replace dessus */
   if(val>cast->target)val=cast->target;

   } else {
   int h,m,s;
  
   .....

Je laisse Val s'auto-incrémenter, et je vais regarder si je n'ai pas dépassé Target.
Attention : cast est un pointeur de structure : il a été déclaré, dans l'ouverture de la fonction, avec une étoile :
void calc_value(int stype,Cast *cast,float x,float y)
Donc pour aller chercher l'une de ses données (propriétés), il faut utiliser le symbole "->" et non le symbole "."

Ecriture symboliqe :
val s'auto-incrémente de val;
si val a dépassé target (propriété du pointeur cast), alors on écrase val avec cette valeur;