1 #ifndef _PROCESS_LIST_H
2 #define _PROCESS_LIST_H
5 #include <lttv/state.h>
12 * Create a process list
13 * contains the data for the process list
14 * tells the height of the process list widget
15 * provides methods to add/remove process from the list
16 * note : the sync with drawing is left to the caller.
17 * provides helper function to convert a process unique identifier to
20 * //FIXME : connect the scrolled window adjustment with the list.
23 typedef struct _ProcessInfo
{
30 typedef struct _HashedProcessData
{
32 GtkTreeRowReference
*RowRef
;
33 DrawContext
*draw_context
;
39 GtkWidget
*process_list_VC
;
40 GtkListStore
*Store_M
;
42 /* A hash table by PID to speed up process position find in the list */
43 GHashTable
*process_hash
;
45 guint number_of_process
;
46 gboolean Test_Process_Sent
;
51 typedef struct _ProcessList ProcessList
;
53 ProcessList
*processlist_construct(void);
54 void processlist_destroy(ProcessList
*process_list
);
55 GtkWidget
*processlist_get_widget(ProcessList
*process_list
);
57 // out : success (0) and height
58 int processlist_add(ProcessList
*process_list
, guint pid
, LttTime
*birth
,
60 guint
*height
, HashedProcessData
**hashed_process_data
);
61 // out : success (0) and height
62 int processlist_remove(ProcessList
*process_list
, guint pid
, LttTime
*birth
);
64 guint
processlist_get_height(ProcessList
*process_list
);
66 // Returns 0 on success
67 gint
processlist_get_process_pixels(ProcessList
*process_list
,
68 guint pid
, LttTime
*birth
,
69 guint
*y
, guint
*height
,
70 HashedProcessData
**hashed_process_data
);
72 gint
processlist_get_pixels_from_data( ProcessList
*process_list
,
73 ProcessInfo
*process_info
,
74 HashedProcessData
*hashed_process_data
,
78 #endif // _PROCESS_LIST_H