]> git.llucax.com Git - z.facultad/75.42/plaqui.git/commitdiff
* Se agrega carga de colores desde el XML
authorRicardo Markiewicz <gazer.arg@gmail.com>
Mon, 1 Dec 2003 01:59:19 +0000 (01:59 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Mon, 1 Dec 2003 01:59:19 +0000 (01:59 +0000)
 * Se arregla el bug de las conexiones en la exclusa solamente

Constructor/include/cisternptywnd.h
Constructor/include/constructor.h
Constructor/include/pumpptywnd.h
Constructor/src/cisternptywnd.cpp
Constructor/src/constructor.cpp
Constructor/src/exclusa.cpp
Constructor/src/item.cpp
Constructor/src/pump.cpp
Constructor/src/pumpptywnd.cpp

index d8762dc3a208993b103d9f2fe19b547feec7862a..b8c91f8bf4aeda262c3472cefe409836f3bb9e6d 100644 (file)
@@ -14,7 +14,9 @@ class CisternPtyWnd : public PropertyWnd {
        
                ///Destructor.
                virtual ~CisternPtyWnd();
        
                ///Destructor.
                virtual ~CisternPtyWnd();
-       
+
+               virtual void show();
+
                ///Puntero al Tanque que se le modificaran sus propiedades.
                Cistern *cistern;
        
                ///Puntero al Tanque que se le modificaran sus propiedades.
                Cistern *cistern;
        
index 0746191f7218670b8afe5e44eff6bd1309a9d8a6..c81f5b04007c9d4066faabbd5f7502cdb696009d 100644 (file)
@@ -115,5 +115,6 @@ class Constructor : public Gtk::Window {
        And *loadAnd(xmlNodePtr nodo);
        Not *loadNot(xmlNodePtr nodo);
        Or *loadOr(xmlNodePtr nodo);
        And *loadAnd(xmlNodePtr nodo);
        Not *loadNot(xmlNodePtr nodo);
        Or *loadOr(xmlNodePtr nodo);
+       Gdk::Color loadColor(xmlNodePtr nodo);
 };
 #endif
 };
 #endif
index 877dff05e10e7bdf55ed7b88a2ad857cc20ad8d9..e35a71783704e416d48ceefefe3371b0259c2ae1 100644 (file)
@@ -14,7 +14,9 @@ class PumpPtyWnd : public PropertyWnd{
        
                ///Destructor.
                virtual ~PumpPtyWnd();
        
                ///Destructor.
                virtual ~PumpPtyWnd();
-       
+
+               virtual void show();
+
                ///Puntero al item al cual se le modifcan las propiedades.
                Pump *pump;
        
                ///Puntero al item al cual se le modifcan las propiedades.
                Pump *pump;
        
index f12867c2549a71a53233810c4890a9d02a85b2c1..31a01529a421c03575c0d9de8269adc70f0cd145 100644 (file)
@@ -17,6 +17,15 @@ CisternPtyWnd::CisternPtyWnd(BaseObjectType* cobject, const Glib::RefPtr<Gnome::
        btn_select_color->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_btn_select_color_clicked));
        dlg_select_color_cancel->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_dlg_select_color_cancel_clicked));
        dlg_select_color_ok->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_dlg_select_color_ok_clicked));
        btn_select_color->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_btn_select_color_clicked));
        dlg_select_color_cancel->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_dlg_select_color_cancel_clicked));
        dlg_select_color_ok->signal_clicked().connect(SigC::slot(*this,&CisternPtyWnd::on_dlg_select_color_ok_clicked));
+       cistern = NULL;
+}
+
+void CisternPtyWnd::show()
+{
+       if (cistern != NULL) {
+               color_preview->modify_bg( Gtk::STATE_NORMAL , cistern->get_liquid_color() );
+       }
+       PropertyWnd::show();
 }
 
 CisternPtyWnd::~CisternPtyWnd()
 }
 
 CisternPtyWnd::~CisternPtyWnd()
index 8a368099443ee3690758de92cafacb6863601208..e352f4a6225df02af7915720d353913a1c223a9d 100644 (file)
@@ -769,6 +769,7 @@ Pump *Constructor::loadBomba(xmlNodePtr nodo)
        std::string id = (char *)xmlGetProp(nodo, BAD_CAST"id");
        int orientacion=0, x, y;
        float flujo;
        std::string id = (char *)xmlGetProp(nodo, BAD_CAST"id");
        int orientacion=0, x, y;
        float flujo;
+       Gdk::Color color;
 
        nodo = nodo->children;
        while (nodo != NULL) {
 
        nodo = nodo->children;
        while (nodo != NULL) {
@@ -782,7 +783,7 @@ Pump *Constructor::loadBomba(xmlNodePtr nodo)
                        } else if (xmlStrcmp(nodo->name, BAD_CAST"entrega") == 0) {
                                flujo = atof( (char *)XML_GET_CONTENT(nodo->children) );
                        } else if (xmlStrcmp(nodo->name, BAD_CAST"color") == 0) {
                        } else if (xmlStrcmp(nodo->name, BAD_CAST"entrega") == 0) {
                                flujo = atof( (char *)XML_GET_CONTENT(nodo->children) );
                        } else if (xmlStrcmp(nodo->name, BAD_CAST"color") == 0) {
-                               // FIXME !
+                               color = loadColor(nodo->children);
                        }
                }
                nodo = nodo->next;
                        }
                }
                nodo = nodo->next;
@@ -793,10 +794,31 @@ Pump *Constructor::loadBomba(xmlNodePtr nodo)
        p->set_entrega(flujo);
        p->set_id( atoi(id.c_str()) );
        p->set_name(name);
        p->set_entrega(flujo);
        p->set_id( atoi(id.c_str()) );
        p->set_name(name);
+       p->set_liquid_color(color);
 
        return p;
 }
 
 
        return p;
 }
 
+Gdk::Color Constructor::loadColor(xmlNodePtr nodo)
+{
+       gushort r,g,b;
+       while (nodo != NULL) {
+               if (nodo->type == XML_ELEMENT_NODE) {
+                       if (xmlStrcmp(nodo->name, BAD_CAST"rojo")==0)
+                               r = atoi( (char *)XML_GET_CONTENT(nodo->children) );
+                       if (xmlStrcmp(nodo->name, BAD_CAST"verde")==0)
+                               g = atoi( (char *)XML_GET_CONTENT(nodo->children) );
+                       if (xmlStrcmp(nodo->name, BAD_CAST"azul")==0)
+                               b = atoi( (char *)XML_GET_CONTENT(nodo->children) );
+               }
+               nodo = nodo->next;
+       }
+       Gdk::Color c;
+       c.set_rgb(r,g,b);
+       std::cout << r << "  " << g << " " << b << std::endl;
+       return c;
+}
+
 Conduct *Constructor::loadConduct(xmlNodePtr nodo)
 {
        std::string name = (char *)xmlGetProp(nodo, BAD_CAST"nombre");
 Conduct *Constructor::loadConduct(xmlNodePtr nodo)
 {
        std::string name = (char *)xmlGetProp(nodo, BAD_CAST"nombre");
@@ -868,6 +890,7 @@ Cistern *Constructor::loadTank(xmlNodePtr nodo)
        std::string id = (char *)xmlGetProp(nodo, BAD_CAST"id");
        int orientacion=0, x, y;
        float liquido,capacidad;
        std::string id = (char *)xmlGetProp(nodo, BAD_CAST"id");
        int orientacion=0, x, y;
        float liquido,capacidad;
+       Gdk::Color color;
 
        nodo = nodo->children;
        while (nodo != NULL) {
 
        nodo = nodo->children;
        while (nodo != NULL) {
@@ -882,6 +905,8 @@ Cistern *Constructor::loadTank(xmlNodePtr nodo)
                                capacidad = atof ((char *)XML_GET_CONTENT(nodo->children) );
                        } else if (xmlStrcmp(nodo->name, BAD_CAST"inicial") == 0) {
                                liquido = atof ((char *)XML_GET_CONTENT(nodo->children) );
                                capacidad = atof ((char *)XML_GET_CONTENT(nodo->children) );
                        } else if (xmlStrcmp(nodo->name, BAD_CAST"inicial") == 0) {
                                liquido = atof ((char *)XML_GET_CONTENT(nodo->children) );
+                       } else if (xmlStrcmp(nodo->name, BAD_CAST"color") == 0) {
+                               color = loadColor(nodo->children);
                        }
                }
                nodo = nodo->next;
                        }
                }
                nodo = nodo->next;
@@ -893,7 +918,7 @@ Cistern *Constructor::loadTank(xmlNodePtr nodo)
        p->set_name(name);
        p->set_capacidad(capacidad);
        p->set_contenido_inicial(liquido);
        p->set_name(name);
        p->set_capacidad(capacidad);
        p->set_contenido_inicial(liquido);
-
+       p->set_liquid_color(color);
        return p;
 }
 
        return p;
 }
 
index 5eb4eadc90c5585bdb179aa5beda09cdfbdd37e5..eb296d6b612bafe28ba64a2fa417aa665c9a9a77 100644 (file)
@@ -205,7 +205,7 @@ ConnectorType Exclusa::get_connector_type(int _a, int _b)
        CItem *_item;
        switch (imgActual) {
                case 1:
        CItem *_item;
        switch (imgActual) {
                case 1:
-                       if ( (_a <= x+image->get_width()-10 )&&(_a >= x + 10) && (_b <= y+10) &&(_b > 0 ) ){  //arriba
+                       if ( (_a <= x+image->get_width()-10 )&&(_a >= x + 10) && (_b <= y+10) &&(_b > y ) ){  //arriba
                                if ( is_connected ) return connect_vec[0].type;                 
                                connect_vec[1].type = is_other_connection_area(get_position_x()+16, get_position_y()+get_image()->get_height() +5, &_item); //pregunto que hay abajo
                                switch ( connect_vec[1].type ) {
                                if ( is_connected ) return connect_vec[0].type;                 
                                connect_vec[1].type = is_other_connection_area(get_position_x()+16, get_position_y()+get_image()->get_height() +5, &_item); //pregunto que hay abajo
                                switch ( connect_vec[1].type ) {
@@ -244,7 +244,7 @@ ConnectorType Exclusa::get_connector_type(int _a, int _b)
                        }
                break;
                case 0: 
                        }
                break;
                case 0: 
-                       if ((_a <= x+10 )&&(_a > 0) && (_b <= y+image->get_height()-10) &&(_b >= y+10 )){ //izquierda
+                       if ((_a <= x+10 )&&(_a > x) && (_b <= y+image->get_height()-10) &&(_b >= y+10 )){ //izquierda
                                if ( is_connected ) return connect_vec[0].type;                 
                                connect_vec[1].type = is_other_connection_area(get_position_x()+get_image()->get_width()+5, get_position_y()+16, &_item);//pregunto por la derecha
                                switch ( connect_vec[1].type ) {
                                if ( is_connected ) return connect_vec[0].type;                 
                                connect_vec[1].type = is_other_connection_area(get_position_x()+get_image()->get_width()+5, get_position_y()+16, &_item);//pregunto por la derecha
                                switch ( connect_vec[1].type ) {
index 0bbf005e592373959652f49f2e4ea1ad8acdad06..cbba33190852aea8a0caf13d5fe9cafa61cd3e5e 100644 (file)
@@ -113,6 +113,7 @@ Glib::ustring CItem::get_name()
 Glib::ustring CItem::get_other_name(int _id)
 {
        std::list<CItem *>::iterator i = listaItems->begin();
 Glib::ustring CItem::get_other_name(int _id)
 {
        std::list<CItem *>::iterator i = listaItems->begin();
+       std::cout << name << " " << _id << std::endl;
        while ( i != listaItems->end() ) {
                if ( (*i)->get_id() == _id ) 
                        return (*i)->get_name();
        while ( i != listaItems->end() ) {
                if ( (*i)->get_id() == _id ) 
                        return (*i)->get_name();
index fb827d38a920923b60596f6c6e7156a835fbccae..2d7f2a8c9c08996b8045630c23b14b05ea46b450 100644 (file)
@@ -198,6 +198,7 @@ bool Pump::check_connection()
                        temp =  is_other_connection_area( get_position_x() -5, get_position_y() +16, &_item);
        }
         if (is_connected = ( temp == IN) ) {
                        temp =  is_other_connection_area( get_position_x() -5, get_position_y() +16, &_item);
        }
         if (is_connected = ( temp == IN) ) {
+                       std::cout << "PUMP " << _item->get_id() << std::endl;
                 connect_vec[0].id_dest = _item->get_id();
                 return is_connected;
         }
                 connect_vec[0].id_dest = _item->get_id();
                 return is_connected;
         }
index 0889599508d04e07a6788f4261d0da17d686ff94..b265271bf238b284e53944f509d72d8e3d029e65 100644 (file)
@@ -16,12 +16,21 @@ PumpPtyWnd::PumpPtyWnd(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade:
        btn_select_color->signal_clicked().connect(SigC::slot(*this,&PumpPtyWnd::on_btn_select_color_clicked));
        dlg_select_color_cancel->signal_clicked().connect(SigC::slot(*this,&PumpPtyWnd::on_dlg_select_color_cancel_clicked));
        dlg_select_color_ok->signal_clicked().connect(SigC::slot(*this,&PumpPtyWnd::on_dlg_select_color_ok_clicked));
        btn_select_color->signal_clicked().connect(SigC::slot(*this,&PumpPtyWnd::on_btn_select_color_clicked));
        dlg_select_color_cancel->signal_clicked().connect(SigC::slot(*this,&PumpPtyWnd::on_dlg_select_color_cancel_clicked));
        dlg_select_color_ok->signal_clicked().connect(SigC::slot(*this,&PumpPtyWnd::on_dlg_select_color_ok_clicked));
+       pump = NULL;
 }
 
 PumpPtyWnd::~PumpPtyWnd()
 {
 }
  
 }
 
 PumpPtyWnd::~PumpPtyWnd()
 {
 }
  
+void PumpPtyWnd::show()
+{
+       if (pump != NULL) {
+               color_preview->modify_bg( Gtk::STATE_NORMAL , pump->get_liquid_color() );
+       }
+       PropertyWnd::show();
+}
+
 void PumpPtyWnd::on_btn_accept_clicked()
 {
        PumpPtyWnd::on_btn_apply_clicked();
 void PumpPtyWnd::on_btn_accept_clicked()
 {
        PumpPtyWnd::on_btn_apply_clicked();