diff --git a/dlanguilib.sln b/dlanguilib.sln index 7c749ed0..020af80f 100644 --- a/dlanguilib.sln +++ b/dlanguilib.sln @@ -4,6 +4,9 @@ Microsoft Visual Studio Solution File, Format Version 11.00 Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "dlangui", "dlanguilib.visualdproj", "{5FF17402-9997-4D0E-8068-6D84B8769D98}" EndProject Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "example1", "examples\example1\example1.visualdproj", "{68C78CC1-6176-4C60-B4B6-520475C26D23}" + ProjectSection(ProjectDependencies) = postProject + {5FF17402-9997-4D0E-8068-6D84B8769D98} = {5FF17402-9997-4D0E-8068-6D84B8769D98} + EndProjectSection EndProject Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "test", "examples\test\test.visualdproj", "{3AA2FFC7-A7A5-4BAC-BED9-2F30E1A893FE}" EndProject diff --git a/examples/example1/winmain.d b/examples/example1/winmain.d index d1262957..a83e2575 100644 --- a/examples/example1/winmain.d +++ b/examples/example1/winmain.d @@ -56,7 +56,7 @@ extern (C) int UIAppMain(string[] args) { Log.e("Sample error #", 22); Window window = Platform.instance().createWindow("My Window", null); - Widget myWidget = new TextWidget(); + Widget myWidget = (new TextWidget()).textColor(0x40FF4000); myWidget.text = "Some strange text string. 1234567890"; myWidget.alignment = Align.Center; window.mainWidget = myWidget; diff --git a/examples/test/Debug/test.build b/examples/test/Debug/test.build deleted file mode 100644 index e2fb84fe..00000000 --- a/examples/test/Debug/test.build +++ /dev/null @@ -1,23 +0,0 @@ -set PATH=C:\D\dmd2\windows\bin;C:\Program Files\Microsoft SDKs\Windows\v7.1\\bin;%PATH% -dmd -g -debug -X -Xf"Debug\test.json" -deps="Debug\test.dep" -c -of"Debug\test.obj" main.d -if errorlevel 1 goto reportError - -set LIB="C:\D\dmd2\windows\bin\\..\lib" -echo. > Debug\test.build.lnkarg -echo "Debug\test.obj","Debug\test.exe_cv","Debug\test.map",user32.lib+ >> Debug\test.build.lnkarg -echo kernel32.lib/NOMAP/CO/NOI >> Debug\test.build.lnkarg - -"C:\Tools\VisualDAddon\pipedmd.exe" -deps Debug\test.lnkdep link.exe @Debug\test.build.lnkarg -if errorlevel 1 goto reportError -if not exist "Debug\test.exe_cv" (echo "Debug\test.exe_cv" not created! && goto reportError) -echo Converting debug information... -"C:\Tools\VisualDAddon\cv2pdb\cv2pdb.exe" "Debug\test.exe_cv" "Debug\test.exe" -if errorlevel 1 goto reportError -if not exist "Debug\test.exe" (echo "Debug\test.exe" not created! && goto reportError) - -goto noError - -:reportError -echo Building Debug\test.exe failed! - -:noError diff --git a/examples/test/Debug/test.build.cmd b/examples/test/Debug/test.build.cmd deleted file mode 100644 index 7cafab41..00000000 --- a/examples/test/Debug/test.build.cmd +++ /dev/null @@ -1,23 +0,0 @@ -set PATH=C:\D\dmd2\windows\bin;C:\Program Files\Microsoft SDKs\Windows\v7.1\\bin;%PATH% -dmd -g -debug -X -Xf"Debug\test.json" -deps="Debug\test.dep" -c -of"Debug\test.obj" main.d -if errorlevel 1 goto reportError - -set LIB="C:\D\dmd2\windows\bin\\..\lib" -echo. > Debug\test.build.lnkarg -echo "Debug\test.obj","Debug\test.exe_cv","Debug\test.map",user32.lib+ >> Debug\test.build.lnkarg -echo kernel32.lib/NOMAP/CO/NOI >> Debug\test.build.lnkarg - -"C:\Tools\VisualDAddon\pipedmd.exe" -deps Debug\test.lnkdep link.exe @Debug\test.build.lnkarg -if errorlevel 1 goto reportError -if not exist "Debug\test.exe_cv" (echo "Debug\test.exe_cv" not created! && goto reportError) -echo Converting debug information... -"C:\Tools\VisualDAddon\cv2pdb\cv2pdb.exe" "Debug\test.exe_cv" "Debug\test.exe" -if errorlevel 1 goto reportError -if not exist "Debug\test.exe" (echo "Debug\test.exe" not created! && goto reportError) - -goto noError - -:reportError -echo Building Debug\test.exe failed! - -:noError diff --git a/examples/test/Debug/test.build.lnkarg b/examples/test/Debug/test.build.lnkarg deleted file mode 100644 index 2a00fb29..00000000 --- a/examples/test/Debug/test.build.lnkarg +++ /dev/null @@ -1,3 +0,0 @@ - -"Debug\test.obj","Debug\test.exe_cv","Debug\test.map",user32.lib+ -kernel32.lib/NOMAP/CO/NOI diff --git a/examples/test/Debug/test.buildlog.html b/examples/test/Debug/test.buildlog.html deleted file mode 100644 index 8b09870d..00000000 --- a/examples/test/Debug/test.buildlog.html +++ /dev/null @@ -1,40 +0,0 @@ - -
-
- Build Log -
-
-Building Debug\test.exe -
-
-Command Line -
-set PATH=C:\D\dmd2\windows\bin;C:\Program Files\Microsoft SDKs\Windows\v7.1\\bin;%PATH% -dmd -g -debug -X -Xf"Debug\test.json" -deps="Debug\test.dep" -c -of"Debug\test.obj" main.d -if errorlevel 1 goto reportError - -set LIB="C:\D\dmd2\windows\bin\\..\lib" -echo. > Debug\test.build.lnkarg -echo "Debug\test.obj","Debug\test.exe_cv","Debug\test.map",user32.lib+ >> Debug\test.build.lnkarg -echo kernel32.lib/NOMAP/CO/NOI >> Debug\test.build.lnkarg - -"C:\Tools\VisualDAddon\pipedmd.exe" -deps Debug\test.lnkdep link.exe @Debug\test.build.lnkarg -if errorlevel 1 goto reportError -if not exist "Debug\test.exe_cv" (echo "Debug\test.exe_cv" not created! && goto reportError) -echo Converting debug information... -"C:\Tools\VisualDAddon\cv2pdb\cv2pdb.exe" "Debug\test.exe_cv" "Debug\test.exe" -if errorlevel 1 goto reportError -if not exist "Debug\test.exe" (echo "Debug\test.exe" not created! && goto reportError) - -goto noError - -:reportError -echo Building Debug\test.exe failed! - -:noError -
-Output -
-main.d(26): Error: cannot modify const expression cfoo2 -Building Debug\test.exe failed! - \ No newline at end of file diff --git a/examples/test/Debug/test.dep b/examples/test/Debug/test.dep deleted file mode 100644 index 8c0d5794..00000000 --- a/examples/test/Debug/test.dep +++ /dev/null @@ -1,222 +0,0 @@ -main (main.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.config (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\config.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) : private : core.stdc.config (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\config.d) -core.stdc.stddef (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stddef.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) : private : core.stdc.stddef (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stddef.d) -core.stdc.stdarg (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdarg.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) : private : core.stdc.stdarg (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdarg.d) -core.stdc.stdint (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdint.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.stdint (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdint.d) : private : core.stdc.stddef (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stddef.d) -core.stdc.signal (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\signal.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.stdint (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdint.d) : private : core.stdc.signal (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\signal.d) -core.stdc.wchar_ (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\wchar_.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.wchar_ (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\wchar_.d) : private : core.stdc.config (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\config.d) -core.stdc.wchar_ (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\wchar_.d) : private : core.stdc.stdarg (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdarg.d) -core.stdc.wchar_ (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\wchar_.d) : private : core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) -core.stdc.wchar_ (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\wchar_.d) : public : core.stdc.stddef (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stddef.d) -core.stdc.time (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\time.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.time (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\time.d) : private : core.stdc.config (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\config.d) -core.stdc.time (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\time.d) : private : core.stdc.stddef (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stddef.d) -core.stdc.wchar_ (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\wchar_.d) : public : core.stdc.time (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\time.d) -core.stdc.wchar_ (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\wchar_.d) : public : core.stdc.stdint (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdint.d) -core.stdc.stdint (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdint.d) : private : core.stdc.wchar_ (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\wchar_.d) -core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) : private : core.stdc.stdint (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdint.d):intptr_t -core.sys.windows.windows (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\sys\\windows\\windows.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) : private : core.sys.windows.windows (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\sys\\windows\\windows.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : public : core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\exception.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\exception.d) : private : core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : core.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\exception.d):RangeError,onRangeError -core.vararg (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\vararg.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : core.vararg (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\vararg.d) -core.stdc.stdlib (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdlib.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.stdlib (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdlib.d) : private : core.stdc.config (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\config.d) -core.stdc.stdlib (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdlib.d) : public : core.stdc.stddef (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stddef.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : core.stdc.stdlib (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdlib.d) -core.stdc.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\string.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\string.d) : private : core.stdc.stddef (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stddef.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : core.stdc.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\string.d) -std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : core.stdc.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\string.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.memory (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\memory.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : core.memory (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\memory.d) -core.bitop (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\bitop.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : core.bitop (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\bitop.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) -std.ascii (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\ascii.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.ascii (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\ascii.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) -std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) : private : std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) -std.c.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\string.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.c.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\string.d) : public : core.stdc.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\string.d) -std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) : private : std.c.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\string.d) -std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) : private : std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) -std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) : public : std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) -std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) : private : std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d):copy,count,equal,filter,filterBidirectional,findSplitBefore,group,isSorted,joiner,move,map,max,min,sort,swap,until -std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d):TypeTuple,allSatisfy -std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) : private : std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d):Tuple,tuple -std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d):allSatisfy,staticMap,TypeTuple -std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) : private : std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) -std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) : private : core.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\exception.d) -core.stdc.errno (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\errno.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) : private : core.stdc.errno (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\errno.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private static : std.ascii (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\ascii.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : core.stdc.stdlib (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdlib.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : core.bitop (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\bitop.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d) -std.internal.unicode_tables (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\internal\\unicode_tables.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : std.internal.unicode_tables (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\internal\\unicode_tables.d) -std.math (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\math.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.math (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\math.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -core.stdc.math (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\math.d) : private : core.stdc.config (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\config.d) -std.math (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\math.d) : private : core.stdc.math (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\math.d) -std.math (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\math.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) : private : std.math (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\math.d):pow -std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d):TypeTuple,staticMap,allSatisfy -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) -std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) : private : std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) -std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) : private : std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) -std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) -std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) : private : std.c.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\string.d):memcpy -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.ascii (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\ascii.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : core.stdc.stdlib (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdlib.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : core.stdc.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\string.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : core.vararg (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\vararg.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : std.ascii (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\ascii.d) -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : core.bitop (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\bitop.d) -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) -std.system (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\system.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : std.system (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\system.d) -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : std.system (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\system.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d) -std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) : private : std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) -std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) : private : std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) -std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) : private : std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) -std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) : private : std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d) -std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d) -std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) : private : std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) -std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) : private : std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) -std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) : private : std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) -std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) : private : std.math (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\math.d) -std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) : private : std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) -std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) : private : std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d):unaryFun,binaryFun -std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) : private : std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d):tuple,Tuple -std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d):TypeTuple,staticMap,allSatisfy -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.ascii (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\ascii.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.functional (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\functional.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.typecons (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typecons.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.typetuple (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\typetuple.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.uni (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\uni.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.algorithm (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\algorithm.d):startsWith,endsWith,cmp,count -std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) : private : std.array (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\array.d):join,split -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d):KeepTerminator -std.c.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\stdio.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.c.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\stdio.d) : public : core.stdc.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdio.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private static : std.c.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\stdio.d) -std.stdiobase (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdiobase.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : std.stdiobase (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdiobase.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : core.stdc.errno (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\errno.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : core.stdc.stddef (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stddef.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : core.stdc.stdlib (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\stdlib.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : core.memory (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\memory.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : core.stdc.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\string.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : core.stdc.wchar_ (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\stdc\\wchar_.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : core.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\exception.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : std.range (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\range.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d):Unqual,isSomeChar,isAggregateType,isSomeString,isIntegral,isBoolean,ParameterTypeTuple -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : std.c.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\stdio.d):__fhnd_info,FHND_WCHAR,FHND_TEXT -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : std.traits (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\traits.d):isScalarType,isArray -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : core.sys.windows.windows (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\sys\\windows\\windows.d) -std.windows.syserror (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\syserror.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.windows.charset (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\charset.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.windows.charset (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\charset.d) : private : std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d) -std.c.windows.windows (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\windows\\windows.d) : private : object (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\object.di) -std.c.windows.windows (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\windows\\windows.d) : public : core.sys.windows.windows (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\sys\\windows\\windows.d) -std.windows.charset (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\charset.d) : private : std.c.windows.windows (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\c\\windows\\windows.d) -std.windows.charset (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\charset.d) : private : std.windows.syserror (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\syserror.d) -std.windows.charset (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\charset.d) : private : std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d) -std.windows.charset (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\charset.d) : private : std.string (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\string.d) -std.windows.syserror (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\syserror.d) : private : std.windows.charset (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\charset.d) -std.windows.syserror (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\syserror.d) : private : core.sys.windows.windows (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\sys\\windows\\windows.d) -std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) : private : std.windows.syserror (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\windows\\syserror.d) -main (main.d) : private : std.stdio (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\stdio.d) -main (main.d) : private : core.bitop (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\bitop.d) -main (main.d) : private : std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d):errnoEnforce -main (main.d) : private : std.utf (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\utf.d):isValidDchar -main (main.d) : private : std.conv (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\conv.d):toTextRange -main (main.d) : private : core.bitop (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\bitop.d) -main (main.d) : private : std.exception (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\exception.d):errnoEnforce -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : core.bitop (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\druntime\\import\\core\\bitop.d) -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d):FormatSpec,formatValue -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d):FormatSpec,formatValue -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d):FormatSpec,formatValue -std.bitmanip (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\bitmanip.d) : private : std.format (C:\\D\\dmd2\\windows\\bin\\..\\..\\src\\phobos\\std\\format.d):FormatSpec,formatValue diff --git a/examples/test/Debug/test.exe b/examples/test/Debug/test.exe deleted file mode 100644 index e80cb5f7..00000000 Binary files a/examples/test/Debug/test.exe and /dev/null differ diff --git a/examples/test/Debug/test.exe_cv b/examples/test/Debug/test.exe_cv deleted file mode 100644 index 30364413..00000000 Binary files a/examples/test/Debug/test.exe_cv and /dev/null differ diff --git a/examples/test/Debug/test.json b/examples/test/Debug/test.json deleted file mode 100644 index c287658f..00000000 --- a/examples/test/Debug/test.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "name" : "main", - "kind" : "module", - "file" : "main.d", - "members" : [ - { - "name" : "std.stdio", - "kind" : "import", - "line" : 3, - "protection" : "private" - }, - { - "name" : "Foo", - "kind" : "class", - "line" : 5, - "members" : [ - { - "name" : "_data", - "kind" : "variable", - "line" : 6, - "deco" : "i", - "offset" : 8 - }, - { - "name" : "this", - "kind" : "constructor", - "line" : 7, - "deco" : "FiZC4main3Foo", - "originalType" : "(int v)", - "parameters" : [ - { - "name" : "v", - "deco" : "i" - } - ], - "endline" : 9 - }, - { - "name" : "data", - "kind" : "function", - "line" : 10, - "storageClass" : [ - "@property" - ], - "deco" : "xFNdZi", - "originalType" : "const int()", - "endline" : 10 - } - ] - }, - { - "name" : "Bar", - "kind" : "struct", - "line" : 13, - "members" : [ - { - "name" : "_data", - "kind" : "variable", - "line" : 14, - "deco" : "i", - "offset" : 0 - }, - { - "name" : "data", - "kind" : "function", - "line" : 15, - "storageClass" : [ - "@property" - ], - "deco" : "xFNdZi", - "originalType" : "const int()", - "endline" : 15 - } - ] - }, - { - "name" : "Foo2", - "kind" : "class", - "line" : 18, - "members" : [] - }, - { - "name" : "main", - "kind" : "function", - "line" : 21, - "deco" : "FAAyaZi", - "parameters" : [ - { - "name" : "argv", - "deco" : "AAya" - } - ], - "endline" : 36 - } - ] - } -] \ No newline at end of file diff --git a/examples/test/Debug/test.map b/examples/test/Debug/test.map deleted file mode 100644 index b962537a..00000000 --- a/examples/test/Debug/test.map +++ /dev/null @@ -1,44 +0,0 @@ - - Start Length Name Class - 0002:00000000 00023E28H _TEXT CODE 32-bit - 0002:00023E28 000001B6H ICODE ICODE 32-bit - 0003:00000000 00000004H .tls tls 32-bit - 0003:00000010 00000034H .tls$ tls 32-bit - 0003:00000050 00000004H .tls$ZZZ tls 32-bit - 0004:00000000 00000004H .CRT$XIA DATA 32-bit - 0004:00000010 00000004H .CRT$XIZ DATA 32-bit - 0004:00000020 00000004H .CRT$XCA DATA 32-bit - 0004:00000030 00000004H .CRT$XCZ DATA 32-bit - 0004:00000040 00000004H .CRT$XPA DATA 32-bit - 0004:00000050 00000004H .CRT$XPZ DATA 32-bit - 0004:00000060 00000004H .CRT$XTA DATA 32-bit - 0004:00000070 00000004H .CRT$XTZ DATA 32-bit - 0004:00000074 00000000H IMP__DATA IMP__DATA 32-bit - 0004:00000080 0000A898H _DATA DATA 32-bit - 0004:0000A918 00000000H FMB DATA 32-bit - 0004:0000A918 00000074H FM DATA 32-bit - 0004:0000A98C 00000000H FME DATA 32-bit - 0004:0000A98C 00000000H XCB DATA 32-bit - 0004:0000A98C 0000000CH XC DATA 32-bit - 0004:0000A998 00000000H XCE DATA 32-bit - 0004:0000A998 00000000H XIB DATA 32-bit - 0004:0000A998 00000014H XI DATA 32-bit - 0004:0000A9AC 00000000H XIE DATA 32-bit - 0004:0000A9AC 00000000H XIFCB DATA 32-bit - 0004:0000A9AC 00000000H XIFU DATA 32-bit - 0004:0000A9AC 00000000H XIFL DATA 32-bit - 0004:0000A9AC 00000004H XIFM DATA 32-bit - 0004:0000A9B0 00000000H XIFCE DATA 32-bit - 0004:0000A9B0 00000000H CONST CONST 32-bit - 0004:0000A9B0 00000000H EEND ENDBSS 32-bit - 0004:0000A9B0 000018C0H _BSS BSS 32-bit - 0004:0000C270 00000000H XOB BSS 32-bit - 0004:0000C270 00000004H XO BSS 32-bit - 0004:0000C274 00000000H XOE BSS 32-bit - 0004:0000C274 00000000H XOFB BSS 32-bit - 0004:0000C274 00000104H XOF BSS 32-bit - 0004:0000C378 00000000H XOFE BSS 32-bit - 0004:0000C380 00000411H c_common BSS 32-bit - 0004:0000C7A0 00000000H STACK STACK 32-bit - -Program entry point at 0001F858 diff --git a/examples/test/Debug/test.pdb b/examples/test/Debug/test.pdb deleted file mode 100644 index a211a18d..00000000 Binary files a/examples/test/Debug/test.pdb and /dev/null differ diff --git a/src/dlangui/widgets/styles.d b/src/dlangui/widgets/styles.d index a51cdea9..55aa68e9 100644 --- a/src/dlangui/widgets/styles.d +++ b/src/dlangui/widgets/styles.d @@ -92,35 +92,35 @@ class Style { /// font size @property FontFamily fontFamily() const { - if (_fontFamily != FontFamily.Unspecified) + if (_fontFamily != FontFamily.Unspecified || _parentStyle is null) return _fontFamily; else return parentStyle.fontFamily; } /// font size @property string fontFace() const { - if (_fontFace !is null) + if (_fontFace !is null || _parentStyle is null) return _fontFace; else return parentStyle.fontFace; } /// font style - italic @property bool fontItalic() const { - if (_fontStyle != FONT_STYLE_UNSPECIFIED) + if (_fontStyle != FONT_STYLE_UNSPECIFIED || _parentStyle is null) return _fontStyle == FONT_STYLE_ITALIC; else return parentStyle.fontItalic; } /// font weight @property ushort fontWeight() const { - if (_fontWeight != FONT_WEIGHT_UNSPECIFIED) + if (_fontWeight != FONT_WEIGHT_UNSPECIFIED || _parentStyle is null) return _fontWeight; else return parentStyle.fontWeight; } /// font size @property ushort fontSize() const { - if (_fontSize != FONT_SIZE_UNSPECIFIED) + if (_fontSize != FONT_SIZE_UNSPECIFIED || _parentStyle is null) return _fontSize; else return parentStyle.fontSize; @@ -140,7 +140,7 @@ class Style { /// text color @property uint textColor() const { - if (_textColor != COLOR_UNSPECIFIED) + if (_textColor != COLOR_UNSPECIFIED || _parentStyle is null) return _textColor; else return parentStyle.textColor; @@ -148,23 +148,42 @@ class Style { /// background color @property uint backgroundColor() const { - if (_backgroundColor != COLOR_UNSPECIFIED) + if (_backgroundColor != COLOR_UNSPECIFIED || _parentStyle is null) return _backgroundColor; else return parentStyle.backgroundColor; } + /// get full alignment (both vertical and horizontal) + @property ubyte alignment() const { + if (_align != Align.Unspecified || _parentStyle is null) + return _align; + else + return parentStyle.alignment; + } /// vertical alignment: Top / VCenter / Bottom @property ubyte valign() const { return _align & Align.VCenter; } /// horizontal alignment: Left / HCenter / Right @property ubyte halign() const { return _align & Align.HCenter; } + /// set alignment + @property Style alignment(ubyte value) { + _align = value; + return this; + } + @property Style fontFace(string face) { _fontFace = face; _font.clear(); return this; } + @property Style fontFamily(FontFamily family) { + _fontFamily = family; + _font.clear(); + return this; + } + @property Style fontStyle(ubyte style) { _fontStyle = style; _font.clear(); @@ -241,6 +260,7 @@ class Style { } } +/// Theme - root for style hierarhy. class Theme : Style { protected Style[string] _byId; @@ -268,6 +288,7 @@ class Theme : Style { Style style = new Style(this, id); if (id !is null) _byId[id] = style; + style._parentStyle = this; // as initial value, use theme as parent return style; } @@ -279,8 +300,10 @@ class Theme : Style { } } -__gshared Theme currentTheme; +/// to access current theme +private __gshared Theme _currentTheme; +@property Theme currentTheme() { return _currentTheme; } static this() { - currentTheme = new Theme("default"); + _currentTheme = new Theme("default"); } diff --git a/src/dlangui/widgets/widget.d b/src/dlangui/widgets/widget.d index cffeec71..2c622cb6 100644 --- a/src/dlangui/widgets/widget.d +++ b/src/dlangui/widgets/widget.d @@ -7,14 +7,23 @@ public import dlangui.graphics.fonts; import dlangui.platforms.common.platform; class Widget { + /// current widget position, set by layout() protected Rect _pos; + /// style id to lookup style in theme protected string _styleId; + /// own copy of style - to override some of style properties, null of no properties overriden protected Style _ownStyle; + /// width measured by measure() protected int _measuredWidth; + /// height measured by measure() protected int _measuredHeight; + /// true to force layout protected bool _needLayout; + /// true to force redraw protected bool _needDraw; + /// parent widget protected Widget _parent; + /// window (to be used for top level widgets only!) protected Window _window; this() { @@ -22,46 +31,103 @@ class Widget { _needDraw = true; } - //@property - const (Style) style() const { + /// accessor to style - by lookup in theme by styleId (if style id is not set, theme base style will be used). + protected @property const (Style) style() const { if (_ownStyle !is null) return _ownStyle; return currentTheme.get(_styleId); } - //@property - Style ownStyle() { + /// enforces widget's own style - allows override some of style properties + protected @property Style ownStyle() { if (_ownStyle is null) _ownStyle = currentTheme.modifyStyle(_styleId); return _ownStyle; } + + //====================================================== + // Style related properties + + /// returns widget style id, null if not set @property void styleId(string id) { _styleId = id; } - @property string styleId() { return _styleId; } - @property Rect margins() { return style.margins; } - @property void margins(Rect rc) { ownStyle.margins = rc; } - @property Rect padding() { return style.padding; } - @property void padding(Rect rc) { ownStyle.padding = rc; } - @property uint backgroundColor() { return style.backgroundColor; } - @property void backgroundColor(uint color) { ownStyle.backgroundColor = color; } + /// set widget style id + @property string styleId() const { return _styleId; } + /// get margins (between widget bounds and its background) + @property Rect margins() const { return style.margins; } + /// set margins for widget - override one from style + @property Widget margins(Rect rc) { ownStyle.margins = rc; return this; } + /// get padding (between background bounds and content of widget) + @property Rect padding() const { return style.padding; } + /// set padding for widget - override one from style + @property Widget padding(Rect rc) { ownStyle.padding = rc; return this; } + /// returns background color + @property uint backgroundColor() const { return style.backgroundColor; } + /// set background color for widget - override one from style + @property Widget backgroundColor(uint color) { ownStyle.backgroundColor = color; return this; } + /// get text color (ARGB 32 bit value) + @property uint textColor() const { return style.textColor; } + /// set text color (ARGB 32 bit value) + @property Widget textColor(uint value) { ownStyle.textColor = value; return this; } + /// returns font face + @property string fontFace() const { return style.fontFace; } + /// set font face for widget - override one from style + @property Widget fontFace(string face) { ownStyle.fontFace = face; return this; } + /// returns font style (italic/normal) + @property bool fontItalic() const { return style.fontItalic; } + /// set font style (italic/normal) for widget - override one from style + @property Widget fontItalic(bool italic) { ownStyle.fontStyle = italic ? FONT_STYLE_ITALIC : FONT_STYLE_NORMAL; return this; } + /// returns font weight + @property ushort fontWeight() const { return style.fontWeight; } + /// set font weight for widget - override one from style + @property Widget fontWeight(ushort weight) { ownStyle.fontWeight = weight; return this; } + /// returns font size in pixels + @property ushort fontSize() const { return style.fontSize; } + /// set font size for widget - override one from style + @property Widget fontSize(ushort size) { ownStyle.fontSize = size; return this; } + /// returns font family + @property FontFamily fontFamily() const { return style.fontFamily; } + /// set font family for widget - override one from style + @property Widget fontFamily(FontFamily family) { ownStyle.fontFamily = family; return this; } + /// returns alignment (combined vertical and horizontal) + @property ubyte alignment() const { return style.alignment; } + /// sets alignment (combined vertical and horizontal) + @property Widget alignment(ubyte value) { ownStyle.alignment = value; return this; } + /// returns horizontal alignment + @property Align valign() { return cast(Align)(alignment & Align.VCenter); } + /// returns vertical alignment + @property Align halign() { return cast(Align)(alignment & Align.HCenter); } + /// returns font set for widget using style or set manually + @property FontRef font() const { return style.font; } + + /// returns widget content text (override to support this) + @property dstring text() { return ""; } + /// sets widget content text (override to support this) + @property void text(dstring s) { } + + //================================================================== + // Layout and drawing related methods + + /// returns true if layout is required for widget and its children @property bool needLayout() { return _needLayout; } + /// returns true if redraw is required for widget and its children @property bool needDraw() { return _needDraw; } - @property int childCount() { return 0; } - Widget child(int index) { return null; } - @property Widget parent() { return _parent; } - @property void parent(Widget parent) { _parent = parent; } - @property Window window() { - Widget p = this; - while (p !is null) { - if (p._window !is null) - return p._window; - p = p.parent; - } - return null; - } - @property void window(Window window) { _window = window; } + /// returns measured width (calculated during measure() call) @property measuredWidth() { return _measuredWidth; } + /// returns measured height (calculated during measure() call) @property measuredHeight() { return _measuredHeight; } + /// returns current width of widget in pixels @property int width() { return _pos.width; } + /// returns current height of widget in pixels @property int height() { return _pos.height; } + /// Measure widget according to desired width and height constraints. (Step 1 of two phase layout). + void measure(int width, int height) { + _measuredWidth = _measuredHeight = 0; + } + /// Set widget rectangle to specified value and layout widget contents. (Step 2 of two phase layout). + void layout(Rect rc) { + _pos = rc; + _needLayout = false; + } + /// applies margins to rectangle void applyMargins(ref Rect rc) { Rect m = margins; rc.left += m.left; @@ -69,6 +135,7 @@ class Widget { rc.bottom -= m.bottom; rc.right -= m.right; } + /// applies padding to rectangle void applyPadding(ref Rect rc) { Rect m = padding; rc.left += m.left; @@ -76,13 +143,7 @@ class Widget { rc.bottom -= m.bottom; rc.right -= m.right; } - void measure(int width, int height) { - _measuredWidth = _measuredHeight = 0; - } - void layout(Rect rc) { - _pos = rc; - _needLayout = false; - } + /// Draw widget at its position to buffer void onDraw(DrawBuf buf) { Rect rc = _pos; applyMargins(rc); @@ -92,19 +153,7 @@ class Widget { buf.fillRect(rc.left, rc.top + rc.height / 2, rc.right, rc.top + rc.height / 2 + 2, 0xFF80FF); _needDraw = false; } - ref FontRef getFont() { - return FontManager.instance.getFont(24, FontWeight.Normal, false, FontFamily.SansSerif, "Arial"); - } - @property dstring text() { return ""; } - @property void text(dstring s) { } - protected uint _textColor = 0x000000; - @property uint textColor() { return _textColor; } - @property void textColor(uint value) { _textColor = value; } - protected ubyte _alignment = Align.Left | Align.Top; - @property ubyte alignment() { return _alignment; } - @property Align valign() { return cast(Align)(_alignment & Align.VCenter); } - @property Align halign() { return cast(Align)(_alignment & Align.HCenter); } - @property void alignment(ubyte value) { _alignment = value; } + /// Applies alignment for content of size sz - set rectangle rc to aligned value of content inside of initial value of rc. void applyAlign(ref Rect rc, Point sz) { if (valign == Align.Bottom) { rc.top = rc.bottom - sz.y; @@ -125,6 +174,33 @@ class Widget { rc.right = rc.left + sz.x; } } + + // =========================================================== + // Widget hierarhy methods + + /// returns number of children of this widget + @property int childCount() { return 0; } + /// returns child by index + Widget child(int index) { return null; } + /// returns parent widget, null for top level widget + @property Widget parent() { return _parent; } + /// sets parent for widget + @property void parent(Widget parent) { _parent = parent; } + /// returns window (if widget or its parent is attached to window) + @property Window window() { + Widget p = this; + while (p !is null) { + if (p._window !is null) + return p._window; + p = p.parent; + } + return null; + } + /// sets window (to be used for top level widget from Window implementation). TODO: hide it from API? + @property void window(Window window) { _window = window; } + + + } class TextWidget : Widget { @@ -145,7 +221,7 @@ class TextWidget : Widget { buf.fillRect(_pos, backgroundColor); applyPadding(rc); ClipRectSaver(buf, rc); - FontRef font = getFont(); + FontRef font = font(); Point sz = font.textSize(text); applyAlign(rc, sz); font.drawText(buf, rc.left, rc.top, text, textColor);