X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Flttvwindow%2Flttvwindow%2Flttvwindow.c;h=a0971163bcaa0c772e322b30226ca8e505643c83;hb=db8bc91756aba1610e896aa1e9eee184843f3970;hp=84b053bd7929a9d0239ffefedcc9258bccac6e37;hpb=b052368a0d53ff62ed9110fbafdb857a2b034ca8;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindow.c b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindow.c index 84b053bd..a0971163 100644 --- a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindow.c +++ b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindow.c @@ -76,6 +76,27 @@ 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. + */ + +void set_current_time(Tab *tab, const LttTime *current_time) +{ + LttvAttributeValue value; + LttvHooks * tmp; + + tab->current_time = *current_time; + + g_assert(lttv_iattribute_find_by_path(tab->attributes, + "hooks/updatecurrenttime", LTTV_POINTER, &value)); + tmp = (LttvHooks*)*(value.v_pointer); + if(tmp != NULL) lttv_hooks_call(tmp, &tab->current_time); +} + void add_toolbar_constructor(MainWindow *mw, LttvToolbarClosure *toolbar_c) { LttvIAttribute *attributes = mw->attributes; @@ -678,23 +699,26 @@ void lttvwindow_unregister_dividor(Tab *tab, */ void lttvwindow_report_time_window(Tab *tab, - const TimeWindow *time_window) + TimeWindow time_window) { //set_time_window(tab, time_window); //set_time_window_adjustment(tab, time_window); + time_change_manager(tab, time_window); + + +#if 0 /* Set scrollbar */ LttvTracesetContext *tsc = LTTV_TRACESET_CONTEXT(tab->traceset_info->traceset_context); TimeInterval time_span = tsc->time_span; GtkAdjustment *adjustment = gtk_range_get_adjustment(GTK_RANGE(tab->scrollbar)); - g_object_set(G_OBJECT(adjustment), "lower", - ltt_time_to_double(time_span.start_time) - * NANOSECONDS_PER_SECOND, /* lower */ + 0.0, /* lower */ "upper", - ltt_time_to_double(time_span.end_time) + ltt_time_to_double( + ltt_time_sub(time_span.end_time, time_span.start_time)) * NANOSECONDS_PER_SECOND, /* upper */ "step_increment", ltt_time_to_double(time_window->time_width) @@ -717,8 +741,11 @@ void lttvwindow_report_time_window(Tab *tab, /* Note : the set value will call set_time_window if scrollbar value changed */ gtk_adjustment_set_value(adjustment, - ltt_time_to_double(time_window->start_time) - * NANOSECONDS_PER_SECOND); + ltt_time_to_double( + ltt_time_sub(time_window->start_time, + time_span.start_time)) + * NANOSECONDS_PER_SECOND); +#endif //0 } @@ -731,17 +758,12 @@ void lttvwindow_report_time_window(Tab *tab, */ void lttvwindow_report_current_time(Tab *tab, - const LttTime *time) + LttTime time) { LttvAttributeValue value; LttvHooks * tmp; - tab->current_time = *time; - g_assert(lttv_iattribute_find_by_path(tab->attributes, - "hooks/updatecurrenttime", LTTV_POINTER, &value)); - tmp = (LttvHooks*)*(value.v_pointer); - - if(tmp == NULL)return; - lttv_hooks_call(tmp, &tab->current_time); + + current_time_change_manager(tab, time); } /** @@ -842,9 +864,12 @@ void lttvwindow_events_request_remove_all(Tab *tab, (GCompareFunc)find_viewer)) != NULL) { EventsRequest *events_request = (EventsRequest *)element->data; - if(events_request->servicing == TRUE) { - lttv_hooks_call(events_request->after_request, NULL); - } + // Modified so a viewer being destroyed won't have its after_request + // called. Not so important anyway. Note that a viewer that call this + // remove_all function will not get its after_request called. + //if(events_request->servicing == TRUE) { + // lttv_hooks_call(events_request->after_request, NULL); + //} g_free(events_request); tab->events_requests = g_slist_remove_link(tab->events_requests, element); }