X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lttv%2Fmodules%2Fgui%2Flttvwindow%2Flttvwindow%2Flttvwindow.c;h=a930e616148a4ff6d8e797e50c46cfef97de739b;hb=190724cdfc53eeebfd895b594f875b53a72adf37;hp=ebbaa06fd37fdeb050237b779238d2de4660136e;hpb=f61f4dca50e13aa52b1ca3941c8f420848f4353f;p=lttv.git diff --git a/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindow.c b/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindow.c index ebbaa06f..a930e616 100644 --- a/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindow.c +++ b/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindow.c @@ -32,13 +32,14 @@ #include #endif -#include #include #include +#include +#ifdef BABEL_CLEANUP #include -#include +#endif /* BABEL_CLEANUP */ #include -#include +#include #include #include #include @@ -65,6 +66,7 @@ void set_time_window(Tab *tab, const TimeWindow *time_window) { LttvAttributeValue value; LttvHooks * tmp; + gboolean retval; TimeWindowNotifyData time_window_notify_data; TimeWindow old_time_window = tab->time_window; @@ -73,8 +75,9 @@ void set_time_window(Tab *tab, const TimeWindow *time_window) time_window_notify_data.new_time_window = &(tab->time_window); - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatetimewindow", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatetimewindow", LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp != NULL) lttv_hooks_call(tmp, &time_window_notify_data); @@ -94,11 +97,13 @@ void set_current_time(Tab *tab, const LttTime *current_time) { LttvAttributeValue value; LttvHooks * tmp; + gboolean retval; tab->current_time = *current_time; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatecurrenttime", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatecurrenttime", LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp != NULL) lttv_hooks_call(tmp, &tab->current_time); } @@ -111,17 +116,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); - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatecurrentposition", LTTV_POINTER, &value)); + 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) @@ -132,9 +141,11 @@ void add_toolbar_constructor(MainWindow *mw, LttvToolbarClosure *toolbar_c) lttvwindow_viewer_constructor constructor; GtkWidget * tool_menu_title_menu, *new_widget, *pixmap; GdkPixbuf *pixbuf; + gboolean retval; - g_assert(lttv_iattribute_find_by_path(attributes, - "viewers/toolbar", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(attributes, "viewers/toolbar", + LTTV_POINTER, &value); + g_assert(retval); if(*(value.v_pointer) == NULL) *(value.v_pointer) = lttv_toolbars_new(); instance_toolbar = (LttvToolbars*)*(value.v_pointer); @@ -176,9 +187,11 @@ void add_menu_constructor(MainWindow *mw, LttvMenuClosure *menu_c) LttvToolbars * instance_menu; lttvwindow_viewer_constructor constructor; GtkWidget * tool_menu_title_menu, *new_widget; + gboolean retval; - g_assert(lttv_iattribute_find_by_path(attributes, - "viewers/menu", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(attributes, "viewers/menu", + LTTV_POINTER, &value); + g_assert(retval); if(*(value.v_pointer) == NULL) *(value.v_pointer) = lttv_menus_new(); instance_menu = (LttvMenus*)*(value.v_pointer); @@ -206,9 +219,11 @@ void remove_toolbar_constructor(MainWindow *mw, lttvwindow_viewer_constructor vi LttvAttributeValue value; LttvToolbars * instance_toolbar; GtkWidget * tool_menu_title_menu, *widget; + gboolean retval; - g_assert(lttv_iattribute_find_by_path(attributes, - "viewers/toolbar", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(attributes, "viewers/toolbar", + LTTV_POINTER, &value); + g_assert(retval); if(*(value.v_pointer) == NULL) *(value.v_pointer) = lttv_toolbars_new(); instance_toolbar = (LttvToolbars*)*(value.v_pointer); @@ -226,9 +241,11 @@ void remove_menu_constructor(MainWindow *mw, lttvwindow_viewer_constructor viewe LttvAttributeValue value; LttvMenus * instance_menu; GtkWidget * tool_menu_title_menu, *widget; + gboolean retval; - g_assert(lttv_iattribute_find_by_path(attributes, - "viewers/menu", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(attributes, "viewers/menu", + LTTV_POINTER, &value); + g_assert(retval); if(*(value.v_pointer) == NULL) *(value.v_pointer) = lttv_menus_new(); instance_menu = (LttvMenus*)*(value.v_pointer); @@ -274,12 +291,14 @@ __EXPORT void lttvwindow_register_constructor LttvToolbarClosure toolbar_c; LttvMenuClosure menu_c; LttvAttributeValue value; + gboolean retval; if(view_constructor == NULL) return; if(pixmap != NULL) { - g_assert(lttv_iattribute_find_by_path(attributes_global, - "viewers/toolbar", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(attributes_global, "viewers/toolbar", + LTTV_POINTER, &value); + g_assert(retval); toolbar = (LttvToolbars*)*(value.v_pointer); if(toolbar == NULL) { @@ -295,8 +314,9 @@ __EXPORT void lttvwindow_register_constructor } if(menu_path != NULL) { - g_assert(lttv_iattribute_find_by_path(attributes_global, - "viewers/menu", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(attributes_global, "viewers/menu", + LTTV_POINTER, &value); + g_assert(retval); menu = (LttvMenus*)*(value.v_pointer); if(menu == NULL) { @@ -346,10 +366,12 @@ __EXPORT void lttvwindow_unregister_constructor LttvToolbars * toolbar; LttvMenus * menu; LttvAttributeValue value; - gboolean is_named; + gboolean is_named; + gboolean retval; - g_assert(lttv_iattribute_find_by_path(attributes_global, - "viewers/toolbar", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(attributes_global, "viewers/toolbar", + LTTV_POINTER, &value); + g_assert(retval); toolbar = (LttvToolbars*)*(value.v_pointer); if(toolbar != NULL) { @@ -359,8 +381,9 @@ __EXPORT void lttvwindow_unregister_constructor lttv_toolbars_remove(toolbar, view_constructor); } - g_assert(lttv_iattribute_find_by_path(attributes_global, - "viewers/menu", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(attributes_global, "viewers/menu", + LTTV_POINTER, &value); + g_assert(retval); menu = (LttvMenus*)*(value.v_pointer); if(menu != NULL) { @@ -408,8 +431,11 @@ __EXPORT void lttvwindow_register_time_window_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatetimewindow", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatetimewindow", LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL){ tmp = lttv_hooks_new(); @@ -432,8 +458,58 @@ __EXPORT void lttvwindow_unregister_time_window_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatetimewindow", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatetimewindow", 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 + * 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); @@ -452,8 +528,11 @@ __EXPORT void lttvwindow_register_traceset_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatetraceset", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatetraceset", LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL){ tmp = lttv_hooks_new(); @@ -476,8 +555,11 @@ __EXPORT void lttvwindow_unregister_traceset_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatetraceset", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatetraceset", LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL) return; lttv_hooks_remove_data(tmp, hook, hook_data); @@ -496,8 +578,11 @@ __EXPORT void lttvwindow_register_redraw_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/redraw", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/redraw", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL){ tmp = lttv_hooks_new(); @@ -520,8 +605,11 @@ __EXPORT void lttvwindow_unregister_redraw_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/redraw", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/redraw", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL) return; lttv_hooks_remove_data(tmp, hook, hook_data); @@ -546,8 +634,11 @@ __EXPORT void lttvwindow_register_continue_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/continue", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/continue", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL){ tmp = lttv_hooks_new(); @@ -571,8 +662,11 @@ __EXPORT void lttvwindow_unregister_continue_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/continue", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/continue", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL) return; lttv_hooks_remove_data(tmp, hook, hook_data); @@ -592,8 +686,11 @@ __EXPORT void lttvwindow_register_filter_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatefilter", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/updatefilter", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL){ tmp = lttv_hooks_new(); @@ -617,8 +714,11 @@ __EXPORT void lttvwindow_unregister_filter_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatefilter", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/updatefilter", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL) return; lttv_hooks_remove_data(tmp, hook, hook_data); @@ -637,8 +737,11 @@ __EXPORT void lttvwindow_register_current_time_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatecurrenttime", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatecurrenttime", LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL){ tmp = lttv_hooks_new(); @@ -661,8 +764,11 @@ __EXPORT void lttvwindow_unregister_current_time_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatecurrenttime", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatecurrenttime", LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL) return; lttv_hooks_remove_data(tmp, hook, hook_data); @@ -681,8 +787,11 @@ __EXPORT void lttvwindow_register_current_position_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatecurrentposition", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatecurrentposition", LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL){ tmp = lttv_hooks_new(); @@ -705,8 +814,11 @@ __EXPORT void lttvwindow_unregister_current_position_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatecurrentposition", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatecurrentposition", LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL) return; lttv_hooks_remove_data(tmp, hook, hook_data); @@ -726,8 +838,11 @@ void lttvwindow_register_show_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/showviewer", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/showviewer", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL){ tmp = lttv_hooks_new(); @@ -750,8 +865,11 @@ void lttvwindow_unregister_show_notify(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/showviewer", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/showviewer", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL) return; lttv_hooks_remove_data(tmp, hook, hook_data); @@ -770,8 +888,11 @@ void lttvwindow_register_dividor(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/hpanedividor", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/hpanedividor", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL){ tmp = lttv_hooks_new(); @@ -795,8 +916,11 @@ void lttvwindow_unregister_dividor(Tab *tab, { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/hpanedividor", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/hpanedividor", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL) return; lttv_hooks_remove_data(tmp, hook, hook_data); @@ -885,7 +1009,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); } @@ -903,8 +1027,11 @@ void lttvwindow_report_dividor(Tab *tab, gint position) { LttvAttributeValue value; LttvHooks * tmp; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/hpanedividor", LTTV_POINTER, &value)); + gboolean retval; + + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/hpanedividor", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL) return; lttv_hooks_call(tmp, &position); @@ -1014,8 +1141,12 @@ __EXPORT gboolean lttvwindow_events_request_pending(Tab *tab) { GSList *element = tab->events_requests; - if(element == NULL) return FALSE; - else return TRUE; + if(element == NULL){ + return FALSE; + } + else { + return TRUE; + } } @@ -1075,18 +1206,20 @@ void lttvwindow_report_filter(Tab *tab, LttvFilter *filter) { LttvAttributeValue value; LttvHooks * tmp; + gboolean retval; //lttv_filter_destroy(tab->filter); //tab->filter = filter; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatefilter", LTTV_POINTER, &value)); + retval= lttv_iattribute_find_by_path(tab->attributes, "hooks/updatefilter", + LTTV_POINTER, &value); + g_assert(retval); tmp = (LttvHooks*)*(value.v_pointer); if(tmp == NULL) return; lttv_hooks_call(tmp, filter); } - +#ifdef BABEL_CLEANUP /** * Function to get the stats of the traceset @@ -1097,26 +1230,32 @@ __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) { + if(events_request == NULL) return; if(events_request->start_position != NULL) - lttv_traceset_context_position_destroy(events_request->start_position); + lttv_traceset_destroy_position(events_request->start_position); if(events_request->end_position != NULL) - lttv_traceset_context_position_destroy(events_request->end_position); - if(events_request->hooks != NULL) { + lttv_traceset_destroy_position(events_request->end_position); +#ifdef BABEL_CLEANUP + if(events_request->hooks != NULL) { GArray *hooks = events_request->hooks; + lttv_trace_hook_remove_all(&hooks); + g_array_free(events_request->hooks, TRUE); + } + if(events_request->before_chunk_traceset != NULL) lttv_hooks_destroy(events_request->before_chunk_traceset); if(events_request->before_chunk_trace != NULL) @@ -1125,8 +1264,6 @@ void events_request_free(EventsRequest *events_request) lttv_hooks_destroy(events_request->before_chunk_tracefile); if(events_request->event != NULL) lttv_hooks_destroy(events_request->event); - if(events_request->event_by_id_channel != NULL) - lttv_hooks_by_id_channel_destroy(events_request->event_by_id_channel); if(events_request->after_chunk_tracefile != NULL) lttv_hooks_destroy(events_request->after_chunk_tracefile); if(events_request->after_chunk_trace != NULL) @@ -1137,10 +1274,11 @@ void events_request_free(EventsRequest *events_request) lttv_hooks_destroy(events_request->before_request); if(events_request->after_request != NULL) lttv_hooks_destroy(events_request->after_request); - +#endif /*BABEL_CLEANUP*/ g_free(events_request); -} + +} __EXPORT GtkWidget *main_window_get_widget(Tab *tab)