X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/ee2cb3d6c26ae319d20bde28f415393e96611ece..57ae549a3b51ba148315ff4e64da089203cc7c02:/Constructor/src/constructor.cpp diff --git a/Constructor/src/constructor.cpp b/Constructor/src/constructor.cpp index 3447a2e..4ab3b19 100644 --- a/Constructor/src/constructor.cpp +++ b/Constructor/src/constructor.cpp @@ -274,6 +274,7 @@ void Constructor::on_load_from_xml() file_open_selection->hide(); id = listaItems.size()+lista_logic_Items.size()+1; } + void Constructor::on_btn_file_ok_clicked() { std::list::iterator i = listaItems.begin(); @@ -282,8 +283,12 @@ void Constructor::on_btn_file_ok_clicked() fprintf(archivo, "\n"); fprintf (archivo,"\n"); while ( i != listaItems.end() ){ - CItem *temp = *i; - temp->save(archivo); + (*i)->save(archivo); + i++; + } + i = lista_logic_Items.begin(); + while ( i != lista_logic_Items.end() ) { + (*i)->save(archivo); i++; } fprintf(archivo,"\n"); @@ -360,14 +365,12 @@ void Constructor::on_not_drag_begin(const Glib::RefPtr& contex void Constructor::on_item_drag_begin(const Glib::RefPtr& context, CItem *item) { - GdkEventExpose e; context->set_icon(item->get_image(), 5, 5); - workplace->on_expose_event(&e); } void Constructor::on_item_drag_data_get(const Glib::RefPtr& context, GtkSelectionData* selection_data, guint info, guint time) { - gtk_selection_data_set (selection_data, selection_data->target, 10, (const guchar*)"item_codo.png", 13); + gtk_selection_data_set (selection_data, selection_data->target, 10, (const guchar*)"item_codo.png", 13); } bool Constructor::can_drop(CItem *item, int _x, int _y) @@ -390,6 +393,8 @@ bool Constructor::can_drop(CItem *item, int _x, int _y) void Constructor::on_item_drop_drag_received(const Glib::RefPtr& context, int x, int y, GtkSelectionData* selection_data, guint info, guint time) { + workplace->update_logic_position(); + workplace->queue_draw(); if ( !logica ) { /* Ajusto coordenada x e y para que caigan en un lugar de una cuadricula de 32x32 */ int i,j; @@ -427,7 +432,7 @@ void Constructor::on_item_drop_drag_received(const Glib::RefPtrdata, "or_e.png")==0) { a = new Or(); a->is_logic = true; } else if (strcmp((const char *)selection_data->data, "not_e.png")==0) { - a = new Not(); a->is_logic = true; + a = new Not(); a->is_logic = true; } char char_id[10]; @@ -469,6 +474,8 @@ void Constructor::on_item_drop_drag_received(const Glib::RefPtrdrag_finish(false, false, time); } + workplace->update_logic_position(); + workplace->queue_draw(); } void Constructor::on_btn_check_clicked() @@ -497,6 +504,14 @@ void Constructor::on_btn_check_clicked() dlg_label->set_text("Los elementos estan conectados\n\t\tcorrectamente"); dlg_connect->show(); } + std::cout<<"check_connection logic"<::iterator j = lista_logic_Items.begin(); + while ( j != lista_logic_Items.end() ) { + (*j)->check_connection(); + j++; + } + + } Pump *Constructor::loadBomba(xmlNodePtr nodo)