X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/6fcc8fcf6b98f413f813904fe0f078d2782fb9d5..c82138b139ddc29ded10368db1327a565b688aeb:/Constructor/include/and.h?ds=sidebyside diff --git a/Constructor/include/and.h b/Constructor/include/and.h index a71b536..a6354df 100644 --- a/Constructor/include/and.h +++ b/Constructor/include/and.h @@ -5,23 +5,55 @@ class And : public CItem { public: + ///Constructor. Se puede definir la orientacion de la imagen de la compuerta. And(int orientacion=0); + + ///Destructor. virtual ~And(); + + ///Evento invocado al presionar un boton del mouse. virtual bool on_button_press_event(GdkEventButton *event); + + ///Rota la imagen 90 grados en sentido horario virtual void on_menu_popup_rotar(); + + ///La compuerta guarda su estado en el archivo en formato XML. virtual void save(FILE *archivo); + + ///Verifica con quien esta conectada. virtual bool check_connection(); + + ///Devuelve IN si el click fue en la zona de entrada, o OUT si fue en la zona de salida logica. virtual ConnectorType detect_click_position(int _a, int _b); + + ///Actualiza las posiciones de los conectores logicos ante una rotacion. virtual void update_logic_position(); + + ///Devuelve la posicion del conector de entrada en _a, _b. virtual void get_in_logic_connect_position(int& _a, int& _b); + + ///Devuelve la posicion del conector de salida en _a,_b. virtual void get_out_logic_connect_position(int& _a, int& _b); + + ///Devuelve el estado del conector logico. virtual bool get_out_logic_connect(); + + ///Setea el estado del conector logico. virtual void set_out_connected(bool _o); + + ///Dibuja los conectores logicos segun su orientacion. virtual void draw_connectors(); private: + ///posiciones de los conectores logicos. int in_x, in_y, out_x, out_y; + + ///Estado de los conectores logicos. bool out_connected; + + ///Vector de conectores utilizados para verificar con quien esta conectado. std::vector vec_connector; + + ///imagenes de la compuerta en sus 4 posiciones. Glib::RefPtr imageN; // 0 Glib::RefPtr imageS; // 1 Glib::RefPtr imageE; // 2