From 2cceeb94fbee45842b210e598ae5d12256155705 Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Tue, 3 Mar 2015 16:42:05 +0300 Subject: [PATCH] settings editors --- dlangui.sln | 120 +++++++++++++++++++++++++++ src/dlangui/core/settings.d | 8 +- src/dlangui/dialogs/settingsdialog.d | 33 +++++++- src/dlangui/widgets/tree.d | 10 +++ 4 files changed, 166 insertions(+), 5 deletions(-) diff --git a/dlangui.sln b/dlangui.sln index d1718255..170319de 100644 --- a/dlangui.sln +++ b/dlangui.sln @@ -27,125 +27,245 @@ Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "libdparse", "..\dlangide\li EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug COFF32|Any CPU = Debug COFF32|Any CPU + Debug COFF32|Mixed Platforms = Debug COFF32|Mixed Platforms Debug COFF32|Win32 = Debug COFF32|Win32 Debug COFF32|x64 = Debug COFF32|x64 + Debug GDC|Any CPU = Debug GDC|Any CPU + Debug GDC|Mixed Platforms = Debug GDC|Mixed Platforms Debug GDC|Win32 = Debug GDC|Win32 Debug GDC|x64 = Debug GDC|x64 + Debug LDC|Any CPU = Debug LDC|Any CPU + Debug LDC|Mixed Platforms = Debug LDC|Mixed Platforms Debug LDC|Win32 = Debug LDC|Win32 Debug LDC|x64 = Debug LDC|x64 + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms Release|Win32 = Release|Win32 Release|x64 = Release|x64 + TestDebug|Any CPU = TestDebug|Any CPU + TestDebug|Mixed Platforms = TestDebug|Mixed Platforms TestDebug|Win32 = TestDebug|Win32 TestDebug|x64 = TestDebug|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug COFF32|Any CPU.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug COFF32|Mixed Platforms.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug COFF32|Mixed Platforms.Build.0 = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug COFF32|Win32.ActiveCfg = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug COFF32|Win32.Build.0 = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug COFF32|x64.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug GDC|Any CPU.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug GDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug GDC|Mixed Platforms.Build.0 = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug GDC|Win32.ActiveCfg = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug GDC|Win32.Build.0 = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug GDC|x64.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug LDC|Any CPU.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug LDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug LDC|Mixed Platforms.Build.0 = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug LDC|Win32.ActiveCfg = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug LDC|Win32.Build.0 = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug LDC|x64.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug|Win32.ActiveCfg = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug|Win32.Build.0 = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Debug|x64.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Release|Any CPU.ActiveCfg = Release|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.Release|Mixed Platforms.Build.0 = Release|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Release|Win32.ActiveCfg = Release|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Release|Win32.Build.0 = Release|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.Release|x64.ActiveCfg = Release|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.TestDebug|Any CPU.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.TestDebug|Mixed Platforms.ActiveCfg = Debug|Win32 + {5FF17402-9997-4D0E-8068-6D84B8769D98}.TestDebug|Mixed Platforms.Build.0 = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.TestDebug|Win32.ActiveCfg = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.TestDebug|Win32.Build.0 = Debug|Win32 {5FF17402-9997-4D0E-8068-6D84B8769D98}.TestDebug|x64.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug COFF32|Any CPU.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug COFF32|Mixed Platforms.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug COFF32|Mixed Platforms.Build.0 = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug COFF32|Win32.ActiveCfg = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug COFF32|Win32.Build.0 = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug COFF32|x64.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug GDC|Any CPU.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug GDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug GDC|Mixed Platforms.Build.0 = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug GDC|Win32.ActiveCfg = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug GDC|Win32.Build.0 = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug GDC|x64.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug LDC|Any CPU.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug LDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug LDC|Mixed Platforms.Build.0 = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug LDC|Win32.ActiveCfg = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug LDC|Win32.Build.0 = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug LDC|x64.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug|Win32.ActiveCfg = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug|Win32.Build.0 = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Debug|x64.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Release|Any CPU.ActiveCfg = Release|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.Release|Mixed Platforms.Build.0 = Release|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Release|Win32.ActiveCfg = Release|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Release|Win32.Build.0 = Release|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.Release|x64.ActiveCfg = Release|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.TestDebug|Any CPU.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.TestDebug|Mixed Platforms.ActiveCfg = Debug|Win32 + {68C78CC1-6176-4C60-B4B6-520475C26D23}.TestDebug|Mixed Platforms.Build.0 = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.TestDebug|Win32.ActiveCfg = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.TestDebug|Win32.Build.0 = Debug|Win32 {68C78CC1-6176-4C60-B4B6-520475C26D23}.TestDebug|x64.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug COFF32|Any CPU.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug COFF32|Mixed Platforms.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug COFF32|Mixed Platforms.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug COFF32|Win32.ActiveCfg = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug COFF32|Win32.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug COFF32|x64.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug GDC|Any CPU.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug GDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug GDC|Mixed Platforms.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug GDC|Win32.ActiveCfg = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug GDC|Win32.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug GDC|x64.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug LDC|Any CPU.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug LDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug LDC|Mixed Platforms.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug LDC|Win32.ActiveCfg = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug LDC|Win32.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug LDC|x64.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug|Win32.ActiveCfg = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug|Win32.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Debug|x64.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Release|Any CPU.ActiveCfg = Release|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Release|Mixed Platforms.Build.0 = Release|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Release|Win32.ActiveCfg = Release|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Release|Win32.Build.0 = Release|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.Release|x64.ActiveCfg = Release|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.TestDebug|Any CPU.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.TestDebug|Mixed Platforms.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.TestDebug|Mixed Platforms.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.TestDebug|Win32.ActiveCfg = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.TestDebug|Win32.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB1611FB977}.TestDebug|x64.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug COFF32|Any CPU.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug COFF32|Mixed Platforms.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug COFF32|Mixed Platforms.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug COFF32|Win32.ActiveCfg = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug COFF32|Win32.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug COFF32|x64.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug GDC|Any CPU.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug GDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug GDC|Mixed Platforms.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug GDC|Win32.ActiveCfg = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug GDC|Win32.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug GDC|x64.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug LDC|Any CPU.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug LDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug LDC|Mixed Platforms.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug LDC|Win32.ActiveCfg = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug LDC|Win32.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug LDC|x64.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug|Win32.ActiveCfg = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug|Win32.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Debug|x64.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Release|Any CPU.ActiveCfg = Release|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Release|Mixed Platforms.Build.0 = Release|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Release|Win32.ActiveCfg = Release|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Release|Win32.Build.0 = Release|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.Release|x64.ActiveCfg = Release|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.TestDebug|Any CPU.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.TestDebug|Mixed Platforms.ActiveCfg = Debug|Win32 + {66B1B701-6AC9-41F5-8DB4-5CB161321977}.TestDebug|Mixed Platforms.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.TestDebug|Win32.ActiveCfg = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.TestDebug|Win32.Build.0 = Debug|Win32 {66B1B701-6AC9-41F5-8DB4-5CB161321977}.TestDebug|x64.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug COFF32|Any CPU.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug COFF32|Mixed Platforms.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug COFF32|Mixed Platforms.Build.0 = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug COFF32|Win32.ActiveCfg = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug COFF32|Win32.Build.0 = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug COFF32|x64.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug GDC|Any CPU.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug GDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug GDC|Mixed Platforms.Build.0 = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug GDC|Win32.ActiveCfg = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug GDC|Win32.Build.0 = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug GDC|x64.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug LDC|Any CPU.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug LDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug LDC|Mixed Platforms.Build.0 = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug LDC|Win32.ActiveCfg = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug LDC|Win32.Build.0 = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug LDC|x64.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug|Win32.ActiveCfg = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug|Win32.Build.0 = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Debug|x64.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Release|Any CPU.ActiveCfg = Release|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.Release|Mixed Platforms.Build.0 = Release|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Release|Win32.ActiveCfg = Release|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Release|Win32.Build.0 = Release|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.Release|x64.ActiveCfg = Release|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.TestDebug|Any CPU.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.TestDebug|Mixed Platforms.ActiveCfg = Debug|Win32 + {68C78CAD-6176-4C60-B4A5-520475C26D56}.TestDebug|Mixed Platforms.Build.0 = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.TestDebug|Win32.ActiveCfg = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.TestDebug|Win32.Build.0 = Debug|Win32 {68C78CAD-6176-4C60-B4A5-520475C26D56}.TestDebug|x64.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug COFF32|Any CPU.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug COFF32|Mixed Platforms.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug COFF32|Mixed Platforms.Build.0 = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug COFF32|Win32.ActiveCfg = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug COFF32|Win32.Build.0 = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug COFF32|x64.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug GDC|Any CPU.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug GDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug GDC|Mixed Platforms.Build.0 = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug GDC|Win32.ActiveCfg = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug GDC|Win32.Build.0 = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug GDC|x64.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug LDC|Any CPU.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug LDC|Mixed Platforms.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug LDC|Mixed Platforms.Build.0 = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug LDC|Win32.ActiveCfg = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug LDC|Win32.Build.0 = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug LDC|x64.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug|Win32.ActiveCfg = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug|Win32.Build.0 = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Debug|x64.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Release|Any CPU.ActiveCfg = Release|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Release|Mixed Platforms.Build.0 = Release|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Release|Win32.ActiveCfg = Release|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Release|Win32.Build.0 = Release|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.Release|x64.ActiveCfg = Release|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.TestDebug|Any CPU.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.TestDebug|Mixed Platforms.ActiveCfg = Debug|Win32 + {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.TestDebug|Mixed Platforms.Build.0 = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.TestDebug|Win32.ActiveCfg = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.TestDebug|Win32.Build.0 = Debug|Win32 {C4F86459-686F-4841-A6BE-7FCC38DC47FE}.TestDebug|x64.ActiveCfg = Debug|Win32 diff --git a/src/dlangui/core/settings.d b/src/dlangui/core/settings.d index 354089bd..e301d4b5 100644 --- a/src/dlangui/core/settings.d +++ b/src/dlangui/core/settings.d @@ -530,8 +530,12 @@ final class Setting { return null; case OBJECT: string[string] res; - foreach(key, value; _store.map.map) - res[key] = this[value].str; + if (_store.map) { + foreach(key, value; _store.map.map) { + Setting v = _store.map.get(value); + res[key] = v ? v.str : null; + } + } return res; } } diff --git a/src/dlangui/dialogs/settingsdialog.d b/src/dlangui/dialogs/settingsdialog.d index 2690d6ee..f1d729b9 100644 --- a/src/dlangui/dialogs/settingsdialog.d +++ b/src/dlangui/dialogs/settingsdialog.d @@ -78,7 +78,7 @@ class SettingsPage { return _items[index]; } - void addChild(SettingsItem item) { + void addItem(SettingsItem item) { _items.add(item); item._page = this; } @@ -89,16 +89,28 @@ class SettingsPage { res.minWidth(200).minHeight(200); return res; } + + /// returns true if this page is root page + @property bool isRoot() { + return !_parent; + } + + TreeItem createTreeItem() { + return null; + } + } class SettingsDialog : Dialog { protected TreeWidget _tree; protected FrameLayout _frame; protected SettingsFile _settings; + protected SettingsPage _layout; - this(UIString caption, Window parent, SettingsFile settings) { + this(UIString caption, Window parent, SettingsFile settings, SettingsPage layout) { super(caption, parent, DialogFlag.Modal | DialogFlag.Resizable | DialogFlag.Popup); _settings = settings; + _layout = layout; } void onTreeItemSelected(TreeItems source, TreeItem selectedItem, bool activated) { @@ -106,6 +118,21 @@ class SettingsDialog : Dialog { return; } + void createControls(SettingsPage page, TreeItem base) { + TreeItem item = base; + if (!page.isRoot) { + item = page.createTreeItem(); + Widget widget = page.createWidget(_settings); + base.addChild(item); + _frame.addChild(widget); + } + if (page.childCount > 0) { + for (int i = 0; i < page.childCount; i++) { + createControls(page.child(i), item); + } + } + } + /// override to implement creation of dialog controls override void init() { minWidth(600).minHeight(400); @@ -114,7 +141,7 @@ class SettingsDialog : Dialog { _tree.selectionListener = &onTreeItemSelected; _tree.fontSize = 16; _frame = new FrameLayout("prop_pages"); - + createControls(_layout, _tree.items); } } diff --git a/src/dlangui/widgets/tree.d b/src/dlangui/widgets/tree.d index 510d5ea5..322ad5ce 100644 --- a/src/dlangui/widgets/tree.d +++ b/src/dlangui/widgets/tree.d @@ -132,6 +132,11 @@ class TreeItem { p = p._parent; return cast(TreeItems)p; } + + /// returns true if this item is root item + @property bool isRoot() { + return false; + } void clear() { _children.clear(); @@ -344,6 +349,11 @@ class TreeItems : TreeItem { super("tree"); } + /// returns true if this item is root item + override @property bool isRoot() { + return true; + } + /// notify listeners override protected void onUpdate(TreeItem item) { if (contentListener.assigned)