From: compudj Date: Thu, 19 Aug 2004 04:13:34 +0000 (+0000) Subject: fix cell renderer get height _for good_ X-Git-Tag: v0.12.20~2679 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=866fefbddc38ec2e13d4b18619f59961997c319f;p=lttv.git fix cell renderer get height _for good_ git-svn-id: http://ltt.polymtl.ca/svn@810 04897980-b3bd-0310-b5e0-8ef037075253 --- diff --git a/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.c b/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.c index 6a8bcd44..080a92af 100644 --- a/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.c +++ b/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.c @@ -402,10 +402,10 @@ void copy_pixmap_to_screen(ProcessList *process_list, gint x, gint y, gint width, gint height) { - gint cell_height = - get_cell_height(process_list, - (GtkTreeView*)process_list->process_list_widget); - cell_height = 24; //FIXME + if(process_list->index_to_pixmap->len == 0) return; + guint cell_height = process_list->cell_height; + + //cell_height = 24; //FIXME /* Get indexes */ gint begin = floor(y/(double)cell_height); gint end = MIN(ceil((y+height)/(double)cell_height), @@ -490,6 +490,16 @@ ProcessList *processlist_construct(void) * cell_renderer to the first column of the model */ /* Columns alignment : 0.0 : Left 0.5 : Center 1.0 : Right */ renderer = gtk_cell_renderer_text_new (); + process_list->renderer = renderer; + + gtk_cell_renderer_get_size(renderer, + GTK_WIDGET(process_list->process_list_widget), + NULL, + NULL, + NULL, + NULL, + &process_list->cell_height); + column = gtk_tree_view_column_new_with_attributes ( "Process", renderer, "text", @@ -680,16 +690,19 @@ int processlist_add( ProcessList *process_list, BIRTH_NS_COLUMN, birth->tv_nsec, TRACE_COLUMN, trace_num, -1); - + //gtk_tree_view_set_model(GTK_TREE_VIEW(process_list->process_list_widget), + // GTK_TREE_MODEL(process_list->list_store)); + //gtk_container_resize_children(GTK_CONTAINER(process_list->process_list_widget)); + g_hash_table_insert(process_list->process_hash, (gpointer)Process_Info, (gpointer)hashed_process_data); process_list->number_of_process++; - hashed_process_data->height = get_cell_height(process_list, - (GtkTreeView*)process_list->process_list_widget); - hashed_process_data->height = 24; // FIXME + hashed_process_data->height = process_list->cell_height; + + //hashed_process_data->height = 24; // FIXME g_assert(hashed_process_data->height != 0); *height = hashed_process_data->height * process_list->number_of_process; diff --git a/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h b/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h index c8d5a9fa..b8ad8453 100644 --- a/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h +++ b/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h @@ -83,12 +83,13 @@ struct _ProcessList { GtkWidget *process_list_widget; GtkListStore *list_store; GtkWidget *button; /* one button of the tree view */ + GtkCellRenderer *renderer; /* A hash table by PID to speed up process position find in the list */ GHashTable *process_hash; guint number_of_process; - gint cell_height_cache; + gint cell_height; /* Current process, one per cpu */ HashedProcessData **current_hash_data; @@ -149,27 +150,9 @@ void copy_pixmap_to_screen(ProcessList *process_list, -static inline gint get_cell_height(ProcessList *process_list, - GtkTreeView *tree_view) -{ - gint height = process_list->cell_height_cache; - if(height != -1) return height; - else { - GtkTreeViewColumn *Column = gtk_tree_view_get_column(tree_view, 0); - - gtk_tree_view_column_cell_get_size(Column, NULL, NULL, NULL, NULL, - &process_list->cell_height_cache); - } - return process_list->cell_height_cache; -} - - - static inline guint processlist_get_height(ProcessList *process_list) { - return get_cell_height(process_list, - (GtkTreeView*)process_list->process_list_widget) - * process_list->number_of_process ; + return process_list->cell_height * process_list->number_of_process ; }