#ifndef _COMPONENT_H
#define	_COMPONENT_H
#include "common.h"

//! Componente

/*!
Contiene todo lo necesario para mostrar un componente en pantalla
 */

class itfzComponent {
protected:
    int posX; /*!<Coordenada en X. */
    int posY; /*!<Coordenada en Y. */
    SDL_Surface * scr; /*!< Superficie de dibujo. */
    bool updateable; /*!< Debe ser refrescado?. */
public:
    string ID; /*!< ID del componente. */
    float value; /*!< Valor del componente. */
    //! Setea la posicion del elemento.
    /*!
      \sa getPos()
      \todo Por implementar.
     */
    int setPos(int, int);
    //! Obtiene la posicion del elemento.
    /*!
      \sa setPos()
     */
    int getPos(void);
    //! Hace un componente visible.
    /*!
      \sa isVisible()
      \todo Por implementar.
     */
    int setVisible(void);
    //! Retorna si un componente es visible o no.
    /*!
      \sa setVisible()
      \todo Por implementar.
     */
    int isVisible(void);
    virtual void paint(void) = 0; /*!< Dibuja el componente. */
    virtual void clickhandler(int, int) = 0; /*!< Maneja un click down. */
    virtual void unclickhandler(void) = 0; /*!< Maneja un click up. */
    SDL_Rect area; /*!< Area clickeable. */
    bool clicked; /*!< Fue clickeado?. */
};

#endif	/* _COMPONENT_H */

