* provides helper function to convert a process unique identifier to
* pixels (in height).
*
- * //FIXME : connect the scrolled window adjustment with the list.
*/
+
+/* Enumeration of the columns */
+enum
+{
+ PROCESS_COLUMN,
+ PID_COLUMN,
+ PPID_COLUMN,
+ CPU_COLUMN,
+ BIRTH_S_COLUMN,
+ BIRTH_NS_COLUMN,
+ TRACE_COLUMN,
+ N_COLUMNS
+};
+
+
typedef struct _ProcessInfo {
guint pid;
LttTime next_good_time; /* precalculate the next time where the next
pixel is.*/
- // FIXME : add info on last event ?
} HashedProcessData;
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;
/* CPU num is only used for PID 0 */
int processlist_add(ProcessList *process_list, Drawing_t * drawing,
guint pid, guint cpu, guint ppid,
- LttTime *birth, guint trace_num, const gchar *name, guint *height,
+ LttTime *birth, guint trace_num, GQuark name, guint *height,
ProcessInfo **process_info,
HashedProcessData **hashed_process_data);
// out : success (0) and height
int processlist_remove(ProcessList *process_list, guint pid, guint cpu,
LttTime *birth, guint trace_num);
+/* Set the name of a process */
+void processlist_set_name(ProcessList *process_list,
+ GQuark name,
+ HashedProcessData *hashed_process_data);
+
+
+/* Synchronize the list at the left and the drawing */
+void update_index_to_pixmap(ProcessList *process_list);
+
/* Update the width of each pixmap buffer for each process */
void update_pixmap_size(ProcessList *process_list, guint width);
-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 ;
}
if(pid == 0)
process_info.cpu = cpu;
else
- process_info.cpu = 0;
+ process_info.cpu = ANY_CPU;
process_info.birth = *birth;
process_info.trace_num = trace_num;