X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2FguiEvents.c;h=a53f7262fa4cd260d651633e1aa037759af1f6e1;hb=3cff8cc1d88c1b4ebb51f420e3bc573643d653b8;hp=ca7cd1355b21f69f85b10e8c99ee948b4aafc945;hpb=cbd41522fece37839f38aaf3372b8a11fac9b267;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/guiEvents.c b/ltt/branches/poly/lttv/modules/guiEvents.c index ca7cd135..a53f7262 100644 --- a/ltt/branches/poly/lttv/modules/guiEvents.c +++ b/ltt/branches/poly/lttv/modules/guiEvents.c @@ -67,7 +67,7 @@ typedef struct _RawTraceData{ int pid; unsigned entry_length; char * event_description; - LttEventPosition ep; + LttEventPosition *ep; } RawTraceData; #define RESERVE_BIG_SIZE 1000 @@ -129,9 +129,9 @@ typedef struct _EventViewerData { } EventViewerData ; //! Event Viewer's constructor hook -GtkWidget *h_gui_events(MainWindow *parent_window); +GtkWidget *h_gui_events(MainWindow *parent_window, LttvTracesetSelector * s, char* key); //! Event Viewer's constructor -EventViewerData *gui_events(MainWindow *parent_window); +EventViewerData *gui_events(MainWindow *parent_window, LttvTracesetSelector *s, char *key); //! Event Viewer's destructor void gui_events_destructor(EventViewerData *event_viewer_data); void gui_events_free(EventViewerData *event_viewer_data); @@ -235,9 +235,9 @@ enum * @return The widget created. */ GtkWidget * -h_gui_events(MainWindow * parent_window) +h_gui_events(MainWindow * parent_window, LttvTracesetSelector * s, char* key) { - EventViewerData* event_viewer_data = gui_events(parent_window) ; + EventViewerData* event_viewer_data = gui_events(parent_window, s, key) ; if(event_viewer_data) return event_viewer_data->hbox_v; @@ -252,7 +252,7 @@ h_gui_events(MainWindow * parent_window) * @return The Event viewer data created. */ EventViewerData * -gui_events(MainWindow *parent_window) +gui_events(MainWindow *parent_window, LttvTracesetSelector * s,char* key ) { LttTime start, end; GtkTreeViewColumn *column; @@ -456,6 +456,11 @@ gui_events(MainWindow *parent_window) // tree_v_set_cursor(event_viewer_data); + g_object_set_data( + G_OBJECT(event_viewer_data->hbox_v), + key, + s); + g_object_set_data_full( G_OBJECT(event_viewer_data->hbox_v), "event_viewer_data", @@ -783,8 +788,20 @@ void get_test_data(double time_value, guint list_height, unsigned block_num, event_num; unsigned size = 1, count = 0; gboolean need_backward_again, backward; - + GdkWindow * win; + GdkCursor * new; + GtkWidget* widget = gtk_widget_get_parent(event_viewer_data->hbox_v); + if(widget){ + new = gdk_cursor_new(GDK_X_CURSOR); + win = gtk_widget_get_parent_window(widget); + gdk_window_set_cursor(win, new); + gdk_cursor_unref(new); + gdk_window_stick(win); + gdk_window_unstick(win); + } + + // if(event_number > event_viewer_data->last_event || // event_number + list_height-1 < event_viewer_data->first_event || // event_viewer_data->first_event == -1) @@ -818,20 +835,20 @@ void get_test_data(double time_value, guint list_height, raw_data = (RawTraceData*)g_list_nth_data(first,0); end = raw_data->time; end.tv_nsec--; - ltt_event_position_get(&raw_data->ep, &block_num, &event_num, &tf); + ltt_event_position_get(raw_data->ep, &block_num, &event_num, &tf); if(size !=0){ if(event_num > minNum){ backward_num = event_num > RESERVE_SMALL_SIZE ? event_num - RESERVE_SMALL_SIZE : 1; - ltt_event_position_set(&raw_data->ep, block_num, backward_num); - ltt_tracefile_seek_position(tf, &raw_data->ep); + ltt_event_position_set(raw_data->ep, block_num, backward_num); + ltt_tracefile_seek_position(tf, raw_data->ep); ev = ltt_tracefile_read(tf); start = ltt_event_time(ev); maxNum = G_MAXULONG; }else{ if(block_num > 1){ - ltt_event_position_set(&raw_data->ep, block_num-1, 1); - ltt_tracefile_seek_position(tf, &raw_data->ep); + ltt_event_position_set(raw_data->ep, block_num-1, 1); + ltt_tracefile_seek_position(tf, raw_data->ep); ev = ltt_tracefile_read(tf); start = ltt_event_time(ev); }else{ @@ -842,8 +859,8 @@ void get_test_data(double time_value, guint list_height, } }else{ if(block_num > count){ - ltt_event_position_set(&raw_data->ep, block_num-count, 1); - ltt_tracefile_seek_position(tf, &raw_data->ep); + ltt_event_position_set(raw_data->ep, block_num-count, 1); + ltt_tracefile_seek_position(tf, raw_data->ep); ev = ltt_tracefile_read(tf); start = ltt_event_time(ev); }else{ @@ -917,13 +934,13 @@ void get_test_data(double time_value, guint list_height, raw_data = (RawTraceData*)g_list_nth_data(first,0); end = raw_data->time; end.tv_nsec--; - ltt_event_position_get(&raw_data->ep, &block_num, &event_num, &tf); + ltt_event_position_get(raw_data->ep, &block_num, &event_num, &tf); if(event_num > list_height - size){ backward_num = event_num > RESERVE_SMALL_SIZE ? event_num - RESERVE_SMALL_SIZE : 1; - ltt_event_position_set(&raw_data->ep, block_num, backward_num); - ltt_tracefile_seek_position(tf, &raw_data->ep); + ltt_event_position_set(raw_data->ep, block_num, backward_num); + ltt_tracefile_seek_position(tf, raw_data->ep); ev = ltt_tracefile_read(tf); start = ltt_event_time(ev); maxNum = G_MAXULONG; @@ -1054,7 +1071,8 @@ void get_test_data(double time_value, guint list_height, event_viewer_data->first_event = event_viewer_data->start_event_index ; event_viewer_data->last_event = event_viewer_data->end_event_index ; - + if(widget) + gdk_window_set_cursor(win, NULL); } @@ -1372,11 +1390,12 @@ gboolean parse_event(void *hook_data, void *call_data) tmp_raw_trace_data->cpu_id = ltt_event_cpu_id(e); tmp_raw_trace_data->event_name = g_strdup(ltt_eventtype_name(ltt_event_eventtype(e))); tmp_raw_trace_data->time = time; + tmp_raw_trace_data->ep = ltt_event_position_new(); if(prev_raw_trace_data) tmp_raw_trace_data->pid = prev_raw_trace_data->pid; else tmp_raw_trace_data->pid = -1; - tmp_raw_trace_data->entry_length = field == NULL ? 0 : field->field_size; + tmp_raw_trace_data->entry_length = field == NULL ? 0 : ltt_field_size(field); if(field) get_event_detail(e, field, detail_event); tmp_raw_trace_data->event_description = g_strdup(detail_event->str); @@ -1396,7 +1415,7 @@ gboolean parse_event(void *hook_data, void *call_data) } } - ltt_event_position(e, &tmp_raw_trace_data->ep); + ltt_event_position(e, tmp_raw_trace_data->ep); if(event_viewer_data->raw_trace_data_queue_tmp->length >= RESERVE_SMALL_SIZE){ if(event_viewer_data->append){