Constructor::~Constructor()
{
- std::list<CItem *>::iterator i = listaItems.begin();
- while ( i != listaItems.end() ){
- CItem *temp = *i;
- listaItems.erase(i);
- delete temp;
- i = listaItems.begin();
- }
+ Constructor::on_edit_menu_delete_all();
}
void Constructor::on_btn_canio_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
}
void Constructor::on_edit_menu_del()
-{ // OJO que borra al primero que encuentra con el mismo nombre!!!
+{
+ workplace->delete_item(WorkPlace::pointed);
+}
+
+void Constructor::on_edit_menu_delete_all()
+{
std::list<CItem *>::iterator i = listaItems.begin();
- Glib::ustring pointed = combo_entry->get_text();
- while ( i != listaItems.end() ){
- CItem *temp = *i;
- if ( temp->get_name() == pointed ){
- workplace->delete_item(temp->get_id());
- break;
- }
- i++;
+ while ( i != listaItems.end() ) {
+ (*i)->workplace->delete_item((*i)->get_id());
+ i = listaItems.begin();
+ }
+ i = lista_logic_Items.begin();
+ while ( i != lista_logic_Items.end() ) {
+ (*i)->workplace->delete_item((*i)->get_id());
+ i=lista_logic_Items.begin();
}
}
void Constructor::on_chk_btn_clicked()
{
logica = !logica;
+ CItem::logic_connect = !CItem::logic_connect;
}
void Constructor::on_load_from_xml()
}
std::cout << "CARGA COMPLETA" << std::endl;
file_open_selection->hide();
+ id = listaItems.size()+lista_logic_Items.size()+1;
}
void Constructor::on_btn_file_ok_clicked()
{
void Constructor::on_item_drag_begin(const Glib::RefPtr<Gdk::DragContext>& 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<Gdk::DragContext>& 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)
void Constructor::on_item_drop_drag_received(const Glib::RefPtr<Gdk::DragContext>& 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;
} else if (strcmp((const char *)selection_data->data, "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];
}
context->drag_finish(false, false, time);
}
+ workplace->update_logic_position();
+ workplace->queue_draw();
}
void Constructor::on_btn_check_clicked()
return p;
}
-