X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/a4fcf877753b034b1df7fa73d41388849fbc9000..fb8d2fb83534b0ca76f81e6d107e38d002642a46:/Constructor/src/workplace.cpp?ds=inline diff --git a/Constructor/src/workplace.cpp b/Constructor/src/workplace.cpp index f889352..37b0aa4 100644 --- a/Constructor/src/workplace.cpp +++ b/Constructor/src/workplace.cpp @@ -1,5 +1,7 @@ #include "workplace.h" #include "item.h" +#include "pump.h" +#include "exclusa.h" int WorkPlace::pointed = -1; @@ -54,12 +56,23 @@ bool WorkPlace::on_expose_event(GdkEventExpose *event) } int a, b, w, z, x_offset, y_offset, img; + int item_x_offset, item_y_offset; std::list::iterator i = lista_lineas_in.begin(); while ( i != lista_lineas_in.end() ) { t_line temp = *i; if ( get_item(temp.store_id) != NULL && get_logic_item(temp.logic_id) != NULL ) { img = get_logic_item(temp.logic_id)->get_img_actual(); + item_y_offset = item_x_offset = 0; x_offset = y_offset = 0; + if (dynamic_cast(get_item(temp.store_id))) { + item_y_offset = -15; + } else if (dynamic_cast(get_item(temp.store_id))) { + if (get_item(temp.store_id)->get_img_actual()==0) { + item_y_offset = -15; + } else { + item_x_offset = 15; + } + } switch (img) { case 0: x_offset = 15; @@ -75,8 +88,9 @@ bool WorkPlace::on_expose_event(GdkEventExpose *event) } get_logic_item(temp.logic_id)->get_out_logic_connect_position(a, b); get_item(temp.store_id)->get_in_logic_connect_position(w,z); - draw_line(a+x_offset, b+y_offset, w,z, color_in); + draw_line(a+x_offset, b+y_offset, w+item_x_offset, z+item_y_offset, color_in); get_window()->draw_line(gc, a, b, a+x_offset, b+y_offset); + get_window()->draw_line(gc, w, z, w+item_x_offset, z+item_y_offset); } i++; } @@ -85,24 +99,24 @@ bool WorkPlace::on_expose_event(GdkEventExpose *event) t_line temp = *i; if ( get_item(temp.store_id) != NULL && get_logic_item(temp.logic_id) != NULL ) { img = get_logic_item(temp.logic_id)->get_img_actual(); + item_y_offset = item_x_offset = 0; x_offset = y_offset = 0; switch (img) { case 0: - x_offset = 15; + x_offset = -15; break; case 1: - y_offset = 15; + y_offset = -15; break; case 2: - x_offset = -15; + x_offset = 15; break; case 3: - y_offset = -15; + y_offset = 15; } get_item(temp.store_id)->get_out_logic_connect_position(w,z); get_logic_item(temp.logic_id)->get_in_logic_connect_position(a, b); -// draw_line(w, z, a, b, color_out); - draw_line(w, z, a+x_offset, b+y_offset,color_out); + draw_line(w+item_y_offset, z+item_y_offset, a+x_offset, b+y_offset,color_out); get_window()->draw_line(gc, a, b, a+x_offset, b+y_offset); } i++;