]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Client/include/item.h
* Dialogo About en el Constructor agregado y conectado
[z.facultad/75.42/plaqui.git] / Client / include / item.h
index e4c40c0734847f94b04414f2a160d0d88554d3f0..62f1b663a43d9bb0868a5d8b569801e8de4c7403 100644 (file)
@@ -2,20 +2,31 @@
 #define _ITEM_H_
 
 #include <iostream>
 #define _ITEM_H_
 
 #include <iostream>
+#include <list>
 #include <gtkmm/drawingarea.h>
 #include <gtkmm.h>
 #include <gdkmm.h>
 #include <libglademm.h>
 #include <gtkmm/entry.h>
 
 #include <gtkmm/drawingarea.h>
 #include <gtkmm.h>
 #include <gdkmm.h>
 #include <libglademm.h>
 #include <gtkmm/entry.h>
 
+/** Estructura para guardar las lineas de conexión */
+typedef struct {
+       std::string dst;                ///< Destino de la línea
+       bool is_tank;                           ///< Define si es un tanque
+       bool is_tank_lower;     ///< Define si esta conectado abajo
+} t_Linea;
+
 class ViewItem:public Gtk::EventBox {
 public:
        ViewItem(Glib::ustring _name);
        virtual ~ViewItem();
        
 class ViewItem:public Gtk::EventBox {
 public:
        ViewItem(Glib::ustring _name);
        virtual ~ViewItem();
        
+       virtual bool on_image_expose_event(GdkEventExpose *e);
+       virtual void on_realize();
        inline Glib::ustring get_name() { return name; }
        void set_position(int _x, int _y);
        void set_name(Glib::ustring _name);
        inline Glib::ustring get_name() { return name; }
        void set_position(int _x, int _y);
        void set_name(Glib::ustring _name);
+       inline bool get_open() { return open; }
        inline void set_actual_flow(float f) { actual_flow = f; }
        inline void set_open(bool b) { open = b; }
        inline void set_extra(float f) { extra = f; }
        inline void set_actual_flow(float f) { actual_flow = f; }
        inline void set_open(bool b) { open = b; }
        inline void set_extra(float f) { extra = f; }
@@ -26,11 +37,22 @@ public:
        virtual std::string get_cap_flow() { return "Flujo Actual :"; }
        virtual std::string get_cap_extra() { return ""; }
        virtual std::string get_extra() { return ""; }
        virtual std::string get_cap_flow() { return "Flujo Actual :"; }
        virtual std::string get_cap_extra() { return ""; }
        virtual std::string get_extra() { return ""; }
+
+       std::list<t_Linea> out_lines; // lineas que salen de una compuerta
+       std::list<t_Linea> in_lines; // lineas que entran a una compuerta
+
+       // Coordenadas para los conectores
+       int x,y;
+       int in_x, in_y;
+       int out_x, out_y;
+       int offset_x, offset_y;
+       int item_offset_x, item_offset_y;
 protected:
        Glib::ustring name;
        Gtk::Image image;
        Gdk::Color color;
 protected:
        Glib::ustring name;
        Gtk::Image image;
        Gdk::Color color;
-       int x, y;
+       Glib::RefPtr<Gdk::GC> gc;
+       int m_or;
        float actual_flow, extra;
        bool open;
 };
        float actual_flow, extra;
        bool open;
 };