///
/// \file NumberField.h
/// Classe mere du composant NumberField.
/// 
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 01/01/10
///

#ifndef ____NUMBERFIELD____
#define ____NUMBERFIELD____

#include <stdio.h>

#include "TextField.h"

class Couleur;

///
/// \class NumberField
/// Classe mere du composant NumberField.
/// 
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 01/01/10
///

class NumberField : public TextField {

  protected :
    char s[500];         ///< Chaine de carateres auxiliaire. 

  public :

///
/// Constructeur basique.
///
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    NumberField(void);

///
/// Constructeur avec parametres d'initialisation.
///
/// @param px La position en x du TextField.
/// @param py La position en y du TextField.
/// @param dx La position en x de la zone de daisie par rapport à la position globale du TextField.
/// @param taille La taille de la zone de saisie.
/// @param coul La couleur de base du TextField.
/// @param coulB La couleur de dessin de l'encadrement.
/// @param titre La chaine de caracteres titre du TextField.
/// @param coulT La couleur de dessin du texte.
/// @param coulBG La couleur de dessin d'avant-plan.
/// @param coulFG La couleur de dessin d'arriere-plan.
/// @param v La valeur d'initialisation.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    NumberField(int px,int py,int dx,int taille,Couleur *coul,Couleur *coulB,const char *titre,Couleur *coulT,Couleur *coulBG,Couleur *coulFG,int v);

///
/// Constructeur avec parametres d'initialisation.
///
/// @param px La position en x du TextField.
/// @param py La position en y du TextField.
/// @param dx La position en x de la zone de daisie par rapport à la position globale du TextField.
/// @param taille La taille de la zone de saisie.
/// @param coul La couleur de base du TextField.
/// @param coulB La couleur de dessin de l'encadrement.
/// @param titre La chaine de caracteres titre du TextField.
/// @param coulT La couleur de dessin du texte.
/// @param coulBG La couleur de dessin d'avant-plan.
/// @param coulFG La couleur de dessin d'arriere-plan.
/// @param v La valeur d'initialisation.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    NumberField(int px,int py,int dx,int taille,Couleur *coul,Couleur *coulB,const char *titre,Couleur *coulT,Couleur *coulBG,Couleur *coulFG,float v);

///
/// Destructeur.
///
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    ~NumberField(void);

///
/// Dessin du TextField.
///
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    virtual void dessiner(void);

///
/// Sauvegarde des valeurs actuelles liees au TextField.
///
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    virtual void sauve(void);

///
/// Restoration des valeurs sauvegardees liees au TextField.
///
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    virtual void annule(void);

///
/// Selection du TextField lie a la position (x,y).
///
/// @param x La coordonnee x.
/// @param y La coordonnee y.
/// @return Le booleen indiquant que la selection a bien ete geree.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    virtual int selection(int x,int y);

///
/// Lecture de la valeur du TextField.
///
/// @return La valeur lue.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    int getInt(void);

///
/// Lecture de la valeur du TextField.
///
/// @return La valeur lue.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    float getFloat(void);

///
/// Lecture de la valeur du TextField.
///
/// @return La valeur lue.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    double getDouble(void);

///
/// Affectation de la valeur du TextField.
///
/// @param v La valeur affectee.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    void set(int v);

///
/// Affectation de la valeur du TextField.
///
/// @param v La valeur affectee.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    void set(float v);

///
/// Affectation de la valeur du TextField.
///
/// @param v La valeur affectee.
/// @author Nicolas Janey
/// @author nicolas.janey@univ-fcomte.fr
/// @version 1.0, 25/02/10
///
    void set(double v);
};

#endif
