Revision: 944 http://svn.sourceforge.net/geany/?rev=944&view=rev Author: eht16 Date: 2006-10-29 05:03:13 -0800 (Sun, 29 Oct 2006)
Log Message: ----------- Colour also the open files list items according to their changed state.
Modified Paths: -------------- trunk/ChangeLog trunk/src/document.c trunk/src/treeviews.c trunk/src/treeviews.h
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-10-29 01:28:58 UTC (rev 943) +++ trunk/ChangeLog 2006-10-29 13:03:13 UTC (rev 944) @@ -5,6 +5,9 @@ Added an Apply button to preferences dialog. New setting to show/hide the Quit toolbar item. New setting to show/hide notebook tabs. + * src/document.c, src/treeviews.c, src/treeviews.h: + Colour also the open files list items according to their changed + state.
2006-10-28 Nick Treleaven nick.treleaven@btinternet.com
Modified: trunk/src/document.c =================================================================== --- trunk/src/document.c 2006-10-29 01:28:58 UTC (rev 943) +++ trunk/src/document.c 2006-10-29 13:03:13 UTC (rev 944) @@ -165,8 +165,9 @@ if (idx >= 0 && doc_list[idx].is_valid && ! app->quitting) { // changes the color of the tab text according to the status - GdkColor colorred = {0, 65535, 0, 0}; - GdkColor colorblack = {0, 0, 0, 0}; + static GdkColor colorred = {0, 65535, 0, 0}; + static GdkColor colorblack = {0, 0, 0, 0}; + gchar *basename = g_path_get_basename(doc_list[idx].file_name);
gtk_widget_modify_fg(doc_list[idx].tab_label, GTK_STATE_NORMAL, (doc_list[idx].changed) ? &colorred : &colorblack); @@ -180,6 +181,8 @@ ui_save_buttons_toggle(doc_list[idx].changed); ui_set_window_title(idx); ui_update_statusbar(idx, -1); + treeviews_openfiles_update(doc_list[idx].iter, basename, doc_list[idx].changed); + g_free(basename); } }
@@ -301,7 +304,7 @@ tabnum = notebook_new_tab(new_idx, title, GTK_WIDGET(sci)); gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook), tabnum);
- iter = treeviews_openfiles_add(new_idx, title); + iter = treeviews_openfiles_add(new_idx, title, FALSE); g_free(title);
this->tag_store = NULL; @@ -893,10 +896,8 @@ tm_workspace_update(TM_WORK_OBJECT(app->tm_workspace), TRUE, TRUE, FALSE); gtk_label_set_text(GTK_LABEL(doc_list[idx].tab_label), basename); gtk_label_set_text(GTK_LABEL(doc_list[idx].tabmenu_label), basename); - treeviews_openfiles_update(doc_list[idx].iter, doc_list[idx].file_name); msgwin_status_add(_("File %s saved."), doc_list[idx].file_name); ui_update_statusbar(idx, -1); - treeviews_openfiles_update(doc_list[idx].iter, basename); g_free(basename); #ifdef HAVE_VTE vte_cwd(doc_list[idx].file_name);
Modified: trunk/src/treeviews.c =================================================================== --- trunk/src/treeviews.c 2006-10-29 01:28:58 UTC (rev 943) +++ trunk/src/treeviews.c 2006-10-29 13:03:13 UTC (rev 944) @@ -29,7 +29,7 @@ #include "document.h"
-/* the following two functions are document-related, but I think they fit better here than in document.c*/ +/* the following two functions are document-related, but I think they fit better here than in document.c */ void treeviews_prepare_taglist(GtkWidget *tree, GtkTreeStore *store) { GtkCellRenderer *renderer; @@ -236,7 +236,7 @@ tv.tree_openfiles = lookup_widget(app->window, "treeview6");
// store the short filename to show, and the index as reference - tv.store_openfiles = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT); + tv.store_openfiles = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_INT, GDK_TYPE_COLOR); gtk_tree_view_set_model(GTK_TREE_VIEW(tv.tree_openfiles), GTK_TREE_MODEL(tv.store_openfiles));
// set policy settings for the scolledwindow around the treeview again, because glade @@ -246,7 +246,8 @@ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
renderer = gtk_cell_renderer_text_new(); - column = gtk_tree_view_column_new_with_attributes(_("Open files"), renderer, "text", 0, NULL); + column = gtk_tree_view_column_new_with_attributes(_("Open files"), renderer, + "text", 0, "foreground-gdk", 2, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(tv.tree_openfiles), column); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tv.tree_openfiles), FALSE);
@@ -263,12 +264,21 @@ }
-GtkTreeIter treeviews_openfiles_add(gint idx, const gchar *string) +GtkTreeIter treeviews_openfiles_add(gint idx, const gchar *string, gboolean changed) { GtkTreeIter iter; + static GdkColor black = {0, 0, 0, 0}; + static GdkColor red = {0, 65535, 0, 0}; + GdkColor *colour; + + if (changed) + colour = &red; + else + colour = &black; +
gtk_list_store_append(tv.store_openfiles, &iter); - gtk_list_store_set(tv.store_openfiles, &iter, 0, string, 1, idx, -1); + gtk_list_store_set(tv.store_openfiles, &iter, 0, string, 1, idx, 2, colour, -1);
return iter; } @@ -281,9 +291,18 @@ }
-void treeviews_openfiles_update(GtkTreeIter iter, const gchar *string) +void treeviews_openfiles_update(GtkTreeIter iter, const gchar *string, gboolean changed) { - gtk_list_store_set(tv.store_openfiles, &iter, 0, string, -1); + static GdkColor black = {0, 0, 0, 0}; + static GdkColor red = {0, 65535, 0, 0}; + GdkColor *colour; + + if (changed) + colour = &red; + else + colour = &black; + + gtk_list_store_set(tv.store_openfiles, &iter, 0, string, 2, colour, -1); }
@@ -304,10 +323,9 @@ else shortname = g_path_get_basename(doc_list[idx].file_name);
- doc_list[idx].iter = treeviews_openfiles_add(idx, shortname); + doc_list[idx].iter = treeviews_openfiles_add(idx, shortname, doc_list[idx].changed); g_free(shortname); } - }
Modified: trunk/src/treeviews.h =================================================================== --- trunk/src/treeviews.h 2006-10-29 01:28:58 UTC (rev 943) +++ trunk/src/treeviews.h 2006-10-29 13:03:13 UTC (rev 944) @@ -54,9 +54,9 @@
void treeviews_prepare_openfiles(void);
-GtkTreeIter treeviews_openfiles_add(gint idx, const gchar *string); +GtkTreeIter treeviews_openfiles_add(gint idx, const gchar *string, gboolean changed);
-void treeviews_openfiles_update(GtkTreeIter iter, const gchar *string); +void treeviews_openfiles_update(GtkTreeIter iter, const gchar *string, gboolean changed);
void treeviews_openfiles_update_all(void);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.