styles improvements, documenting

This commit is contained in:
Vadim Lopatin 2014-03-06 18:17:19 +04:00
parent 3713c73db6
commit 93df2f902f
14 changed files with 158 additions and 509 deletions

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -1,3 +0,0 @@
"Debug\test.obj","Debug\test.exe_cv","Debug\test.map",user32.lib+
kernel32.lib/NOMAP/CO/NOI

View File

@ -1,40 +0,0 @@
<html><head><META HTTP-EQUIV="Content-Type" content="text/html">
</head><body><pre>
<table width=100% bgcolor=#CFCFE5><tr><td>
<font face=arial size=+3>Build Log</font>
</table>
<table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
Building Debug\test.exe
</font></table>
<table width=100% bgcolor=#EFEFE5><tr><td><font face=arial size=+1>
Command Line
</font></table>
set PATH=C:\D\dmd2\windows\bin;C:\Program Files\Microsoft SDKs\Windows\v7.1\\bin;%PATH%
dmd -g -debug -X -Xf&quot;Debug\test.json&quot; -deps=&quot;Debug\test.dep&quot; -c -of&quot;Debug\test.obj&quot; main.d
if errorlevel 1 goto reportError
set LIB=&quot;C:\D\dmd2\windows\bin\\..\lib&quot;
echo. &gt; Debug\test.build.lnkarg
echo &quot;Debug\test.obj&quot;,&quot;Debug\test.exe_cv&quot;,&quot;Debug\test.map&quot;,user32.lib+ &gt;&gt; Debug\test.build.lnkarg
echo kernel32.lib/NOMAP/CO/NOI &gt;&gt; Debug\test.build.lnkarg
&quot;C:\Tools\VisualDAddon\pipedmd.exe&quot; -deps Debug\test.lnkdep link.exe @Debug\test.build.lnkarg
if errorlevel 1 goto reportError
if not exist &quot;Debug\test.exe_cv&quot; (echo &quot;Debug\test.exe_cv&quot; not created! &amp;&amp; goto reportError)
echo Converting debug information...
&quot;C:\Tools\VisualDAddon\cv2pdb\cv2pdb.exe&quot; &quot;Debug\test.exe_cv&quot; &quot;Debug\test.exe&quot;
if errorlevel 1 goto reportError
if not exist &quot;Debug\test.exe&quot; (echo &quot;Debug\test.exe&quot; not created! &amp;&amp; goto reportError)
goto noError
:reportError
echo Building Debug\test.exe failed!
:noError
<table width=100% bgcolor=#EFEFE5><tr><td><font face=arial size=+1>
Output
</font></table>
main.d(26): Error: cannot modify const expression cfoo2
Building Debug\test.exe failed!
</body></html>

View File

@ -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

Binary file not shown.

Binary file not shown.

View File

@ -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
}
]
}
]

View File

@ -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

Binary file not shown.

View File

@ -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");
}

View File

@ -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);