#include <lttv/stats.h>
#include <lttv/filter.h>
#include <lttvwindow/mainwindow.h>
+#include <lttvwindow/lttv_plugin.h>
/* Module Related API */
extern GQuark LTTV_VIEWER_CONSTRUCTORS;
/* constructor a the viewer */
-typedef GtkWidget* (*lttvwindow_viewer_constructor)(Tab *tab);
+typedef GtkWidget* (*lttvwindow_viewer_constructor)(LttvPlugin *plugin);
+extern gint lttvwindow_preempt_count;
+
+#define CHECK_GDK_INTERVAL 50000
/**
* Function to register a view constructor so that main window can generate
gpointer hook_data);
+/**
+ * Function to get the current filter of the main window : useful at viewer
+ * instanciation.
+ *
+ * @param tab the tab the viewer belongs to.
+ *
+ * returns : the current filter.
+ */
+
+
+LttvFilter *lttvwindow_get_filter(Tab *tab);
+
/**
* Function to register a hook function for a viewer to set/update its
* current time.
gconstpointer viewer);
+/**
+ * Function to see if there are events request pending.
+ *
+ * It tells if events requests are pending. Useful for checks in some events,
+ * i.e. detailed event list scrolling.
+ *
+ * @param tab the tab the viewer belongs to.
+ * @param viewer a pointer to the viewer data structure
+ * @return : TRUE is events requests are pending, else FALSE.
+ */
+
+gboolean lttvwindow_events_request_pending(Tab *tab);
+
+
+
+
/**
* 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
* @param filter, a pointer to a filter.
*/
-LttvFilter *lttvwindow_get_filter(Tab *tab);
+//LttvFilter *lttvwindow_get_filter(Tab *tab);
/**
* Function to set the filter of the current tab.
void set_current_time(Tab *tab, const LttTime *current_time);
-
void events_request_free(EventsRequest *events_request);
+GtkWidget *main_window_get_widget(Tab *tab);
+
+void set_current_position(Tab *tab, const LttvTracesetContextPosition *pos);
+
+
+/**
+ * Function to disable the EventsRequests scheduler, nestable.
+ *
+ */
+static inline void lttvwindow_events_request_disable(void)
+{
+ lttvwindow_preempt_count++;
+}
+
+/**
+ * Function to restore the EventsRequests scheduler, nestable.
+ *
+ */
+static inline void lttvwindow_events_request_enable(void)
+{
+ lttvwindow_preempt_count--;
+}
+
+
+
+
+
+
+
+
#endif //LTTVWINDOW_H