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