Re: Changing foreground and background color in GtkListView rows
- From: marcodev comcast net
- To: Stefan Kost <kost imn htwk-leipzig de>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: Changing foreground and background color in GtkListView rows
- Date: Wed, 19 Jan 2005 18:52:33 +0000
Sorry, disregard my last email, I had a typo that was setting the wrong value in the columns...
The code does change color as required.
Thanks for your time :).
-Marco
make the color part of your model. connect bg_color of renderer to the color
column in model and put the respective colors into the model.
http://scentric.net/tutorial/sec-treeview-col-whole-row.html
Stefan
marcodev comcast net wrote:
I have the following code creating the column and its renderer in the list:
{
......
vars_list = gtk_tree_view_new ();
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(var_list_col_title,
renderer,
"text", 0,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(vars_list), column);
......
}
The list displays the values of variables in memory and is updated by a timout
that runs periodically. When a variable is added (appended) to the list I use
the following:
void
APPEND_TO_CLIST(GtkListStore *LIST, int ROW, char *STRING)
{
.....
GtkTreeIter iter;
gtk_list_store_append(LIST, &iter);
gtk_list_store_set(LIST, &iter,
0, STRING,
-1);
if(ROW % 2 == 0)
{
g_object_set(renderer, "background-gdk",
MM_GLBL->COLORS.CLIST_BG_A, NULL);
}
else
{
g_object_set(renderer, "background-gdk",
MM_GLBL->COLORS.CLIST_BG_B, NULL);
}
....
}
The above however is not changing the color on the background as I expected
it. Am I even doing this right?
The following issue might be related to the same problem I have with the code
above, when the value of a variable in the list is updated the value should be
displayed in one color (black) and when the value has remained unchanged for a
period of time then it should switch to another color (red). This is the code I
use for this:
void
UPDATE_CLIST_VALUE(GtkListStore *LIST, GtkTreeIter *ITER, char *STRING,
BOOLEAN NEWLY_CHANGED)
{
......
if (NEWLY_CHANGED)
{
g_object_set(renderer, "foreground", "Black", NULL);
}
else
{
g_object_set(renderer, "foreground", "Red", NULL);
}
gtk_list_store_set(list_store, ITER,
0, STRING,
-1);
// g_object_set(renderer, "text", STRING, NULL);
.......
}
The problem I have here is that when the color is chaned in the renderer and I
set the value in the store to a specific ITER then the entire column changes
color, I need to have only ONE iter (row) to change color as requested.
Any suggestions?
Thanks!!
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
--
\|/ Stefan Kost
<@ @> private business
+-oOO-(_)-OOo------------------------------------------------------ - - - - -
| __ Address Simildenstr. 5 HTWK Leipzig, Fb IMN, Postfach 301166
| /// 04277 Leipzig 04251 Leipzig
| __ /// Germany Germany
| \\\/// Phone +49341 2253538 +49341 30766101
| \__/ EMail st_kost_at_gmx.net kost_at_imn.htwk-leipzig.de
| WWW www.sonicpulse.de www.imn.htwk-leipzig.de/~kost/about.html
===-=-=--=---=---------------------------------- - - - - -
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]