1 module demo;
2 version(demo){
3 	import qui.qui;
4 	import qui.widgets;
5 	import std.conv : to;
6 	import std.path;
7 	import std.file : thisExePath;
8 	import utils.misc : fileToArray;
9 	
10 	void main (){
11 		QTerminal term = new QTerminal(QLayout.Type.Horizontal);
12 
13 		LogWidget log = new LogWidget();
14 
15 		ScrollContainer mainScroll = new ScrollContainer();
16 		mainScroll.scrollOnMouseWheel = true;
17 		mainScroll.scrollOnPageUpDown = true;
18 
19 		QLayout mainLayout = new QLayout(QLayout.Type.Vertical);
20 
21 		SplitterWidget split = new SplitterWidget();
22 		split.color = Color.blue;
23 
24 		ScrollContainer subScroll = new ScrollContainer();
25 		subScroll.scrollOnPageUpDown = true;
26 		subScroll.scrollOnMouseWheel = true;
27 
28 		ScrollTestingWidget subTest = new ScrollTestingWidget(
29 			DEFAULT_FG, DEFAULT_BG, Color.green, true);
30 		subTest.height = 50;
31 		subTest.width = 70;
32 
33 		subScroll.setWidget(subTest);
34 
35 		mainLayout.addWidget([subScroll, split]);
36 		mainLayout.height = 50;
37 		
38 		mainScroll.setWidget(mainLayout);
39 
40 		term.addWidget(mainScroll);
41 
42 		term.addWidget(log);
43 
44 		mainLayout.onScrollEvent = delegate(QWidget){
45 			log.add(subScroll.width.to!string ~ 'x' ~
46 				subScroll.height.to!string);
47 			return false;
48 		};
49 
50 		term.onMouseEvent = delegate(QWidget, MouseEvent mouse){
51 			log.add(mouse.tostring.to!dstring);
52 			return false;
53 		};
54 
55 		term.run();
56 		.destroy(term); 
57 	}
58 }