Add config.h support : will fix the LARGEFILE problem
[lttv.git] / ltt / branches / poly / lttv / modules / gui / lttvwindow / lttvwindow / gtkmultivpaned.c
index 198a57f9e2455b3769974865e2444f71371a3a3d..ec8b37552f39619188359154410efe5a2fe4adef 100644 (file)
  * MA 02111-1307, USA.
  */
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 #include <gtk/gtk.h>
 
 #include <lttvwindow/gtkmultivpaned.h>
-//#include "gtkintl.h"
 #include <lttvwindow/mainwindow.h>
-#include <lttvwindow/viewer.h>
+#include <lttvwindow/mainwindow-private.h>
+//#include "gtkintl.h"
 
 static void gtk_multi_vpaned_class_init (GtkMultiVPanedClass    *klass);
 static void gtk_multi_vpaned_init       (GtkMultiVPaned         *multi_vpaned);
@@ -32,7 +36,7 @@ static void     gtk_multi_vpaned_size_request   (GtkWidget      *widget,
 static void     gtk_multi_vpaned_size_allocate  (GtkWidget      *widget,
                                           GtkAllocation  *allocation);
 
-void gtk_multi_vpaned_scroll_value_changed (GtkRange *range, gpointer multi_vpaned);
+void gtk_multi_vpaned_scroll_value_changed (GtkAdjustment *adjust, gpointer multi_vpaned);
 
 gboolean gtk_multi_vpaned_destroy(GtkObject       *object,
                                   gpointer           user_data)
@@ -147,16 +151,16 @@ gpointer gtk_multi_vpaned_get_data(GtkMultiVPaned * multi_vpaned,char * key)
   return g_object_get_data(G_OBJECT(multi_vpaned->focused_pane), key);
 }
 
-void gtk_multi_vpaned_set_focus (GtkWidget * widget, gpointer user_data)
+void gtk_multi_vpaned_set_focus (GtkWidget * widget, GtkPaned* paned)
 {
-  GtkMultiVPaned * multi_vpaned = (GtkMultiVPaned*) widget;
+  GtkMultiVPaned * multi_vpaned = GTK_MULTI_VPANED(widget);
   GtkPaned * pane;
   if(!multi_vpaned->first_pane) return;
   
 
   pane = multi_vpaned->first_pane;
   while(1){
-    if((GtkWidget*)pane == (GtkWidget*)user_data){
+    if((GtkWidget*)pane == GTK_WIDGET(paned)){
       multi_vpaned->focused_pane = pane;
       break;
     }
@@ -168,22 +172,22 @@ void gtk_multi_vpaned_set_focus (GtkWidget * widget, gpointer user_data)
   }
 }
 
-void gtk_multi_vpaned_set_adjust(GtkMultiVPaned * multi_vpaned, gboolean first_time)
+void gtk_multi_vpaned_set_adjust(GtkMultiVPaned * multi_vpaned, const TimeWindow *time_window, gboolean first_time)
 {
-  TimeWindow time_window;
   TimeInterval *time_span;
-  double tmp, start;
-  double range = 0;
+  double len, start;
+  Tab *tab = (Tab *)g_object_get_data(G_OBJECT(multi_vpaned), "Tab_Info");
+  LttvTracesetContext *tsc = 
+    LTTV_TRACESET_CONTEXT(tab->traceset_info->traceset_context);
 
-  get_time_window(multi_vpaned->mw,&time_window);
+  
   if(first_time){
-    time_span = LTTV_TRACESET_CONTEXT(multi_vpaned->mw->current_tab->traceset_info->
-                                     traceset_context)->Time_Span ;
+    time_span = &tsc->time_span ;
   
-    multi_vpaned->hadjust->lower = ltt_time_to_double(time_span->startTime) * 
+    multi_vpaned->hadjust->lower = ltt_time_to_double(time_span->start_time) * 
                              NANOSECONDS_PER_SECOND;
     multi_vpaned->hadjust->value = multi_vpaned->hadjust->lower;
-    multi_vpaned->hadjust->upper = ltt_time_to_double(time_span->endTime) *
+    multi_vpaned->hadjust->upper = ltt_time_to_double(time_span->end_time) *
                              NANOSECONDS_PER_SECOND;
   }
 
@@ -193,16 +197,17 @@ void gtk_multi_vpaned_set_adjust(GtkMultiVPaned * multi_vpaned, gboolean first_t
     return;
   }
 
-  start = ltt_time_to_double(time_window.start_time) * NANOSECONDS_PER_SECOND;
-  tmp = multi_vpaned->hadjust->upper - multi_vpaned->hadjust->lower;
+  start = ltt_time_to_double(time_window->start_time) * NANOSECONDS_PER_SECOND;
+  len = multi_vpaned->hadjust->upper - multi_vpaned->hadjust->lower;
 
   multi_vpaned->hadjust->page_increment = ltt_time_to_double(
-                       time_window.time_width) * NANOSECONDS_PER_SECOND;
+                       time_window->time_width) * NANOSECONDS_PER_SECOND;
 
-  if(multi_vpaned->hadjust->page_increment >= tmp - range)
-    multi_vpaned->hadjust->value = multi_vpaned->hadjust->lower;
-  if(start + multi_vpaned->hadjust->page_increment >= multi_vpaned->hadjust->upper - range)
-    multi_vpaned->hadjust->value = start;
+  //if(multi_vpaned->hadjust->page_increment >= len )
+  //  multi_vpaned->hadjust->value = multi_vpaned->hadjust->lower;
+  //if(start + multi_vpaned->hadjust->page_increment >= multi_vpaned->hadjust->upper )
+  //  multi_vpaned->hadjust->value = start;
+  multi_vpaned->hadjust->value = start;
 
   /* page_size to the whole visible area will take care that the
      * scroll value + the shown area will never be more than what is
@@ -211,12 +216,14 @@ void gtk_multi_vpaned_set_adjust(GtkMultiVPaned * multi_vpaned, gboolean first_t
   multi_vpaned->hadjust->step_increment = multi_vpaned->hadjust->page_increment / 10;
 
   gtk_adjustment_changed (multi_vpaned->hadjust);
+
 }
 
 void gtk_multi_vpaned_widget_add(GtkMultiVPaned * multi_vpaned, GtkWidget * widget1)
 {
   GtkPaned * tmpPane; 
   GtkWidget * w;
+  Tab *tab = (Tab *)g_object_get_data(G_OBJECT(multi_vpaned), "Tab_Info");
   
   g_return_if_fail(GTK_IS_MULTI_VPANED(multi_vpaned));
   g_object_ref(G_OBJECT(widget1));
@@ -230,14 +237,17 @@ void gtk_multi_vpaned_widget_add(GtkMultiVPaned * multi_vpaned, GtkWidget * widg
     gtk_widget_show(multi_vpaned->hscrollbar);
 
     multi_vpaned->hadjust = gtk_range_get_adjustment(GTK_RANGE(multi_vpaned->hscrollbar));
-    gtk_multi_vpaned_set_adjust(multi_vpaned, TRUE);
+    gtk_multi_vpaned_set_adjust(multi_vpaned, &tab->time_window, TRUE);
 
     gtk_range_set_update_policy (GTK_RANGE(multi_vpaned->hscrollbar),
                                                                                                                                 GTK_UPDATE_CONTINUOUS);
                                                                                                                                 //changed by Mathieu Desnoyers, was :
                                  // GTK_UPDATE_DISCONTINUOUS);
-    g_signal_connect(G_OBJECT(multi_vpaned->hscrollbar), "value-changed",
+    g_signal_connect(G_OBJECT(multi_vpaned->hadjust), "value-changed",
                     G_CALLBACK(gtk_multi_vpaned_scroll_value_changed), multi_vpaned);
+    g_signal_connect(G_OBJECT(multi_vpaned->hadjust), "changed",
+                    G_CALLBACK(gtk_multi_vpaned_scroll_value_changed), multi_vpaned);
+
 
     multi_vpaned->vbox = gtk_vbox_new(FALSE,0);
     gtk_widget_show(multi_vpaned->vbox);
@@ -271,11 +281,12 @@ void gtk_multi_vpaned_widget_add(GtkMultiVPaned * multi_vpaned, GtkWidget * widg
 void gtk_multi_vpaned_widget_delete(GtkMultiVPaned * multi_vpaned)
 {
   GtkPaned * tmp, *prev, *next;
+  GtkWidget *widget;
 
   if(!multi_vpaned->focused_pane) return;
  
-  tmp = (GtkPaned*)multi_vpaned->focused_pane->child2; //widget in vpaned
-  g_object_unref(G_OBJECT(tmp));
+  widget = GTK_WIDGET(multi_vpaned->focused_pane->child2); //widget in vpaned
+  g_object_unref(G_OBJECT(widget));
 
   if(multi_vpaned->focused_pane == multi_vpaned->first_pane &&
      multi_vpaned->focused_pane == multi_vpaned->last_pane){
@@ -401,37 +412,39 @@ void gtk_multi_vpaned_widget_move_down(GtkMultiVPaned * multi_vpaned)
 void gtk_multi_vpaned_set_scroll_value(GtkMultiVPaned * multi_vpaned, double value)
 {
   gtk_adjustment_set_value(multi_vpaned->hadjust, value);
-  g_signal_stop_emission_by_name(G_OBJECT(multi_vpaned->hscrollbar), "value-changed");  
+  //g_signal_stop_emission_by_name(G_OBJECT(multi_vpaned->hscrollbar), "value-changed");  
 }
 
-void gtk_multi_vpaned_scroll_value_changed(GtkRange *range, gpointer multi_vpaned_arg)
+void gtk_multi_vpaned_scroll_value_changed(GtkAdjustment *adjust, gpointer multi_vpaned_arg)
 {
   TimeWindow time_window;
   TimeInterval *time_span;
   LttTime time;
   GtkMultiVPaned * multi_vpaned = (GtkMultiVPaned*)multi_vpaned_arg;
-  gdouble value = gtk_range_get_value(range);
+  gdouble value = gtk_adjustment_get_value(adjust);
   gdouble upper, lower, ratio;
+  Tab *tab = (Tab *)g_object_get_data(G_OBJECT(multi_vpaned), "Tab_Info");
+  LttvTracesetContext * tsc = 
+    LTTV_TRACESET_CONTEXT(tab->traceset_info->traceset_context);
 
-  time_window = multi_vpaned->mw->current_tab->time_window;
+  time_window = tab->time_window;
 
-  time_span = LTTV_TRACESET_CONTEXT(multi_vpaned->mw->current_tab->traceset_info->
-                                   traceset_context)->Time_Span ;
+  time_span = &tsc->time_span ;
   lower = multi_vpaned->hadjust->lower;
   upper = multi_vpaned->hadjust->upper;
   ratio = (value - lower) / (upper - lower);
   
-  time = ltt_time_sub(time_span->endTime, time_span->startTime);
+  time = ltt_time_sub(time_span->end_time, time_span->start_time);
   time = ltt_time_mul(time, (float)ratio);
-  time = ltt_time_add(time_span->startTime, time);
+  time = ltt_time_add(time_span->start_time, time);
 
   time_window.start_time = time;
 
-  time = ltt_time_sub(time_span->endTime, time);
+  time = ltt_time_sub(time_span->end_time, time);
   if(ltt_time_compare(time,time_window.time_width) < 0){
     time_window.time_width = time;
   }
-  set_time_window(multi_vpaned->mw, &time_window); 
+  set_time_window(tab, &time_window);
 }
 
 
This page took 0.026042 seconds and 4 git commands to generate.