X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fcontrolflow%2Fdrawing.c;h=38578cfcf40da29bdd7ca2226db252ff3c2167b6;hb=e025a729300a06b0de77a8c63d7256fed2658ccb;hp=2cd92c2eedafc3d4e36499b9b8310b8912171cc4;hpb=0c5dbe3b7a45055b7ed07cd497b51801b3e8310e;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/controlflow/drawing.c b/ltt/branches/poly/lttv/modules/gui/controlflow/drawing.c index 2cd92c2e..38578cfc 100644 --- a/ltt/branches/poly/lttv/modules/gui/controlflow/drawing.c +++ b/ltt/branches/poly/lttv/modules/gui/controlflow/drawing.c @@ -33,6 +33,20 @@ #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) + +GdkColor drawing_colors[NUM_COLORS] = +{ /* Pixel, R, G, B */ + { 0, 0, 0, 0 }, /* COL_BLACK */ + { 0, 0xFFFF, 0xFFFF, 0xFFFF }, /* COL_WHITE */ + { 0, 0x0fff, 0xffff, 0xfff0 }, /* COL_WAIT_FORK */ + { 0, 0xffff, 0xffff, 0x0000 }, /* COL_WAIT_CPU */ + { 0, 0xffff, 0x0000, 0xffff }, /* COL_EXIT */ + { 0, 0xffff, 0x0000, 0x0000 }, /* COL_WAIT */ + { 0, 0x0000, 0xffff, 0x0000 } /* COL_RUN */ +}; + + + /***************************************************************************** * drawing functions * *****************************************************************************/ @@ -44,28 +58,6 @@ static gboolean motion_notify_ruler(GtkWidget *widget, GdkEventMotion *event, gpointer user_data); -//FIXME Colors will need to be dynamic. Graphic context part not done so far. -typedef enum -{ - RED, - GREEN, - BLUE, - WHITE, - BLACK - -} ControlFlowColors; - -/* Vector of unallocated colors */ -static GdkColor CF_Colors [] = -{ - { 0, 0xffff, 0x0000, 0x0000 }, // RED - { 0, 0x0000, 0xffff, 0x0000 }, // GREEN - { 0, 0x0000, 0x0000, 0xffff }, // BLUE - { 0, 0xffff, 0xffff, 0xffff }, // WHITE - { 0, 0x0000, 0x0000, 0x0000 } // BLACK -}; - - /* Function responsible for updating the exposed area. * It must do an events request to the lttvwindow API to ask for this update. * Note : this function cannot clear the background, because it may @@ -234,7 +226,8 @@ void drawing_chunk_begin(EventsRequest *events_request, LttvTracesetState *tss) LttvTracesetContext *tsc = LTTV_TRACESET_CONTEXT(tss); LttTime current_time = lttv_traceset_context_get_current_tfc(tsc)->timestamp; - cfd->drawing->last_start = current_time; + cfd->drawing->last_start = LTT_TIME_MIN(current_time, + events_request->end_time); } @@ -490,13 +483,10 @@ button_press_event( GtkWidget *widget, GdkEventButton *event, gpointer user_data window_end, &time); - lttvwindow_report_current_time(control_flow_data->tab, &time); + lttvwindow_report_current_time(control_flow_data->tab, time); } - lttvwindow_report_focus(control_flow_data->tab, - gtk_widget_get_parent(guicontrolflow_get_widget(control_flow_data))); - return FALSE; } @@ -527,11 +517,9 @@ Drawing_t *drawing_construct(ControlFlowData *control_flow_data) drawing->ruler_hbox = gtk_hbox_new(FALSE, 1); drawing->ruler = gtk_drawing_area_new (); - gtk_widget_add_events(drawing->ruler, GDK_BUTTON_PRESS_MASK); //gtk_widget_set_size_request(drawing->ruler, -1, 27); drawing->padding = gtk_drawing_area_new (); - gtk_widget_add_events(drawing->padding, GDK_BUTTON_PRESS_MASK); //gtk_widget_set_size_request(drawing->padding, -1, 27); gtk_box_pack_start(GTK_BOX(drawing->ruler_hbox), drawing->ruler, TRUE, TRUE, 0); @@ -620,8 +608,6 @@ Drawing_t *drawing_construct(ControlFlowData *control_flow_data) // drawing->drawing_area->allocation.height, // -1); - gtk_widget_add_events(drawing->drawing_area, GDK_BUTTON_PRESS_MASK); - g_signal_connect (G_OBJECT(drawing->drawing_area), "configure_event", G_CALLBACK (configure_event),