main window call process_traceset for each viewer
[lttv.git] / ltt / branches / poly / include / lttv / gtkTraceSet.h
CommitLineData
fcdf0ec2 1/*! \file gtkTraceSet.h
2 * \brief API used by the graphical viewers to interact with their top window.
3 *
4 * Main window (gui module) is the place to contain and display viewers.
5 * Viewers (lttv plugins) interacte with main window through this API and
6 * events sent by gtk.
c5d77517 7 * This header file should be included in each graphic module.
fcdf0ec2 8 * This library is used by graphical modules to interact with the
9 * tracesetWindow.
10 *
c5d77517 11 */
12
13#include <gtk/gtk.h>
14#include <ltt/ltt.h>
15#include <lttv/hook.h>
9af25d1f 16#include <lttv/common.h>
6b1d3120 17#include <lttv/stats.h>
c5d77517 18
19/**
20 * Function to register a view constructor so that main window can generate
21 * a toolbar item for the viewer in order to generate a new instance easily.
22 * It will be called by init function of the module.
fcdf0ec2 23 * @param ButtonPixmap image shown on the toolbar item.
24 * @param tooltip tooltip of the toolbar item.
25 * @param view_constructor constructor of the viewer.
c5d77517 26 */
27
41a76985 28void toolbar_item_reg(char ** pixmap, char *tooltip, lttv_constructor view_constructor);
c5d77517 29
30
31/**
32 * Function to unregister the viewer's constructor, release the space
33 * occupied by pixmap, tooltip and constructor of the viewer.
34 * It will be called when a module is unloaded.
fcdf0ec2 35 * @param view_constructor constructor of the viewer which is used as
c5d77517 36 * a reference to find out where the pixmap and tooltip are.
37 */
38
41a76985 39void toolbar_item_unreg(lttv_constructor view_constructor);
c5d77517 40
41
42/**
43 * Function to register a view constructor so that main window can generate
44 * a menu item for the viewer in order to generate a new instance easily.
45 * It will be called by init function of the module.
fcdf0ec2 46 * @param menu_path path of the menu item.
47 * @param menu_text text of the menu item.
48 * @param view_constructor constructor of the viewer.
c5d77517 49 */
50
41a76985 51void menu_item_reg(char *menu_path, char *menu_text, lttv_constructor view_constructor);
c5d77517 52
53
54/**
55 * Function to unregister the viewer's constructor, release the space
56 * occupied by menu_path, menu_text and constructor of the viewer.
57 * It will be called when a module is unloaded.
fcdf0ec2 58 * @param view_constructor constructor of the viewer which is used as
c5d77517 59 * a reference to find out where the menu_path and menu_text are.
60 */
61
41a76985 62void menu_item_unreg(lttv_constructor view_constructor);
c5d77517 63
64
65/**
66 * Update the status bar whenever something changed in the viewer.
fcdf0ec2 67 * @param main_win the main window the viewer belongs to.
68 * @param info the message which will be shown in the status bar.
c5d77517 69 */
70
41a76985 71void update_status(MainWindow *main_win, char *info);
c5d77517 72
73
74/**
f7afe191 75 * Function to get the current time window of the current tab.
c5d77517 76 * It will be called by a viewer's hook function to update the
f7afe191 77 * time window of the viewer and also be called by the constructor
c5d77517 78 * of the viewer.
fcdf0ec2 79 * @param main_win the main window the viewer belongs to.
80 * @param time_interval a pointer where time interval will be stored.
c5d77517 81 */
82
41a76985 83void get_time_window(MainWindow *main_win, TimeWindow *time_window);
c5d77517 84
85
86/**
87 * Function to set the time interval of the current tab.
88 * It will be called by a viewer's signal handle associated with
89 * the move_slider signal
fcdf0ec2 90 * @param main_win the main window the viewer belongs to.
91 * @param time_interval a pointer where time interval is stored.
c5d77517 92 */
93
41a76985 94void set_time_window(MainWindow *main_win, TimeWindow *time_window);
c5d77517 95
96/**
97 * Function to get the current time/event of the current tab.
98 * It will be called by a viewer's hook function to update the
99 * current time/event of the viewer.
fcdf0ec2 100 * @param main_win the main window the viewer belongs to.
10bc4f50 101 * @param time a pointer where time will be stored.
c5d77517 102 */
103
41a76985 104void get_current_time(MainWindow *main_win, LttTime *time);
c5d77517 105
106
107/**
108 * Function to set the current time/event of the current tab.
109 * It will be called by a viewer's signal handle associated with
110 * the button-release-event signal
fcdf0ec2 111 * @param main_win the main window the viewer belongs to.
10bc4f50 112 * @param time a pointer where time is stored.
c5d77517 113 */
114
41a76985 115void set_current_time(MainWindow *main_win, LttTime *time);
c5d77517 116
117
118/**
119 * Function to get the traceset from the current tab.
120 * It will be called by the constructor of the viewer and also be
121 * called by a hook funtion of the viewer to update its traceset.
fcdf0ec2 122 * @param main_win the main window the viewer belongs to.
123 * @param traceset a pointer to a traceset.
c5d77517 124 */
125
41a76985 126//void get_traceset(MainWindow *main_win, Traceset *traceset);
c5d77517 127
128
129/**
130 * Function to get the filter of the current tab.
131 * It will be called by the constructor of the viewer and also be
132 * called by a hook funtion of the viewer to update its filter.
133 * @param main_win, the main window the viewer belongs to.
134 * @param filter, a pointer to a filter.
135 */
136
41a76985 137//void get_filter(MainWindow *main_win, Filter *filter);
c5d77517 138
139
140/**
141 * Function to register a hook function for a viewer to set/update its
142 * time interval.
143 * It will be called by the constructor of the viewer.
f7afe191 144 * @param hook hook function of the viewer. Takes a TimeInterval* as call_data.
fcdf0ec2 145 * @param hook_data hook data associated with the hook function.
146 * @param main_win the main window the viewer belongs to.
c5d77517 147 */
148
41a76985 149void reg_update_time_window(LttvHook hook, gpointer hook_data,
150 MainWindow * main_win);
c5d77517 151
152
153/**
154 * Function to unregister a viewer's hook function which is used to
155 * set/update the time interval of the viewer.
156 * It will be called by the destructor of the viewer.
f7afe191 157 * @param hook hook function of the viewer. Takes a TimeInterval as call_data.
fcdf0ec2 158 * @param hook_data hook data associated with the hook function.
159 * @param main_win the main window the viewer belongs to.
c5d77517 160 */
161
41a76985 162void unreg_update_time_window(LttvHook hook, gpointer hook_data,
163 MainWindow * main_win);
c5d77517 164
165
166/**
167 * Function to register a hook function for a viewer to set/update its
168 * traceset.
169 * It will be called by the constructor of the viewer.
fcdf0ec2 170 * @param hook hook function of the viewer.
171 * @param hook_data hook data associated with the hook function.
172 * @param main_win the main window the viewer belongs to.
c5d77517 173 */
174
41a76985 175void reg_update_traceset(LttvHook hook, gpointer hook_data,
bca3b81f 176 MainWindow * main_win);
c5d77517 177
178
179/**
180 * Function to unregister a viewer's hook function which is used to
181 * set/update the traceset of the viewer.
182 * It will be called by the destructor of the viewer.
fcdf0ec2 183 * @param hook hook function of the viewer.
184 * @param hook_data hook data associated with the hook function.
185 * @param main_win the main window the viewer belongs to.
c5d77517 186 */
187
41a76985 188void unreg_update_traceset(LttvHook hook, gpointer hook_data,
bca3b81f 189 MainWindow * main_win);
c5d77517 190
191
192/**
193 * Function to register a hook function for a viewer to set/update its
194 * filter.
195 * It will be called by the constructor of the viewer.
fcdf0ec2 196 * @param hook hook function of the viewer.
197 * @param hook_data hook data associated with the hook function.
198 * @param main_win the main window the viewer belongs to.
c5d77517 199 */
200
41a76985 201void reg_update_filter(LttvHook hook, gpointer hook_data,
bca3b81f 202 MainWindow *main_win);
c5d77517 203
204
205/**
206 * Function to unregister a viewer's hook function which is used to
207 * set/update the filter of the viewer.
208 * It will be called by the destructor of the viewer.
fcdf0ec2 209 * @param hook hook function of the viewer.
210 * @param hook_data hook data associated with the hook function.
211 * @param main_win the main window the viewer belongs to.
c5d77517 212 */
213
41a76985 214void unreg_update_filter(LttvHook hook, gpointer hook_data,
bca3b81f 215 MainWindow * main_win);
c5d77517 216
217
218/**
219 * Function to register a hook function for a viewer to set/update its
220 * current time.
221 * It will be called by the constructor of the viewer.
fcdf0ec2 222 * @param hook hook function of the viewer.
223 * @param hook_data hook data associated with the hook function.
224 * @param main_win the main window the viewer belongs to.
c5d77517 225 */
226
41a76985 227void reg_update_current_time(LttvHook hook, gpointer hook_data,
bca3b81f 228 MainWindow *main_win);
c5d77517 229
230
231/**
232 * Function to unregister a viewer's hook function which is used to
233 * set/update the current time of the viewer.
234 * It will be called by the destructor of the viewer.
fcdf0ec2 235 * @param hook hook function of the viewer.
236 * @param hook_data hook data associated with the hook function.
237 * @param main_win the main window the viewer belongs to.
c5d77517 238 */
239
41a76985 240void unreg_update_current_time(LttvHook hook, gpointer hook_data,
bca3b81f 241 MainWindow * main_win);
10bc4f50 242
243
202f6c8f 244/**
245 * Function to register a hook function for a viewer to show
246 *the content of the viewer.
247 * It will be called by the constructor of the viewer.
248 * @param hook hook function of the viewer.
249 * @param hook_data hook data associated with the hook function.
250 * @param main_win the main window the viewer belongs to.
251 */
252
253void reg_show_viewer(LttvHook hook, gpointer hook_data,
254 MainWindow *main_win);
255
256
257/**
258 * Function to unregister a viewer's hook function which is used to
259 * show the content of the viewer..
260 * It will be called by the destructor of the viewer.
261 * @param hook hook function of the viewer.
262 * @param hook_data hook data associated with the hook function.
263 * @param main_win the main window the viewer belongs to.
264 */
265
266void unreg_show_viewer(LttvHook hook, gpointer hook_data,
267 MainWindow * main_win);
268
269
270/**
271 * Function to show each viewer in the current tab.
272 * It will be called by main window after it called process_traceset
273 * @param main_win the main window the viewer belongs to.
274 */
275
276void show_viewer(MainWindow *main_win);
277
278
10bc4f50 279/**
280 * Function to set the focused pane (viewer).
281 * It will be called by a viewer's signal handle associated with
282 * the grab_focus signal
283 * @param main_win the main window the viewer belongs to.
284 * @param paned a pointer to a pane where the viewer is contained.
285 */
286
41a76985 287void set_focused_pane(MainWindow *main_win, gpointer paned);
10bc4f50 288
289
290/**
291 * Function to register a hook function for a viewer to set/update the
292 * dividor of the hpane.
293 * It will be called by the constructor of the viewer.
294 * @param hook hook function of the viewer.
295 * @param hook_data hook data associated with the hook function.
296 * @param main_win the main window the viewer belongs to.
297 */
298
41a76985 299void reg_update_dividor(LttvHook hook, gpointer hook_data,
bca3b81f 300 MainWindow *main_win);
10bc4f50 301
302
303/**
304 * Function to unregister a viewer's hook function which is used to
305 * set/update hpane's dividor of the viewer.
306 * It will be called by the destructor of the viewer.
307 * @param hook hook function of the viewer.
308 * @param hook_data hook data associated with the hook function.
309 * @param main_win the main window the viewer belongs to.
310 */
311
41a76985 312void unreg_update_dividor(LttvHook hook, gpointer hook_data,
bca3b81f 313 MainWindow *main_win);
10bc4f50 314
315
316/**
317 * Function to set the position of the hpane's dividor (viewer).
318 * It will be called by a viewer's signal handle associated with
319 * the motion_notify_event event/signal
320 * @param main_win the main window the viewer belongs to.
321 * @param position position of the hpane's dividor.
322 */
323
41a76985 324void set_hpane_dividor(MainWindow *main_win, gint position);
10bc4f50 325
326
327/**
328 * Function to process traceset. It will call lttv_process_trace,
329 * each view will call this api to get events.
330 * @param main_win the main window the viewer belongs to.
331 * @param start the start time of the first event to be processed.
332 * @param end the end time of the last event to be processed.
333 */
334
41a76985 335void process_traceset_api(MainWindow *main_win, LttTime start,
336 LttTime end, unsigned maxNumEvents);
10bc4f50 337
338
339/**
340 * Function to add hooks into the context of a traceset,
341 * before reading events from traceset, viewer will call this api to
342 * register hooks
343 * @param main_win the main window the viewer belongs to.
344 * @param LttvHooks hooks to be registered.
345 */
346
41a76985 347void context_add_hooks_api(MainWindow *main_win ,
348 LttvHooks *before_traceset,
349 LttvHooks *after_traceset,
350 LttvHooks *check_trace,
351 LttvHooks *before_trace,
352 LttvHooks *after_trace,
353 LttvHooks *check_tracefile,
354 LttvHooks *before_tracefile,
355 LttvHooks *after_tracefile,
356 LttvHooks *check_event,
357 LttvHooks *before_event,
358 LttvHooks *after_event);
10bc4f50 359
360
361/**
362 * Function to remove hooks from the context of a traceset,
363 * before reading events from traceset, viewer will call this api to
364 * unregister hooks
365 * @param main_win the main window the viewer belongs to.
366 * @param LttvHooks hooks to be registered.
367 */
368
41a76985 369void context_remove_hooks_api(MainWindow *main_win ,
370 LttvHooks *before_traceset,
371 LttvHooks *after_traceset,
372 LttvHooks *check_trace,
373 LttvHooks *before_trace,
374 LttvHooks *after_trace,
375 LttvHooks *check_tracefile,
376 LttvHooks *before_tracefile,
377 LttvHooks *after_tracefile,
378 LttvHooks *check_event,
379 LttvHooks *before_event,
380 LttvHooks *after_event);
c5d77517 381
382
fb1a869e 383/**
384 * Function to get the life span of the traceset
385 * @param main_win the main window the viewer belongs to.
386 * @param start start time of the traceset.
387 * @param end end time of the traceset.
388 */
389
41a76985 390void get_traceset_time_span(MainWindow *main_win, TimeInterval *time_span);
6b1d3120 391
392
393/**
394 * Function to add/remove event hooks for state
395 * @param main_win the main window the viewer belongs to.
396 */
397
41a76985 398void state_add_event_hooks_api(MainWindow *main_win );
399void state_remove_event_hooks_api(MainWindow *main_win );
6b1d3120 400
401
402/**
403 * Function to add/remove event hooks for stats
404 * @param main_win the main window the viewer belongs to.
405 */
406
41a76985 407void stats_add_event_hooks_api(MainWindow *main_win );
408void stats_remove_event_hooks_api(MainWindow *main_win );
6b1d3120 409
410
411/**
412 * Function to get the stats of the traceset
413 * @param main_win the main window the viewer belongs to.
414 */
415
41a76985 416LttvTracesetStats* get_traceset_stats_api(MainWindow *main_win);
This page took 0.042873 seconds and 4 git commands to generate.