+int processlist_add( ProcessList *Process_List,
+ guint pid,
+ LttTime *birth,
+ guint *height,
+ HashedProcessData **pmHashed_Process_Data)
+{
+ GtkTreeIter iter ;
+ ProcessInfo *Process_Info = g_new(ProcessInfo, 1);
+ HashedProcessData *Hashed_Process_Data = g_new(HashedProcessData, 1);
+ *pmHashed_Process_Data = Hashed_Process_Data;
+
+ Process_Info->pid = pid;
+ Process_Info->birth = *birth;
+
+ Hashed_Process_Data->draw_context = g_new(DrawContext, 1);
+ Hashed_Process_Data->draw_context->drawable = NULL;
+ Hashed_Process_Data->draw_context->gc = NULL;
+ Hashed_Process_Data->draw_context->Current = g_new(DrawInfo,1);
+ Hashed_Process_Data->draw_context->Current->over = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Current->over->x = -1;
+ Hashed_Process_Data->draw_context->Current->over->y = -1;
+ Hashed_Process_Data->draw_context->Current->middle = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Current->middle->x = -1;
+ Hashed_Process_Data->draw_context->Current->middle->y = -1;
+ Hashed_Process_Data->draw_context->Current->under = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Current->under->x = -1;
+ Hashed_Process_Data->draw_context->Current->under->y = -1;
+ Hashed_Process_Data->draw_context->Current->modify_over = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Current->modify_over->x = -1;
+ Hashed_Process_Data->draw_context->Current->modify_over->y = -1;
+ Hashed_Process_Data->draw_context->Current->modify_middle = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Current->modify_middle->x = -1;
+ Hashed_Process_Data->draw_context->Current->modify_middle->y = -1;
+ Hashed_Process_Data->draw_context->Current->modify_under = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Current->modify_under->x = -1;
+ Hashed_Process_Data->draw_context->Current->modify_under->y = -1;
+ Hashed_Process_Data->draw_context->Current->ts = NULL;
+ Hashed_Process_Data->draw_context->Current->tfs = NULL;
+ Hashed_Process_Data->draw_context->Previous = g_new(DrawInfo,1);
+ Hashed_Process_Data->draw_context->Previous->over = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Previous->over->x = -1;
+ Hashed_Process_Data->draw_context->Previous->over->y = -1;
+ Hashed_Process_Data->draw_context->Previous->middle = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Previous->middle->x = -1;
+ Hashed_Process_Data->draw_context->Previous->middle->y = -1;
+ Hashed_Process_Data->draw_context->Previous->under = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Previous->under->x = -1;
+ Hashed_Process_Data->draw_context->Previous->under->y = -1;
+ Hashed_Process_Data->draw_context->Previous->modify_over = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Previous->modify_over->x = -1;
+ Hashed_Process_Data->draw_context->Previous->modify_over->y = -1;
+ Hashed_Process_Data->draw_context->Previous->modify_middle = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Previous->modify_middle->x = -1;
+ Hashed_Process_Data->draw_context->Previous->modify_middle->y = -1;
+ Hashed_Process_Data->draw_context->Previous->modify_under = g_new(ItemInfo,1);
+ Hashed_Process_Data->draw_context->Previous->modify_under->x = -1;
+ Hashed_Process_Data->draw_context->Previous->modify_under->y = -1;
+ Hashed_Process_Data->draw_context->Previous->ts = NULL;
+ Hashed_Process_Data->draw_context->Previous->tfs = NULL;
+
+ /* Add a new row to the model */
+ gtk_list_store_append ( Process_List->Store_M, &iter);
+ //g_critical ( "iter before : %s", gtk_tree_path_to_string (
+ // gtk_tree_model_get_path (
+ // GTK_TREE_MODEL(Process_List->Store_M),
+ // &iter)));
+ gtk_list_store_set ( Process_List->Store_M, &iter,
+ PROCESS_COLUMN, "name",
+ PID_COLUMN, pid,
+ BIRTH_S_COLUMN, birth->tv_sec,
+ BIRTH_NS_COLUMN, birth->tv_nsec,
+ -1);
+ Hashed_Process_Data->RowRef = gtk_tree_row_reference_new (
+ GTK_TREE_MODEL(Process_List->Store_M),
+ gtk_tree_model_get_path(
+ GTK_TREE_MODEL(Process_List->Store_M),
+ &iter));
+ g_hash_table_insert( Process_List->Process_Hash,
+ (gpointer)Process_Info,
+ (gpointer)Hashed_Process_Data);
+
+ //g_critical ( "iter after : %s", gtk_tree_path_to_string (
+ // gtk_tree_model_get_path (
+ // GTK_TREE_MODEL(Process_List->Store_M),
+ // &iter)));
+ Process_List->Number_Of_Process++;
+
+ *height = get_cell_height(GTK_TREE_VIEW(Process_List->Process_List_VC))