unsigned start_event_index; // the first event shown in the window
unsigned end_event_index; // the last event shown in the window
unsigned size; // maxi number of events loaded when instance the viewer
- gboolean current_time_updated;
+ // gboolean current_time_updated;
//scroll window containing Tree View
GtkWidget * scroll_win;
LttvTracesetContext * tsc);
//! Event Viewer's constructor hook
-GtkWidget *h_gui_events(Tab *tab, LttvTracesetSelector * s, char* key);
+GtkWidget *h_gui_events(Tab *tab);
//! Event Viewer's constructor
-EventViewerData *gui_events(Tab *tab, LttvTracesetSelector *s, char *key);
+EventViewerData *gui_events(Tab *tab);
//! Event Viewer's destructor
void gui_events_destructor(EventViewerData *event_viewer_data);
void gui_events_free(EventViewerData *event_viewer_data);
static void tree_v_size_request_cb (GtkWidget *widget, GtkRequisition *requisition, gpointer data);
static void tree_v_cursor_changed_cb (GtkWidget *widget, gpointer data);
static void tree_v_move_cursor_cb (GtkWidget *widget, GtkMovementStep arg1, gint arg2, gpointer data);
-static void tree_v_grab_focus(GtkWidget *widget, gpointer data);
static void get_data(double time, guint list_height,
* @return The widget created.
*/
GtkWidget *
-h_gui_events(Tab * tab, LttvTracesetSelector * s, char* key)
+h_gui_events(Tab * tab)
{
- EventViewerData* event_viewer_data = gui_events(tab, s, key) ;
-
+ EventViewerData* event_viewer_data = gui_events(tab) ;
if(event_viewer_data)
return event_viewer_data->hbox_v;
else return NULL;
* @return The Event viewer data created.
*/
EventViewerData *
-gui_events(Tab *tab, LttvTracesetSelector * s,char* key )
+gui_events(Tab *tab)
{
LttTime end;
GtkTreeViewColumn *column;
G_CALLBACK (tree_v_move_cursor_cb),
event_viewer_data);
- g_signal_connect (G_OBJECT (event_viewer_data->tree_v), "grab-focus",
- G_CALLBACK (tree_v_grab_focus),
- event_viewer_data);
-
// Use on each column!
//gtk_tree_view_column_set_sizing(event_viewer_data->tree_v, GTK_TREE_VIEW_COLUMN_FIXED);
/* Set the Selected Event */
// tree_v_set_cursor(event_viewer_data);
- event_viewer_data->current_time_updated = FALSE;
+ // event_viewer_data->current_time_updated = FALSE;
event_viewer_data->size = RESERVE_SMALL_SIZE;
g_object_set_data_full(
if(ltt_time.tv_sec != current_time.tv_sec ||
ltt_time.tv_nsec != current_time.tv_nsec){
- event_viewer_data->current_time_updated = TRUE;
+ // event_viewer_data->current_time_updated = TRUE;
lttvwindow_report_current_time(tab,ltt_time);
}
}else{
/* May already been done by GTK window closing */
if(GTK_IS_WIDGET(event_viewer_data->hbox_v)){
- gui_events_free(event_viewer_data);
gtk_widget_destroy(event_viewer_data->hbox_v);
- event_viewer_data = NULL;
}
/* Destroy the Tree View */
{
EventViewerData *event_viewer_data = (EventViewerData*) hook_data;
const LttTime * current_time = (LttTime*)call_data;
- guint64 nsec = current_time->tv_sec * NANOSECONDS_PER_SECOND
- + current_time->tv_nsec;
+ guint64 nsec = (guint64)current_time->tv_sec * NANOSECONDS_PER_SECOND
+ + (guint64)current_time->tv_nsec;
GtkTreeIter iter;
guint64 time;
- int count = -1;
GtkTreeModel* model = (GtkTreeModel*)event_viewer_data->store_m;
GList * list;
EventFields * data, *data1;
TimeInterval time_span = tsc->time_span;
if(!event_viewer_data->event_fields_queue->head) return FALSE;
-
+#if 0
if(event_viewer_data->current_time_updated ){
event_viewer_data->current_time_updated = FALSE;
return FALSE;
}
-
+#endif //0
//check if the event is shown in the current viewer
+ gint count = 0;
+ gboolean event_shown = FALSE;
if(gtk_tree_model_get_iter_first(model, &iter)){
- while(1){
- gtk_tree_model_get(model, &iter, TIME_COLUMN, &time, -1);
- if(time < nsec){
- if(!gtk_tree_model_iter_next(model, &iter)){
- count = -1;
- break;
- }
- count++;
- }else{
- break;
+ gtk_tree_model_get(model, &iter, TIME_COLUMN, &time, -1);
+ if(time > nsec){
+ /* Event is before the list */
+ } else {
+ /* Event can be in the list */
+ if(time >= nsec){
+ /* found */
+ event_shown = TRUE;
+ } else {
+ while(gtk_tree_model_iter_next(model, &iter)) {
+ gtk_tree_model_get(model, &iter, TIME_COLUMN, &time, -1);
+ count++;
+ if(time >= nsec){
+ /* found */
+ event_shown = TRUE;
+ break;
+ }
+ }
}
}
- // event_selected_hook(event_viewer_data, &count);
}
- //the event is not shown in the current viewer
- if(count == -1){
+ if(!event_shown)
+ {
+ //the event is not shown in the current viewer
count = 0;
//check if the event is in the buffer
list = event_viewer_data->event_fields_queue->head;
}
-void tree_v_grab_focus(GtkWidget *widget, gpointer data){
- EventViewerData *event_viewer_data = (EventViewerData *)data;
- Tab * tab = event_viewer_data->tab;
- lttvwindow_report_focus(tab, event_viewer_data->hbox_v);
-}
-
void update_raw_data_array(EventViewerData* event_viewer_data, unsigned size)
{
EventFields * data;