git-svn-id: http://ltt.polymtl.ca/svn@451 04897980-b3bd-0310-b5e0-8ef037075253
[lttv.git] / ltt / branches / poly / include / lttv / mainwindow.h
CommitLineData
d2aa3c05 1/* This file is part of the Linux Trace Toolkit viewer
2 * Copyright (C) 2003-2004 Xiangxiu Yang
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License Version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
16 * MA 02111-1307, USA.
17 */
18
19#ifndef _MAIN_WINDOW_
20#define _MAIN_WINDOW_
21
22#include <gtk/gtk.h>
23
24#include <ltt/ltt.h>
25#include <lttv/attribute.h>
26#include <lttv/traceset.h>
27#include <lttv/processTrace.h>
28
29#include <lttv/common.h>
30#include <lttv/gtkmultivpaned.h>
31#include <lttv/hook.h>
32#include <lttv/stats.h>
33
34typedef struct _WindowCreationData {
35 int argc;
36 char ** argv;
37} WindowCreationData;
38
39
40typedef struct _TracesetInfo {
41 //FIXME? TracesetContext and stats in same or different variable ?
42 LttvTracesetStats * traceset_context;
43 LttvTraceset * traceset;
44} TracesetInfo ;
45
46
47struct _MainWindow{
48 GtkWidget* mwindow; /* Main Window */
49 int window_width;
50
51 /* Status bar information */
52 // guint MainSBarContextID; /* Context ID of main status bar */
53 // guint BegTimeSBarContextID; /* Context ID of BegTime status bar */
54 // guint EndTimeSBarContextID; /* Context ID of EndTime status bar */
55
56 /* Child windows */
57 //openTracesetWindow* OpenTracesetWindow;/* Window to get prof and proc file*/
58 //viewTimeFrameWindow* ViewTimeFrameWindow;/*Window to select time frame */
59 //gotoEventWindow* GotoEventWindow; /*search for event description*/
60 //openFilterWindow* OpenFilterWindow; /* Open a filter selection window */
61 GtkWidget* help_contents;/* Window to display help contents */
62 GtkWidget* about_box; /* Window about information */
63
64 // lttv_trace_filter * filter; /* trace filter associated with the window */
65
66 /* Attributes for trace reading hooks local to the main window */
67 LttvIAttribute * attributes;
68
69 Tab * tab;
70 Tab * current_tab;
71
72 WindowCreationData * win_creation_data;
73
74 GHashTable * hash_menu_item;
75 GHashTable * hash_toolbar_item;
76};
77
78
79struct _Tab{
80 GtkWidget * label;
81 GtkMultiVPaned * multi_vpaned;
82
83 // startTime is the left of the visible area. Corresponds to the scrollbar
84 // value.
85 // Time_Width is a zoom dependant value (corresponding to page size)
86 TimeWindow time_window;
87
88 // The current time is the time selected in the visible area by the user,
89 // not the scrollbar value.
90 LttTime current_time;
91 LttvIAttribute * attributes;
92
93 struct _Tab * next;
94 MainWindow * mw;
95
96 /* Traceset related information */
97 TracesetInfo * traceset_info;
98};
99
100/**
101 * Remove menu and toolbar item when a module unloaded
102 */
103void main_window_remove_menu_item(lttv_constructor view_constructor);
104void main_window_remove_toolbar_item(lttv_constructor view_constructor);
105
106#endif /* _MAIN_WINDOW_ */
107
108
This page took 0.039274 seconds and 4 git commands to generate.