Initial port of the detailed event view
[lttv.git] / lttv / modules / gui / lttvwindow / lttvwindow / lttvwindow.c
index d48602082c37b3ebe98a6712647db824160ff3dd..d76ef62953f73388e824b382de565041c1a5dc5a 100644 (file)
 #include <ltt/ltt.h>
 #include <lttv/lttv.h>
 #include <lttv/state.h>
+#include <lttv/traceset.h>
+#ifdef BABEL_CLEANUP
 #include <lttv/stats.h>
-#include <lttv/tracecontext.h>
+#endif /* BABEL_CLEANUP */
 #include <lttvwindow/mainwindow.h>   
-#include <lttvwindow/mainwindow-private.h>   
+#include <lttvwindow/mainwindow-private.h>
 #include <lttvwindow/lttvwindow.h>
 #include <lttvwindow/toolbar.h>
 #include <lttvwindow/menu.h>
@@ -115,19 +117,21 @@ void set_current_time(Tab *tab, const LttTime *current_time)
  * This is called whenever the current time value changes.
  */
 
-void set_current_position(Tab *tab, const LttvTracesetContextPosition *pos)
+void set_current_position(Tab *tab, const LttvTracesetPosition *pos)
 {
   LttvAttributeValue value;
   LttvHooks * tmp;
   gboolean retval;
 
-  tab->current_time = lttv_traceset_context_position_get_time(pos);
+  tab->current_time = lttv_traceset_position_get_time(pos);
 
   retval= lttv_iattribute_find_by_path(tab->attributes,
     "hooks/updatecurrentposition", LTTV_POINTER, &value);
   g_assert(retval);
   tmp = (LttvHooks*)*(value.v_pointer);
-  if(tmp != NULL) lttv_hooks_call(tmp, pos);
+  if (tmp != NULL) {
+    lttv_hooks_call(tmp, (void *) pos);
+  }
 }
 
 void add_toolbar_constructor(MainWindow *mw, LttvToolbarClosure *toolbar_c)
@@ -465,6 +469,53 @@ __EXPORT void lttvwindow_unregister_time_window_notify(Tab *tab,
   lttv_hooks_remove_data(tmp, hook, hook_data);
 }
 
+/**
+ * Function to register a hook function for a viewer to set/update its
+ * allowed time span.
+ * @param tab viewer's tab 
+ * @param hook hook function of the viewer.
+ * @param hook_data hook data associated with the hook function.
+ */
+__EXPORT void lttvwindow_register_timespan_notify(Tab *tab,
+    LttvHook hook, gpointer hook_data)
+{
+  LttvAttributeValue value;
+  LttvHooks * tmp;
+  gboolean retval;
+
+  retval= lttv_iattribute_find_by_path(tab->attributes,
+    "hooks/updatetimespan", LTTV_POINTER, &value);
+  g_assert(retval);
+  tmp = (LttvHooks*)*(value.v_pointer);
+  if(tmp == NULL){    
+    tmp = lttv_hooks_new();
+    *(value.v_pointer) = tmp;
+  }
+  lttv_hooks_add(tmp, hook,hook_data, LTTV_PRIO_DEFAULT);
+}
+/**
+ * Function to unregister a viewer's hook function which is used to 
+ * set/update the time span allowed for the viewer.
+ * @param tab viewer's tab 
+ * @param hook hook function of the viewer.
+ * @param hook_data hook data associated with the hook function.
+ */
+
+__EXPORT void lttvwindow_unregister_timespan_notify(Tab *tab,
+    LttvHook hook, gpointer hook_data)
+{
+  LttvAttributeValue value;
+  LttvHooks * tmp;
+  gboolean retval;
+
+  retval= lttv_iattribute_find_by_path(tab->attributes,
+    "hooks/updatetimespan", LTTV_POINTER, &value);
+  g_assert(retval);
+  tmp = (LttvHooks*)*(value.v_pointer);
+  if(tmp == NULL) return;
+  lttv_hooks_remove_data(tmp, hook, hook_data);
+}
+
 /**
  * Function to register a hook function for a viewer to set/update its 
  * traceset.
@@ -959,7 +1010,7 @@ __EXPORT void lttvwindow_report_current_time(Tab *tab,
  */
 
 __EXPORT void lttvwindow_report_current_position(Tab *tab,
-                                        LttvTracesetContextPosition *pos)
+                                        LttvTracesetPosition *pos)
 {
   current_position_change_manager(tab, pos);
 }
@@ -1165,7 +1216,7 @@ void lttvwindow_report_filter(Tab *tab, LttvFilter *filter)
   lttv_hooks_call(tmp, filter);
 }
 
-
+#ifdef BABEL_CLEANUP
 
 /**
  * Function to get the stats of the traceset 
@@ -1176,15 +1227,16 @@ __EXPORT LttvTracesetStats* lttvwindow_get_traceset_stats(Tab *tab)
 {
   return tab->traceset_info->traceset_context;
 }
+#endif /*BABEL_CLEANUP*/
 
-__EXPORT LttvTracesetContext* lttvwindow_get_traceset_context(Tab *tab)
+__EXPORT LttvTraceset *lttvwindow_get_traceset(Tab *tab)
 {
-  return (LttvTracesetContext*)tab->traceset_info->traceset_context;
+        return tab->traceset_info->traceset;
 }
 
-
 void events_request_free(EventsRequest *events_request)
 {
+#ifdef BABEL_CLEANUP
   if(events_request == NULL) return;
 
   if(events_request->start_position != NULL)
@@ -1218,10 +1270,10 @@ void events_request_free(EventsRequest *events_request)
        lttv_hooks_destroy(events_request->after_request);
 
   g_free(events_request);
+#endif /*BABEL_CLEANUP*/
 }
 
 
-
 __EXPORT GtkWidget *main_window_get_widget(Tab *tab)
 {
   return tab->mw->mwindow;
This page took 0.025984 seconds and 4 git commands to generate.