-// cistern.h
#ifndef _CISTERN_H_
#define _CISTERN_H_
+#include <iostream>
#include "item.h"
-#include "cisternptywnd.h"
+
+class CisternPtyWnd;
+
class Cistern : public CItem {
public:
+ /**Constructor
+ */
Cistern();
+ /**Destructor
+ */
virtual ~Cistern();
+ /**Redefiniciones de las funciones de CItem
+ */
virtual bool on_button_press_event(GdkEventButton *event);
virtual void on_menu_popup_rotar();
virtual void on_menu_popup_propiedades();
- private:
- int imgActual;
-
+
+ /** Funciones para obtener y setear los atributos del Tanque
+ */
+ void set_capacidad(double _cap);
+ void set_contenido_inicial(double _ini);
+ void set_liquid_color(Gdk::Color _color);
+ double get_contenido_inicial();
+ double get_capacidad();
+ Gdk::Color get_liquid_color();
+ /**El item se guarda en formato xml en el archivo pasado por parametro
+ */
+ virtual void save(FILE *archivo);
+ /**Verifica si en sus conectores hay alguien conectado, y que tipo de conexion tiene para ver si es compatible con El.
+ */
+ virtual bool check_connection();
+ /**Pone sus conectores por defecto
+ */
+ virtual void set_default_connector();
+ /**Devuelve el tipo de conector que posee en las coordenadas (_a, _b) segun su orientacion
+ */
+ virtual ConnectorType get_connector_type(int _a, int _b);
+ protected:
+ /**Atributos que definen su comportamiento
+ */
+ double capacidad, contenido_inicial;
+ /**Color del liquido almacenado
+ */
+ Gdk::Color liquid_color;
+ /**Imagenes en sus 2 posiciones
+ */
Glib::RefPtr<Gdk::Pixbuf> imageE; // 0
Glib::RefPtr<Gdk::Pixbuf> imageO; // 1
Glib::RefPtr<Gdk::Pixbuf> null;
+ /**Puntero a la ventana de propiedades
+ */
+ CisternPtyWnd *cistern_pty_wnd;
};
#endif