X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/7353f36b6d2eca998f2cb2ca561219b3979ff167..d9d84e57f677206a3070de3285220dcdf05872f0:/Client/include/item.h diff --git a/Client/include/item.h b/Client/include/item.h index 341039d..df6d3ba 100644 --- a/Client/include/item.h +++ b/Client/include/item.h @@ -2,24 +2,60 @@ #define _ITEM_H_ #include +#include #include #include #include #include #include -class Item:public Gtk::DrawingArea { +/** 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: - Item(Glib::ustring _name); - virtual ~Item(); - virtual bool on_expose_event(GdkEventExpose* event); - Glib::ustring get_name(); + 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 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_color(const Gdk::Color &c) { color = c; } + inline Gdk::Color get_color() { return color; } + + virtual std::string get_actual_flow(); + virtual std::string get_cap_flow() { return "Flujo Actual :"; } + virtual std::string get_cap_extra() { return ""; } + virtual std::string get_extra() { return ""; } + + std::list out_lines; // lineas que salen de una compuerta + std::list 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; - Glib::RefPtr image; - int x, y; + Gtk::Image image; + Gdk::Color color; + Glib::RefPtr gc; + int m_or; + float actual_flow, extra; + bool open; }; #endif +