#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;
}
};
-class WorkPlace;
+//class WorkPlace;
class CItem:public Gtk::DrawingArea {
public:
///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;
+ ///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.
protected:
///Indica el numero que le corresponde a la imagen actual del item.
int imgActual;
+
///Numero "unico" que identifica al item.
int ID;
+
///Nombre del item
Glib::ustring name;
+
///Caudal maximo que puede contener un item.
double caudal_max;
+
///Menu flotante del item
Gtk::Menu menu_popup;
+
///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;
+
///Puntero a la imagen del item
Glib::RefPtr<Gdk::Pixbuf> image;
+
///Puntero a la ventana de propiedades del item
ItemPtyWnd *property_wnd;
+
///Posicion del item en el area de trabajo
int x, y;
};