]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Constructor/item.h
ahora hay que arreglar muchos bugs, pero hay circuitos simples que andan
[z.facultad/75.42/plaqui.git] / Constructor / item.h
1 #ifndef _ITEM_H_
2 #define _ITEM_H_
3
4 #include <iostream>
5 #include <gtkmm/drawingarea.h>
6 #include <gtkmm/spinbutton.h>
7 #include <gtkmm/stock.h>
8 #include <gtkmm.h>
9 #include <gdkmm.h>
10 #include <libglademm.h>
11 #include <gtkmm/entry.h>
12 #include "itemptywnd.h"
13
14 typedef enum { NONE, RIGHT, LEFT, MIDDLE } ConnectorSide;
15 typedef enum { UNDEF, IN, OUT } ConnectorType;
16
17 class Connector {
18         public: 
19                 int id_dest;
20                 ConnectorType type;
21                 Connector& operator= (Connector & c) {
22                         id_dest = c.id_dest;
23                         type = c.type;
24                         return *this;
25                 }
26 };
27
28 class WorkPlace;
29         
30 class CItem:public Gtk::DrawingArea {
31 public:
32         CItem();
33         CItem(const char *filename);
34         virtual ~CItem();
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; }
41         int get_position_x();
42         int get_position_y();
43         int get_id();
44         int get_img_actual();
45         Glib::ustring get_name();
46         double get_caudal();
47         void set_position(int _x, int _y);
48         void set_id(int _id);
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 void set_default_connector();   
56         virtual ConnectorType get_connector_type( int _a, int _b );
57         WorkPlace *workplace;
58         Gtk::Entry *combo_entry;
59         std::list<CItem *> *listaItems;
60         bool is_union;
61         bool is_connected;
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;
65 protected:
66         int imgActual;
67         int ID;
68         Glib::ustring name;
69         double caudal_max;
70         Gtk::Menu menu_popup;
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;
74         int x, y;
75 };
76
77 #endif