#include <gtk/gtk.h>
#include <lttv/state.h>
#include <ltt/ltt.h>
+#include "Draw_Item.h"
/* The process list
*
* contains the data for the process list
* tells the height of the process list widget
* provides methods to add/remove process from the list
- * note : the sync with drawing is left to the caller.
+ * note : the sync with drawing is left to the caller.
* provides helper function to convert a process unique identifier to
- * pixels (in height).
+ * pixels (in height).
*
* //FIXME : connect the scrolled window adjustment with the list.
*/
typedef struct _ProcessInfo {
-
- guint pid;
- LttTime birth;
+
+ guint pid;
+ LttTime birth;
} ProcessInfo;
+typedef struct _HashedProcessData {
+
+ GtkTreeRowReference *RowRef;
+ DrawContext *draw_context;
-
+} HashedProcessData;
+
struct _ProcessList {
-
- GtkWidget *Process_List_VC;
- GtkListStore *Store_M;
+
+ GtkWidget *process_list_VC;
+ GtkListStore *Store_M;
- /* A hash table by PID to speed up process position find in the list */
- GHashTable *Process_Hash;
-
- guint Number_Of_Process;
- gboolean Test_Process_Sent;
+ /* A hash table by PID to speed up process position find in the list */
+ GHashTable *process_hash;
+
+ guint number_of_process;
+ gboolean Test_Process_Sent;
};
typedef struct _ProcessList ProcessList;
-ProcessList *ProcessList_construct(void);
-void ProcessList_destroy(ProcessList *Process_List);
-GtkWidget *ProcessList_getWidget(ProcessList *Process_List);
+ProcessList *processlist_construct(void);
+void processlist_destroy(ProcessList *process_list);
+GtkWidget *processlist_get_widget(ProcessList *process_list);
// out : success (0) and height
-int ProcessList_add(ProcessList *Process_List, guint pid, LttTime *birth,
- guint *height);
+int processlist_add(ProcessList *process_list, guint pid, LttTime *birth,
+ gchar *name,
+ guint *height, HashedProcessData **hashed_process_data);
// out : success (0) and height
-int ProcessList_remove(ProcessList *Process_List, guint pid, LttTime *birth);
+int processlist_remove(ProcessList *process_list, guint pid, LttTime *birth);
-guint ProcessList_get_height(ProcessList *Process_List);
+guint processlist_get_height(ProcessList *process_list);
// Returns 0 on success
-gint ProcessList_get_process_pixels(ProcessList *Process_List,
- guint pid, LttTime *birth,
- guint *y, guint *height);
+gint processlist_get_process_pixels(ProcessList *process_list,
+ guint pid, LttTime *birth,
+ guint *y, guint *height,
+ HashedProcessData **hashed_process_data);
+
+gint processlist_get_pixels_from_data( ProcessList *process_list,
+ ProcessInfo *process_info,
+ HashedProcessData *hashed_process_data,
+ guint *y,
+ guint *height);
+
#endif // _PROCESS_LIST_H