]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Constructor/item.h
para que lo vean
[z.facultad/75.42/plaqui.git] / Constructor / item.h
index 87ddb0190000cb8ef538ca3d7af7b5c20d56b96a..34f9ecd770831ea1008528f713178399a95c21cb 100644 (file)
@@ -10,6 +10,7 @@
 #include <libglademm.h>
 #include <gtkmm/entry.h>
 #include "itemptywnd.h"
 #include <libglademm.h>
 #include <gtkmm/entry.h>
 #include "itemptywnd.h"
+#include "workplace.h"
 
 ///Tipo de estado en el que pueden estar los conectores de un item
 typedef enum { UNDEF, IN, OUT } ConnectorType;
 
 ///Tipo de estado en el que pueden estar los conectores de un item
 typedef enum { UNDEF, IN, OUT } ConnectorType;
@@ -29,7 +30,7 @@ class Connector {
                }
 };
 
                }
 };
 
-class WorkPlace;
+//class WorkPlace;
        
 class CItem:public Gtk::DrawingArea {
 public:
        
 class CItem:public Gtk::DrawingArea {
 public:
@@ -103,12 +104,22 @@ public:
        ///Puntero a la lista de items
        std::list<CItem *> *listaItems;
        
        ///Puntero a la lista de items
        std::list<CItem *> *listaItems;
        
+       ///Puntero a la lista de Items logicos
+       std::list<CItem *> *lista_logic_Items;
+       
        ///TODO poner esto en Union y crear una ventana nueva de propiedades
        bool is_union;
        
        ///indica si el item ya esta conectado con sus conectores bien definidos
        bool is_connected;
        
        ///TODO poner esto en Union y crear una ventana nueva de propiedades
        bool is_union;
        
        ///indica si el item ya esta conectado con sus conectores bien definidos
        bool is_connected;
        
+       ///Indica si es una compuerta logica
+       bool is_logic;
+       
+       ///Indica si puede realizarse la conexion logica con una compuerta
+       static bool logic_connect;
+       static int quien;
+       
        /**Vector de connectores donde se mantiene la siguiente referencia:
         * indice 0 = "arriba/izquierda" para la exclusa, el tubo, el codo, el empalme y el tanque.
         *                                      "derecha" para la bomba.
        /**Vector de connectores donde se mantiene la siguiente referencia:
         * indice 0 = "arriba/izquierda" para la exclusa, el tubo, el codo, el empalme y el tanque.
         *                                      "derecha" para la bomba.
@@ -123,22 +134,31 @@ public:
 protected:
        ///Indica el numero que le corresponde a la imagen actual del item.
        int imgActual;
 protected:
        ///Indica el numero que le corresponde a la imagen actual del item.
        int imgActual;
+
        ///Numero "unico" que identifica al item.
        int ID;
        ///Numero "unico" que identifica al item.
        int ID;
+
        ///Nombre del item
        Glib::ustring name;
        ///Nombre del item
        Glib::ustring name;
+       
        ///Caudal maximo que puede contener un item.
        double caudal_max;
        ///Caudal maximo que puede contener un item.
        double caudal_max;
+       
        ///Menu flotante del item
        Gtk::Menu menu_popup;
        ///Menu flotante del item
        Gtk::Menu menu_popup;
+       
        ///Lista de opciones del menu flotante
        Gtk::Menu::MenuList menulist;
        ///Lista de opciones del menu flotante
        Gtk::Menu::MenuList menulist;
+       
        ///Imagenes del menu flotante
        Gtk::Image menu_image_delete, menu_image_rotar, menu_image_propiedades, menu_image_linea;
        ///Imagenes del menu flotante
        Gtk::Image menu_image_delete, menu_image_rotar, menu_image_propiedades, menu_image_linea;
+       
        ///Puntero a la imagen del item
        Glib::RefPtr<Gdk::Pixbuf> image;
        ///Puntero a la imagen del item
        Glib::RefPtr<Gdk::Pixbuf> image;
+       
        ///Puntero a la ventana de propiedades del item
        ItemPtyWnd *property_wnd;
        ///Puntero a la ventana de propiedades del item
        ItemPtyWnd *property_wnd;
+       
        ///Posicion del item en el area de trabajo
        int x, y;
 };
        ///Posicion del item en el area de trabajo
        int x, y;
 };