typo fix == for =
[lttv.git] / ltt / branches / poly / lttv / modules / guiControlFlow / Event_Hooks.c
index 6167639ccac595896ce76a6cb346557341bc5d90..0a103d6699345c5469a0b59fc3f4714714352205 100644 (file)
@@ -532,6 +532,7 @@ int draw_event_hook(void *hook_data, void *call_data)
         * process position */
        guint pid = tfs->process->pid;
        LttTime birth = tfs->process->creation_time;
+       gchar *name = strdup("name");
        guint y = 0, height = 0, pl_height = 0;
        HashedProcessData *Hashed_Process_Data = NULL;
 
@@ -549,8 +550,10 @@ int draw_event_hook(void *hook_data, void *call_data)
                processlist_add(process_list,
                                pid,
                                &birth,
+                               name,
                                &pl_height,
                                &Hashed_Process_Data);
+               g_free(name);
                drawing_insert_square( Event_Request->Control_Flow_Data->Drawing, y, height);
        }
        
@@ -582,16 +585,45 @@ int draw_event_hook(void *hook_data, void *call_data)
        prop_arc.size = 10;
        prop_arc.filled = TRUE;
        prop_arc.position = OVER;
+
        DrawContext *draw_context = Hashed_Process_Data->draw_context;
        draw_context->Current->modify_over->x = x;
        draw_context->Current->modify_over->y = y;
        draw_context->drawable = control_flow_data->Drawing->Pixmap;
+       draw_context->pango_layout = control_flow_data->Drawing->pango_layout;
        GtkWidget *widget = control_flow_data->Drawing->Drawing_Area_V;
        //draw_context->gc = widget->style->fg_gc[GTK_WIDGET_STATE (widget)];
        draw_context->gc = widget->style->black_gc;
        
-       draw_arc((void*)&prop_arc, (void*)draw_context);
+       //draw_arc((void*)&prop_arc, (void*)draw_context);
        //test_draw_item(control_flow_data->Drawing, control_flow_data->Drawing->Pixmap);
+       
+       GdkColor colorfg = { 0, 0x0000, 0x0000, 0x0000 };
+       GdkColor colorbg = { 0, 0xffff, 0x0000, 0xffff };
+       PropertiesText prop_text;
+       prop_text.foreground = &colorfg;
+       prop_text.background = &colorbg;
+       prop_text.size = 10;
+       prop_text.position = OVER;
+
+       /* Print status of the process : U, WF, WC, E, W, R */
+       if(tfs->process->state->s == LTTV_STATE_UNNAMED)
+               prop_text.Text = "U";
+       else if(tfs->process->state->s == LTTV_STATE_WAIT_FORK)
+               prop_text.Text = "WF";
+       else if(tfs->process->state->s == LTTV_STATE_WAIT_CPU)
+               prop_text.Text = "WC";
+       else if(tfs->process->state->s == LTTV_STATE_EXIT)
+               prop_text.Text = "E";
+       else if(tfs->process->state->s == LTTV_STATE_WAIT)
+               prop_text.Text = "W";
+       else if(tfs->process->state->s == LTTV_STATE_RUN)
+               prop_text.Text = "R";
+       else
+               prop_text.Text = "U";
+       
+       draw_text((void*)&prop_text, (void*)draw_context);
+       
        return 0;
 }
 
@@ -613,9 +645,9 @@ void update_time_window_hook(void *hook_data, void *call_data)
        TimeWindow *Old_Time_Window = 
                guicontrolflow_get_time_window(control_flow_data);
        TimeWindow *New_Time_Window = ((TimeWindow*)call_data);
-
+       
        /* Two cases : zoom in/out or scrolling */
-
+       
        /* In order to make sure we can reuse the old drawing, the scale must
         * be the same and the new time interval being partly located in the
         * currently shown time interval. (reuse is only for scrolling)
@@ -668,8 +700,22 @@ void update_time_window_hook(void *hook_data, void *call_data)
                                  x, 0,
                                  0, 0,
                                  -1, -1);
+                       
+                       convert_time_to_pixels(
+                                       *ns,
+                                       new_end,
+                                       old_end,
+                                       width,
+                                       &x);
 
                        *Old_Time_Window = *New_Time_Window;
+                       /* Clear the data request background, but not SAFETY */
+                       gdk_draw_rectangle (control_flow_data->Drawing->Pixmap,
+                                       control_flow_data->Drawing->Drawing_Area_V->style->white_gc,
+                     TRUE,
+                     x+SAFETY, 0,
+                     control_flow_data->Drawing->width - x,    // do not overlap
+                     control_flow_data->Drawing->height+SAFETY);
                        /* Get new data for the rest. */
                  drawing_data_request(control_flow_data->Drawing,
                                        &control_flow_data->Drawing->Pixmap,
@@ -710,6 +756,14 @@ void update_time_window_hook(void *hook_data, void *call_data)
                                          -1, -1);
        
                                *Old_Time_Window = *New_Time_Window;
+
+                               /* Clean the data request background */
+                               gdk_draw_rectangle (control_flow_data->Drawing->Pixmap,
+                                       control_flow_data->Drawing->Drawing_Area_V->style->white_gc,
+                     TRUE,
+                     0, 0,
+                     x,        // do not overlap
+                     control_flow_data->Drawing->height+SAFETY);
                                /* Get new data for the rest. */
                          drawing_data_request(control_flow_data->Drawing,
                                                &control_flow_data->Drawing->Pixmap,
@@ -726,6 +780,14 @@ void update_time_window_hook(void *hook_data, void *call_data)
                                g_info("scrolling far");
                                /* Cannot reuse any part of the screen : far jump */
                                *Old_Time_Window = *New_Time_Window;
+                               
+                               
+                               gdk_draw_rectangle (control_flow_data->Drawing->Pixmap,
+                                       control_flow_data->Drawing->Drawing_Area_V->style->white_gc,
+                     TRUE,
+                     0, 0,
+                     control_flow_data->Drawing->width+SAFETY, // do not overlap
+                     control_flow_data->Drawing->height+SAFETY);
 
                                drawing_data_request(control_flow_data->Drawing,
                                                &control_flow_data->Drawing->Pixmap,
@@ -744,7 +806,15 @@ void update_time_window_hook(void *hook_data, void *call_data)
                g_info("zoom");
 
                *Old_Time_Window = *New_Time_Window;
-               
+       
+               gdk_draw_rectangle (control_flow_data->Drawing->Pixmap,
+                                       control_flow_data->Drawing->Drawing_Area_V->style->white_gc,
+                     TRUE,
+                     0, 0,
+                     control_flow_data->Drawing->width+SAFETY, // do not overlap
+                     control_flow_data->Drawing->height+SAFETY);
+
+       
          drawing_data_request(control_flow_data->Drawing,
                                &control_flow_data->Drawing->Pixmap,
                                0, 0,
This page took 0.024376 seconds and 4 git commands to generate.