X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2FguiEvents.c;h=89c36e5444f6eb87c7a51f4ba32a54c0a0b505cf;hb=f9334f6f7ef5e0b29fdc66d36d39ca164dfc27e5;hp=cca11eaaca2f72dc5166f62c908dfc167ac1302b;hpb=a60b01efe39b298d94f0b5e19d8ca218647e301a;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/guiEvents.c b/ltt/branches/poly/lttv/modules/guiEvents.c index cca11eaa..89c36e54 100644 --- a/ltt/branches/poly/lttv/modules/guiEvents.c +++ b/ltt/branches/poly/lttv/modules/guiEvents.c @@ -76,8 +76,6 @@ typedef struct _TimePeriod{ } TimePeriod; #define RESERVE_SIZE 1000 -#define SECOND_INTERVAL 1 -#define NANOSECOND_INTERVAL 1000 typedef enum _ScrollDirection{ SCROLL_IN_SAME_PERIOD, @@ -101,6 +99,9 @@ typedef struct _EventViewerData { unsigned end_event_number; LttvHooks * before_event_hooks; + //scroll window containing Tree View + GtkWidget * Scroll_Win; + /* Model containing list data */ GtkListStore *Store_M; @@ -150,11 +151,12 @@ static void Tree_V_grab_focus(GtkWidget *widget, gpointer data); static void get_test_data(guint Event_Number, guint List_Height, - EventViewerData *Event_Viewer_Data); + EventViewerData *Event_Viewer_Data); void add_test_data(EventViewerData *Event_Viewer_Data); -static void get_events(EventViewerData* Event_Viewer_Data, LttTime start, LttTime end); +static void get_events(EventViewerData* Event_Viewer_Data, LttTime start, + LttTime end, unsigned maxNumEvents); static gboolean parse_event(void *hook_data, void *call_data); /** @@ -228,7 +230,9 @@ hGuiEvents(mainWindow * pmParentWindow) { EventViewerData* Event_Viewer_Data = GuiEvents(pmParentWindow) ; - return Event_Viewer_Data->HBox_V ; + if(Event_Viewer_Data) + return Event_Viewer_Data->HBox_V ; + else return NULL; } @@ -261,6 +265,11 @@ GuiEvents(mainWindow *pmParentWindow) RegUpdateTimeInterval(updateTimeInterval,Event_Viewer_Data, Event_Viewer_Data->mw); RegUpdateCurrentTime(updateCurrentTime,Event_Viewer_Data, Event_Viewer_Data->mw); + Event_Viewer_Data->Scroll_Win = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_show ( Event_Viewer_Data->Scroll_Win); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(Event_Viewer_Data->Scroll_Win), + GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); + /* TEST DATA, TO BE READ FROM THE TRACE */ Event_Viewer_Data->Number_Of_Events = RESERVE_SIZE ; Event_Viewer_Data->Currently_Selected_Event = FALSE ; @@ -369,8 +378,10 @@ GuiEvents(mainWindow *pmParentWindow) G_CALLBACK (tree_selection_changed_cb), Event_Viewer_Data); + gtk_container_add (GTK_CONTAINER (Event_Viewer_Data->Scroll_Win), Event_Viewer_Data->Tree_V); + Event_Viewer_Data->HBox_V = gtk_hbox_new(0, 0); - gtk_box_pack_start(GTK_BOX(Event_Viewer_Data->HBox_V), Event_Viewer_Data->Tree_V, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(Event_Viewer_Data->HBox_V), Event_Viewer_Data->Scroll_Win, TRUE, TRUE, 0); /* Create vertical scrollbar and pack it */ Event_Viewer_Data->VScroll_VC = gtk_vscrollbar_new(NULL); @@ -409,12 +420,14 @@ GuiEvents(mainWindow *pmParentWindow) start.tv_sec = 0; start.tv_nsec = 0; - end.tv_sec = SECOND_INTERVAL; - end.tv_nsec = NANOSECOND_INTERVAL; + end.tv_sec = G_MAXULONG; + end.tv_nsec = G_MAXULONG; Event_Viewer_Data->raw_trace_data = Event_Viewer_Data->raw_trace_data_first; - get_events(Event_Viewer_Data, start,end); + get_events(Event_Viewer_Data, start,end, RESERVE_SIZE); Event_Viewer_Data->Number_Of_Events = Event_Viewer_Data->raw_trace_data->len; + + if(Event_Viewer_Data->raw_trace_data->len == 0) return NULL; time_period = g_new(TimePeriod, 1); data = g_ptr_array_index(Event_Viewer_Data->raw_trace_data,0); @@ -431,7 +444,7 @@ GuiEvents(mainWindow *pmParentWindow) Event_Viewer_Data->current_period = 0; Event_Viewer_Data->raw_trace_data = Event_Viewer_Data->raw_trace_data_second; - get_events(Event_Viewer_Data, start,end); + get_events(Event_Viewer_Data, start,end, RESERVE_SIZE); Event_Viewer_Data->Number_Of_Events += Event_Viewer_Data->raw_trace_data->len; time_period = g_new(TimePeriod, 1); @@ -844,7 +857,7 @@ void get_test_data(guint Event_Number, guint List_Height, } time_period = g_ptr_array_index(Event_Viewer_Data->time_period, Event_Viewer_Data->current_period); - get_events(Event_Viewer_Data, time_period->start, time_period->end); + get_events(Event_Viewer_Data, time_period->start, time_period->end,RESERVE_SIZE); raw_data = g_ptr_array_index(Event_Viewer_Data->raw_trace_data, Event_Viewer_Data->raw_trace_data->len-1); Event_Viewer_Data->start_event_number -= Event_Viewer_Data->raw_trace_data->len; @@ -857,13 +870,13 @@ void get_test_data(guint Event_Number, guint List_Height, Event_Viewer_Data->raw_trace_data = Event_Viewer_Data->raw_trace_data_first; time_period = g_ptr_array_index(Event_Viewer_Data->time_period, Event_Viewer_Data->current_period); - get_events(Event_Viewer_Data, time_period->start, time_period->end); + get_events(Event_Viewer_Data, time_period->start, time_period->end,RESERVE_SIZE); Event_Viewer_Data->start_event_number = time_period->start_event_number; Event_Viewer_Data->raw_trace_data = Event_Viewer_Data->raw_trace_data_second; time_period = g_ptr_array_index(Event_Viewer_Data->time_period, Event_Viewer_Data->current_period + 1); - get_events(Event_Viewer_Data, time_period->start, time_period->end); + get_events(Event_Viewer_Data, time_period->start, time_period->end,RESERVE_SIZE); Event_Viewer_Data->end_event_number = time_period->end_event_number; Event_Viewer_Data->raw_trace_data = Event_Viewer_Data->raw_trace_data_first; @@ -889,8 +902,8 @@ void get_test_data(guint Event_Number, guint List_Height, raw_data = g_ptr_array_index(second_data,second_data->len-1); time_period->start = raw_data->time; time_period->start.tv_nsec++; - time_period->end.tv_sec = time_period->start.tv_sec + SECOND_INTERVAL; - time_period->end.tv_nsec = time_period->start.tv_nsec + NANOSECOND_INTERVAL; + time_period->end.tv_sec = G_MAXULONG; + time_period->end.tv_nsec = G_MAXULONG; time_period->start_event_number = Event_Viewer_Data->end_event_number + 1; g_ptr_array_add(Event_Viewer_Data->time_period,time_period); } @@ -898,7 +911,7 @@ void get_test_data(guint Event_Number, guint List_Height, time_period = g_ptr_array_index(Event_Viewer_Data->time_period, Event_Viewer_Data->current_period+1); - get_events(Event_Viewer_Data,time_period->start, time_period->end); + get_events(Event_Viewer_Data,time_period->start, time_period->end, RESERVE_SIZE); Event_Viewer_Data->end_event_number += Event_Viewer_Data->raw_trace_data->len; if(new_time_period){ raw_data = g_ptr_array_index(Event_Viewer_Data->raw_trace_data,0); @@ -927,8 +940,8 @@ void get_test_data(guint Event_Number, guint List_Height, Event_Viewer_Data->time_period->len-1); time_period->start = time_period1->end; time_period->start.tv_nsec++; - time_period->end.tv_sec = time_period->start.tv_sec + SECOND_INTERVAL; - time_period->end.tv_nsec = time_period->start.tv_nsec + NANOSECOND_INTERVAL; + time_period->end.tv_sec = G_MAXULONG; + time_period->end.tv_nsec = G_MAXULONG; time_period->start_event_number = time_period1->end_event_number + 1; g_ptr_array_add(Event_Viewer_Data->time_period,time_period); } @@ -936,14 +949,14 @@ void get_test_data(guint Event_Number, guint List_Height, Event_Viewer_Data->raw_trace_data = Event_Viewer_Data->raw_trace_data_first; time_period = g_ptr_array_index(Event_Viewer_Data->time_period, Event_Viewer_Data->current_period); - get_events(Event_Viewer_Data,time_period->start, time_period->end); + get_events(Event_Viewer_Data,time_period->start, time_period->end, RESERVE_SIZE); Event_Viewer_Data->start_event_number = time_period->start_event_number; Event_Viewer_Data->end_event_number = time_period->end_event_number; Event_Viewer_Data->raw_trace_data = Event_Viewer_Data->raw_trace_data_second; time_period = g_ptr_array_index(Event_Viewer_Data->time_period, Event_Viewer_Data->current_period+1); - get_events(Event_Viewer_Data,time_period->start, time_period->end); + get_events(Event_Viewer_Data,time_period->start, time_period->end, RESERVE_SIZE); Event_Viewer_Data->end_event_number += Event_Viewer_Data->raw_trace_data->len; if(new_time_period){ raw_data = g_ptr_array_index(Event_Viewer_Data->raw_trace_data,0); @@ -1187,11 +1200,12 @@ void Tree_V_grab_focus(GtkWidget *widget, gpointer data){ SetFocusedPane(mw, gtk_widget_get_parent(Event_Viewer_Data->HBox_V)); } -void get_events(EventViewerData* Event_Viewer_Data, LttTime start, LttTime end) +void get_events(EventViewerData* Event_Viewer_Data, LttTime start, + LttTime end,unsigned maxNumEvents) { contextAddHooks(Event_Viewer_Data->mw, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,Event_Viewer_Data->before_event_hooks,NULL); - processTraceset(Event_Viewer_Data->mw, start, end); + processTraceset(Event_Viewer_Data->mw, start, end, maxNumEvents); contextRemoveHooks(Event_Viewer_Data->mw, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,Event_Viewer_Data->before_event_hooks,NULL);