]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Constructor/include/exclusa.h
34e2fe93371c144b771fe723b67ec3b975825e73
[z.facultad/75.42/plaqui.git] / Constructor / include / exclusa.h
1 #ifndef _EXCLUSA_H_
2 #define _EXCLUSA_H_
3
4 #include "item.h"
5
6 class ExclusaPtyWnd;
7
8 class Exclusa : public CItem {
9         public:
10                 /**Constructor
11                 */
12                 Exclusa(int orientacion=0);
13                 /**Destructor
14                 */
15                 virtual ~Exclusa();
16                 /**Funciones redefinidas de CItem
17                 */
18                 virtual bool on_button_press_event(GdkEventButton *event);
19                 virtual void on_menu_popup_rotar();
20                 virtual void on_menu_popup_propiedades();
21                 /**El item se guarda en formato xml en el archivo pasado por parametro
22                 */
23                 virtual void save(FILE *archivo);
24                 /**Verifica sus conectores, y pregunta en sus extremos para saber como setearse.
25                 */              
26                 virtual bool check_connection();
27                 /**Pone sus conectores por defecto
28                 */
29                 virtual void set_default_connector();
30                 /**Devuelve el tipo de conector que posee en las coordenadas (_a, _b) segun su orientacion
31                 */
32                 virtual ConnectorType get_connector_type(int _a, int _b);
33                 
34                 /**Setea las coordenadas _a, _b en la posicion donde se deben conectar los cables logicos a la entrada.
35                 */
36                 virtual void get_in_logic_connect_position(int& _a, int& _b);
37
38                 /**Setea las coordenadas _a, _b en la posicion donde se deben conectar los cables logicos a la salida.
39                 */              
40                 virtual void get_out_logic_connect_position(int& _a, int& _b);
41
42                 /**Actualiza la posicion de los conectores logicos ante un movimiento.
43                 */
44                 virtual void update_logic_position();
45
46                 /**Detecta si el click fue en el area de entrada o salida logica, devuelve UNDEF si no fue ninguna de las dos
47                 */
48                 ConnectorType detect_click_position(int _a, int _b);
49
50                 /**Funciones para obtener y setear sus propiedades
51                 */
52                 void set_estado(bool _state);
53                 bool get_estado();
54         protected:
55                 /**Coordenadas de las entrada y salida logica.
56                 */
57                 int in_x, in_y, out_x, out_y;
58                 /**Imagenes en sus 2 posiciones
59                 */
60                 Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
61                 Glib::RefPtr<Gdk::Pixbuf> imageS; // 1
62                 Glib::RefPtr<Gdk::Pixbuf> null; 
63                 /**Puntero a la ventana de propiedades
64                 */
65                 ExclusaPtyWnd *exclusa_pty_wnd;
66                 /** Abierto = true, Cerrado = false.
67                 */
68                 bool estado;
69 };
70 #endif