filter starts to work
[lttv.git] / ltt / branches / poly / lttv / modules / gui / lttvwindow / lttvwindow / lttvwindow.h
index 85ecb29c53501125538d0bceef036196588b8d74..f7c7441f4010acb4f2e34985bf352bdb24d31d54 100644 (file)
@@ -119,6 +119,7 @@ Available report methods are :
 lttvwindow_report_time_window : reports the new time window.
 lttvwindow_report_current_time : reports the new current time.
 lttvwindow_report_dividor : reports the new horizontal dividor's position.
+lttvwindow_report_filter : reports the new filter object
 
 
 
@@ -238,8 +239,8 @@ FIXME : explain other important events
 */
 
 
-#ifndef VIEWER_H
-#define VIEWER_H
+#ifndef LTTVWINDOW_H
+#define LTTVWINDOW_H
 
 /*! \file lttvwindow.h
  * \brief API used by the graphical viewers to interact with their top window.
@@ -256,9 +257,8 @@ FIXME : explain other important events
 #include <lttv/hook.h>
 #include <lttv/tracecontext.h>
 #include <lttv/stats.h>
+#include <lttv/filter.h>
 #include <lttvwindow/mainwindow.h>
-#include <lttvwindow/lttvfilter.h>
-//FIXME (not ready yet) #include <lttv/filter.h>
 
 /* Module Related API */
 
@@ -516,6 +516,37 @@ void lttvwindow_unregister_current_time_notify(Tab *tab,
                                                LttvHook    hook,
                                                gpointer    hook_data);
 
+/**
+ * Function to register a hook function for a viewer to set/update its 
+ * current position.
+ * 
+ * @param tab the tab the viewer belongs to.
+ * @param hook hook function of the viewer that updates the current time. The
+ *             call_data is a LttTime* representing the new current time.
+ * @param hook_data hook data associated with the hook function. It will
+ *                  be typically a pointer to the viewer's data structure.
+ */
+
+void lttvwindow_register_current_position_notify(Tab *tab,
+                                             LttvHook    hook,
+                                             gpointer    hook_data);
+
+
+/**
+ * Function to unregister a viewer's hook function which is used to 
+ * set/update the current position of the viewer.
+ * @param tab the tab the viewer belongs to.
+ * @param hook hook function of the viewer that updates the current time. The
+ *             call_data is a LttTime* representing the new current time.
+ * @param hook_data hook data associated with the hook function. It will
+ *                  be typically a pointer to the viewer's data structure.
+ */
+
+void lttvwindow_unregister_current_position_notify(Tab *tab,
+                                               LttvHook    hook,
+                                               gpointer    hook_data);
+
+
 
 /**
  * Function to register a hook function for a viewer to set/update the 
@@ -566,17 +597,28 @@ void lttvwindow_report_time_window(Tab *tab,
                                    TimeWindow time_window);
 
 /**
- * Function to set the current time/event of the current tab.
+ * Function to set the current time of the current tab.
  * It will be called by a viewer's signal handle associated with 
  * the button-release-event signal
  * @param tab the tab the viewer belongs to.
- * @param new current time.
+ * @param time current time.
  */
 
 void lttvwindow_report_current_time(Tab *tab, 
                                     LttTime time);
 
 
+/**
+ * Function to set the current event of the current tab.
+ * It will be called by a viewer's signal handle associated with 
+ * the button-release-event signal
+ * @param tab the tab the viewer belongs to.
+ * @param pos the current position.
+ */
+
+void lttvwindow_report_current_position(Tab *tab,
+                                        LttvTracesetContextPosition *pos);
+
 /**
  * Function to set the position of the hpane's dividor (viewer).
  * It will typically be called by a viewer's signal handle associated 
@@ -616,7 +658,7 @@ typedef struct _EventsRequest {
 } EventsRequest;
 
 /* Maximum number of events to proceed at once in a chunk */
-#define CHUNK_NUM_EVENTS 500
+#define CHUNK_NUM_EVENTS 6000
 
 
 /**
@@ -658,13 +700,15 @@ void lttvwindow_events_request_remove_all(Tab            *tab,
 
 
 /**
- * Function to get the current time window of the current tab.
- * 
- * @param tab the tab the viewer belongs to.
- * @return the current tab's time interval.
+ * Function to get the current time interval shown on the current tab.
+ * It will be called by a viewer's hook function to update the 
+ * shown time interval of the viewer and also be called by the constructor
+ * of the viewer.
+ * @param tab viewer's tab 
+ * @return time window.
  */
 
-__inline TimeWindow lttvwindow_get_time_window(Tab *tab);
+TimeWindow lttvwindow_get_time_window(Tab *tab);
 
 
 /**
@@ -683,10 +727,23 @@ LttTime lttvwindow_get_current_time(Tab *tab);
  * @param filter, a pointer to a filter.
  */
 
-//FIXME
-typedef void lttv_filter;
-//FIXME
-const lttv_filter *lttvwindow_get_filter(Tab *tab);
+//LttvFilter *lttvwindow_get_filter(Tab *tab);
+
+/**
+ * Function to set the filter of the current tab.
+ * It should be called by the filter GUI to tell the
+ * main window to update the filter tab's lttv_filter.
+ *
+ * Notice : the lttv_filter object will be owned by the
+ *          main window after the return of this function.
+ *          Do NOT desallocate it.
+ * 
+ * @param main_win, the main window the viewer belongs to.
+ * @param filter, a pointer to a filter.
+ */
+
+void lttvwindow_report_filter(Tab *tab, LttvFilter *filter);
+
 
 
 /**
@@ -710,4 +767,32 @@ LttvTracesetStats* lttvwindow_get_traceset_stats(Tab *tab);
 LttvTracesetContext* lttvwindow_get_traceset_context(Tab *tab);
 
 
-#endif //VIEWER_H
+/* set_time_window 
+ *
+ * It updates the time window of the tab, then calls the updatetimewindow
+ * hooks of each viewer.
+ *
+ * This is called whenever the scrollbar value changes.
+ *
+ * This is mostly an internal function.
+ */
+
+void set_time_window(Tab *tab, const TimeWindow *time_window);
+
+
+/* set_current_time
+ *
+ * It updates the current time of the tab, then calls the updatetimewindow
+ * hooks of each viewer.
+ *
+ * This is called whenever the current time value changes.
+ *
+ * This is mostly an internal function.
+ */
+
+void set_current_time(Tab *tab, const LttTime *current_time);
+
+
+void events_request_free(EventsRequest *events_request);
+
+#endif //LTTVWINDOW_H
This page took 0.025552 seconds and 4 git commands to generate.