+/* This file is part of the Linux Trace Toolkit viewer
+ * Copyright (C) 2003-2004 Xiangxiu Yang
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License Version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
#ifndef _MAIN_WINDOW_
#define _MAIN_WINDOW_
#include <lttv/processTrace.h>
#include <lttv/common.h>
-#include <lttv/gtkcustom.h>
+#include <lttv/gtkmultivpaned.h>
#include <lttv/hook.h>
#include <lttv/stats.h>
char ** argv;
} WindowCreationData;
-typedef struct _TimeWindow {
- LttTime startTime;
- LttTime Time_Width;
-} TimeWindow;
typedef struct _TracesetInfo {
- gchar* path;
- LttvHooks
- *before_traceset,
- *after_traceset,
- *before_trace,
- *after_trace,
- *before_tracefile,
- *after_tracefile,
- *before_event,
- *after_event;
- //FIXME? TracesetContext and stats in same or different variable ?
- LttvTracesetStats * TracesetContext;
- LttvTraceset * traceset;
+ //FIXME? TracesetContext and stats in same or different variable ?
+ LttvTracesetStats * traceset_context;
+ LttvTraceset * traceset;
} TracesetInfo ;
-struct _mainWindow{
- GtkWidget* MWindow; /* Main Window */
-// systemView * SystemView; /* System view displayed in this window*/
+struct _MainWindow{
+ GtkWidget* mwindow; /* Main Window */
+ int window_width;
/* Status bar information */
// guint MainSBarContextID; /* Context ID of main status bar */
//viewTimeFrameWindow* ViewTimeFrameWindow;/*Window to select time frame */
//gotoEventWindow* GotoEventWindow; /*search for event description*/
//openFilterWindow* OpenFilterWindow; /* Open a filter selection window */
- GtkWidget* HelpContents;/* Window to display help contents */
- GtkWidget* AboutBox; /* Window about information */
+ GtkWidget* help_contents;/* Window to display help contents */
+ GtkWidget* about_box; /* Window about information */
- //LttvTracesetContext * traceset_context;
- //LttvTraceset * traceset; /* trace set associated with the window */
// lttv_trace_filter * filter; /* trace filter associated with the window */
- /* Traceset related information */
- TracesetInfo * Traceset_Info;
/* Attributes for trace reading hooks local to the main window */
- LttvIAttribute * Attributes;
+ LttvIAttribute * attributes;
- tab * Tab;
- tab * CurrentTab;
+ Tab * tab;
+ Tab * current_tab;
- WindowCreationData * winCreationData;
-};
+ WindowCreationData * win_creation_data;
+ GHashTable * hash_menu_item;
+ GHashTable * hash_toolbar_item;
+};
-//struct _systemView{
-// gpointer EventDB;
-// gpointer SystemInfo;
-// gpointer Options;
-// mainWindow * Window;
-// struct _systemView * Next;
-//};
-struct _tab{
+struct _Tab{
GtkWidget * label;
- GtkCustom * custom;
-
-
- // Will have to read directly at the main window level, as we want
- // to be able to modify a traceset on the fly.
- //LttTime traceStartTime;
- //LttTime traceEndTime;
-
+ GtkMultiVPaned * multi_vpaned;
+
// startTime is the left of the visible area. Corresponds to the scrollbar
// value.
// Time_Width is a zoom dependant value (corresponding to page size)
- TimeWindow Time_Window;
+ TimeWindow time_window;
// The current time is the time selected in the visible area by the user,
// not the scrollbar value.
- LttTime currentTime;
- LttvIAttribute * Attributes;
+ LttTime current_time;
+ LttvIAttribute * attributes;
+
+ struct _Tab * next;
+ MainWindow * mw;
- struct _tab * Next;
+ /* Traceset related information */
+ TracesetInfo * traceset_info;
};
+/**
+ * Remove menu and toolbar item when a module unloaded
+ */
+void main_window_remove_menu_item(lttv_constructor view_constructor);
+void main_window_remove_toolbar_item(lttv_constructor view_constructor);
+
#endif /* _MAIN_WINDOW_ */