X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/667418327423ba116d24751926a95a2f1235849c..ea3d0f30b8e44952b1b9ac3e2f5b2a08cd65ca48:/Constructor/include/not.h?ds=sidebyside diff --git a/Constructor/include/not.h b/Constructor/include/not.h index 6b427fe..ee1efcf 100644 --- a/Constructor/include/not.h +++ b/Constructor/include/not.h @@ -2,16 +2,62 @@ #define _NOT_H_ #include "item.h" +/** Clase que implementa la compuerta logica NOT. +*/ class Not : public CItem { public: - Not(); + ///Constructor. Se puede definir la orientacion de la imagen de la compuerta. + Not(int orientacion=0); + + ///Destructor. virtual ~Not(); + + ///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(); + virtual bool get_in_logic_connect(); + + ///Setea el estado del conector logico. + virtual void set_out_connected(bool _o); + virtual void set_in_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 in_connected, 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