1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef MAIN_SCHEDULING_PAGE_H
6#define MAIN_SCHEDULING_PAGE_H
7
8
9#include <GroupView.h>
10
11#include "table/Table.h"
12
13#include "ListSelectionModel.h"
14#include "main_window/MainWindow.h"
15
16
17class BScrollView;
18
19
20class MainWindow::SchedulingPage : public BGroupView, private TableListener {
21public:
22								SchedulingPage(MainWindow* parent);
23	virtual						~SchedulingPage();
24
25			void				SetModel(Model* model);
26
27private:
28			struct SchedulingEvent;
29			struct IOSchedulingEvent;
30			class SchedulingData;
31			struct TimeRange;
32			class TimelineHeaderRenderer;
33			class BaseView;
34			class LineBaseView;
35			class ThreadsView;
36			class SchedulingView;
37			class ViewPort;
38
39			struct FontInfo {
40				font_height	fontHeight;
41				float		lineHeight;
42			};
43
44private:
45			MainWindow*			fParent;
46			Model*				fModel;
47			BScrollView*		fScrollView;
48			ViewPort*			fViewPort;
49			ThreadsView*		fThreadsView;
50			SchedulingView*		fSchedulingView;
51			FontInfo			fFontInfo;
52			ListSelectionModel	fFilterModel;
53			ListSelectionModel	fSelectionModel;
54};
55
56
57#endif	// MAIN_SCHEDULING_PAGE_H
58