Things that a viewer can do:
update_status
-set_time_window
+lttvwindow_report_time_window
set_current_time
-update_traceset?
-update_filter?
-show_viewer?
+update_traceset -> not actually
+update_filter -> not actually
+show_viewer -> makes no sense.
set_focused_pane
set_hpane_dividor
*/
#include <lttv/hook.h>
#include <lttvwindow/common.h>
#include <lttv/stats.h>
+//FIXME (not ready yet) #include <lttv/filter.h>
/**
* Function to register a view constructor so that main window can generate
* @param view_constructor constructor of the viewer.
*/
-void lttvwindow_viewer_register_toolbar_item(char ** pixmap, char *tooltip, lttvwindow_viewer_constructor view_constructor);
+void lttvwindow_register_toolbar(char ** pixmap, char *tooltip, lttvwindow_viewer_constructor view_constructor);
/**
* a reference to find out where the pixmap and tooltip are.
*/
-void toolbar_item_unreg(lttvwindow_viewer_constructor view_constructor);
+void lttvwindow_unregister_toolbar(lttvwindow_viewer_constructor view_constructor);
/**
* @param view_constructor constructor of the viewer.
*/
-void menu_item_reg(char *menu_path, char *menu_text, lttvwindow_viewer_constructor view_constructor);
+void lttvwindow_register_menu(char *menu_path, char *menu_text, lttvwindow_viewer_constructor view_constructor);
/**
* a reference to find out where the menu_path and menu_text are.
*/
-void menu_item_unreg(lttvwindow_viewer_constructor view_constructor);
+void lttvwindow_unregister_menu(lttvwindow_viewer_constructor view_constructor);
/**
- * Update the status bar whenever something changed in the viewer.
- * @param main_win the main window the viewer belongs to.
- * @param info the message which will be shown in the status bar.
- */
-
-void update_status(MainWindow *main_win, char *info);
-
-
-/**
- * Function to get the current time window of the current tab.
- * It will be called by a viewer's hook function to update the
- * time window of the viewer and also be called by the constructor
- * of the viewer.
+ * Function to register a hook function for a viewer to update its
+ * time interval.
+ * This register function is typically called by the constructor of the viewer.
+ * @param hook hook function of the viewer. Takes a TimeInterval* as call_data.
+ * @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
- * @param time_interval a pointer where time interval will be stored.
*/
-void get_time_window(MainWindow *main_win, TimeWindow *time_window);
-
+typedef struct _TimeWindowNotifyData {
+ TimeWindow *new_time_window;
+ TimeWindow *old_time_window;
+} TimeWindowNotifyData;
-/**
- * Function to set the time interval of the current tab.
- * It will be called by a viewer's signal handle associated with
- * the move_slider signal
- * @param main_win the main window the viewer belongs to.
- * @param time_interval a pointer where time interval is stored.
- */
+void lttvwindow_register_time_window_notify(MainWindow * main_win,
+ LttvHook hook, gpointer hook_data);
-void set_time_window(MainWindow *main_win, TimeWindow *time_window);
/**
- * Function to get the current time/event of the current tab.
- * It will be called by a viewer's hook function to update the
- * current time/event of the viewer.
+ * Function to unregister a viewer's hook function which is used to
+ * set/update the time interval of the viewer.
+ * This unregister function is typically called by the destructor of the viewer.
+ * @param hook hook function of the viewer. Takes a TimeInterval as call_data.
+ * @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
- * @param time a pointer where time will be stored.
*/
-void get_current_time(MainWindow *main_win, LttTime *time);
+void lttvwindow_unregister_time_window_notify(MainWindow * main_win,
+ LttvHook hook, gpointer hook_data);
/**
- * Function to set the current time/event of the current tab.
- * It will be called by a viewer's signal handle associated with
- * the button-release-event signal
+ * Function to register a hook function for a viewer to set/update its
+ * traceset.
+ * This register function is typically called by the constructor of the viewer.
+ * @param hook hook function of the viewer.
+ * @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
- * @param time a pointer where time is stored.
*/
-void set_current_time(MainWindow *main_win, LttTime *time);
+void lttvwindow_register_traceset_notify(MainWindow * main_win,
+ LttvHook hook, gpointer hook_data);
/**
- * Function to get the traceset from the current tab.
- * It will be called by the constructor of the viewer and also be
- * called by a hook funtion of the viewer to update its traceset.
+ * Function to unregister a viewer's hook function which is used to
+ * set/update the traceset of the viewer.
+ * @param hook hook function of the viewer.
+ * @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
- * @param traceset a pointer to a traceset.
- */
-
-//void get_traceset(MainWindow *main_win, Traceset *traceset);
-
-
-/**
- * Function to get the filter of the current tab.
- * It will be called by the constructor of the viewer and also be
- * called by a hook funtion of the viewer to update its filter.
- * @param main_win, the main window the viewer belongs to.
- * @param filter, a pointer to a filter.
*/
-//void get_filter(MainWindow *main_win, Filter *filter);
+void lttvwindow_unregister_traceset_notify(MainWindow * main_win,
+ LttvHook hook, gpointer hook_data);
/**
- * Function to register a hook function for a viewer to set/update its
- * time interval.
- * It will be called by the constructor of the viewer.
- * @param hook hook function of the viewer. Takes a TimeInterval* as call_data.
+ * Function to register a hook function for a viewer to set/update its
+ * filter.
+ * This register function is typically called by the constructor of the viewer.
+ * @param hook hook function of the viewer.
* @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
*/
-void reg_update_time_window(LttvHook hook, gpointer hook_data,
- MainWindow * main_win);
+void lttvwindow_register_filter_notify(MainWindow *main_win,
+ LttvHook hook, gpointer hook_data);
/**
* Function to unregister a viewer's hook function which is used to
- * set/update the time interval of the viewer.
- * It will be called by the destructor of the viewer.
- * @param hook hook function of the viewer. Takes a TimeInterval as call_data.
+ * set/update the filter of the viewer.
+ * This unregistration is called by the destructor of the viewer.
+ * @param hook hook function of the viewer.
* @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
*/
-void unreg_update_time_window(LttvHook hook, gpointer hook_data,
- MainWindow * main_win);
+void lttvwindow_unregister_filter_notify(LttvHook hook, gpointer hook_data,
+ MainWindow * main_win);
/**
* Function to register a hook function for a viewer to set/update its
- * traceset.
- * It will be called by the constructor of the viewer.
+ * current time.
* @param hook hook function of the viewer.
* @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
*/
-void reg_update_traceset(LttvHook hook, gpointer hook_data,
- MainWindow * main_win);
+void lttvwindow_register_current_time_notify(MainWindow *main_win,
+ LttvHook hook, gpointer hook_data);
/**
* Function to unregister a viewer's hook function which is used to
- * set/update the traceset of the viewer.
- * It will be called by the destructor of the viewer.
+ * set/update the current time of the viewer.
* @param hook hook function of the viewer.
* @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
*/
-void unreg_update_traceset(LttvHook hook, gpointer hook_data,
- MainWindow * main_win);
+void lttvwindow_unregister_current_time_notify(MainWindow * main_win,
+ LttvHook hook, gpointer hook_data);
/**
- * Function to redraw each viewer belonging to the current tab
+ * Function to register a hook function for a viewer to show
+ * its content.
+ * @param hook hook function of the viewer.
+ * @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
*/
-void update_traceset(MainWindow * main_win);
+void lttvwindow_register_show(MainWindow *main_win,
+ LttvHook hook, gpointer hook_data);
/**
- * Function to register a hook function for a viewer to set/update its
- * filter.
- * It will be called by the constructor of the viewer.
+ * Function to unregister a viewer's hook function which is used to
+ * show the content of the viewer.
* @param hook hook function of the viewer.
* @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
*/
-void reg_update_filter(LttvHook hook, gpointer hook_data,
- MainWindow *main_win);
+void lttvwindow_unregister_show(MainWindow * main_win,
+ LttvHook hook, gpointer hook_data);
/**
- * Function to unregister a viewer's hook function which is used to
- * set/update the filter of the viewer.
- * It will be called by the destructor of the viewer.
+ * Function to register a hook function for a viewer to set/update the
+ * dividor of the hpane. It provides a way to make the horizontal
+ * dividors of all the viewers linked together.
* @param hook hook function of the viewer.
* @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
*/
-void unreg_update_filter(LttvHook hook, gpointer hook_data,
- MainWindow * main_win);
+void lttvwindow_register_dividor(MainWindow *main_win,
+ LttvHook hook, gpointer hook_data);
/**
- * Function to register a hook function for a viewer to set/update its
- * current time.
- * It will be called by the constructor of the viewer.
+ * Function to unregister a viewer's hook function which is used to
+ * set/update hpane's dividor of the viewer.
* @param hook hook function of the viewer.
* @param hook_data hook data associated with the hook function.
* @param main_win the main window the viewer belongs to.
*/
-void reg_update_current_time(LttvHook hook, gpointer hook_data,
- MainWindow *main_win);
+void lttvwindow_unregister_dividor(MainWindow *main_win,
+ LttvHook hook, gpointer hook_data);
+
/**
- * Function to unregister a viewer's hook function which is used to
- * set/update the current time of the viewer.
- * It will be called by the destructor of the viewer.
- * @param hook hook function of the viewer.
- * @param hook_data hook data associated with the hook function.
+ * Update the status bar whenever something changed in the viewer.
* @param main_win the main window the viewer belongs to.
+ * @param info the message which will be shown in the status bar.
*/
-void unreg_update_current_time(LttvHook hook, gpointer hook_data,
- MainWindow * main_win);
+void lttvwindow_report_status(MainWindow *main_win, char *info);
/**
- * Function to register a hook function for a viewer to show
- *the content of the viewer.
- * It will be called by the constructor of the viewer.
- * @param hook hook function of the viewer.
- * @param hook_data hook data associated with the hook function.
+ * Function to set the time interval of the current tab.
+ * It will be called by a viewer's signal handle associated with
+ * the move_slider signal
* @param main_win the main window the viewer belongs to.
+ * @param time_interval a pointer where time interval is stored.
*/
-void reg_show_viewer(LttvHook hook, gpointer hook_data,
- MainWindow *main_win);
-
+void lttvwindow_report_time_window(MainWindow *main_win, TimeWindow *time_window);
/**
- * Function to unregister a viewer's hook function which is used to
- * show the content of the viewer..
- * It will be called by the destructor of the viewer.
- * @param hook hook function of the viewer.
- * @param hook_data hook data associated with the hook function.
+ * Function to set the current time/event of the current tab.
+ * It will be called by a viewer's signal handle associated with
+ * the button-release-event signal
* @param main_win the main window the viewer belongs to.
+ * @param time a pointer where time is stored.
*/
-void unreg_show_viewer(LttvHook hook, gpointer hook_data,
- MainWindow * main_win);
+void lttvwindow_report_current_time(MainWindow *main_win, LttTime *time);
/**
- * Function to show each viewer in the current tab.
- * It will be called by main window after it called process_traceset
+ * Function to set the position of the hpane's dividor (viewer).
+ * It will be called by a viewer's signal handle associated with
+ * the motion_notify_event event/signal
* @param main_win the main window the viewer belongs to.
+ * @param position position of the hpane's dividor.
*/
-void show_viewer(MainWindow *main_win);
-
+void lttvwindow_report_dividor(MainWindow *main_win, gint position);
/**
* Function to set the focused pane (viewer).
* @param main_win the main window the viewer belongs to.
* @param paned a pointer to a pane where the viewer is contained.
*/
+//FIXME : can we do this through normal GTK signals ?
+void lttvwindow_report_focus(MainWindow *main_win, gpointer paned);
-void set_focused_pane(MainWindow *main_win, gpointer paned);
+/**
+ * Function to get the life span of the traceset
+ * @param main_win the main window the viewer belongs to.
+ * @param start start time of the traceset.
+ * @param end end time of the traceset.
+ */
+const TimeInterval *lttvwindow_get_time_span(MainWindow *main_win);
/**
- * Function to register a hook function for a viewer to set/update the
- * dividor of the hpane.
- * It will be called by the constructor of the viewer.
- * @param hook hook function of the viewer.
- * @param hook_data hook data associated with the hook function.
+ * Function to get the current time window of the current tab.
* @param main_win the main window the viewer belongs to.
+ * @param time_interval a pointer where time interval will be stored.
*/
-void reg_update_dividor(LttvHook hook, gpointer hook_data,
- MainWindow *main_win);
+const TimeWindow *lttvwindow_get_time_window(MainWindow *main_win);
/**
- * Function to unregister a viewer's hook function which is used to
- * set/update hpane's dividor of the viewer.
- * It will be called by the destructor of the viewer.
- * @param hook hook function of the viewer.
- * @param hook_data hook data associated with the hook function.
+ * Function to get the current time/event of the current tab.
* @param main_win the main window the viewer belongs to.
+ * @param time a pointer where time will be stored.
*/
-void unreg_update_dividor(LttvHook hook, gpointer hook_data,
- MainWindow *main_win);
-
+const LttTime *lttvwindow_get_current_time(MainWindow *main_win);
/**
- * Function to set the position of the hpane's dividor (viewer).
- * It will be called by a viewer's signal handle associated with
- * the motion_notify_event event/signal
+ * Function to get the traceset from the current tab.
* @param main_win the main window the viewer belongs to.
- * @param position position of the hpane's dividor.
+ * @param traceset a pointer to a traceset.
*/
-void set_hpane_dividor(MainWindow *main_win, gint position);
+const LttvTraceset *lttvwindow_get_traceset(MainWindow *main_win);
/**
- * Function to get the life span of the traceset
- * @param main_win the main window the viewer belongs to.
- * @param start start time of the traceset.
- * @param end end time of the traceset.
+ * Function to get the filter of the current tab.
+ * @param main_win, the main window the viewer belongs to.
+ * @param filter, a pointer to a filter.
*/
-void get_traceset_time_span(MainWindow *main_win, TimeInterval *time_span);
+//FIXME
+typedef void lttv_filter;
+//FIXME
+const lttv_filter *lttvwindow_get_filter(MainWindow *main_win);
/**
* Function to get the stats of the traceset
+ * It must be non const so the viewer can modify it. //FIXME really ?
* @param main_win the main window the viewer belongs to.
*/
-LttvTracesetStats* get_traceset_stats(MainWindow *main_win);
+LttvTracesetStats* lttvwindow_get_traceset_stats(MainWindow *main_win);
+
+/**
+ * Function to get the context of the traceset
+ * It must be non const so the viewer can add and remove hooks from it.
+ * @param main_win the main window the viewer belongs to.
+ */
+
+
+LttvTracesetContext* lttvwindow_get_traceset_context(MainWindow *main_win);
+
-LttvTracesetContext* get_traceset_context(MainWindow *main_win);