Index: ChangeLog =================================================================== RCS file: /cvs/gnome/dia/ChangeLog,v retrieving revision 1.1781 diff -u -r1.1781 ChangeLog --- ChangeLog 20 Jul 2005 07:27:57 -0000 1.1781 +++ ChangeLog 22 Jul 2005 15:12:01 -0000 @@ -1,3 +1,8 @@ +2005-07-21 Simon Kagstrom + + * app/layer_widget.c: Show layer numbers in the layer widget + * app/layer_widget.h: definitions for layer numbering + 2005-07-20 Hans Breuer * lib/element.h : remove stray NULL in ELEMENT_COMMON_PROPERTIES Index: app/authors.h =================================================================== RCS file: /cvs/gnome/dia/app/authors.h,v retrieving revision 1.15 diff -u -r1.15 authors.h --- app/authors.h 17 Mar 2005 22:27:49 -0000 1.15 +++ app/authors.h 22 Jul 2005 15:12:01 -0000 @@ -98,6 +98,7 @@ "Maurizio Tidei ", "Sampo Kellomaki ", "Grégoire Dooms ", + "Simon Kagstrom ", NULL }; Index: app/layer_dialog.c =================================================================== RCS file: /cvs/gnome/dia/app/layer_dialog.c,v retrieving revision 1.40 diff -u -r1.40 layer_dialog.c --- app/layer_dialog.c 20 May 2005 18:00:03 -0000 1.40 +++ app/layer_dialog.c 22 Jul 2005 15:12:01 -0000 @@ -334,6 +334,17 @@ undo_layer(dia, layer, TYPE_ADD_LAYER, dia->data->layers->len - pos); undo_set_transactionpoint(dia->undo); + + /* Update the layer numbering */ + list = GTK_LIST(layer_dialog->layer_list)->children; + while (list) { + DiaLayerWidget *lw; + + lw = DIA_LAYER_WIDGET(list->data); + dia_layer_update_from_layer(lw); + + list = g_list_next(list); + } } } @@ -342,6 +353,7 @@ { Diagram *dia; GtkWidget *selected; + GList *list = NULL; Layer *layer; int pos; @@ -368,6 +380,17 @@ pos = 0; gtk_list_select_item(GTK_LIST(layer_dialog->layer_list), pos); + + /* Update the layer numbering */ + list = GTK_LIST(layer_dialog->layer_list)->children; + while (list) { + DiaLayerWidget *lw; + + lw = DIA_LAYER_WIDGET(list->data); + dia_layer_update_from_layer(lw); + + list = g_list_next(list); + } } } @@ -770,6 +793,7 @@ dia_layer_widget_init(DiaLayerWidget *lw) { GtkWidget *hbox; + GtkWidget *layer_nr; GtkWidget *visible; GtkWidget *connectable; GtkWidget *label; @@ -782,6 +806,12 @@ lw->connect_on = FALSE; lw->connect_off = FALSE; + + lw->layer_nr = layer_nr = gtk_label_new("0"); + gtk_label_set_justify(GTK_LABEL(layer_nr), GTK_JUSTIFY_LEFT); + gtk_label_set_width_chars(GTK_LABEL(layer_nr), 4); + gtk_box_pack_start(GTK_BOX(hbox), layer_nr, FALSE, TRUE, 4); + gtk_widget_show(layer_nr); lw->visible = visible = dia_toggle_button_new_with_icons(dia_visible_icon, dia_visible_empty_icon); @@ -880,11 +910,29 @@ void dia_layer_update_from_layer (DiaLayerWidget *widget) { + GPtrArray *layers = widget->dia->data->layers; + char buf[16]; + int k = 0; + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget->visible), widget->layer->visible); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget->connectable), widget->layer->connectable); + if (layers) { + Layer *lay; + + for (k = 0; k < layers->len; k++) { + lay = (Layer *)g_ptr_array_index(layers, k); + + /* Found the layer number */ + if (lay == widget->layer) + break; + } + } + + g_snprintf(buf, 15, "%d", k); + gtk_label_set_text (GTK_LABEL (widget->layer_nr), buf); gtk_label_set_text (GTK_LABEL (widget->label), widget->layer->name); } Index: app/layer_dialog.h =================================================================== RCS file: /cvs/gnome/dia/app/layer_dialog.h,v retrieving revision 1.6 diff -u -r1.6 layer_dialog.h --- app/layer_dialog.h 7 Jun 2004 12:22:40 -0000 1.6 +++ app/layer_dialog.h 22 Jul 2005 15:12:01 -0000 @@ -57,6 +57,7 @@ Diagram *dia; Layer *layer; + GtkWidget *layer_nr; GtkWidget *visible; GtkWidget *connectable; GtkWidget *label;