X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/f1f01b21410b676a9c35c93251d5739bb65c711d..f935b3a37c3134004ec41eeea5dd1f6571804f81:/Constructor/include/or.h?ds=sidebyside diff --git a/Constructor/include/or.h b/Constructor/include/or.h index 9a22b3e..77d996f 100644 --- a/Constructor/include/or.h +++ b/Constructor/include/or.h @@ -5,21 +5,55 @@ class Or : public CItem { public: + ///Constructor. Se puede definir la orientacion de la imagen de la compuerta. Or(int orientacion=0); + + ///Destructor. virtual ~Or(); + + ///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