X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/1977f2e514c49ae6bdf411be9b08bc59be554a60..0bf4e9e2336a15ee267bd39b6ac325326fb10d9d:/Client/src/principal.cpp?ds=sidebyside diff --git a/Client/src/principal.cpp b/Client/src/principal.cpp index 0538736..c6a4760 100644 --- a/Client/src/principal.cpp +++ b/Client/src/principal.cpp @@ -11,6 +11,7 @@ #include "item_tank.h" #include "item_pump.h" #include "item_union.h" +#include "item_drain.h" Principal::Principal(BaseObjectType *co, const Glib::RefPtr &rg):Gtk::Window(co),refXml(rg) { @@ -168,6 +169,7 @@ void Principal::on_get_clicked() { if (conexion == NULL) { txt_view->get_buffer()->insert_at_cursor("SIN CONEXION\n"); + return; } @@ -212,7 +214,10 @@ void Principal::on_mnu_prop() loadTank(items); } else if (xmlStrcmp(items->name, BAD_CAST"empalme")==0) { loadUnion(items); + } else if (xmlStrcmp(items->name, BAD_CAST"drenaje")==0) { + loadDrain(items); } + } items = items->next; } @@ -393,3 +398,31 @@ void Principal::loadUnion(xmlNodePtr nodo) mapItems[name] = b; } +void Principal::loadDrain(xmlNodePtr nodo) +{ + Glib::ustring name = (char *)xmlGetProp(nodo, BAD_CAST"nombre"); + int orientacion=0, x, y; + + nodo = nodo->children; + while (nodo != NULL) { + if (nodo->type == XML_ELEMENT_NODE) { + if (xmlStrcmp(nodo->name, BAD_CAST"orientacion") == 0) { + orientacion = atoi( (char *)XML_GET_CONTENT(nodo->children) ); + } else if (xmlStrcmp(nodo->name, BAD_CAST"x") == 0) { + x = atoi( (char *)XML_GET_CONTENT(nodo->children) ); + } else if (xmlStrcmp(nodo->name, BAD_CAST"y") == 0) { + y = atoi( (char *)XML_GET_CONTENT(nodo->children) ); + } + } + nodo = nodo->next; + } + + // listo, ya recolecte todos los datos, ahora creo el objeto! + ViewDrain *b = Gtk::manage( new ViewDrain(name, orientacion) ); + b->signal_button_release_event().connect(SigC::bind( SigC::slot(*this, &Principal::on_item_clicked), b) ); + b->set_position(x,y); + work_place->put(*b, x, y); + b->show(); + // los agrego al hash + mapItems[name] = b; +}