X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fcontrolflow%2Fprocesslist.h;h=f5844a11cea9d4fa408b29dee9b6ff2b2d6a91b4;hb=f4b88a7dd49bfb6b88ea579410d7e4b59faaf73c;hp=c8d5a9fa9a8985c439fbe3b41ec980696b6a782b;hpb=1c736ed5fd25e728fa1df0899be03c4853c556d8;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h b/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h index c8d5a9fa..f5844a11 100644 --- a/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h +++ b/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h @@ -38,9 +38,23 @@ * 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; @@ -74,7 +88,6 @@ typedef struct _HashedProcessData { LttTime next_good_time; /* precalculate the next time where the next pixel is.*/ - // FIXME : add info on last event ? } HashedProcessData; @@ -83,12 +96,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; @@ -118,13 +132,22 @@ void processlist_clear(ProcessList *process_list); /* 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); @@ -149,27 +172,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 ; }