]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Constructor/include/cistern.h
Se corrige el XML a mano para probarlo.
[z.facultad/75.42/plaqui.git] / Constructor / include / cistern.h
1 #ifndef _CISTERN_H_
2 #define _CISTERN_H_
3
4 #include <iostream>
5 #include "item.h"
6
7 class CisternPtyWnd;
8
9 class Cistern : public CItem {
10         public:
11                 /**Constructor
12                 */
13                 Cistern(int orientacion=0);
14                 /**Destructor
15                 */
16                 virtual ~Cistern();
17                 /**Redefiniciones de las funciones de CItem
18                 */
19                 virtual bool on_button_press_event(GdkEventButton *event);
20                 virtual void on_menu_popup_rotar();
21                 virtual void on_menu_popup_propiedades();
22                 
23                 /** Funciones para obtener y setear los atributos del Tanque
24                 */
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
36                 */
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. 
39                 */
40                 virtual bool check_connection();
41                 /**Pone sus conectores por defecto
42                 */
43                 virtual void set_default_connector();
44                 /**Devuelve el tipo de conector que posee en las coordenadas (_a, _b) segun su orientacion
45                 */
46                 virtual ConnectorType get_connector_type(int _a, int _b);       
47                 
48                 /**Setea las coordenadas _a, _b en la posicion donde se deben conectar los cables logicos a la entrada.
49                 */
50                 virtual void get_in_logic_connect_position(int& _a, int& _b);
51
52                 /**Setea las coordenadas _a, _b en la posicion donde se deben conectar los cables logicos a la salida.
53                 */              
54                 virtual void get_out_logic_connect_position(int& _a, int& _b);
55
56                 /**Actualiza la posicion de los conectores logicos ante un movimiento.
57                 */
58                 virtual void update_logic_position();
59                 
60                 /**Detecta si el click fue en el area de entrada o salida logica, devuelve UNDEF si no fue ninguna de las dos
61                 */
62                 ConnectorType detect_click_position(int _a, int _b);
63                 /**Dibuja los conectores logicos, que seran ambos azules pues son salidas.
64                 */
65                 virtual void draw_connectors();
66         protected:
67                 /**Atributos que definen su comportamiento
68                 */
69                 double capacidad, contenido_inicial, flotante_sup, flotante_inf;
70                 /**Color del liquido almacenado
71                 */
72                 Gdk::Color liquid_color;
73                 /**Imagenes en sus 2 posiciones
74                 */
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
79                 */
80                 CisternPtyWnd *cistern_pty_wnd;
81 };
82 #endif