1 /** 2 Copyright: Copyright (c) 2014 Andrey Penechko. 3 License: a$(WEB boost.org/LICENSE_1_0.txt, Boost License 1.0). 4 Authors: Andrey Penechko. 5 */ 6 7 module testapplication; 8 9 import std.stdio : writeln; 10 11 import anchovy.graphics.windows.glfwwindow; 12 import anchovy.gui; 13 14 import anchovy.gui.application.application; 15 import anchovy.gui.databinding.list; 16 17 class TestApplication : Application!GlfwWindow 18 { 19 DockingRootBehavior dockManager; 20 size_t frameCounter; 21 22 void addFrame() 23 { 24 auto frame = context.createWidget("frame"); 25 frame["caption"] = "Frame " ~ to!string(frameCounter++); 26 frame["minSize"] = ivec2(100, 100); 27 28 dockManager.registerFrame(frame); 29 } 30 31 override void load(in string[] args) 32 { 33 writeln("---------------------- System info ----------------------"); 34 foreach(item; getHardwareInfo()) 35 writeln(item); 36 writeln("---------------------------------------------------------\n"); 37 38 fpsHelper.limitFps = false; 39 40 // ----------------------------- Creating widgets ----------------------------- 41 templateManager.parseFile("example02.sdl"); 42 43 auto mainLayer = context.createWidget("mainLayer"); 44 context.addRoot(mainLayer); 45 46 auto frameLayer = context.createWidget("frameLayer"); 47 context.addRoot(frameLayer); 48 49 context.getWidgetById("createFrame") 50 .addEventHandler( 51 delegate bool(Widget w, PointerClickEvent e){ 52 addFrame(); 53 return true; 54 }); 55 56 context.getWidgetById("printTree") 57 .addEventHandler( 58 delegate bool(Widget w, PointerClickEvent e){ 59 printTree(); 60 return true; 61 }); 62 63 auto dockingRoot = context.getWidgetById("dockingroot"); 64 65 dockManager = cast(DockingRootBehavior)dockingRoot.getWidgetBehavior!DockingRootBehavior; 66 dockManager.registerUndockedStorage(frameLayer); 67 68 addFrame(); 69 70 71 writeln("\n----------------------------- Load end -----------------------------\n"); 72 } 73 74 override void closePressed() 75 { 76 isRunning = false; 77 } 78 }