X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2FguiControlFlow%2FDrawing.h;h=f211879ffb2390074097ae3f500fddd100a48cbf;hb=8d088fb270b8b2e03e3632f1b5733485a6675c07;hp=354021498f5bbe8b57a8f2bf9b5d46788924f795;hpb=f7afe191fd58f0bf4bab9c9514c261535b99d32b;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/guiControlFlow/Drawing.h b/ltt/branches/poly/lttv/modules/guiControlFlow/Drawing.h index 35402149..f211879f 100644 --- a/ltt/branches/poly/lttv/modules/guiControlFlow/Drawing.h +++ b/ltt/branches/poly/lttv/modules/guiControlFlow/Drawing.h @@ -6,24 +6,32 @@ #include #include #include "CFV.h" +#include "Draw_Item.h" /* This part of the viewer does : * Draw horizontal lines, getting graphic context as arg. * Copy region of the screen into another. * Modify the boundaries to reflect a scale change. (resize) * Refresh the physical screen with the pixmap - * A helper function is provided here to convert from time and process + * A helper function is provided here to convert from time to process * identifier to pixels and the contrary (will be useful for mouse selection). * Insert an empty square in the drawing, moving the bottom part. * + * Note: The last point is exactly why it would not be so easy to add the + * vertical line functionnality as in the original version of LTT. In order + * to do so, we should keep all processes in the list for the duration of + * all the trace instead of dynamically adding and removing them when we + * scroll. Another possibility is to redraw all the visible area when a new + * process is added to the list. The second solution seems more appropriate + * to me. + * + * * The pixmap used has the width of the physical window, but the height * of the shown processes. */ typedef struct _Drawing_t Drawing_t; - -//FIXME : TEMPORARILY FOR GC !! struct _Drawing_t { GtkWidget *Drawing_Area_V; GdkPixmap *Pixmap; @@ -33,17 +41,16 @@ struct _Drawing_t { }; +Drawing_t *drawing_construct(ControlFlowData *Control_Flow_Data); +void drawing_destroy(Drawing_t *Drawing); -Drawing_t *Drawing_construct(ControlFlowData *Control_Flow_Data); -void Drawing_destroy(Drawing_t *Drawing); - -GtkWidget *Drawing_getWidget(Drawing_t *Drawing); +GtkWidget *drawing_get_widget(Drawing_t *Drawing); //void Drawing_Refresh ( Drawing_t *Drawing, // guint x, guint y, // guint width, guint height); -void Drawing_draw_line( Drawing_t *Drawing, +void drawing_draw_line( Drawing_t *Drawing, GdkPixmap *Pixmap, guint x1, guint y1, guint x2, guint y2, @@ -55,12 +62,12 @@ void Drawing_draw_line( Drawing_t *Drawing, // guint width, guint height); /* Insert a square corresponding to a new process in the list */ -void Drawing_Insert_Square(Drawing_t *Drawing, +void drawing_insert_square(Drawing_t *Drawing, guint y, guint height); /* Remove a square corresponding to a removed process in the list */ -void Drawing_Remove_Square(Drawing_t *Drawing, +void drawing_remove_square(Drawing_t *Drawing, guint y, guint height);