1 module app; 2 3 import dlangui.all; 4 import std.stdio; 5 import std.conv; 6 import dlangide.ui.frame; 7 import dlangide.ui.commands; 8 import dlangide.workspace.workspace; 9 10 11 mixin APP_ENTRY_POINT; 12 13 /// entry point for dlangui based application 14 extern (C) int UIAppMain(string[] args) { 15 16 17 // embed non-standard resources listed in views/resources.list into executable 18 embeddedResourceList.addResources(embedResourcesFromList!("resources.list")()); 19 20 // you can override default hinting mode here 21 //FontManager.hintingMode = HintingMode.Light; 22 //FontManager.hintingMode = HintingMode.AutoHint; 23 FontManager.hintingMode = HintingMode.Normal; 24 //FontManager.hintingMode = HintingMode.Disabled; 25 // you can override antialiasing setting here 26 FontManager.minAnitialiasedFontSize = 0; 27 /// set font gamma (1.0 is neutral, < 1.0 makes glyphs lighter, >1.0 makes glyphs bolder) 28 FontManager.fontGamma = 0.8; 29 version (USE_OPENGL) { 30 // you can turn on subpixel font rendering (ClearType) here 31 FontManager.subpixelRenderingMode = SubpixelRenderingMode.None; // 32 FontManager.fontGamma = 0.8; 33 FontManager.hintingMode = HintingMode.AutoHint; 34 } else { 35 version (USE_FREETYPE) { 36 // you can turn on subpixel font rendering (ClearType) here 37 FontManager.fontGamma = 0.8; 38 //FontManager.subpixelRenderingMode = SubpixelRenderingMode.BGR; //SubpixelRenderingMode.None; // 39 FontManager.hintingMode = HintingMode.AutoHint; 40 } 41 } 42 43 //import ddc.lexer.tokenizer; 44 //runTokenizerTest(); 45 debug(DebugInfo) { 46 version(Windows) { 47 import ddebug.windows.debuginfo; 48 import std.file; 49 debugInfoTest(thisExePath); 50 } 51 } 52 53 // create window 54 Window window = Platform.instance.createWindow("Dlang IDE", null, WindowFlag.Resizable, 900, 700); 55 56 IDEFrame frame = new IDEFrame(window); 57 58 // create some widget to show in window 59 window.windowIcon = drawableCache.getImage("dlangui-logo1"); 60 61 // open home screen tab 62 frame.showHomeScreen(); 63 // for testing: load workspace at startup 64 //frame.openFileOrWorkspace(appendPath(exePath, "../workspaces/sample1/sample1.dlangidews")); 65 66 // show window 67 window.show(); 68 69 //jsonTest(); 70 71 // run message loop 72 return Platform.instance.enterMessageLoop(); 73 } 74 75 76 unittest { 77 void jsonTest() { 78 import dlangui.core.settings; 79 Setting s = new Setting(); 80 s["param1_ulong"] = cast(ulong)1543453u; 81 s["param2_long"] = cast(long)-22934; 82 s["param3_double"] = -39.123e-10; 83 s["param4_string"] = "some string value"; 84 s["param5_bool_true"] = true; 85 s["param6_bool_false"] = false; 86 s["param7_null"] = new Setting(); 87 Setting a = new Setting(); 88 a[0] = cast(ulong)1u; 89 a[1] = cast(long)-2; 90 a[2] = 3.3; 91 a[3] = "some string value"; 92 a[4] = true; 93 a[5] = false; 94 a[6] = new Setting(); 95 Setting mm = new Setting(); 96 mm["n"] = cast(ulong)5u; 97 mm["name"] = "test"; 98 a[7] = mm; 99 s["param8_array"] = a; 100 Setting m = new Setting(); 101 m["aaa"] = "bbb"; 102 m["aaa2"] = cast(ulong)5u; 103 m["aaa3"] = false; 104 s["param9_object"] = m; 105 string json = s.toJSON(true); 106 s.save("test_file.json"); 107 108 Setting loaded = new Setting(); 109 loaded.load("test_file.json"); 110 string json2 = loaded.toJSON(true); 111 loaded.save("test_file2.json"); 112 } 113 114 }