diff --git a/dub.json b/dub.json index 19fffbb3..72ff6ca1 100644 --- a/dub.json +++ b/dub.json @@ -30,6 +30,7 @@ "--ex", "dimage.", "--ex", "fontconfig", "--ex", "src.dlangui"], "sourceFiles-windows": ["$PACKAGE_DIR/src/win_app.def"], + "excludedSourceFiles-windows": ["3rdparty/fontconfig/*"], "subPackages": [ "./examples/helloworld/", @@ -66,7 +67,7 @@ { "name": "console", "versions": ["USE_CONSOLE", "EmbedStandardResources"], - "versions-windows": ["Unicode"] + "excludedSourceFiles": ["3rdparty/*"] }, { "name": "minimal", diff --git a/examples/example1/dub.json b/examples/example1/dub.json index 6111cf51..e4efb46b 100644 --- a/examples/example1/dub.json +++ b/examples/example1/dub.json @@ -13,7 +13,7 @@ "sourceFiles-windows": ["$PACKAGE_DIR/src/win_app.def"], - "versions": ["EmbedStandardResources", "ForceLogs"], + "versions": ["ForceLogs"], "dependencies": { "dlangui": {"path": "../../"} diff --git a/examples/helloworld/dub.json b/examples/helloworld/dub.json index 87269824..a02a5ddb 100644 --- a/examples/helloworld/dub.json +++ b/examples/helloworld/dub.json @@ -17,7 +17,18 @@ "dlangui": {"path": "../../"} }, - "subConfigurations": { - "dlangui": "minimal" - } + "configurations" : [ + { + "name" : "default", + "subConfigurations" : { + "dlangui" : "minimal" + } + }, + { + "name" : "console", + "subConfigurations" : { + "dlangui" : "console" + } + } + ] } diff --git a/examples/helloworld/src/helloworld.d b/examples/helloworld/src/helloworld.d index 506fddce..5b6da665 100644 --- a/examples/helloworld/src/helloworld.d +++ b/examples/helloworld/src/helloworld.d @@ -6,11 +6,12 @@ mixin APP_ENTRY_POINT; /// entry point for dlangui based application extern (C) int UIAppMain(string[] args) { + + // load theme from file "theme_default.xml" + Platform.instance.uiTheme = "theme_default"; + // create window Log.d("Creating window"); - if (!Platform.instance) { - Log.e("Platform.instance is null!!!"); - } Window window = Platform.instance.createWindow("DlangUI example - HelloWorld", null); Log.d("Window created"); @@ -18,10 +19,9 @@ extern (C) int UIAppMain(string[] args) { //window.mainWidget = (new Button()).text("Hello, world!"d).margins(Rect(20,20,20,20)); window.mainWidget = parseML(q{ VerticalLayout { - margins: 10 - padding: 10 + margins: 10pt + padding: 10pt layoutWidth: fill - backgroundColor: "#C0E0E070" // semitransparent yellow background // red bold text with size = 150% of base style size and font face Arial TextWidget { text: "Hello World example for DlangUI"; textColor: "red"; fontSize: 150%; fontWeight: 800; fontFace: "Arial" } // arrange controls as form - table with two columns @@ -46,10 +46,10 @@ extern (C) int UIAppMain(string[] args) { layoutWidth: fill CheckBox { id: cb1; text: "checkbox 1" } CheckBox { id: cb2; text: "checkbox 2" } - ComboEdit { id: ce1; text: "some text"; minWidth: 100; items: ["Item 1", "Item 2", "Additional item"] } + ComboEdit { id: ce1; text: "some text"; minWidth: 20pt; items: ["Item 1", "Item 2", "Additional item"] } } } - EditBox { layoutWidth: 300; layoutHeight: 80 } + EditBox { layoutWidth: 20pt; layoutHeight: 10pt } HorizontalLayout { Button { id: btnOk; text: "Ok" } Button { id: btnCancel; text: "Cancel" } diff --git a/src/dlangui/core/cssparser.d b/src/dlangui/core/cssparser.d index a5aa9a8f..cc074996 100644 --- a/src/dlangui/core/cssparser.d +++ b/src/dlangui/core/cssparser.d @@ -273,7 +273,9 @@ private bool parseLength(ref string src, ref CssValue value) ident = parseIdent(src); if (!ident.empty) { switch(ident) { - case "em": value.type = CssValueType.em; break; + case "em": + case "m": // for DML - cannot add suffix which starts from 'e' + value.type = CssValueType.em; break; case "pt": value.type = CssValueType.pt; break; case "ex": value.type = CssValueType.ex; break; case "px": value.type = CssValueType.px; break; diff --git a/src/dlangui/core/types.d b/src/dlangui/core/types.d index fe91a8e2..c29cbba7 100644 --- a/src/dlangui/core/types.d +++ b/src/dlangui/core/types.d @@ -284,10 +284,14 @@ private __gshared int PRIVATE_SCREEN_DPI = 96; } @property void SCREEN_DPI(int dpi) { - if (dpi >= 72 && dpi <= 500) { - if (PRIVATE_SCREEN_DPI != dpi) { - // changed DPI - PRIVATE_SCREEN_DPI = dpi; + static if (BACKEND_CONSOLE) { + PRIVATE_SCREEN_DPI = dpi; + } else { + if (dpi >= 72 && dpi <= 500) { + if (PRIVATE_SCREEN_DPI != dpi) { + // changed DPI + PRIVATE_SCREEN_DPI = dpi; + } } } } diff --git a/src/dlangui/dml/parser.d b/src/dlangui/dml/parser.d index 883427b5..26eb29ad 100644 --- a/src/dlangui/dml/parser.d +++ b/src/dlangui/dml/parser.d @@ -157,6 +157,9 @@ class MLParser { // do nothing, value is in px by default } else if (suffix.equal("pt")) { value = makePointSize(value); + } else if (suffix.equal("m") || suffix.equal("em")) { + // todo: implement EMs + value = makePointSize(value); } else if (suffix.equal("%")) { value = makePercentSize(value); } else diff --git a/src/dlangui/graphics/gldrawbuf.d b/src/dlangui/graphics/gldrawbuf.d index d3bf4f86..bf64c701 100644 --- a/src/dlangui/graphics/gldrawbuf.d +++ b/src/dlangui/graphics/gldrawbuf.d @@ -19,6 +19,7 @@ Authors: Vadim Lopatin, coolreader.org@gmail.com module dlangui.graphics.gldrawbuf; public import dlangui.core.config; +static if (BACKEND_GUI): static if (ENABLE_OPENGL): import dlangui.graphics.drawbuf; diff --git a/src/dlangui/graphics/glsupport.d b/src/dlangui/graphics/glsupport.d index b08eb282..90268537 100644 --- a/src/dlangui/graphics/glsupport.d +++ b/src/dlangui/graphics/glsupport.d @@ -19,6 +19,7 @@ Authors: Vadim Lopatin, coolreader.org@gmail.com module dlangui.graphics.glsupport; public import dlangui.core.config; +static if (BACKEND_GUI): static if (ENABLE_OPENGL): public import dlangui.core.math3d; diff --git a/src/dlangui/graphics/images.d b/src/dlangui/graphics/images.d index 4d1af9e5..c52a9d35 100644 --- a/src/dlangui/graphics/images.d +++ b/src/dlangui/graphics/images.d @@ -21,6 +21,7 @@ Authors: Vadim Lopatin, coolreader.org@gmail.com module dlangui.graphics.images; public import dlangui.core.config; +static if (BACKEND_GUI): //version = USE_DEIMAGE; //version = USE_DLIBIMAGE; diff --git a/src/dlangui/graphics/scene/camera.d b/src/dlangui/graphics/scene/camera.d index 9e515089..da4e7402 100644 --- a/src/dlangui/graphics/scene/camera.d +++ b/src/dlangui/graphics/scene/camera.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.camera; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.graphics.scene.node; diff --git a/src/dlangui/graphics/scene/drawableobject.d b/src/dlangui/graphics/scene/drawableobject.d index 73800576..c5e37321 100644 --- a/src/dlangui/graphics/scene/drawableobject.d +++ b/src/dlangui/graphics/scene/drawableobject.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.drawableobject; import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.types; diff --git a/src/dlangui/graphics/scene/effect.d b/src/dlangui/graphics/scene/effect.d index f52a1abe..039782c5 100644 --- a/src/dlangui/graphics/scene/effect.d +++ b/src/dlangui/graphics/scene/effect.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.effect; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.types; import dlangui.core.logger; diff --git a/src/dlangui/graphics/scene/fbximport.d b/src/dlangui/graphics/scene/fbximport.d index 8667f678..05d1aaa8 100644 --- a/src/dlangui/graphics/scene/fbximport.d +++ b/src/dlangui/graphics/scene/fbximport.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.fbximport; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.logger; import dlangui.core.math3d; diff --git a/src/dlangui/graphics/scene/light.d b/src/dlangui/graphics/scene/light.d index 4cf0d456..de44f690 100644 --- a/src/dlangui/graphics/scene/light.d +++ b/src/dlangui/graphics/scene/light.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.light; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.math3d; import dlangui.core.types; diff --git a/src/dlangui/graphics/scene/material.d b/src/dlangui/graphics/scene/material.d index 3a01a543..623e2cf8 100644 --- a/src/dlangui/graphics/scene/material.d +++ b/src/dlangui/graphics/scene/material.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.material; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.types; import dlangui.core.logger; diff --git a/src/dlangui/graphics/scene/mesh.d b/src/dlangui/graphics/scene/mesh.d index 13ae8af8..2c16f067 100644 --- a/src/dlangui/graphics/scene/mesh.d +++ b/src/dlangui/graphics/scene/mesh.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.mesh; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.math3d; import dlangui.core.types; diff --git a/src/dlangui/graphics/scene/model.d b/src/dlangui/graphics/scene/model.d index 81047509..7c99b3e3 100644 --- a/src/dlangui/graphics/scene/model.d +++ b/src/dlangui/graphics/scene/model.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.model; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.graphics.scene.drawableobject; diff --git a/src/dlangui/graphics/scene/node.d b/src/dlangui/graphics/scene/node.d index 4ead97ed..a551431c 100644 --- a/src/dlangui/graphics/scene/node.d +++ b/src/dlangui/graphics/scene/node.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.node; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.math3d; diff --git a/src/dlangui/graphics/scene/objimport.d b/src/dlangui/graphics/scene/objimport.d index 7cbdf4d9..1040b439 100644 --- a/src/dlangui/graphics/scene/objimport.d +++ b/src/dlangui/graphics/scene/objimport.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.objimport; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.logger; import dlangui.core.math3d; diff --git a/src/dlangui/graphics/scene/scene3d.d b/src/dlangui/graphics/scene/scene3d.d index 4e2b1a08..566b91f2 100644 --- a/src/dlangui/graphics/scene/scene3d.d +++ b/src/dlangui/graphics/scene/scene3d.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.scene3d; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.types; diff --git a/src/dlangui/graphics/scene/skybox.d b/src/dlangui/graphics/scene/skybox.d index 567dc3ec..d5d5577d 100644 --- a/src/dlangui/graphics/scene/skybox.d +++ b/src/dlangui/graphics/scene/skybox.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.skybox; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.math3d; import dlangui.graphics.scene.node; diff --git a/src/dlangui/graphics/scene/transform.d b/src/dlangui/graphics/scene/transform.d index 040f9a47..3639e022 100644 --- a/src/dlangui/graphics/scene/transform.d +++ b/src/dlangui/graphics/scene/transform.d @@ -2,6 +2,7 @@ module dlangui.graphics.scene.transform; public import dlangui.core.config; static if (ENABLE_OPENGL): +static if (BACKEND_GUI): import dlangui.core.math3d; import dlangui.core.types;