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 }