6 class And : public CItem {
8 ///Constructor. Se puede definir la orientacion de la imagen de la compuerta.
9 And(int orientacion=0);
14 ///Evento invocado al presionar un boton del mouse.
15 virtual bool on_button_press_event(GdkEventButton *event);
17 ///Rota la imagen 90 grados en sentido horario
18 virtual void on_menu_popup_rotar();
20 ///La compuerta guarda su estado en el archivo en formato XML.
21 virtual void save(FILE *archivo);
23 ///Verifica con quien esta conectada.
24 virtual bool check_connection();
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);
29 ///Actualiza las posiciones de los conectores logicos ante una rotacion.
30 virtual void update_logic_position();
32 ///Devuelve la posicion del conector de entrada en _a, _b.
33 virtual void get_in_logic_connect_position(int& _a, int& _b);
35 ///Devuelve la posicion del conector de salida en _a,_b.
36 virtual void get_out_logic_connect_position(int& _a, int& _b);
38 ///Devuelve el estado del conector logico.
39 virtual bool get_out_logic_connect();
41 ///Setea el estado del conector logico.
42 virtual void set_out_connected(bool _o);
44 ///Dibuja los conectores logicos segun su orientacion.
45 virtual void draw_connectors();
47 ///posiciones de los conectores logicos.
48 int in_x, in_y, out_x, out_y;
50 ///Estado de los conectores logicos.
53 ///Vector de conectores utilizados para verificar con quien esta conectado.
54 std::vector<t_logic_connector> vec_connector;
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;