Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=gservice.git;a=commitdiff;h=c41d2030e29f7d434efdac400a08660db3cee22f

commit c41d2030e29f7d434efdac400a08660db3cee22f
Author: Priyank <priy...@frugalware.org>
Date:   Fri Jan 16 01:01:13 2009 +0530

gray-out inactive services to distinguish them from active ones

diff --git a/src/gservice-backend.c b/src/gservice-backend.c
index 3b0a0f7..fbe0fa8 100644
--- a/src/gservice-backend.c
+++ b/src/gservice-backend.c
@@ -250,14 +250,6 @@ gsvc_service_get_list (void)
entry->description = gsvc_get_service_description (entry->name);
gsvc_service_get_runlevel_info (entry);
entry->enabled = FALSE;
-                               /*
-                               if (strcmp(entry->name,"single"))
-                               {
-                                       if (gsvc_get_service_status 
(entry->name) == GSVC_ON)
-                                               entry->running = TRUE;
-                                       else
-                                               entry->running = FALSE;
-                               }*/
/* search this service in the list of active services */
/* if found, set it's enabled bit */
tlist = alist;
diff --git a/src/gservice-interface.c b/src/gservice-interface.c
index 01eacdb..2d0fea3 100644
--- a/src/gservice-interface.c
+++ b/src/gservice-interface.c
@@ -67,6 +67,30 @@ gservice_get_icon (const char *icon, int size)
return ret;
}

+/* This function renders the cells representing inactive services in grey */
+/* while the active ones are rendered in usual colors */
+void
+gservice_cell_data_func (GtkTreeViewColumn *col, GtkCellRenderer *cell,
+       GtkTreeModel *model, GtkTreeIter *iter,
+       gpointer data)
+{
+       gboolean        val = FALSE;
+       GdkColor        color;
+
+       gtk_tree_model_get (model, iter, 11, &val, -1);
+       if (!val)
+       {
+               gdk_color_parse ("gray", &color);
+               g_object_set (G_OBJECT(cell), "foreground-gdk", &color, NULL);
+       }
+       else
+       {
+               g_object_set (G_OBJECT(cell), "foreground-gdk", NULL, NULL);
+       }
+
+       return;
+}
+
static void
gservice_setup_treeview (void)
{
@@ -75,7 +99,7 @@ gservice_setup_treeview (void)
GtkTreeSelection        *selection = NULL;
GtkTreeViewColumn       *column = NULL;

-       store = gtk_list_store_new (11,
+       store = gtk_list_store_new (12,
GDK_TYPE_PIXBUF,        /* status icon */
G_TYPE_STRING,          /* service name & description */
G_TYPE_INT,             /* runlevel 0 */
@@ -86,7 +110,8 @@ gservice_setup_treeview (void)
G_TYPE_INT,             /* runlevel 5 */
G_TYPE_INT,             /* runlevel 6 */
G_TYPE_BOOLEAN,         /* status */
-                               G_TYPE_STRING);         /* service name for 
internal use */
+                               G_TYPE_STRING,          /* service name for 
internal use */
+                               G_TYPE_BOOLEAN);        /* activation status 
for internal use */

renderer = gtk_cell_renderer_pixbuf_new ();
column = gtk_tree_view_column_new_with_attributes (_("Status"),
@@ -109,6 +134,9 @@ gservice_setup_treeview (void)
gtk_tree_view_column_set_expand (column, FALSE);
gtk_tree_view_column_set_min_width (column, 30);
gtk_tree_view_column_set_expand (column, TRUE);
+       gtk_tree_view_column_set_cell_data_func (column, renderer,
+                                               
(GtkTreeCellDataFunc)gservice_cell_data_func,
+                                               NULL, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW(gsvc_treeview_services), column);

renderer = gtk_cell_renderer_toggle_new ();
@@ -241,7 +269,7 @@ gservice_populate_services (void)
char *desc = NULL;
char *namedesc = NULL;
desc = gsvc_glist_to_string (e->description);
-               namedesc = g_markup_printf_escaped ("<span 
size=\"x-large\"weight=\"bold\">%s</span>\n<i>%s</i>", e->name, desc);
+               namedesc = g_markup_printf_escaped ("<span 
size=\"x-large\"weight=\"bold\">%s\n</span><i>%s</i>", e->name, desc);
gtk_list_store_append (GTK_LIST_STORE(store), &iter);
gtk_list_store_set (store, &iter,
1, (char*)namedesc,
@@ -253,6 +281,7 @@ gservice_populate_services (void)
7, e->runlevel[5],
8, e->runlevel[6],
10, (char*)e->name,
+                                       11, (e->enabled)?TRUE:FALSE,
-1);
//gtk_list_store_append (store, &iter);
if (e->enabled)
@@ -309,7 +338,7 @@ gservice_adjust_service_buttons_from_status (int status)
break;
}
}
-
+
return;
}
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to