#include <gtk/gtk.h>
#include <lttvwindow/gtkmultivpaned.h>
-//#include "gtkintl.h"
#include <lttvwindow/mainwindow.h>
-#include <lttvwindow/gtktraceset.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);
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)
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;
}
}
}
-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;
}
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
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));
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);
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);
}