]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Constructor/include/and.h
Se agrega al EXAMPLE_PATH Constructor/doc para los ejemplos de XML.
[z.facultad/75.42/plaqui.git] / Constructor / include / and.h
1 #ifndef _AND_H_
2 #define _AND_H_
3
4 #include "item.h"
5
6 class And : public CItem {
7         public:
8                 ///Constructor. Se puede definir la orientacion de la imagen de la compuerta.
9                 And(int orientacion=0);
10                 
11                 ///Destructor.
12                 virtual ~And();
13         
14                 ///Evento invocado al presionar un boton del mouse.
15                 virtual bool on_button_press_event(GdkEventButton *event);
16         
17                 ///Rota la imagen 90 grados en sentido horario
18                 virtual void on_menu_popup_rotar();
19         
20                 ///La compuerta guarda su estado en el archivo en formato XML.
21                 virtual void save(FILE *archivo);
22         
23                 ///Verifica con quien esta conectada.
24                 virtual bool check_connection();
25         
26                 ///Devuelve IN si el click fue en la zona de entrada, o OUT si fue en la zona de salida logica.
27                 virtual ConnectorType detect_click_position(int _a, int _b);
28                 
29                 ///Actualiza las posiciones de los conectores logicos ante una rotacion.
30                 virtual void update_logic_position();
31                 
32                 ///Devuelve la posicion del conector de entrada en _a, _b.
33                 virtual void get_in_logic_connect_position(int& _a, int& _b);
34                 
35                 ///Devuelve la posicion del conector de salida en _a,_b.
36                 virtual void get_out_logic_connect_position(int& _a, int& _b);  
37                 
38                 ///Devuelve el estado del conector logico.
39                 virtual bool get_out_logic_connect();
40                 
41                 ///Setea el estado del conector logico.
42                 virtual void set_out_connected(bool _o);
43                 
44                 ///Dibuja los conectores logicos segun su orientacion.
45                 virtual void draw_connectors();
46         private:
47                 ///posiciones de los conectores logicos.
48                 int in_x, in_y, out_x, out_y;
49         
50                 ///Estado de los conectores logicos.
51                 bool out_connected;
52         
53                 ///Vector de conectores utilizados para verificar con quien esta conectado.
54                 std::vector<t_logic_connector> vec_connector;   
55         
56                 ///imagenes de la compuerta en sus 4 posiciones.
57                 Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
58                 Glib::RefPtr<Gdk::Pixbuf> imageS; // 1
59                 Glib::RefPtr<Gdk::Pixbuf> imageE; // 2
60                 Glib::RefPtr<Gdk::Pixbuf> imageO; // 3
61                 Glib::RefPtr<Gdk::Pixbuf> null; 
62 };
63 #endif