5 #include <gtkmm/drawingarea.h>
6 #include <gtkmm/spinbutton.h>
7 #include <gtkmm/stock.h>
10 #include <libglademm.h>
11 #include <gtkmm/entry.h>
12 #include "itemptywnd.h"
14 typedef enum { NONE, RIGHT, LEFT, MIDDLE } ConnectorSide;
15 typedef enum { UNDEF, IN, OUT } ConnectorType;
21 Connector& operator= (Connector & c) {
30 class CItem:public Gtk::DrawingArea {
33 CItem(const char *filename);
35 virtual bool on_expose_event(GdkEventExpose* event);
36 virtual void on_menu_popup_propiedades();
37 virtual void on_menu_popup_rotar();
38 virtual void on_menu_popup_eliminar();
39 virtual void on_menu_popup_conectar();
40 Glib::RefPtr<Gdk::Pixbuf> get_image() { return image; }
45 Glib::ustring get_name();
47 void set_position(int _x, int _y);
49 void set_caudal(double _caudal);
50 void set_name(Glib::ustring _name);
51 bool is_occupied_area(int _a, int _b);
52 ConnectorType is_other_connection_area(int _a, int _b);
53 virtual void save(FILE *archivo) = 0;
54 virtual bool check_connection()=0;
55 // virtual ConnectorType is_connection_area(int _a, int _b)=0;
56 virtual ConnectorType get_connector_type( int _a, int _b );
58 Gtk::Entry *combo_entry;
59 std::list<CItem *> *listaItems;
62 // Hay que ocultarlo --- problemas con el get y el set!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
63 // 0 = izquierda/arriba , 1 = derecha/abajo , 2 = medio. tomando como referencia la imagen inicial de cada item cuando corresponda
64 std::vector<Connector> connect_vec;
71 Gtk::Image menu_image_delete, menu_image_rotar, menu_image_propiedades, menu_image_linea;
72 Glib::RefPtr<Gdk::Pixbuf> image;
73 ItemPtyWnd *property_wnd;