X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2FguiControlFlow%2FDrawing.c;h=be9f3d92b5103294f31eecdceee19ea8ba718837;hb=8d088fb270b8b2e03e3632f1b5733485a6675c07;hp=cb2d049d440e828579c7bb97c7ce00b5062cc054;hpb=f7afe191fd58f0bf4bab9c9514c261535b99d32b;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/guiControlFlow/Drawing.c b/ltt/branches/poly/lttv/modules/guiControlFlow/Drawing.c index cb2d049d..be9f3d92 100644 --- a/ltt/branches/poly/lttv/modules/guiControlFlow/Drawing.c +++ b/ltt/branches/poly/lttv/modules/guiControlFlow/Drawing.c @@ -6,6 +6,11 @@ #include + +#define g_info(format...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, format) +#define g_debug(format...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format) + + /***************************************************************************** * Drawing functions * *****************************************************************************/ @@ -32,24 +37,21 @@ static GdkColor CF_Colors [] = }; -//struct _Drawing_t { -// GtkWidget *Drawing_Area_V; -// GdkPixmap *Pixmap; -// ControlFlowData *Control_Flow_Data; - -// gint height, width, depth; - -//}; - /* Function responsible for updating the exposed area. * It must call processTrace() to ask for this update. */ -void Drawing_Data_Request(Drawing_t *Drawing, +void drawing_data_request(Drawing_t *Drawing, GdkPixmap **Pixmap, gint x, gint y, - gint width, + gint width, gint height) { + +// start from pixel to time(x) +// end from pixel to time (x + width) + +// LttvTracesetContext * tsc = get_traceset_context(event_viewer_data->mw); + if(width < 0) return ; if(height < 0) return ; @@ -61,12 +63,19 @@ void Drawing_Data_Request(Drawing_t *Drawing, height); send_test_process( - GuiControlFlow_get_Process_List(Drawing->Control_Flow_Data), + guicontrolflow_get_process_list(Drawing->Control_Flow_Data), Drawing); send_test_drawing( - GuiControlFlow_get_Process_List(Drawing->Control_Flow_Data), + guicontrolflow_get_process_list(Drawing->Control_Flow_Data), Drawing, *Pixmap, x, y, width, height); + // Let's call processTrace() !! + + + //lttv_process_traceset_seek_time(tsc, start); + //lttv_traceset_context_add_hooks( + //lttv_process_traceset + //lttv_traceset_context_remove_hooks } /* Callbacks */ @@ -101,7 +110,7 @@ configure_event( GtkWidget *widget, GdkEventConfigure *event, Drawing->height = widget->allocation.height; g_critical("init data"); /* Initial data request */ - Drawing_Data_Request(Drawing, &Drawing->Pixmap, 0, 0, + drawing_data_request(Drawing, &Drawing->Pixmap, 0, 0, widget->allocation.width, widget->allocation.height); @@ -124,10 +133,10 @@ g_critical("init data"); /* Request data for missing space */ g_critical("missing data"); - Drawing_Data_Request(Drawing, &Pixmap, Drawing->width, 0, + drawing_data_request(Drawing, &Pixmap, Drawing->width, 0, widget->allocation.width - Drawing->width, widget->allocation.height); - Drawing_Data_Request(Drawing, &Pixmap, 0, Drawing->height, + drawing_data_request(Drawing, &Pixmap, 0, Drawing->height, Drawing->width, widget->allocation.height - Drawing->height); @@ -147,7 +156,6 @@ g_critical("missing data"); // widget->allocation.height - // Drawing->height); - if (Drawing->Pixmap) @@ -178,7 +186,7 @@ expose_event( GtkWidget *widget, GdkEventExpose *event, gpointer user_data ) return FALSE; } -Drawing_t *Drawing_construct(ControlFlowData *Control_Flow_Data) +Drawing_t *drawing_construct(ControlFlowData *Control_Flow_Data) { Drawing_t *Drawing = g_new(Drawing_t, 1); @@ -190,7 +198,7 @@ Drawing_t *Drawing_construct(ControlFlowData *Control_Flow_Data) G_OBJECT(Drawing->Drawing_Area_V), "Link_Drawing_Data", Drawing, - (GDestroyNotify)Drawing_destroy); + (GDestroyNotify)drawing_destroy); //gtk_widget_modify_bg( Drawing->Drawing_Area_V, // GTK_STATE_NORMAL, @@ -228,7 +236,7 @@ Drawing_t *Drawing_construct(ControlFlowData *Control_Flow_Data) return Drawing; } -void Drawing_destroy(Drawing_t *Drawing) +void drawing_destroy(Drawing_t *Drawing) { // Do not unref here, Drawing_t destroyed by it's widget. @@ -237,16 +245,14 @@ void Drawing_destroy(Drawing_t *Drawing) g_free(Drawing); } -GtkWidget *Drawing_getWidget(Drawing_t *Drawing) +GtkWidget *drawing_get_widget(Drawing_t *Drawing) { return Drawing->Drawing_Area_V; } /* get_time_from_pixels * - * Get the time interval from window time and pixels, and pixels requested. This - * function uses TimeMul, which should only be used if the float value is lower - * that 4, and here it's always lower than 1, so it's ok. + * Get the time interval from window time and pixels, and pixels requested. */ void convert_pixels_to_time( Drawing_t *Drawing, @@ -257,13 +263,10 @@ void convert_pixels_to_time( { LttTime window_time_interval; - TimeSub(window_time_interval, *window_time_end, *window_time_begin); - - - TimeMul(*time, window_time_interval, - (x/(float)Drawing->width)); - TimeAdd(*time, *window_time_begin, *time); - + window_time_interval = ltt_time_sub(*window_time_end, + *window_time_begin); + *time = ltt_time_mul(window_time_interval, (x/(float)Drawing->width)); + *time = ltt_time_add(*window_time_begin, *time); } @@ -278,23 +281,22 @@ void convert_time_to_pixels( LttTime window_time_interval; float interval_float, time_float; - TimeSub(window_time_interval, window_time_end, window_time_begin); + window_time_interval = ltt_time_sub(window_time_end,window_time_begin); - TimeSub(time, time, window_time_begin); + time = ltt_time_sub(time, window_time_begin); - interval_float = (window_time_interval.tv_sec * NANSECOND_CONST) - + window_time_interval.tv_nsec; - time_float = (time.tv_sec * NANSECOND_CONST) - + time.tv_nsec; + interval_float = ltt_time_to_double(window_time_interval); + time_float = ltt_time_to_double(time); *x = (guint)(time_float/interval_float * Drawing->width); } -void Drawing_Refresh ( Drawing_t *Drawing, +void drawing_refresh ( Drawing_t *Drawing, guint x, guint y, guint width, guint height) { + g_info("Drawing.c : drawing_refresh %u, %u, %u, %u", x, y, width, height); GdkRectangle update_rect; gdk_draw_drawable( @@ -315,7 +317,7 @@ void Drawing_Refresh ( Drawing_t *Drawing, } -void Drawing_draw_line( Drawing_t *Drawing, +void drawing_draw_line( Drawing_t *Drawing, GdkPixmap *Pixmap, guint x1, guint y1, guint x2, guint y2, @@ -329,7 +331,7 @@ void Drawing_draw_line( Drawing_t *Drawing, -void Drawing_Resize(Drawing_t *Drawing, guint h, guint w) +void drawing_resize(Drawing_t *Drawing, guint h, guint w) { Drawing->height = h ; Drawing->width = w ; @@ -344,7 +346,7 @@ void Drawing_Resize(Drawing_t *Drawing, guint h, guint w) /* Insert a square corresponding to a new process in the list */ /* Applies to whole Drawing->width */ -void Drawing_Insert_Square(Drawing_t *Drawing, +void drawing_insert_square(Drawing_t *Drawing, guint y, guint height) { @@ -405,7 +407,7 @@ void Drawing_Insert_Square(Drawing_t *Drawing, /* 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) { @@ -451,3 +453,5 @@ void Drawing_Remove_Square(Drawing_t *Drawing, update_rect.height = Drawing->height - y ; gtk_widget_draw( Drawing->Drawing_Area_V, &update_rect); } + +