Disable the error bell in the detailed events view
[lttv.git] / lttv / modules / gui / detailedevents / events.c
index 7c9b66accbab489e8ab12cf046d9016b709fb5fa..27330c8d1cd58fe4a81442c176adb29704efa736 100644 (file)
@@ -47,6 +47,7 @@
 #include <math.h>
 
 #include <glib.h>
+#include <glib/gprintf.h>
 #include <gtk/gtk.h>
 #include <gdk/gdk.h>
 #include <gdk/gdkx.h>
@@ -98,6 +99,7 @@ gboolean update_current_time(void * hook_data, void * call_data);
 gboolean update_current_position(void * hook_data, void * call_data);
 //gboolean show_event_detail(void * hook_data, void * call_data);
 gboolean traceset_changed(void * hook_data, void * call_data);
+gboolean timespan_changed(void * hook_data, void * call_data);
 gboolean filter_changed(void * hook_data, void * call_data);
 
 static void request_background_data(EventViewerData *event_viewer_data);
@@ -182,6 +184,11 @@ h_gui_events(LttvPlugin *plugin)
 EventViewerData *
 gui_events(LttvPluginTab *ptab)
 {
+  /*To disable the error bell when we reach the end(or the top) of the list of
+        event. Since we overload the management of the list*/
+  GtkSettings* gtk_settings = gtk_settings_get_default();
+  g_object_set(gtk_settings, "gtk-error-bell", FALSE, NULL);
+
   LttTime end;
   GtkTreeViewColumn *column;
   GtkCellRenderer *renderer;
@@ -210,6 +217,8 @@ gui_events(LttvPluginTab *ptab)
                 update_current_position,event_viewer_data);
   lttvwindow_register_traceset_notify(tab, 
                 traceset_changed,event_viewer_data);
+  lttvwindow_register_timespan_notify(tab, 
+                timespan_changed,event_viewer_data);
   lttvwindow_register_filter_notify(tab,
                 filter_changed, event_viewer_data);
   lttvwindow_register_redraw_notify(tab,
@@ -448,12 +457,14 @@ gui_events(LttvPluginTab *ptab)
   g_signal_connect (G_OBJECT (event_viewer_data->vadjust_c), "value-changed",
         G_CALLBACK (v_scroll_cb),
         event_viewer_data);
+  //TODO ybrosseau 2011-01-06: Fix comment
   /* Set the upper bound to the last event number */
   event_viewer_data->previous_value = 0;
   event_viewer_data->vadjust_c->lower = 0.0;
     //event_viewer_data->vadjust_c->upper = event_viewer_data->number_of_events;
   LttTime time = lttvwindow_get_current_time(tab);
   time = ltt_time_sub(time, tsc->time_span.start_time);
+  //TODO ybrosseau 2011-01-06: Which one do we keep?
   event_viewer_data->vadjust_c->value = ltt_time_to_double(time);
   event_viewer_data->vadjust_c->value = 0.0;
   event_viewer_data->vadjust_c->step_increment = 1.0;
@@ -511,7 +522,6 @@ gui_events(LttvPluginTab *ptab)
 static gint background_ready(void *hook_data, void *call_data)
 {
   EventViewerData *event_viewer_data = (EventViewerData *)hook_data;
-  LttvTrace *trace = (LttvTrace*)call_data;
 
   event_viewer_data->background_info_waiting--;
 
@@ -599,8 +609,6 @@ header_size_allocate(GtkWidget *widget,
 
 void tree_v_set_cursor(EventViewerData *event_viewer_data)
 {
-  GtkTreePath *path;
-  
   g_debug("set cursor cb");
 
 #if 0
@@ -619,9 +627,6 @@ void tree_v_set_cursor(EventViewerData *event_viewer_data)
 
 void tree_v_get_cursor(EventViewerData *event_viewer_data)
 {
-  GtkTreePath *path;
-  gint *indices;
-  
   g_debug("get cursor cb");
   
 
@@ -660,8 +665,6 @@ void tree_v_move_cursor_cb (GtkWidget *widget,
                             gpointer data)
 {
   GtkTreePath *path; // = gtk_tree_path_new();
-  gint *indices;
-  gdouble value;
   EventViewerData *event_viewer_data = (EventViewerData*)data;
   
   g_debug("move cursor cb");
@@ -1040,7 +1043,6 @@ static void        filter_button      (GtkToolButton *toolbutton,
 gboolean tree_v_scroll_handler (GtkWidget *widget, GdkEventScroll *event, gpointer data)
 {
        EventViewerData *event_viewer_data = (EventViewerData*) data;
-       Tab *tab = event_viewer_data->tab;
 
        switch(event->direction) {
                case GDK_SCROLL_UP:
@@ -1095,7 +1097,6 @@ static void tree_selection_changed_cb (GtkTreeSelection *selection,
     gpointer data)
 {
   g_debug("tree sel changed cb");
-  EventViewerData *event_viewer_data = (EventViewerData*) data;
 
 #if 0
     /* Set the cursor to currently selected event */
@@ -1144,9 +1145,6 @@ static gint key_snooper(GtkWidget *grab_widget, GdkEventKey *event,
 void v_scroll_cb (GtkAdjustment *adjustment, gpointer data)
 {
   EventViewerData *event_viewer_data = (EventViewerData*)data;
-  LttvTracesetStats *tss =
-    lttvwindow_get_traceset_stats(event_viewer_data->tab);
-  LttvTracesetContext *tsc = (LttvTracesetContext*)tss;
   g_debug("SCROLL begin");
   g_debug("SCROLL values : %g , %g, %g",
       adjustment->value, event_viewer_data->previous_value,
@@ -1304,7 +1302,6 @@ static gboolean events_check_handler(guint count, gboolean *stop_flag,
 
 static void get_events(double new_value, EventViewerData *event_viewer_data)
 {
-  GtkTreePath *tree_path;
   LttvTracesetStats *tss =
     lttvwindow_get_traceset_stats(event_viewer_data->tab);
   LttvTracesetContext *tsc = (LttvTracesetContext*)tss;
@@ -1419,15 +1416,14 @@ static void get_events(double new_value, EventViewerData *event_viewer_data)
   /* Get the beginning position of the read (with seek backward or seek forward)
    */
     if(relative_position > 0) {
-      guint count;
-      count = lttv_process_traceset_seek_n_forward(tsc, relative_position,
+
+      lttv_process_traceset_seek_n_forward(tsc, relative_position,
           events_check_handler,
           &event_viewer_data->tab->stop_foreground,
           event_viewer_data->main_win_filter,
           event_viewer_data->filter, NULL, event_viewer_data);
     } else if(relative_position < 0) {
-      guint count;
-      
+
       /* Get an idea of currently shown event dispersion */
       LttTime first_event_time =
         lttv_traceset_context_position_get_time(event_viewer_data->first_event);
@@ -1437,7 +1433,7 @@ static void get_events(double new_value, EventViewerData *event_viewer_data)
       if(ltt_time_compare(time_diff, ltt_time_zero) == 0)
         time_diff = seek_back_default_offset;
 
-      count = lttv_process_traceset_seek_n_backward(tsc,
+      lttv_process_traceset_seek_n_backward(tsc,
           abs(relative_position),
           time_diff,
           (seek_time_fct)lttv_state_traceset_seek_time_closest,
@@ -1683,7 +1679,6 @@ gboolean update_current_time(void * hook_data, void * call_data)
   const LttTime * current_time = (LttTime*)call_data;
   LttvTracesetContext * tsc =
         lttvwindow_get_traceset_context(event_viewer_data->tab);
-  GtkTreePath *path;
   
   /* If the currently selected event time != current time, set the first event
    * with this time as currently selected. */
@@ -1783,7 +1778,27 @@ gboolean update_current_position(void * hook_data, void * call_data)
   return FALSE;
 }
 
+gboolean timespan_changed(void * hook_data, void * call_data)
+{
+  EventViewerData *event_viewer_data = (EventViewerData*) hook_data;
+  LttvTracesetContext * tsc =
+        lttvwindow_get_traceset_context(event_viewer_data->tab);
+  TimeInterval time_span = tsc->time_span;
+  LttTime end;
+
+  end = ltt_time_sub(time_span.end_time, time_span.start_time);
+  event_viewer_data->vadjust_c->upper = ltt_time_to_double(end);
 
+  if(event_viewer_data->pos->len < event_viewer_data->num_visible_events ) {
+
+         
+         get_events(event_viewer_data->vadjust_c->value, event_viewer_data);
+         
+         request_background_data(event_viewer_data);
+  }
+  return FALSE;
+}
 
 gboolean traceset_changed(void * hook_data, void * call_data)
 {
@@ -1825,8 +1840,6 @@ gboolean traceset_changed(void * hook_data, void * call_data)
 gboolean filter_changed(void * hook_data, void * call_data)
 {
   EventViewerData *event_viewer_data = (EventViewerData*) hook_data;
-  LttvTracesetContext * tsc =
-        lttvwindow_get_traceset_context(event_viewer_data->tab);
 
   event_viewer_data->main_win_filter = 
     (LttvFilter*)call_data;
@@ -1879,6 +1892,8 @@ void gui_events_free(gpointer data)
     //                    show_event_detail, event_viewer_data);
     lttvwindow_unregister_traceset_notify(tab,
                         traceset_changed, event_viewer_data);
+    lttvwindow_unregister_timespan_notify(tab,
+                                   timespan_changed,event_viewer_data);
     lttvwindow_unregister_filter_notify(tab,
                         filter_changed, event_viewer_data);
     lttvwindow_unregister_redraw_notify(tab,
This page took 0.025013 seconds and 4 git commands to generate.