9 class Cistern : public CItem {
13 Cistern(int orientacion=0);
17 /**Redefiniciones de las funciones de CItem
19 virtual bool on_button_press_event(GdkEventButton *event);
20 virtual void on_menu_popup_rotar();
21 virtual void on_menu_popup_propiedades();
23 /** Funciones para obtener y setear los atributos del Tanque
25 void set_capacidad(double _cap);
26 void set_contenido_inicial(double _ini);
27 void set_liquid_color(Gdk::Color _color);
28 void set_flotante_sup (double _s);
29 void set_flotante_inf(double _i);
30 double get_contenido_inicial();
31 double get_capacidad();
32 double get_flotante_sup();
33 double get_flotante_inf();
34 Gdk::Color get_liquid_color();
35 /**El item se guarda en formato xml en el archivo pasado por parametro
37 virtual void save(FILE *archivo);
38 /**Verifica si en sus conectores hay alguien conectado, y que tipo de conexion tiene para ver si es compatible con El.
40 virtual bool check_connection();
41 /**Pone sus conectores por defecto
43 virtual void set_default_connector();
44 /**Devuelve el tipo de conector que posee en las coordenadas (_a, _b) segun su orientacion
46 virtual ConnectorType get_connector_type(int _a, int _b);
48 /**Setea las coordenadas _a, _b en la posicion donde se deben conectar los cables logicos a la entrada.
50 virtual void get_in_logic_connect_position(int& _a, int& _b);
52 /**Setea las coordenadas _a, _b en la posicion donde se deben conectar los cables logicos a la salida.
54 virtual void get_out_logic_connect_position(int& _a, int& _b);
56 /**Actualiza la posicion de los conectores logicos ante un movimiento.
58 virtual void update_logic_position();
60 /**Detecta si el click fue en el area de entrada o salida logica, devuelve UNDEF si no fue ninguna de las dos
62 ConnectorType detect_click_position(int _a, int _b);
63 /**Dibuja los conectores logicos, que seran ambos azules pues son salidas.
65 virtual void draw_connectors();
67 /**Atributos que definen su comportamiento
69 double capacidad, contenido_inicial, flotante_sup, flotante_inf;
70 /**Color del liquido almacenado
72 Gdk::Color liquid_color;
73 /**Imagenes en sus 2 posiciones
75 Glib::RefPtr<Gdk::Pixbuf> imageE; // 0
76 Glib::RefPtr<Gdk::Pixbuf> imageO; // 1
77 Glib::RefPtr<Gdk::Pixbuf> null;
78 /**Puntero a la ventana de propiedades
80 CisternPtyWnd *cistern_pty_wnd;