#include <lttv/mainWindow.h>
#include <lttv/menu.h>
#include <lttv/toolbar.h>
+#include <lttv/gtkTraceSet.h>
extern systemView * gSysView;
extern LttvTracesetContext * gTracesetContext;
if(!tmpTab){
mwData->CurrentTab = NULL;
tmpTab = g_new(tab,1);
- tmpTab->traceStartTime.tv_sec = 0;
- tmpTab->traceStartTime.tv_nsec = 0;
- tmpTab->traceEndTime.tv_sec = G_MAXULONG;
- tmpTab->traceEndTime.tv_nsec = G_MAXULONG;
- tmpTab->startTime.tv_sec = 0;
- tmpTab->startTime.tv_nsec = 0;
- tmpTab->endTime.tv_sec = G_MAXULONG;
- tmpTab->endTime.tv_nsec = G_MAXULONG;
- tmpTab->currentTime.tv_sec = 0;
- tmpTab->currentTime.tv_nsec = 0;
mwData->Tab = tmpTab;
}else{
tmpTab->Next = g_new(tab,1);
tmpTab->startTime = mwData->CurrentTab->startTime;
tmpTab->endTime = mwData->CurrentTab->endTime;
tmpTab->currentTime = mwData->CurrentTab->currentTime;
+ }else{
+ getTracesetTimeSpan(mwData,&tmpTab->traceStartTime, &tmpTab->traceEndTime);
+ tmpTab->startTime = tmpTab->traceStartTime;
+ tmpTab->endTime = tmpTab->traceEndTime;
+ tmpTab->currentTime = tmpTab->traceStartTime;
}
tmpTab->Attributes = LTTV_IATTRIBUTE(g_object_new(LTTV_ATTRIBUTE_TYPE, NULL));
// mwData->CurrentTab = tmpTab;
tmpTab->custom = (GtkCustom*)gtk_custom_new();
+ tmpTab->custom->mw = mwData;
gtk_widget_show((GtkWidget*)tmpTab->custom);
tmpTab->Next = NULL;
#include <lttv/gtkcustom.h>
//#include "gtkintl.h"
+#include <lttv/gtkTraceSet.h>
static void gtk_custom_class_init (GtkCustomClass *klass);
static void gtk_custom_init (GtkCustom *custom);
static void gtk_custom_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
+void gtk_custom_scroll_value_changed (GtkRange *range, gpointer custom);
+
GType
gtk_custom_get_type (void)
{
{
GtkPaned * tmpPane;
GtkWidget * w;
+ TimeInterval timeInterval;
+ LttTime time;
+ double tmpValue;
g_return_if_fail(GTK_IS_CUSTOM(custom));
g_object_ref(G_OBJECT(widget1));
custom->hScrollbar = gtk_hscrollbar_new (NULL);
gtk_widget_show(custom->hScrollbar);
-
+
+ custom->hAdjust = gtk_range_get_adjustment(GTK_RANGE(custom->hScrollbar));
+ GetTimeInterval(custom->mw,&timeInterval);
+ GetCurrentTime(custom->mw,&time);
+
+ tmpValue = timeInterval.startTime.tv_sec;
+ tmpValue *= NANSECOND_CONST;
+ tmpValue += timeInterval.startTime.tv_nsec;
+ custom->hAdjust->lower = tmpValue;
+ tmpValue = timeInterval.endTime.tv_sec;
+ tmpValue *= NANSECOND_CONST;
+ tmpValue += timeInterval.endTime.tv_nsec;
+ custom->hAdjust->upper = tmpValue;
+ tmpValue = time.tv_sec;
+ tmpValue *= NANSECOND_CONST;
+ tmpValue += time.tv_nsec;
+ custom->hAdjust->value = tmpValue;
+ custom->hAdjust->step_increment = 1;
+ custom->hAdjust->page_increment = 100000000;
+ custom->hAdjust->page_size = 100000000;
+
+ gtk_range_set_update_policy (GTK_RANGE(custom->hScrollbar), GTK_UPDATE_DISCONTINUOUS);
+ g_signal_connect(G_OBJECT(custom->hScrollbar), "value-changed",
+ G_CALLBACK(gtk_custom_scroll_value_changed), custom);
+
custom->vbox = gtk_vbox_new(FALSE,0);
gtk_widget_show(custom->vbox);
g_object_unref(G_OBJECT(custom->focusedPane));
}
+void gtk_custom_scroll_value_changed(GtkRange *range, gpointer custom_arg)
+{
+ LttTime time;
+ GtkCustom * custom = (GtkCustom*)custom_arg;
+ gdouble value = gtk_range_get_value(range);
+ time.tv_sec = value / NANSECOND_CONST;
+ time.tv_nsec = (value / NANSECOND_CONST - time.tv_sec) * NANSECOND_CONST;
+ SetCurrentTime(custom->mw, &time);
+ g_warning("The current time is second :%d, nanosecond : %d\n", time.tv_sec, time.tv_nsec);
+}
+
static void
gtk_custom_size_request (GtkWidget *widget,