X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/67143e098c00b0ee414bde39a78441d8e11fed8b..d664a4c16bb56138b53e8d6dba92e199bd3ea6c7:/Constructor/workplace.cpp diff --git a/Constructor/workplace.cpp b/Constructor/workplace.cpp index 519dcd4..652cf01 100644 --- a/Constructor/workplace.cpp +++ b/Constructor/workplace.cpp @@ -1,9 +1,15 @@ #include "workplace.h" +#include "item.h" WorkPlace::WorkPlace( BaseObjectType* cobject, const Glib::RefPtr &refGlade):Gtk::Fixed(cobject) { } -bool WorkPlace::on_expose_event(GdkEventExpose *e) + +WorkPlace::~WorkPlace() +{ +} + +bool WorkPlace::on_expose_event(GdkEventExpose *event) { int x, y; for(x=0; xdraw_point (get_style()->get_black_gc(), x+1,y); get_window()->draw_point (get_style()->get_black_gc(), x-1,y); } + + + Glib::RefPtr gc = get_style()->get_black_gc(); + Gdk::Color color; + color.set_rgb(255,0,0); + gc->set_rgb_bg_color(color); + get_style()->set_black(color); + std::list::iterator i = lista_lineas.begin(); + while ( i != lista_lineas.end() ) { + t_line temp = *i; + get_window()->draw_line (get_style()->get_black_gc(), temp.logic->get_position_x(),temp.logic->get_position_y(), temp.store->get_position_x(),temp.store->get_position_y()); + i++; + } return true; } - -bool WorkPlace::on_button_pressed(GdkEventButton *e) -{ - return true; -} - -void WorkPlace::delete_item(int id) +void WorkPlace::delete_item(int _id) { std::list::iterator i = listaItems->begin(); while ( i != listaItems->end() ){ CItem *temp = *i; - if ( temp->get_id() == id ){ + if ( temp->get_id() == _id ){ + delete_line(_id); + listaItems->erase(i); + delete temp; + break; + } + i++; + } + i = lista_logic_Items->begin(); + while ( i != lista_logic_Items->end() ){ + CItem *temp = *i; + if ( temp->get_id() == _id ){ + delete_line(_id); listaItems->erase(i); delete temp; break; } i++; } + +} + +CItem* WorkPlace::get_logic_item(int _id) +{ + std::list::iterator i = lista_logic_Items->begin(); + while ( i != lista_logic_Items->end() ){ + CItem *temp = *i; + if ( temp->get_id() == _id ) + return temp; + i++; + } + return NULL; +} + +void WorkPlace::delete_line(int _id) +{ + std::list::iterator i = lista_lineas.begin(); + while ( i != lista_lineas.end() ){ + if ( (*i).logic->get_id() == _id || (*i).store->get_id == _id) + lista_lineas.erase(i); + i++; + } }