change the shape of the cursor when cpu is busy
[lttv.git] / ltt / branches / poly / lttv / modules / gui / mainWin / src / callbacks.c
index cbac07a4e214fe80d3423f62bad41d9368ad02bf..c9b152c52acb32b3d89fcd1d5a5b0d7e4752c247 100644 (file)
@@ -43,11 +43,28 @@ enum
 
 
 void
-insert_viewer_wrap(GtkMenuItem *menuitem, gpointer user_data)
+insert_viewer_wrap(GtkWidget *menuitem, gpointer user_data)
 {
+  GdkWindow * win;
+  GdkCursor * new;
   guint val = 20;
+  GtkWidget* widget = menuitem;
+  MainWindow * mw;
+
+  new = gdk_cursor_new(GDK_X_CURSOR);
+  if(GTK_IS_MENU_ITEM(menuitem)){
+    widget = lookup_widget(menuitem, "MToolbar2");
+  }
+  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);
   insert_viewer((GtkWidget*)menuitem, (view_constructor)user_data);
   //  selected_hook(&val);
+
+  gdk_window_set_cursor(win, NULL);  
 }
 
 
@@ -285,19 +302,53 @@ void save_as(GtkWidget * widget, gpointer user_data)
   g_printf("Save as\n");
 }
 
+void zoom(GtkWidget * widget, double size)
+{
+  TimeInterval *time_span;
+  TimeWindow time_window;
+  LttTime    current_time, time_delta, time_s, time_e;
+  MainWindow * mw_data = get_window_data_struct(widget);
+
+  time_span = LTTV_TRACESET_CONTEXT(mw_data->traceset_info->traceset_context)->Time_Span ;
+  time_window =  mw_data->current_tab->time_window;
+  current_time = mw_data->current_tab->current_time;
+  
+  time_delta = ltt_time_sub(time_span->endTime,time_span->startTime);
+  if(size == 0){
+    time_window.start_time = time_span->startTime;
+    time_window.time_width = time_delta;
+  }else{
+    time_window.time_width = ltt_time_div(time_window.time_width, size);
+    if(ltt_time_compare(time_window.time_width,time_delta) > 0)
+      time_window.time_width = time_delta;        
+
+    time_s = ltt_time_sub(current_time,ltt_time_div(time_window.time_width, 2));
+    time_e = ltt_time_add(current_time,ltt_time_div(time_window.time_width, 2));
+    if(ltt_time_compare(time_span->startTime, time_s) > 0){
+      time_s = time_span->startTime;
+    }else if(ltt_time_compare(time_span->endTime, time_e) < 0){
+      time_e = time_span->endTime;
+      time_s = ltt_time_sub(time_e,time_window.time_width);
+    }
+    time_window.start_time = time_s;    
+  }
+  set_time_window(mw_data, &time_window);
+  gtk_custom_set_adjust(mw_data->current_tab->custom, FALSE);
+}
+
 void zoom_in(GtkWidget * widget, gpointer user_data)
 {
-  g_printf("Zoom in\n");
+  zoom(widget, 2);
 }
 
 void zoom_out(GtkWidget * widget, gpointer user_data)
 {
-  g_printf("Zoom out\n");
+  zoom(widget, 0.5);
 }
 
 void zoom_extended(GtkWidget * widget, gpointer user_data)
 {
-  g_printf("Zoom extended\n");
+  zoom(widget, 0);
 }
 
 void go_to_time(GtkWidget * widget, gpointer user_data)
This page took 0.02309 seconds and 4 git commands to generate.