xref: /haiku/src/apps/debuganalyzer/gui/main_window/SchedulingPage.h (revision d580f81a2b14c3867b505e8a0fa0bcabe265cfd5)
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 
17 class BScrollView;
18 
19 
20 class MainWindow::SchedulingPage : public BGroupView, private TableListener {
21 public:
22 								SchedulingPage(MainWindow* parent);
23 	virtual						~SchedulingPage();
24 
25 			void				SetModel(Model* model);
26 
27 private:
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 
44 private:
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