/** Update the various areas that require updating when changing filename * This will ensure that all places that use the filename are updated: * Window titles, layer dialog, recent files, diagram tree. * @param dia The diagram whose filename has changed. */ static void diagram_update_for_filename(Diagram *dia) { GSList *l; DDisplay *ddisp; char *title; title = diagram_get_name(dia); l = dia->displays; while (l!=NULL) { ddisp = (DDisplay *) l->data; ddisplay_set_title(ddisp, title); l = g_slist_next(l); } g_free(title); layer_dialog_update_diagram_list(); /* signal about the change */ dia_diagram_change (dia, DIAGRAM_CHANGE_NAME, NULL); }
/* called from the layer widget for rename */ static void edit_layer_ok_callback (GtkWidget *w, gpointer client_data) { EditLayerDialog *dialog = (EditLayerDialog *) client_data; Layer *layer; g_return_if_fail (dialog->layer_widget != NULL); layer = dialog->layer_widget->layer; g_free (layer->name); layer->name = g_strdup (gtk_entry_get_text (GTK_ENTRY (dialog->name_entry))); /* reflect name change on listeners */ dia_diagram_change (dialog->layer_widget->dia, DIAGRAM_CHANGE_LAYER, layer); diagram_add_update_all (dialog->layer_widget->dia); diagram_flush (dialog->layer_widget->dia); dia_layer_update_from_layer (dialog->layer_widget); dialog->layer_widget->edit_dialog = NULL; gtk_widget_destroy (dialog->dialog); g_free (dialog); }
void diagram_object_modified(Diagram *dia, DiaObject *object) { /* signal about the change */ dia_diagram_change (dia, DIAGRAM_CHANGE_OBJECT, object); }