]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Constructor/include/pump.h
-Cambie un poco lo que hizo Rich para dibujar los conectores
[z.facultad/75.42/plaqui.git] / Constructor / include / pump.h
1 #ifndef _PUMP_H_
2 #define _PUMP_H_
3
4 #include <iostream>
5 #include "item.h"
6
7 class PumpPtyWnd;
8         
9 class Pump : public CItem {
10         public:
11                 ///Constructor
12                 Pump(int orientacion=0);
13                 ///Destructor
14                 virtual ~Pump();
15                 ///Funciones redefinidas de CItem
16                 virtual bool on_button_press_event(GdkEventButton *event);
17                 virtual void on_menu_popup_rotar();
18                 virtual void on_menu_popup_propiedades();
19                 ///Funciones para obtener y setear los atributos
20                 void set_entrega(double _cap);
21                 void set_liquid_color(Gdk::Color _color);
22                 double get_entrega();
23                 Gdk::Color get_liquid_color();
24                 ///El item se guarda en formato xml en el archivo pasado por parametro
25                 virtual void save(FILE *archivo);
26                 ///Verifica sus conectores, evaluando si son compatibles con los del item conectado
27                 virtual bool check_connection();
28                 ///Pone sus conectores en el valor por defecto
29                 virtual void set_default_connector();
30                 ///Devuelve el tipo de conector que posee en las coordenadas (_a,_b) segun su orientacion
31                 virtual ConnectorType get_connector_type(int _a, int _b);
32                 ///Setea las coordenadas _a, _b en la posicion donde se deben conectar los cables logicos.
33                 virtual void get_in_logic_connect_position(int& _a, int& _b);
34                 ///Setea las coordenadas _a, _b en la posicion donde se deben conectar los cables logicos.
35                 virtual void get_out_logic_connect_position(int& _a, int& _b);
36                 ///Actualiza la posicion de los conectores logicos ante un movimiento.
37                 virtual void update_logic_position();
38                 ///Detecta si el click fue en el area de entrada o salida logica, devuelve UNDEF si no fue ninguna de las dos
39                 ConnectorType detect_click_position(int _a, int _b);
40         protected:
41                 ///Indica la maxima capacidad de entrega de la bomba
42                 double entrega;
43                 /// Indica el color del liquido que entrega
44                 Gdk::Color liquid_color;        
45                 /// Imagenes en sus 2 posiciones
46                 Glib::RefPtr<Gdk::Pixbuf> imageE; // 0 
47                 Glib::RefPtr<Gdk::Pixbuf> imageO; // 1
48                 Glib::RefPtr<Gdk::Pixbuf> null; 
49                 ///Puntero a la ventana de propiedades
50                 PumpPtyWnd *pump_pty_wnd;
51 };
52 #endif