]> O.S.I.I.S - jp/crow.git/commitdiff
DebugLogViewer, DockTests
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Wed, 16 Jul 2025 18:08:03 +0000 (20:08 +0200)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Wed, 16 Jul 2025 18:08:03 +0000 (20:08 +0200)
206 files changed:
Backends/CairoBackend/Crow.CairoBackend.csproj
Crow.sln
Crow/src/DebugUtils/DbgEvent.cs
Crow/src/DebugUtils/DbgWidgetRecord.cs
Crow/src/DebugUtils/DebugLogger.cs
Crow/src/DebugUtils/Utils.cs [deleted file]
Crow/src/Interface.cs
Crow/src/Text/SpanCharReader.cs
Crow/src/Widgets/ColorPicker.cs
Crow/src/Widgets/DockWindow.cs
Crow/src/Widgets/GenericStack.cs
Crow/src/Widgets/Group.cs
Crow/src/Widgets/GroupBase.cs
Crow/src/Widgets/PrivateContainer.cs
Crow/src/Widgets/Table.cs
Crow/src/Widgets/TemplatedGroup.cs
Crow/src/Widgets/TestWidget.cs [new file with mode: 0644]
Drawing2D/src/Colors.cs
Samples/DebugLogViewer/DebugLogViewer.csproj [new file with mode: 0644]
Samples/DebugLogViewer/icons/IconAlerte.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/at.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/automation.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/ban.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/basic_floppydisk.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/binding.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/blank-file.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/bolt.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/bug.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/cancel-button.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/categories/Appearance.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/categories/Behaviour.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/categories/Data.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/categories/Divers.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/categories/Layout.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/center-align.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/circle-red.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/circle.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/coffee.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/cogwheel.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/comment.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/compile.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/compiler_error.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/compiler_warning.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/compiler_warning_orange.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/computing-code.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/connect.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/copy-file.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/crow.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/curly-brackets.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/debug-bug.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/debug-pause.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/debug-play.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/debug-step-into.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/debug-step-out.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/debug-step-over.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/debug-stop.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/dentist-chair.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/drop.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/earth-globe.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/edit.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/eraser.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/event.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/exclamation.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/file-code.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/file-cube.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/file.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/fill.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/filter.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/folder.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/font-file.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/forward-arrow.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/inbox.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/level-up.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/light-bulb.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/log.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/magic-wand.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/move-arrows.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/open.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/outbox.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/paint-brush.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/palette.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/paragraph.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/paste-on-document.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/pause-symbol.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/pin.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/play-button.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/plugins.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/presentation.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/previous.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/processing-file.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/property.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/question.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/recycling.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/redo.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/refresh.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/reply.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/save.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/scissors.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/search.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/services.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/share-arrow.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/sign-out.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/startup.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/stop.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/text-file.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/text-label.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Border.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Button.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.CheckBox.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.ColorPicker.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.ComboBox.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Container.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.DirectoryView.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Docker.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Expandable.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.FileDialog.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Grid.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Group.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.GroupBox.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.HorizontalStack.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.IMLContainer.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Image.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Label.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.ListBox.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Menu.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.MenuItem.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.MessageBox.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.ProgressBar.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.RadioButton.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.ScrollBar.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Scroller.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Shape.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Slider.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Spinner.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Splitter.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.TabItem.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.TabView.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Table.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.TemplatedContainer.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.TemplatedGroup.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.TextBox.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.TreeView.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.VerticalStack.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Window.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/Crow.Wrapper.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/bar-chart.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/bar-menu.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/bullets.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/calendar.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/check-square-1.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/database.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/ellipsis.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/grab.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/hash.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/line-list.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/list.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/modal-list.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/options.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/package.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/padding.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/picture-file.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/pointer.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/puzzle-piece.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/refresh-file.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/sliders.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/split-browser-1.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/table.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/tasks.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/toolbox/warning.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/tools.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/trash.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/undo.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/zoom-in.svg [new file with mode: 0644]
Samples/DebugLogViewer/icons/zoom-out.svg [new file with mode: 0644]
Samples/DebugLogViewer/src/DbgEventWidget.cs [new file with mode: 0644]
Samples/DebugLogViewer/src/DbgLogViewer.cs [new file with mode: 0644]
Samples/DebugLogViewer/src/main.cs [new file with mode: 0644]
Samples/DebugLogViewer/ui/CrowEdit.style [new file with mode: 0644]
Samples/DebugLogViewer/ui/DbgEventTreeItems.itemp [new file with mode: 0644]
Samples/DebugLogViewer/ui/DbgEventView.template [new file with mode: 0644]
Samples/DebugLogViewer/ui/DbgEvtTooltip.crow [new file with mode: 0644]
Samples/DebugLogViewer/ui/DbgWidgetEventListItems.itemp [new file with mode: 0644]
Samples/DebugLogViewer/ui/EnumSelector.template [new file with mode: 0644]
Samples/DebugLogViewer/ui/IconCommand.itmp [new file with mode: 0644]
Samples/DebugLogViewer/ui/MenuButton.template [new file with mode: 0644]
Samples/DebugLogViewer/ui/MenuItem.itmp [new file with mode: 0644]
Samples/DebugLogViewer/ui/WidgetRecord.itemp [new file with mode: 0644]
Samples/DebugLogViewer/ui/main.crow [new file with mode: 0644]
Samples/DebugLogViewer/ui/winDebugLog.crow [new file with mode: 0644]
Samples/DebugLogViewer/ui/winLogGraph.crow [new file with mode: 0644]
Samples/DebugLogViewer/ui/winLogNavigation.crow [new file with mode: 0644]
Samples/Directory.Build.props
Samples/DockTests/DockTests.csproj [new file with mode: 0644]
Samples/DockTests/main.cs [new file with mode: 0644]
Samples/DockTests/ui/main.crow [new file with mode: 0644]
Samples/HelloWorld/ui/helloworld.crow
Samples/ShowCase/ShowCase.cs
Samples/ShowCase/ui/DebugLog.crow [deleted file]
Samples/ShowCase/ui/showcase.crow
Samples/common/samples.style
Samples/common/src/SampleBaseForEditor.cs
Samples/common/ui/Interfaces/Divers/all.crow
Samples/common/ui/Interfaces/Experimental/tabviewTestVertical2.crow
Samples/common/ui/debugLog/DebugLog.crow [new file with mode: 0644]
Samples/common/ui/debugLog/dbg.style [new file with mode: 0644]
Samples/common/ui/templates/dockwinsimple.itmp

index 60a301cefdf69311f5987113471b5e18e9ae81be..0a6d6529cbf7ac99bacea4b1c735ce21acb8a94d 100644 (file)
@@ -3,7 +3,7 @@
   <PropertyGroup>
          <TargetFramework>netcoreapp3.1</TargetFramework>
 
-               <AssemblyVersion>1.2.3</AssemblyVersion>
+               <AssemblyVersion>1.2.4</AssemblyVersion>
                <PackageVersion>$(AssemblyVersion)-beta</PackageVersion>
 
                <Title>C.R.O.W Cairo Backend</Title>
index df9d9f8c122bb3d242472cac7963b70f868f23a2..50981c0e532e0112bf5a2e65627d6fa41dfaf2d8 100644 (file)
--- a/Crow.sln
+++ b/Crow.sln
@@ -1,4 +1,5 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
+
+Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 16
 VisualStudioVersion = 16.0.30104.148
 MinimumVisualStudioVersion = 10.0.40219.1
@@ -35,48 +36,160 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BasicTests", "Samples\Basic
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnimTest", "Samples\AnimTest\AnimTest.csproj", "{17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DockTests", "Samples\DockTests\DockTests.csproj", "{769CA47D-A65B-4902-B6B7-13AFF52085E8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DebugLogViewer", "Samples\DebugLogViewer\DebugLogViewer.csproj", "{72318A7E-B2DE-474A-AC48-26936DCCA718}"
+EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Any CPU = Debug|Any CPU
+               Debug|x64 = Debug|x64
+               Debug|x86 = Debug|x86
                Release|Any CPU = Release|Any CPU
+               Release|x64 = Release|x64
+               Release|x86 = Release|x86
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Debug|x64.Build.0 = Debug|Any CPU
+               {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Debug|x86.Build.0 = Debug|Any CPU
+               {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Release|x64.ActiveCfg = Release|Any CPU
+               {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Release|x64.Build.0 = Release|Any CPU
+               {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Release|x86.ActiveCfg = Release|Any CPU
+               {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Release|x86.Build.0 = Release|Any CPU
                {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Debug|x64.Build.0 = Debug|Any CPU
+               {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Debug|x86.Build.0 = Debug|Any CPU
                {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Release|Any CPU.Build.0 = Release|Any CPU
+               {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Release|x64.ActiveCfg = Release|Any CPU
+               {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Release|x64.Build.0 = Release|Any CPU
+               {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Release|x86.ActiveCfg = Release|Any CPU
+               {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Release|x86.Build.0 = Release|Any CPU
                {56329D48-D382-4850-93DE-59C453894E8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {56329D48-D382-4850-93DE-59C453894E8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {56329D48-D382-4850-93DE-59C453894E8A}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {56329D48-D382-4850-93DE-59C453894E8A}.Debug|x64.Build.0 = Debug|Any CPU
+               {56329D48-D382-4850-93DE-59C453894E8A}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {56329D48-D382-4850-93DE-59C453894E8A}.Debug|x86.Build.0 = Debug|Any CPU
                {56329D48-D382-4850-93DE-59C453894E8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {56329D48-D382-4850-93DE-59C453894E8A}.Release|Any CPU.Build.0 = Release|Any CPU
+               {56329D48-D382-4850-93DE-59C453894E8A}.Release|x64.ActiveCfg = Release|Any CPU
+               {56329D48-D382-4850-93DE-59C453894E8A}.Release|x64.Build.0 = Release|Any CPU
+               {56329D48-D382-4850-93DE-59C453894E8A}.Release|x86.ActiveCfg = Release|Any CPU
+               {56329D48-D382-4850-93DE-59C453894E8A}.Release|x86.Build.0 = Release|Any CPU
                {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Debug|x64.Build.0 = Debug|Any CPU
+               {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Debug|x86.Build.0 = Debug|Any CPU
                {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Release|Any CPU.Build.0 = Release|Any CPU
+               {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Release|x64.ActiveCfg = Release|Any CPU
+               {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Release|x64.Build.0 = Release|Any CPU
+               {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Release|x86.ActiveCfg = Release|Any CPU
+               {18EBB41F-815E-4BF5-B80F-C9E2FAB2993A}.Release|x86.Build.0 = Release|Any CPU
                {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Debug|x64.Build.0 = Debug|Any CPU
+               {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Debug|x86.Build.0 = Debug|Any CPU
                {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Release|Any CPU.Build.0 = Release|Any CPU
+               {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Release|x64.ActiveCfg = Release|Any CPU
+               {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Release|x64.Build.0 = Release|Any CPU
+               {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Release|x86.ActiveCfg = Release|Any CPU
+               {B9E665AC-92A5-4F53-A021-7B27A8014BC3}.Release|x86.Build.0 = Release|Any CPU
                {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Debug|x64.Build.0 = Debug|Any CPU
+               {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Debug|x86.Build.0 = Debug|Any CPU
                {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Release|Any CPU.Build.0 = Release|Any CPU
+               {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Release|x64.ActiveCfg = Release|Any CPU
+               {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Release|x64.Build.0 = Release|Any CPU
+               {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Release|x86.ActiveCfg = Release|Any CPU
+               {E06441A9-0CFD-45BB-9478-99D28CEB327F}.Release|x86.Build.0 = Release|Any CPU
                {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Debug|x64.Build.0 = Debug|Any CPU
+               {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Debug|x86.Build.0 = Debug|Any CPU
                {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Release|Any CPU.Build.0 = Release|Any CPU
+               {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Release|x64.ActiveCfg = Release|Any CPU
+               {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Release|x64.Build.0 = Release|Any CPU
+               {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Release|x86.ActiveCfg = Release|Any CPU
+               {34976828-80CF-4AC5-8C81-F66F635DC5FC}.Release|x86.Build.0 = Release|Any CPU
                {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Debug|x64.Build.0 = Debug|Any CPU
+               {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Debug|x86.Build.0 = Debug|Any CPU
                {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Release|Any CPU.Build.0 = Release|Any CPU
+               {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Release|x64.ActiveCfg = Release|Any CPU
+               {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Release|x64.Build.0 = Release|Any CPU
+               {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Release|x86.ActiveCfg = Release|Any CPU
+               {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175}.Release|x86.Build.0 = Release|Any CPU
                {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Debug|x64.Build.0 = Debug|Any CPU
+               {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Debug|x86.Build.0 = Debug|Any CPU
                {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Release|Any CPU.Build.0 = Release|Any CPU
+               {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Release|x64.ActiveCfg = Release|Any CPU
+               {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Release|x64.Build.0 = Release|Any CPU
+               {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Release|x86.ActiveCfg = Release|Any CPU
+               {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA}.Release|x86.Build.0 = Release|Any CPU
                {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Debug|x64.Build.0 = Debug|Any CPU
+               {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Debug|x86.Build.0 = Debug|Any CPU
                {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Release|Any CPU.Build.0 = Release|Any CPU
+               {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Release|x64.ActiveCfg = Release|Any CPU
+               {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Release|x64.Build.0 = Release|Any CPU
+               {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Release|x86.ActiveCfg = Release|Any CPU
+               {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1}.Release|x86.Build.0 = Release|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Debug|x64.Build.0 = Debug|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Debug|x86.Build.0 = Debug|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Release|Any CPU.Build.0 = Release|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Release|x64.ActiveCfg = Release|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Release|x64.Build.0 = Release|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Release|x86.ActiveCfg = Release|Any CPU
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8}.Release|x86.Build.0 = Release|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Debug|x64.Build.0 = Debug|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Debug|x86.Build.0 = Debug|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Release|Any CPU.Build.0 = Release|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Release|x64.ActiveCfg = Release|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Release|x64.Build.0 = Release|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Release|x86.ActiveCfg = Release|Any CPU
+               {72318A7E-B2DE-474A-AC48-26936DCCA718}.Release|x86.Build.0 = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
@@ -90,6 +203,8 @@ Global
                {ADAABC24-0152-41E2-BBEC-3AC9ACEE1175} = {451F5727-2A2E-4361-A41B-089429ADE8F9}
                {1A0FF3B6-E97B-4F1D-9CDE-9C54742317BA} = {B2C7855A-2878-47FD-AD32-9A83DB4AB8C6}
                {17DEFFB4-AA0C-4C92-999B-1F3DD4BB9AA1} = {B2C7855A-2878-47FD-AD32-9A83DB4AB8C6}
+               {769CA47D-A65B-4902-B6B7-13AFF52085E8} = {B2C7855A-2878-47FD-AD32-9A83DB4AB8C6}
+               {72318A7E-B2DE-474A-AC48-26936DCCA718} = {B2C7855A-2878-47FD-AD32-9A83DB4AB8C6}
        EndGlobalSection
        GlobalSection(ExtensibilityGlobals) = postSolution
                SolutionGuid = {00D4E149-7131-49F4-BAAD-559AA961A78E}
index 791dc544c7ce58bfe4a02e782684e5a31b678fa5..20747fb876d662fd8a3b1fc85c6058e75f24bc3b 100644 (file)
@@ -97,7 +97,7 @@ namespace Crow.DebugLogger
                public virtual string Print ()
                        => $"{begin,10}:{threadId,-2}:{type,-20}:{Message}";
                public override string ToString ()
-                       => $"{begin};{end};{threadId};{type};{Message}";
+                       => $"{begin};{end};{threadId};{type};{Message?.Replace("\n", @"\n")}";
                public virtual Color Color {
                        get {
                                switch (type) {
index 6b0bfb5f9f506f3d2155109a3f23b717ce1ed557..92868c5a36631c333873ab05146a97392d9796ef 100644 (file)
@@ -19,6 +19,7 @@ namespace Crow.DebugLogger
                public int listIndex;//prevent doing an IndexOf on list for each event to know y pos on screen
                                                         //public int instanceNum;//class instantiation order, used to bind events to objs
                public string name;
+               public string nameAndIndex => $"{name}{listIndex}";
                //0 is the main graphic tree, for other obj tree not added to main tree, it range from 1->n
                //useful to track events for obj shown later, not on start
                public int InstanceIndex;
index f7078ed836f8e9cfda5e06839c1fe1bc7de1d978..9355c25632caa5a99ddcaff40f2e31293c080003 100644 (file)
@@ -31,6 +31,7 @@ namespace Crow
                static object logMutex = new object ();
                static Stopwatch chrono = Stopwatch.StartNew ();
                static List<DbgEvent> events = new List<DbgEvent> ();
+               public static IEnumerable<DbgEvent> Events => events;
                //started events per thread
                static Dictionary<int, Stack<DbgEvent>> startedEvents = new Dictionary<int, Stack<DbgEvent>> ();
                //helper for fetching current event list to add next event to while recording
@@ -49,6 +50,7 @@ namespace Crow
                }
                public static readonly bool IsEnabled = true;
 #else
+               public static IEnumerable<DbgEvent> Events => null;
                public static readonly bool IsEnabled = false;
 #endif
 
@@ -179,18 +181,20 @@ lock (logMutex) {
                        Monitor.Exit(logMutex);
 
                        if (ConsoleOutput) {
-                               if (evt.type.HasFlag (DbgEvtType.Error)) {
-                                       Console.ForegroundColor = ConsoleColor.Red;
-                               }
-                               if (evt is DbgWidgetEvent we) {
-                                       Console.WriteLine ($"{evt.Print()} {Widget.GraphicObjects[we.InstanceIndex]}");
-                               } else
-                                       Console.WriteLine ($"{evt.Print()}");
-                               Console.ResetColor ();
-                       }                       
+                               printToConsole(evt);
+                       }
+               }
+               static void printToConsole(DbgEvent evt) {
+                       if (evt.type.HasFlag (DbgEvtType.Error)) {
+                               Console.ForegroundColor = ConsoleColor.Red;
+                       }
+                       if (evt is DbgWidgetEvent we) {
+                               Console.WriteLine ($"{evt.Print()} {Widget.GraphicObjects[we.InstanceIndex]}");
+                       } else
+                               Console.WriteLine ($"{evt.Print()}");
+                       Console.ResetColor ();
 #endif
                }
-
 #if DEBUG_LOG
                static DbgEvent addEventInternal (DbgEvtType evtType, params object [] data)
                {
@@ -236,6 +240,8 @@ lock (logMutex) {
                        foreach (DbgEvent e in evts) {
                                if (e == null)
                                        continue;
+                               /*if (e.type == DbgEvtType.GOSetProperty)
+                                       Debugger.Break();*/
                                s.WriteLine (new string ('\t', level) + e);
                                if (e.Events != null)
                                        saveEventList (s, e.Events, level + 1);
diff --git a/Crow/src/DebugUtils/Utils.cs b/Crow/src/DebugUtils/Utils.cs
deleted file mode 100644 (file)
index ce3d5c3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) 2013-2020  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
-//
-// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
-using System;
-using System.Diagnostics;
-using System.Runtime.CompilerServices;
-
-namespace Crow
-{
-       public static class Logger
-       {
-               [Flags]
-               public enum LogType
-               {
-                       Info            = 1,
-                       Warning         = 2,
-                       Error           = 4,
-               }
-
-               public static LogType CurrentLogLevel = LogType.Error;
-
-               static Stopwatch timer = Stopwatch.StartNew ();
-
-
-               public static void LOG(string message = null, [CallerMemberName] string caller = null) {
-                       Console.WriteLine ($"{timer.ElapsedMilliseconds, 10} {caller}: {message}");
-               }
-       }
-}
index 0b4491f5b038ead8b6b697e5bd356d0b0b6ca5ee..8a56c754d04a0b759ae5848a50409b6dcf2ecd8c 100644 (file)
@@ -88,7 +88,7 @@ namespace Crow
                /// <summary> Allow rendering of interface in development environment </summary>
                public static bool DesignerMode = false;
                /// <summary> Disable caching for a widget if this threshold is reached </summary>
-               public const int MaxCacheSize = 2048;
+               public const int MaxCacheSize = 4096;
                /// <summary> Above this count, the layouting is discard from the current
                /// update cycle and requeued for the next</summary>
                public static int MaxLayoutingTries = 30;
@@ -589,9 +589,6 @@ namespace Crow
                }
                protected virtual void OnInitialized ()
                {
-                       /*try {
-                               Load ("#main.crow").DataSource = this;
-                       } catch { }*/
                        Initialized.Raise (this, null);
                }
                /// <summary>
@@ -1248,7 +1245,7 @@ namespace Crow
                                }
 
                                if (lastDragImageBounds != DragImageBounds) {
-                                       /*ctx.LineWidth = 1;
+                                       ctx.LineWidth = 1;
                                        ctx.SetSource(1,0,0,0.6);
                                        ctx.Rectangle(DragImageBounds);
                                        ctx.Stroke ();
@@ -1256,7 +1253,7 @@ namespace Crow
                                        ctx.Rectangle(lastDragImageBounds);
                                        ctx.Stroke ();
                                        ctx.Arc(lastDragImageBounds.X, lastDragImageBounds.Y, 5,0,Math.PI*2.0);
-                                       ctx.Fill ();*/
+                                       ctx.Fill ();
 
                                        DirtyRect += lastDragImageBounds;
                                        ctx.Save ();
@@ -1911,8 +1908,8 @@ namespace Crow
                                                        Widget g = _hoverWidget;
                                                        while (g != null) {
                                                                if (!string.IsNullOrEmpty (g.Tooltip)) {
-                                                                       if (g.Tooltip.StartsWith("#", StringComparison.Ordinal)) {
-                                                                               //custom tooltip container
+                                                                       if (g.Tooltip.StartsWith("#", StringComparison.Ordinal) && g.Tooltip.Length > 1) {
+                                                                               //custom tooltip container 
                                                                                ToolTipContainer = CreateInstance (g.Tooltip);
                                                                        } else
                                                                                ToolTipContainer = CreateInstance ("#Crow.Tooltip.template");
index 60fb432b9152c2921ef1d7a5389219337429e60d..1a259b4a583e71c90a6ca6547ab480bc140cf64e 100644 (file)
@@ -40,7 +40,12 @@ namespace Crow.Text
                        c = Read();
                        return true;
                }
-               public bool TryRead (char c) => EndOfSpan ? false : Read() == c;
+               public bool TryRead (char c) {
+                       if (!TryPeek(c))
+                               return false;
+                       Read();
+                       return true;
+               } 
 
                public ReadOnlySpan<char> Read (int length) => buffer.Slice (curPos += length, length);
                public void Advance (int increment = 1) => curPos += increment;
@@ -145,8 +150,8 @@ namespace Crow.Text
                /// </summary>
                /// <returns></returns>
                public bool Eol () {
-                       return Peek == '\x85' || Peek == '\x2028' || Peek == '\xA' || curPos + 1 == buffer.Length ||
-                               (Peek == '\xD' && (buffer [curPos + 1]  == '\xA' || buffer [curPos + 1]  == '\x85'));
+                       return Peek == '\x85' || Peek == '\x2028' || Peek == '\xA' || Peek == '\xD' |
+                               (curPos < buffer.Length - 1 && Peek == '\xD' && (buffer [curPos + 1]  == '\xA' || buffer [curPos + 1]  == '\x85'));
 
                }
                /// <summary>
index 7b250be5a9e1eb77fca97f063497588ca6290f82..e86b42ef092c58d70f91e0cda7e19e23e3718320 100644 (file)
@@ -1,9 +1,7 @@
-// Copyright (c) 2013-2019  Bruyère Jean-Philippe jp_bruyere@hotmail.com
+// Copyright (c) 2013-2025  Bruyère Jean-Philippe jp_bruyere@hotmail.com
 //
 // This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
 
-using System;
-using System.Xml.Serialization;
 using System.ComponentModel;
 using System.Collections.Generic;
 using System.Linq;
@@ -106,10 +104,11 @@ namespace Crow
 
                public IList<Colors> AvailableColors => //Enum.GetValues (typeof (Color)).ToList<Color> ();// Colors. ColorDic.Values.OrderBy (c => c.Hue).ToList ();
                        EnumsNET.Enums.GetValues<Colors> ().ToList<Colors> ();
+                       //EnumsNET.Enums.GetValues<Colors> ().OrderBy(c=>(((Color)c).Value << 8) + (((Color)c).Hue << 16) + (((Color)c).Saturation)).ToList<Colors> ();
 
                public void onSelectedItemChanged(object sender, SelectionChangeEventArgs e) {
                        CurrentColor = (Color)(Colors)e.NewValue;
                }
-       }
+    }
 }
 
index d3e343e0367fa1d3fa9ab206cacc94ac94bc1662..920e1c0a567161cde3eee61f98274674cbe9dbac 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2013-2022  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+// Copyright (c) 2013-2025  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
 //
 // This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
 
@@ -210,11 +210,17 @@ namespace Crow
                                r.Inflate(-2,-2);
                    ISurface dragImg = IFace.Backend.CreateSurface (r.Width, r.Height);
                                using (IContext gr = IFace.Backend.CreateContext (dragImg)) {
-                                       gr.LineWidth = 1;
+                                       /*gr.LineWidth = 1;
                                        gr.Rectangle (0,0,r.Width,r.Height);
                                        gr.SetSource (0.2,0.3,0.9,0.5);
                                        gr.FillPreserve ();
                                        gr.SetSource (0.1,0.2,1);
+                                       gr.Stroke ();*/
+                                       gr.LineWidth = 2;
+                                       gr.Rectangle (0,0,r.Width,r.Height);
+                                       gr.SetSource (0.2,0.3,0.9,0.5);
+                                       gr.FillPreserve ();
+                                       gr.SetSource (1.0,0.2,1);
                                        gr.Stroke ();
                                }
                                IFace.CreateDragImage (dragImg, r, false);
@@ -311,7 +317,7 @@ namespace Crow
                        if (Parent == IFace) {
                                IFace.RemoveWidget (this);
                        } else {
-                               floatingGroup = Parent as Group;
+                               FloatingGroup = Parent as Group;
                                floatingGroup.RemoveChild(this);
                        }
 
index d5375c5f02f578553567dea5ffeb07951744af4c..9325238d6181cf96d4362ffa255f12ed1124f93c 100644 (file)
@@ -5,7 +5,7 @@
 using System;
 using System.ComponentModel;
 using System.Linq;
-using static Crow.Logger;
+
 namespace Crow {
        /// <summary>
        /// group container that stacked its children horizontally or vertically
index e6e6caf67a4c1447cecf3363cae8eda316676a5c..a77347331fda63d8692073969222f0049055f3ab 100644 (file)
@@ -1,14 +1,8 @@
-// Copyright (c) 2013-2021  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+// Copyright (c) 2013-2025  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
 //
 // This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-
-using System.Threading;
-
-using static Crow.Logger;
 
 namespace Crow
 {
index 65fe860fa6cd084f4748e05a71c28b2a28414503..c98b5b5b87b75654c873907bd4de7c6c7ba63d46 100644 (file)
@@ -1,15 +1,12 @@
-// Copyright (c) 2013-2021  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+// Copyright (c) 2013-2025  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
 //
 // This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
 
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
-
 using System.Threading;
 using Drawing2D;
-using static Crow.Logger;
-
 
 namespace Crow
 {
index addb54c761022835968621678e2503ec39e605c2..bd30ddd5576620a52286e3add35ecd34b71e9d2b 100644 (file)
@@ -1,12 +1,11 @@
-// Copyright (c) 2013-2022  Bruyère Jean-Philippe <jp_bruyere@hotmail.com>
+// Copyright (c) 2013-2025  Bruyère Jean-Philippe <jp_bruyere@hotmail.com>
 //
 // This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
 
 using System;
-
 using Drawing2D;
 
-using static Crow.Logger;
+
 namespace Crow
 {
        /// <summary>
index 86338573781eb95a71f9aee82dc8863457c5e98c..f5eb3188f5409bef510258041f05aa5a06527cdd 100644 (file)
@@ -67,6 +67,7 @@ namespace Crow
                public Table ()  {}
                public Table (Interface iface, string style = null) : base (iface, style) { }
                #endregion
+
                int columnSpacing, borderLineWidth, verticalLineWidth, horizontalLineWidth, rowsMargin;
                ObservableList<Column> columns;
                HorizontalStack HeaderRow;
index 4cbace6e3388c00c60baa72a0d39d0c79f7c62d7..1b4cf320ad03b59bfe25c3e1b27eb1373fa2da49 100644 (file)
@@ -12,6 +12,7 @@ using System.Threading;
 using Drawing2D;
 
 using Crow.IML;
+using System.Diagnostics;
 
 namespace Crow {
        public abstract class TemplatedGroup : TemplatedControl
@@ -289,7 +290,7 @@ namespace Crow {
                void Ol_ListRemove (object sender, ListChangedEventArg e)
                {
                        cancelLoadingThread ();
-                       
+                       Debug.WriteLine($"{e.Index}");
                        if (selectedItemContainer == itemsContainer.Children[e.Index])
                                SelectedItem = null;
 
diff --git a/Crow/src/Widgets/TestWidget.cs b/Crow/src/Widgets/TestWidget.cs
new file mode 100644 (file)
index 0000000..a575af6
--- /dev/null
@@ -0,0 +1,28 @@
+// Copyright (c) 2013-2022  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
+using System;
+using System.ComponentModel;
+
+using Drawing2D;
+
+namespace Crow
+{      public class TestWidget : Widget
+       {
+               #region CTOR
+               protected TestWidget () {}
+               public TestWidget (Interface iface, string style = null) : base (iface, style) { }
+        #endregion
+        protected override void onDraw(IContext gr)
+        {
+            base.onDraw(gr);
+                       Rectangle rBack = new Rectangle (Slot.Size);
+                       gr.SetSource(Foreground);
+                       rBack.Position = new Point(-100,-100);
+                       gr.Rectangle(rBack);
+                       gr.FillPreserve();
+                       gr.Stroke();
+        }
+       }
+}
+
index a20770e63381df2b3ebc1cf14a9f3d7b2b6fff7d..d7db8e7eaf1374451d05805c28877b37c4d05ace 100644 (file)
@@ -164,10 +164,10 @@ namespace Drawing2D
        public struct Color : IEquatable<Color>
     {
                #region CTOR
-               public Color (int r, int g, int b, int a) :
+               public Color (int r, int g, int b, int a = 255) :
                        this ((uint)r, (uint)g, (uint)b, (uint)a) { }
 
-               public Color(uint r, uint g, uint b, uint a)
+               public Color(uint r, uint g, uint b, uint a = 255)
                {
                        value =
                                ((r & 0xFF) << 24) +
@@ -175,7 +175,7 @@ namespace Drawing2D
                                ((b & 0xFF) << 8) +
                                ((a & 0xFF));
                }
-               public Color (byte r, byte g, byte b, byte a)
+               public Color (byte r, byte g, byte b, byte a = 0xff)
                {
                        value = ((uint)r << 24) + ((uint)g << 16) + ((uint)b << 8) + a;
                }
@@ -223,13 +223,6 @@ namespace Drawing2D
                        set => this.value = (value & 0x000000FF);
                }
 
-
-
-
-               /*public string Name;
-               public string htmlCode;
-               internal bool predefinied;*/
-
                #region Operators
                /*public static implicit operator string(Color c) => c.ToString();
 
@@ -382,5 +375,6 @@ namespace Drawing2D
                                return new Color (X + m, C + m,  m, _alpha / 255.0);
                        return new Color (C + m, X + m,  m, _alpha / 255.0);
                }
+               public static Color FromRGBA (int r, int g, int b, int a = 255) => new Color(r, g, b, a);
        }
 }
diff --git a/Samples/DebugLogViewer/DebugLogViewer.csproj b/Samples/DebugLogViewer/DebugLogViewer.csproj
new file mode 100644 (file)
index 0000000..10728d4
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project Sdk="Microsoft.NET.Sdk">
+       <ItemGroup>
+               <EmbeddedResource Include="ui\*.*">
+                       <LogicalName>ui.%(Filename)%(Extension)</LogicalName>
+               </EmbeddedResource>
+               <EmbeddedResource Include="icons\**\*.*">
+                       <LogicalName>icons.%(Filename)%(Extension)</LogicalName>
+               </EmbeddedResource>             
+               <!--<AssemblyAttribute Include="Crow.CrowAssemblyPriority">
+                       <_Parameter1>0</_Parameter1>
+               </AssemblyAttribute>-->
+       </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/icons/IconAlerte.svg b/Samples/DebugLogViewer/icons/IconAlerte.svg
new file mode 100644 (file)
index 0000000..286dbf3
--- /dev/null
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="64"
+   height="64"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="IconAlerte.svg">
+  <metadata
+     id="metadata49">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1280"
+     inkscape:window-height="984"
+     id="namedview47"
+     showgrid="false"
+     fit-margin-top="1"
+     fit-margin-left="1"
+     fit-margin-right="1"
+     fit-margin-bottom="1"
+     inkscape:zoom="4.2211598"
+     inkscape:cx="60.205288"
+     inkscape:cy="44.735206"
+     inkscape:window-x="0"
+     inkscape:window-y="16"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <defs
+     id="defs4">
+    <linearGradient
+       id="Grad1"
+       x1="41.194874"
+       y1="616.47717"
+       x2="118.93135"
+       y2="527.55511"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.48821801,0,0,-0.48010384,3.766054,311.02113)">
+      <stop
+         offset="0"
+         stop-color="#bb0000"
+         id="stop7" />
+      <stop
+         offset="1"
+         stop-color="#5f0000"
+         id="stop9" />
+    </linearGradient>
+    <linearGradient
+       id="Grad2"
+       x1="530.80951"
+       y1="486.63101"
+       x2="174.80548"
+       y2="211.22995"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1028564,0,0,0.10681322,1.0000004,5.1888378)">
+      <stop
+         offset="0"
+         stop-color="#9a0000"
+         id="stop12" />
+      <stop
+         offset="1"
+         stop-color="#f22803"
+         id="stop14" />
+    </linearGradient>
+    <linearGradient
+       id="Grad3"
+       x1="187.87357"
+       y1="224.59892"
+       x2="581.83746"
+       y2="483.10001"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1028564,0,0,0.10681322,1.0000004,5.1888372)">
+      <stop
+         offset="0"
+         stop-color="#ec6c60"
+         id="stop17" />
+      <stop
+         offset="1"
+         stop-color="#d11412"
+         id="stop19" />
+    </linearGradient>
+    <linearGradient
+       id="Grad4"
+       x1="250.39845"
+       y1="101.53633"
+       x2="412.0943"
+       y2="264.54187"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.1028564,0,0,0.10681322,1.0000004,5.1888378)">
+      <stop
+         offset="0"
+         stop-color="#ffd9d9"
+         id="stop22" />
+      <stop
+         offset="1"
+         stop-color="#ff2727"
+         id="stop24" />
+    </linearGradient>
+    <radialGradient
+       id="Grad5"
+       cx="295.47125"
+       cy="186.09634"
+       r="179.55"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,0.17037225,-0.09390987,-2.4099214e-6,49.328051,-23.159866)">
+      <stop
+         offset="0"
+         stop-color="#ffffff"
+         id="stop27" />
+      <stop
+         offset="0.5"
+         stop-color="#ffffff"
+         id="stop29" />
+      <stop
+         offset="1"
+         stop-color="#d5d5d5"
+         id="stop31" />
+    </radialGradient>
+  </defs>
+  <path
+     d="m 30.5028,7.5139081 c 0,0 -27.8740714,47.5318579 -27.8740714,47.5318579 -0.5348541,0.907918 -0.5348541,2.029451 0,2.937368 0.5245675,0.897228 1.5119883,1.463345 2.5816945,1.463345 l 55.7481489,0 c 1.059418,0 2.046843,-0.566117 2.58169,-1.463345 0.524565,-0.907917 0.524565,-2.02945 0,-2.937368 L 35.666191,7.5139081 c -0.534848,-0.9079111 -1.522275,-1.4740216 -2.5817,-1.4740216 -1.059414,0 -2.04684,0.5661105 -2.581691,1.4740216 z"
+     style="fill-opacity:0.17857104"
+     id="path33"
+     inkscape:connector-curvature="0" />
+  <path
+     d="m 29.275219,6.6628606 c 0,0 -27.8740792,47.5318564 -27.8740792,47.5318564 -0.53485309,0.907918 -0.53485309,2.029463 0,2.937369 0.5245677,0.897237 1.5119881,1.463341 2.5816944,1.463341 l 55.7481458,0 c 1.059424,0 2.046838,-0.566104 2.581701,-1.463341 0.52456,-0.907906 0.52456,-2.029451 0,-2.937369 L 34.438597,6.6628606 C 33.903747,5.7549484 32.916334,5.188839 31.856907,5.188839 c -1.059426,0 -2.046838,0.5661094 -2.581688,1.4740216 z"
+     style="fill:url(#Grad1)"
+     id="path35"
+     inkscape:connector-curvature="0" />
+  <path
+     d="m 31.856907,7.6348601 c -0.174854,0 -0.339422,0.096135 -0.431993,0.2456701 L 17.487873,31.646467 3.550838,55.41239 c -0.092571,0.14954 -0.092571,0.341802 0,0.491339 0.09257,0.149539 0.2571403,0.245671 0.4319962,0.245671 l 55.7481458,0 c 0.174855,0 0.339424,-0.09613 0.432007,-0.245671 0.09256,-0.149537 0.09256,-0.341799 0,-0.491339 L 32.288901,7.8805302 C 32.196331,7.7309918 32.031763,7.6348601 31.856907,7.6348601 Z"
+     style="fill:url(#Grad2)"
+     id="path37"
+     inkscape:connector-curvature="0" />
+  <path
+     d="m 31.853051,7.6348601 c -0.174856,0 -0.339436,0.096135 -0.432004,0.2456701 L 17.484016,31.646467 3.5469789,55.41239 c -0.092572,0.14954 -0.092572,0.341802 0,0.491339 0.09257,0.149539 0.2571404,0.245671 0.4319963,0.245671 l 55.7481468,0 c 0.174855,0 0.339424,-0.09613 0.431994,-0.245671 0.09257,-0.149537 0.09257,-0.341799 0,-0.491339 L 32.285045,7.8805302 C 32.192475,7.7309918 32.027904,7.6348601 31.853051,7.6348601 Z"
+     style="fill:none;stroke:url(#Grad3);stroke-width:1.2577858;stroke-linejoin:round"
+     id="path39"
+     inkscape:connector-curvature="0" />
+  <path
+     d="m 31.8643,8.4908547 c -0.165609,0.00854 -0.319978,0.1044731 -0.408207,0.2470058 L 17.519052,32.503792 15.577638,35.815003 c 4.728601,2.947692 10.261233,4.646368 16.174165,4.646368 5.996896,0 11.604186,-1.744327 16.376659,-4.769869 L 32.320723,8.7378605 c -0.09257,-0.1495396 -0.255854,-0.2470058 -0.430709,-0.2470058 -0.0082,0 -0.01758,-4.087e-4 -0.02572,0 z"
+     style="fill:url(#Grad4);stroke-width:10;stroke-linejoin:round"
+     id="path41"
+     inkscape:connector-curvature="0" />
+  <path
+     d="m 30.437499,20.313589 -16.837595,28.70071 c -0.287995,0.502028 -0.287995,1.121539 0,1.612881 0.288007,0.502017 0.833143,0.811785 1.419421,0.811785 l 33.664901,0 c 0.58628,0 1.131427,-0.309768 1.419424,-0.811785 0.287994,-0.502022 0.287994,-1.110853 0,-1.612881 L 33.276338,20.313589 c -0.287995,-0.502021 -0.833141,-0.811777 -1.419419,-0.811777 -0.586279,0 -1.131423,0.309756 -1.41942,0.811777 z"
+     style="fill:url(#Grad5)"
+     id="path43"
+     inkscape:connector-curvature="0" />
+  <path
+     d="m 30.969176,50.420598 c -0.964669,-0.479803 -1.699326,-1.633479 -1.699326,-2.668545 0,-1.92727 1.939303,-3.37905 3.774142,-2.825358 1.237815,0.373544 2.079121,1.533547 2.068815,2.852514 -0.0088,1.120421 -0.475773,1.945794 -1.428956,2.525663 -0.729622,0.44385 -1.950349,0.495876 -2.714675,0.115726 z m 0.219256,-7.610173 c -0.120588,-0.06883 -0.404599,-0.308433 -0.631097,-0.532473 -0.791399,-0.78278 -0.790414,-0.775892 -1.30629,-9.151632 -0.458585,-7.445434 -0.462378,-7.561125 -0.265603,-8.095945 0.442678,-1.203277 1.429043,-1.730174 3.071401,-1.640697 1.043956,0.05689 1.847956,0.437609 2.370558,1.122567 0.446394,0.585054 0.543443,0.915796 0.543036,1.850484 -4.75e-4,1.015697 -0.625235,13.471485 -0.714045,14.234796 -0.116279,0.999709 -0.678344,1.810994 -1.502164,2.168205 -0.470757,0.204147 -1.247544,0.22632 -1.565796,0.04469 z"
+     id="path45"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/Samples/DebugLogViewer/icons/at.svg b/Samples/DebugLogViewer/icons/at.svg
new file mode 100644 (file)
index 0000000..f8f8aae
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M7.5 12.2c-2.3 0-4.2-1.9-4.2-4.2s1.9-4.2 4.2-4.2 4.2 1.9 4.2 4.2c0.1 2.3-1.9 4.2-4.2 4.2zM7.5 5.2c-1.5 0-2.7 1.3-2.7 2.8s1.2 2.8 2.8 2.8 2.8-1.2 2.8-2.8-1.4-2.8-2.9-2.8z"></path>
+<path fill="#dddddd" d="M8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8c0 1.5-0.4 3-1.2 4.2-0.3 0.5-1.1 1.2-2.3 1.2-0.8 0-1.3-0.3-1.6-0.6-0.7-0.7-0.6-1.8-0.6-1.9v-6.9h1.5v7c0 0.2 0 0.6 0.2 0.8 0 0 0.2 0.2 0.5 0.2 0.7 0 1.1-0.5 1.1-0.5 0.6-1 1-2.2 1-3.4 0-3.6-2.9-6.5-6.5-6.5s-6.6 2.8-6.6 6.4 2.9 6.5 6.5 6.5c0.7 0 1.3-0.1 1.9-0.3l0.4 1.4c-0.7 0.3-1.5 0.4-2.3 0.4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/automation.svg b/Samples/DebugLogViewer/icons/automation.svg
new file mode 100644 (file)
index 0000000..1f4c3ca
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 12c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z"></path>
+<path fill="#dddddd" d="M11.7 16v0c-0.8 0-1.6-0.2-2.3-0.7l-6.2-3.3c-0.5-0.4-0.9-0.6-1.3-1-1.2-1.2-1.9-2.9-1.9-4.6s0.7-3.3 1.9-4.5c1.2-1.2 2.8-1.9 4.5-1.9s3.3 0.7 4.6 1.9c0.4 0.4 0.6 0.7 1 1.2l3.5 6.4c1 1.7 0.7 3.8-0.7 5.2-0.9 0.9-1.9 1.3-3.1 1.3zM6.4 1c-1.4 0-2.8 0.6-3.8 1.6s-1.6 2.4-1.6 3.8c0 1.5 0.6 2.8 1.6 3.8 0.3 0.3 0.6 0.5 1.1 0.8l6.3 3.4c0.6 0.4 1.2 0.5 1.8 0.5v0c0.9 0 1.7-0.3 2.3-1 1.1-1.1 1.3-2.7 0.5-4l-3.5-6.4c-0.3-0.4-0.5-0.7-0.8-1-1.1-0.9-2.4-1.5-3.9-1.5z"></path>
+<path fill="#dddddd" d="M11 7v-1l-1.4-0.5c-0.1-0.2-0.1-0.3-0.2-0.5l0.6-1.3-0.7-0.7-1.3 0.6c-0.2-0.1-0.3-0.1-0.5-0.2l-0.5-1.4h-1l-0.5 1.4c-0.2 0.1-0.3 0.1-0.5 0.2l-1.3-0.6-0.7 0.7 0.6 1.3c-0.1 0.2-0.1 0.3-0.2 0.5l-1.4 0.5v1l1.4 0.5c0.1 0.2 0.1 0.3 0.2 0.5l-0.6 1.3 0.7 0.7 1.3-0.6c0.2 0.1 0.3 0.2 0.5 0.2l0.5 1.4h1l0.5-1.4c0.2-0.1 0.3-0.1 0.5-0.2l1.3 0.6 0.7-0.7-0.6-1.3c0.1-0.2 0.2-0.3 0.2-0.5l1.4-0.5zM6.5 8c-0.8 0-1.5-0.7-1.5-1.5s0.7-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/ban.svg b/Samples/DebugLogViewer/icons/ban.svg
new file mode 100644 (file)
index 0000000..6040dd7
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zM8 2c1.3 0 2.5 0.4 3.5 1.1l-8.4 8.4c-0.7-1-1.1-2.2-1.1-3.5 0-3.3 2.7-6 6-6zM8 14c-1.3 0-2.5-0.4-3.5-1.1l8.4-8.4c0.7 1 1.1 2.2 1.1 3.5 0 3.3-2.7 6-6 6z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/basic_floppydisk.svg b/Samples/DebugLogViewer/icons/basic_floppydisk.svg
new file mode 100644 (file)
index 0000000..85fbab9
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+        width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
+       <g>
+               <polygon fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" points="63,63 1,63 1,1 51,1 63,13         "/>
+       </g>
+       <rect x="7" y="31" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" width="50" height="32"/>
+       <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="14" y1="39" x2="50" y2="39"/>
+       <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="14" y1="47" x2="50" y2="47"/>
+       <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="14" y1="55" x2="50" y2="55"/>
+       <rect x="15" y="1" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" width="34" height="19"/>
+       <rect x="38" y="5" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" width="5" height="11"/>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/binding.svg b/Samples/DebugLogViewer/icons/binding.svg
new file mode 100644 (file)
index 0000000..04f669e
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14.9 1.1c-1.4-1.4-3.7-1.4-5.1 0l-4.4 4.3c-1.4 1.5-1.4 3.7 0 5.2 0.1 0.1 0.3 0.2 0.4 0.3l1.5-1.5c-0.1-0.1-0.3-0.2-0.4-0.3-0.6-0.6-0.6-1.6 0-2.2l4.4-4.4c0.6-0.6 1.6-0.6 2.2 0s0.6 1.6 0 2.2l-1.3 1.3c0.4 0.8 0.5 1.7 0.4 2.5l2.3-2.3c1.5-1.4 1.5-3.7 0-5.1z"></path>
+<path fill="#dddddd" d="M10.2 5.1l-1.5 1.5c0 0 0.3 0.2 0.4 0.3 0.6 0.6 0.6 1.6 0 2.2l-4.4 4.4c-0.6 0.6-1.6 0.6-2.2 0s-0.6-1.6 0-2.2l1.3-1.3c-0.4-0.8-0.1-1.3-0.4-2.5l-2.3 2.3c-1.4 1.4-1.4 3.7 0 5.1s3.7 1.4 5.1 0l4.4-4.4c1.4-1.4 1.4-3.7 0-5.1-0.2-0.1-0.4-0.3-0.4-0.3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/blank-file.svg b/Samples/DebugLogViewer/icons/blank-file.svg
new file mode 100644 (file)
index 0000000..8136979
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/bolt.svg b/Samples/DebugLogViewer/icons/bolt.svg
new file mode 100644 (file)
index 0000000..1a84662
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M9 0l-7 9.4 6-0.4-5 7 13-10-7 0.5 7-6.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/bug.svg b/Samples/DebugLogViewer/icons/bug.svg
new file mode 100644 (file)
index 0000000..8c73946
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 6h3c0.6 0 1-0.1 1-0.1 1.3-0.4 2-1.9 2-3.4 0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5c0 1-0.5 2.5-1.8 2.5h-0.2c0 0 0.2-2.1-2-2.8v-1.7c0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5v1.5c-0.2 0-0.3 0-0.5 0s-0.3 0-0.5 0v-1.5c0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5v1.7c-2.2 0.7-2 2.8-2 2.8h-0.2c-1.3 0-1.8-1.5-1.8-2.5 0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5c0 1.4 0.7 2.9 2 3.4 0 0 0.3 0.1 1 0.1h4zM8 3h1v1h-1v-1zM6 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 7v1c-2.8 0.1-3 1.4-3 3.5 0 0.2 0.2 0.5 0.5 0.5s0.5-0.3 0.5-0.5c0-1.8 0-2.4 2-2.5 0 0 0 1.6 0.6 3.1-0.4 0.1-0.7 0.2-0.9 0.5-0.7 0.6-0.7 1.7-0.7 2.7v0.1c0 0.3 0.2 0.6 0.5 0.6s0.5-0.3 0.5-0.5v-0.1c0-0.8 0-1.7 0.4-2.1 0.1-0.2 0.4-0.3 0.7-0.3 0.5 1 1.5 1.8 2.9 2v-8h-4z"></path>
+<path fill="#dddddd" d="M12 8v-1h-4v8c1.4-0.2 2.4-1 2.9-1.9 0.3 0 0.5 0.1 0.7 0.2 0.4 0.4 0.4 1.2 0.4 2.1v0.1c0 0.3 0.2 0.5 0.5 0.5s0.5-0.2 0.5-0.5v-0.1c0-1 0-2.1-0.7-2.8-0.2-0.2-0.6-0.4-0.9-0.5 0.6-1.5 0.6-3 0.6-3.1 2 0 2 0.7 2 2.5 0 0.3 0.2 0.5 0.5 0.5s0.5-0.2 0.5-0.5c0-2.1-0.2-3.4-3-3.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/cancel-button.svg b/Samples/DebugLogViewer/icons/cancel-button.svg
new file mode 100644 (file)
index 0000000..5f52bb8
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z"></path>
+<path fill="#dddddd" d="M12.2 10.8l-2.8-2.8 2.8-2.8-1.4-1.4-2.8 2.8-2.8-2.8-1.4 1.4 2.8 2.8-2.8 2.8 1.4 1.4 2.8-2.8 2.8 2.8z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/categories/Appearance.svg b/Samples/DebugLogViewer/icons/categories/Appearance.svg
new file mode 100644 (file)
index 0000000..8e425f7
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 7.1c0-2.7-1.3-7.1-7.3-7.1s-8.5 7.4-7.5 9.9c0.8 1.9 2.5 0.1 3.1 1 1.8 2.5-2 3.8 0.1 4.7 2.5 1.1 11.6 0.4 11.6-8.5zM4.5 9c-0.9 0-1.5-0.7-1.5-1.5s0.6-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5zM6 3.5c0-0.8 0.6-1.5 1.5-1.5s1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5-1.5-0.7-1.5-1.5zM8.5 14c-0.9 0-1.5-0.7-1.5-1.5s0.6-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5zM11 4.5c0-0.8 0.6-1.5 1.5-1.5s1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5-1.5-0.7-1.5-1.5zM12.5 11c-0.8 0-1.5-0.7-1.5-1.5s0.6-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/categories/Behaviour.svg b/Samples/DebugLogViewer/icons/categories/Behaviour.svg
new file mode 100644 (file)
index 0000000..1f4c3ca
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 12c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z"></path>
+<path fill="#dddddd" d="M11.7 16v0c-0.8 0-1.6-0.2-2.3-0.7l-6.2-3.3c-0.5-0.4-0.9-0.6-1.3-1-1.2-1.2-1.9-2.9-1.9-4.6s0.7-3.3 1.9-4.5c1.2-1.2 2.8-1.9 4.5-1.9s3.3 0.7 4.6 1.9c0.4 0.4 0.6 0.7 1 1.2l3.5 6.4c1 1.7 0.7 3.8-0.7 5.2-0.9 0.9-1.9 1.3-3.1 1.3zM6.4 1c-1.4 0-2.8 0.6-3.8 1.6s-1.6 2.4-1.6 3.8c0 1.5 0.6 2.8 1.6 3.8 0.3 0.3 0.6 0.5 1.1 0.8l6.3 3.4c0.6 0.4 1.2 0.5 1.8 0.5v0c0.9 0 1.7-0.3 2.3-1 1.1-1.1 1.3-2.7 0.5-4l-3.5-6.4c-0.3-0.4-0.5-0.7-0.8-1-1.1-0.9-2.4-1.5-3.9-1.5z"></path>
+<path fill="#dddddd" d="M11 7v-1l-1.4-0.5c-0.1-0.2-0.1-0.3-0.2-0.5l0.6-1.3-0.7-0.7-1.3 0.6c-0.2-0.1-0.3-0.1-0.5-0.2l-0.5-1.4h-1l-0.5 1.4c-0.2 0.1-0.3 0.1-0.5 0.2l-1.3-0.6-0.7 0.7 0.6 1.3c-0.1 0.2-0.1 0.3-0.2 0.5l-1.4 0.5v1l1.4 0.5c0.1 0.2 0.1 0.3 0.2 0.5l-0.6 1.3 0.7 0.7 1.3-0.6c0.2 0.1 0.3 0.2 0.5 0.2l0.5 1.4h1l0.5-1.4c0.2-0.1 0.3-0.1 0.5-0.2l1.3 0.6 0.7-0.7-0.6-1.3c0.1-0.2 0.2-0.3 0.2-0.5l1.4-0.5zM6.5 8c-0.8 0-1.5-0.7-1.5-1.5s0.7-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/categories/Data.svg b/Samples/DebugLogViewer/icons/categories/Data.svg
new file mode 100644 (file)
index 0000000..65a8f06
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 2.5c0 0.828-2.686 1.5-6 1.5s-6-0.672-6-1.5c0-0.828 2.686-1.5 6-1.5s6 0.672 6 1.5z"></path>
+<path fill="#dddddd" d="M8 5c-3.3 0-6-0.7-6-1.5v3c0 0.8 2.7 1.5 6 1.5s6-0.7 6-1.5v-3c0 0.8-2.7 1.5-6 1.5z"></path>
+<path fill="#dddddd" d="M8 9c-3.3 0-6-0.7-6-1.5v3c0 0.8 2.7 1.5 6 1.5s6-0.7 6-1.5v-3c0 0.8-2.7 1.5-6 1.5z"></path>
+<path fill="#dddddd" d="M8 13c-3.3 0-6-0.7-6-1.5v3c0 0.8 2.7 1.5 6 1.5s6-0.7 6-1.5v-3c0 0.8-2.7 1.5-6 1.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/categories/Divers.svg b/Samples/DebugLogViewer/icons/categories/Divers.svg
new file mode 100644 (file)
index 0000000..de5dd37
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0l-8 8 8 8 8-8-8-8zM2 8l6-6 6 6-6 6-6-6z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/categories/Layout.svg b/Samples/DebugLogViewer/icons/categories/Layout.svg
new file mode 100644 (file)
index 0000000..bbc9719
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 0v16h16v-16h-16zM15 15h-14v-6h3v1l3-2-3-2v1h-3v-6h6v3h-1l2 3 2-3h-1v-3h6v14z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/center-align.svg b/Samples/DebugLogViewer/icons/center-align.svg
new file mode 100644 (file)
index 0000000..92e3fac
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M5 0h6v3h-6v-3z"></path>
+<path fill="#FFFFFF" d="M1 4h14v3h-14v-3z"></path>
+<path fill="#FFFFFF" d="M3 8h10v3h-10v-3z"></path>
+<path fill="#FFFFFF" d="M0 12h16v3h-16v-3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/circle-red.svg b/Samples/DebugLogViewer/icons/circle-red.svg
new file mode 100644 (file)
index 0000000..823837f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#ff0000" d="M8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/circle.svg b/Samples/DebugLogViewer/icons/circle.svg
new file mode 100644 (file)
index 0000000..dc9e78d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/coffee.svg b/Samples/DebugLogViewer/icons/coffee.svg
new file mode 100644 (file)
index 0000000..6ecefe6
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 13l-4 1h-6l-4-1v-1h14z"></path>
+<path fill="#dddddd" d="M14.7 3h-1.7v-1h-12v5c0 1.5 0.8 2.8 2 3.4v0.6h8v-0.6c0.9-0.5 1.6-1.4 1.9-2.4 0 0 0.1 0 0.1 0 2.3 0 2.9-2 3-3.5 0.1-0.8-0.5-1.5-1.3-1.5zM13 7v-3h1.7c0.1 0 0.2 0.1 0.2 0.1s0.1 0.1 0.1 0.3c-0.2 2.6-1.6 2.6-2 2.6z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/cogwheel.svg b/Samples/DebugLogViewer/icons/cogwheel.svg
new file mode 100644 (file)
index 0000000..c104c47
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M15.2 6l-1.1-0.2c-0.1-0.2-0.1-0.4-0.2-0.6l0.6-0.9 0.5-0.7-2.6-2.6-0.7 0.5-0.9 0.6c-0.2-0.1-0.4-0.1-0.6-0.2l-0.2-1.1-0.2-0.8h-3.6l-0.2 0.8-0.2 1.1c-0.2 0.1-0.4 0.1-0.6 0.2l-0.9-0.6-0.7-0.4-2.5 2.5 0.5 0.7 0.6 0.9c-0.2 0.2-0.2 0.4-0.3 0.6l-1.1 0.2-0.8 0.2v3.6l0.8 0.2 1.1 0.2c0.1 0.2 0.1 0.4 0.2 0.6l-0.6 0.9-0.5 0.7 2.6 2.6 0.7-0.5 0.9-0.6c0.2 0.1 0.4 0.1 0.6 0.2l0.2 1.1 0.2 0.8h3.6l0.2-0.8 0.2-1.1c0.2-0.1 0.4-0.1 0.6-0.2l0.9 0.6 0.7 0.5 2.6-2.6-0.5-0.7-0.6-0.9c0.1-0.2 0.2-0.4 0.2-0.6l1.1-0.2 0.8-0.2v-3.6l-0.8-0.2zM15 9l-1.7 0.3c-0.1 0.5-0.3 1-0.6 1.5l0.9 1.4-1.4 1.4-1.4-0.9c-0.5 0.3-1 0.5-1.5 0.6l-0.3 1.7h-2l-0.3-1.7c-0.5-0.1-1-0.3-1.5-0.6l-1.4 0.9-1.4-1.4 0.9-1.4c-0.3-0.5-0.5-1-0.6-1.5l-1.7-0.3v-2l1.7-0.3c0.1-0.5 0.3-1 0.6-1.5l-1-1.4 1.4-1.4 1.4 0.9c0.5-0.3 1-0.5 1.5-0.6l0.4-1.7h2l0.3 1.7c0.5 0.1 1 0.3 1.5 0.6l1.4-0.9 1.4 1.4-0.9 1.4c0.3 0.5 0.5 1 0.6 1.5l1.7 0.3v2z"></path>
+<path fill="#FFFFFF" d="M8 4.5c-1.9 0-3.5 1.6-3.5 3.5s1.6 3.5 3.5 3.5 3.5-1.6 3.5-3.5c0-1.9-1.6-3.5-3.5-3.5zM8 10.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5c0 1.4-1.1 2.5-2.5 2.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/comment.svg b/Samples/DebugLogViewer/icons/comment.svg
new file mode 100644 (file)
index 0000000..d3bb799
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 1c-4.4 0-8 2.5-8 5.5 0 2 2 3.8 4 4.8 0 0 0 0 0 0 0 2.1-2 2.8-2 2.8 2.8 0 4.4-1.3 5.1-2.1 0.3 0 0.6 0 0.9 0 4.4 0 8-2.5 8-5.5s-3.6-5.5-8-5.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/compile.svg b/Samples/DebugLogViewer/icons/compile.svg
new file mode 100644 (file)
index 0000000..c1a14e7
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M12 7v-2l-1.2-0.4c-0.1-0.3-0.2-0.7-0.4-1l0.6-1.2-1.5-1.3-1.1 0.5c-0.3-0.2-0.6-0.3-1-0.4l-0.4-1.2h-2l-0.4 1.2c-0.3 0.1-0.7 0.2-1 0.4l-1.1-0.5-1.4 1.4 0.6 1.2c-0.2 0.3-0.3 0.6-0.4 1l-1.3 0.3v2l1.2 0.4c0.1 0.3 0.2 0.7 0.4 1l-0.5 1.1 1.4 1.4 1.2-0.6c0.3 0.2 0.6 0.3 1 0.4l0.3 1.3h2l0.4-1.2c0.3-0.1 0.7-0.2 1-0.4l1.2 0.6 1.4-1.4-0.6-1.2c0.2-0.3 0.3-0.6 0.4-1l1.2-0.4zM3 6c0-1.7 1.3-3 3-3s3 1.3 3 3c0 1.7-1.3 3-3 3s-3-1.3-3-3z"></path>
+<path fill="#FFFFFF" d="M7.5 6c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path>
+<path fill="#FFFFFF" d="M16 3v-1h-0.6c0-0.2-0.1-0.4-0.2-0.5l0.4-0.4-0.7-0.7-0.4 0.4c-0.2-0.1-0.3-0.2-0.5-0.2v-0.6h-1v0.6c-0.2 0-0.4 0.1-0.5 0.2l-0.4-0.4-0.7 0.7 0.4 0.4c-0.1 0.2-0.2 0.3-0.2 0.5h-0.6v1h0.6c0 0.2 0.1 0.4 0.2 0.5l-0.4 0.4 0.7 0.7 0.4-0.4c0.2 0.1 0.3 0.2 0.5 0.2v0.6h1v-0.6c0.2 0 0.4-0.1 0.5-0.2l0.4 0.4 0.7-0.7-0.4-0.4c0.1-0.2 0.2-0.3 0.2-0.5h0.6zM13.5 3.5c-0.6 0-1-0.4-1-1s0.4-1 1-1 1 0.4 1 1c0 0.6-0.4 1-1 1z"></path>
+<path fill="#FFFFFF" d="M15.4 11.8c-0.1-0.3-0.2-0.6-0.4-0.9l0.3-0.6-0.7-0.7-0.5 0.4c-0.3-0.2-0.6-0.3-0.9-0.4l-0.2-0.6h-1l-0.2 0.6c-0.3 0.1-0.6 0.2-0.9 0.4l-0.6-0.3-0.7 0.7 0.3 0.6c-0.2 0.3-0.3 0.6-0.4 0.9l-0.5 0.1v1l0.6 0.2c0.1 0.3 0.2 0.6 0.4 0.9l-0.3 0.6 0.7 0.7 0.6-0.3c0.3 0.2 0.6 0.3 0.9 0.4l0.1 0.5h1l0.2-0.6c0.3-0.1 0.6-0.2 0.9-0.4l0.6 0.3 0.7-0.7-0.4-0.5c0.2-0.3 0.3-0.6 0.4-0.9l0.6-0.2v-1l-0.6-0.2zM12.5 14c-0.8 0-1.5-0.7-1.5-1.5s0.7-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/compiler_error.svg b/Samples/DebugLogViewer/icons/compiler_error.svg
new file mode 100644 (file)
index 0000000..1b50568
--- /dev/null
@@ -0,0 +1,13 @@
+<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg">
+ <!-- Created with Method Draw - http://github.com/duopixel/Method-Draw/ -->
+ <g id="False">
+  <title>Layer 1</title>
+  <rect id="svg_1" height="27" width="27" y="2.5" x="2.5" stroke-width="5" stroke="#bf0000" fill="#fff"/>
+  <text font-weight="bold" xml:space="preserve" text-anchor="start" font-family="Helvetica, Arial, sans-serif" font-size="24" id="svg_2" y="24.84615" x="7.82692" stroke-width="0" stroke="#bf0000" fill="#000000">X</text>
+ </g>
+  <g id="True">
+  <title>Layer 2</title>
+  <path id="svg_1" d="m16.28846,3.46154l13.78846,26.61539l-27.57692,0l13.78846,-26.61539z" stroke-linecap="null" stroke-linejoin="null" stroke-width="3" stroke="#d1d100" fill-opacity="null" fill="#fff"/>
+  <text font-weight="bold" xml:space="preserve" text-anchor="start" font-family="Georgia, Times, 'Times New Roman', serif" font-size="24" id="svg_3" y="27.15385" x="12.44231" stroke-width="0" stroke="#bf0000" fill="#000000">!</text>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/icons/compiler_warning.svg b/Samples/DebugLogViewer/icons/compiler_warning.svg
new file mode 100644 (file)
index 0000000..9dac377
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="378.30496" height="326.05325" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docbase="C:\Documents and Settings\KevinDuke\Desktop" sodipodi:docname="Ambox_warning_yellow.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" gridtolerance="10000" guidetolerance="10" objecttolerance="10" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.4225" inkscape:cx="90.333919" inkscape:cy="200" inkscape:document-units="px" inkscape:current-layer="layer1" width="400px" height="400px" showgrid="false" inkscape:window-width="1280" inkscape:window-height="750" inkscape:window-x="-8" inkscape:window-y="-8"/>
+  <defs id="defs4">
+    <linearGradient id="linearGradient3149">
+      <stop id="stop3151" style="stop-color:#f6eb71;stop-opacity:1;" offset="0"/>
+      <stop offset="0.5138889" style="stop-color:#ffeb00;stop-opacity:1;" id="stop3271"/>
+      <stop offset="1" style="stop-color:#f4c930;stop-opacity:1;" id="stop3153"/>
+    </linearGradient>
+    <linearGradient id="linearGradient3134">
+      <stop offset="0" style="stop-color:#ffb300;stop-opacity:1;" id="stop3136"/>
+      <stop id="stop3165" style="stop-color:#ff9900;stop-opacity:1;" offset="1"/>
+    </linearGradient>
+    <linearGradient id="linearGradient3140" gradientUnits="userSpaceOnUse" inkscape:collect="always" x1="57.553783" x2="142.16243" xlink:href="#linearGradient3149" y1="-7.0170116" y2="123.27175"/>
+    <linearGradient id="linearGradient3148" gradientUnits="userSpaceOnUse" inkscape:collect="always" x1="57.553783" x2="142.16243" xlink:href="#linearGradient3149" y1="-7.0170116" y2="123.27175"/>
+    <filter inkscape:collect="always" id="filter3172">
+      <feGaussianBlur inkscape:collect="always" stdDeviation="5.0924795" id="feGaussianBlur3174"/>
+    </filter>
+    <linearGradient inkscape:collect="always" xlink:href="#linearGradient3134" id="linearGradient2184" gradientUnits="userSpaceOnUse" x1="-49.164131" y1="-82.266502" x2="227.38515" y2="216.95886" gradientTransform="matrix(1.2084425,0,0,1.2084425,89.669573,106.93911)"/>
+  </defs>
+  <metadata id="metadata7">
+    <rdf:RDF>
+      <cc:Work rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <dc:title>3D effect warning triangle</dc:title>
+        <dc:date>18/9/07</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Tim O'Ryan</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/"/>
+      </cc:Work>
+      <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.5/">
+        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g inkscape:label="Layer 1" id="layer1" inkscape:groupmode="layer" transform="translate(-15.90328,-38.352144)">
+    <path style="opacity:1;fill:#777777;fill-opacity:0.79729728;stroke:none;stroke-width:20.6877861;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3172)" d="M 213.05399,47.37801 C 208.83955,47.5955 205.01929,49.92458 202.89552,53.57127 L 33.940149,345.10803 C 31.700749,348.97294 31.693669,353.73905 33.921559,357.61061 C 36.149459,361.48217 40.273789,363.87084 44.740599,363.87665 L 381.66948,364.40534 C 386.13811,364.41875 390.27406,362.04591 392.51793,358.18147 C 394.7618,354.31704 394.77229,349.54876 392.54546,345.67448 L 224.53419,53.60904 C 222.18314,49.53899 217.74782,47.13166 213.05399,47.37801 L 213.05399,47.37801 z M 213.65821,84.83972 L 360.06857,339.36792 L 66.417039,338.91476 L 213.65821,84.83972 z" id="path3152"/>
+    <path style="opacity:1;fill:url(#linearGradient2184);fill-opacity:1;stroke:#a37900;stroke-width:6.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 199.82666,41.494396 C 195.61222,41.711894 191.79197,44.040971 189.66819,47.687664 L 20.712823,339.22442 C 18.473424,343.08933 18.466339,347.85544 20.694238,351.727 C 22.922136,355.59856 27.04646,357.98723 31.513278,357.99304 L 368.44215,358.52173 C 372.91078,358.53514 377.04674,356.1623 379.2906,352.29786 C 381.53447,348.43343 381.54497,343.66515 379.31813,339.79087 L 211.30686,47.725427 C 208.95581,43.655381 204.52049,41.248051 199.82666,41.494396 L 199.82666,41.494396 z M 200.43088,78.956113 L 346.84124,333.48431 L 53.189715,333.03115 L 200.43088,78.956113 z" id="path2178"/>
+    <path sodipodi:arg2="1.5723975" style="opacity:1;fill:url(#linearGradient3140);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3148);stroke-width:20.6877861;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path2160" sodipodi:cx="91.428574" sodipodi:cy="117.14286" sodipodi:arg1="0.52519998" sodipodi:type="star" d="M 230.71429,197.85715 L -48.114905,197.41068 L 91.686339,-43.839248 L 230.71429,197.85715 z" sodipodi:r2="80.491158" sodipodi:sides="3" inkscape:randomized="0" transform="matrix(1.2084425,0,0,1.2084425,89.669573,106.93911)" inkscape:rounded="0" sodipodi:r1="160.98232" inkscape:flatsided="true"/>
+    <path sodipodi:nodetypes="cccsccscccc" d="M 199.89464,117.765 C 197.29017,117.9016 194.92932,119.3644 193.61684,121.65473 L 89.204984,304.75655 C 87.82107,307.18391 87.81669,310.17731 89.193499,312.60887 C 90.570306,315.04044 93.119077,316.54066 95.879504,316.54431 L 304.09647,316.87636 C 306.85801,316.88477 309.41397,315.39449 310.80064,312.96739 C 312.18732,310.54032 312.1938,307.54558 310.81766,305.1123 L 206.98922,121.67846 C 205.53631,119.12222 202.79534,117.61029 199.89464,117.765 L 199.89464,117.765 z" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:20.6877861;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" id="path19491"/>
+    <path style="font-size:333.22640991px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Angsana New" d="M 203.68708,256.44083 L 198.35371,256.44083 C 197.80195,246.98576 195.96287,235.6645 192.83645,222.47702 L 186.4916,195.60456 C 182.6908,179.49366 180.79042,167.95467 180.79043,160.9876 C 180.79042,146.92949 187.50308,139.90034 200.92845,139.90018 C 206.81347,139.90034 211.67173,141.84424 215.50321,145.73187 C 219.33458,149.61982 221.25031,154.58066 221.25036,160.61436 C 221.25031,167.0216 219.22731,178.685 215.18136,195.60456 L 208.74456,222.47702 C 206.47631,231.93222 204.79048,243.25347 203.68708,256.44083 L 203.68708,256.44083 z M 201.20431,274.07588 C 207.45715,274.07593 212.30007,276.20643 215.7331,280.46742 C 219.166,284.72848 220.88248,289.28498 220.88254,294.13692 C 220.88248,300.54403 218.79818,305.47375 214.62964,308.92611 C 210.461,312.37848 205.98588,314.10466 201.20431,314.10466 C 194.89007,314.10466 190.03183,311.98969 186.62953,307.75978 C 183.22721,303.52985 181.52605,298.9889 181.52607,294.13692 C 181.52605,288.47632 183.41112,283.71765 187.18126,279.86093 C 190.95137,276.00427 195.6257,274.07593 201.20431,274.07588 L 201.20431,274.07588 z" id="text2171"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/icons/compiler_warning_orange.svg b/Samples/DebugLogViewer/icons/compiler_warning_orange.svg
new file mode 100644 (file)
index 0000000..233437f
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="378.30496" height="326.05325" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docbase="C:\Documents and Settings\KevinDuke\Desktop" sodipodi:docname="Ambox_warning_orange.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" gridtolerance="10000" guidetolerance="10" objecttolerance="10" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.64877047" inkscape:cx="107.30042" inkscape:cy="95.503105" inkscape:document-units="px" inkscape:current-layer="layer1" width="400px" height="400px" showgrid="false" inkscape:window-width="1280" inkscape:window-height="750" inkscape:window-x="-8" inkscape:window-y="-8"/>
+  <defs id="defs4">
+    <linearGradient id="linearGradient3149">
+      <stop id="stop3151" style="stop-color:#f3c381;stop-opacity:1;" offset="0"/>
+      <stop offset="0.25" style="stop-color:#f4b24e;stop-opacity:1;" id="stop3172"/>
+      <stop offset="0.5" style="stop-color:#f39502;stop-opacity:1;" id="stop3171"/>
+      <stop offset="1" style="stop-color:#f67805;stop-opacity:1;" id="stop3153"/>
+    </linearGradient>
+    <linearGradient id="linearGradient3134">
+      <stop offset="0" style="stop-color:#ffb300;stop-opacity:1;" id="stop3136"/>
+      <stop id="stop3165" style="stop-color:#ff9900;stop-opacity:1;" offset="1"/>
+    </linearGradient>
+    <linearGradient id="linearGradient3140" gradientUnits="userSpaceOnUse" inkscape:collect="always" x1="15.087464" x2="120.05667" xlink:href="#linearGradient3149" y1="9.8531685" y2="108.72849"/>
+    <linearGradient id="linearGradient3148" gradientUnits="userSpaceOnUse" inkscape:collect="always" x1="15.087464" x2="120.05667" xlink:href="#linearGradient3149" y1="9.8531685" y2="108.72849"/>
+    <filter inkscape:collect="always" id="filter3172">
+      <feGaussianBlur inkscape:collect="always" stdDeviation="5.0924795" id="feGaussianBlur3174"/>
+    </filter>
+    <linearGradient inkscape:collect="always" xlink:href="#linearGradient3134" id="linearGradient2184" gradientUnits="userSpaceOnUse" x1="-49.164131" y1="-82.266502" x2="227.38515" y2="216.95886" gradientTransform="matrix(1.2084425,0,0,1.2084425,89.669573,106.93911)"/>
+  </defs>
+  <metadata id="metadata7">
+    <rdf:RDF>
+      <cc:Work rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <dc:title>3D effect warning triangle</dc:title>
+        <dc:date>18/9/07</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Tim O'Ryan</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/"/>
+      </cc:Work>
+      <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.5/">
+        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g inkscape:label="Layer 1" id="layer1" inkscape:groupmode="layer" transform="translate(-15.90328,-38.352144)">
+    <path style="opacity:1;fill:#777777;fill-opacity:0.79729728;stroke:none;stroke-width:20.6877861;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3172)" d="M 213.05399,47.37801 C 208.83955,47.5955 205.01929,49.92458 202.89552,53.57127 L 33.940149,345.10803 C 31.700749,348.97294 31.693669,353.73905 33.921559,357.61061 C 36.149459,361.48217 40.273789,363.87084 44.740599,363.87665 L 381.66948,364.40534 C 386.13811,364.41875 390.27406,362.04591 392.51793,358.18147 C 394.7618,354.31704 394.77229,349.54876 392.54546,345.67448 L 224.53419,53.60904 C 222.18314,49.53899 217.74782,47.13166 213.05399,47.37801 L 213.05399,47.37801 z M 213.65821,84.83972 L 360.06857,339.36792 L 66.417039,338.91476 L 213.65821,84.83972 z" id="path3152"/>
+    <path style="opacity:1;fill:url(#linearGradient2184);fill-opacity:1;stroke:#a37900;stroke-width:6.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 199.82666,41.494396 C 195.61222,41.711894 191.79197,44.040971 189.66819,47.687664 L 20.712823,339.22442 C 18.473424,343.08933 18.466339,347.85544 20.694238,351.727 C 22.922136,355.59856 27.04646,357.98723 31.513278,357.99304 L 368.44215,358.52173 C 372.91078,358.53514 377.04674,356.1623 379.2906,352.29786 C 381.53447,348.43343 381.54497,343.66515 379.31813,339.79087 L 211.30686,47.725427 C 208.95581,43.655381 204.52049,41.248051 199.82666,41.494396 L 199.82666,41.494396 z M 200.43088,78.956113 L 346.84124,333.48431 L 53.189715,333.03115 L 200.43088,78.956113 z" id="path2178"/>
+    <path sodipodi:arg2="1.5723975" style="opacity:1;fill:url(#linearGradient3140);fill-opacity:1.0;fill-rule:nonzero;stroke:url(#linearGradient3148);stroke-width:20.68778610000000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path2160" sodipodi:cx="91.428574" sodipodi:cy="117.14286" sodipodi:arg1="0.52519998" sodipodi:type="star" d="M 230.71429,197.85715 L -48.114905,197.41068 L 91.686339,-43.839248 L 230.71429,197.85715 z" sodipodi:r2="80.491158" sodipodi:sides="3" inkscape:randomized="0" transform="matrix(1.2084425,0,0,1.2084425,89.669573,106.93911)" inkscape:rounded="0" sodipodi:r1="160.98232" inkscape:flatsided="true"/>
+    <path sodipodi:nodetypes="cccsccscccc" d="M 199.89464,117.765 C 197.29017,117.9016 194.92932,119.3644 193.61684,121.65473 L 89.204984,304.75655 C 87.82107,307.18391 87.81669,310.17731 89.193499,312.60887 C 90.570306,315.04044 93.119077,316.54066 95.879504,316.54431 L 304.09647,316.87636 C 306.85801,316.88477 309.41397,315.39449 310.80064,312.96739 C 312.18732,310.54032 312.1938,307.54558 310.81766,305.1123 L 206.98922,121.67846 C 205.53631,119.12222 202.79534,117.61029 199.89464,117.765 L 199.89464,117.765 z" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:20.6877861;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" id="path19491"/>
+    <path style="font-size:333.22640991px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Angsana New" d="M 203.68708,256.44083 L 198.35371,256.44083 C 197.80195,246.98576 195.96287,235.6645 192.83645,222.47702 L 186.4916,195.60456 C 182.6908,179.49366 180.79042,167.95467 180.79043,160.9876 C 180.79042,146.92949 187.50308,139.90034 200.92845,139.90018 C 206.81347,139.90034 211.67173,141.84424 215.50321,145.73187 C 219.33458,149.61982 221.25031,154.58066 221.25036,160.61436 C 221.25031,167.0216 219.22731,178.685 215.18136,195.60456 L 208.74456,222.47702 C 206.47631,231.93222 204.79048,243.25347 203.68708,256.44083 L 203.68708,256.44083 z M 201.20431,274.07588 C 207.45715,274.07593 212.30007,276.20643 215.7331,280.46742 C 219.166,284.72848 220.88248,289.28498 220.88254,294.13692 C 220.88248,300.54403 218.79818,305.47375 214.62964,308.92611 C 210.461,312.37848 205.98588,314.10466 201.20431,314.10466 C 194.89007,314.10466 190.03183,311.98969 186.62953,307.75978 C 183.22721,303.52985 181.52605,298.9889 181.52607,294.13692 C 181.52605,288.47632 183.41112,283.71765 187.18126,279.86093 C 190.95137,276.00427 195.6257,274.07593 201.20431,274.07588 L 201.20431,274.07588 z" id="text2171"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/icons/computing-code.svg b/Samples/DebugLogViewer/icons/computing-code.svg
new file mode 100644 (file)
index 0000000..b5687ba
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M5.2 14l4.5-12h1.1l-4.5 12z"></path>
+<path fill="#dddddd" d="M11.1 13h1.2l3.7-5-3.7-5h-1.3l3.8 5z"></path>
+<path fill="#dddddd" d="M4.9 13h-1.2l-3.7-5 3.7-5h1.3l-3.8 5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/connect.svg b/Samples/DebugLogViewer/icons/connect.svg
new file mode 100644 (file)
index 0000000..51a39c7
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M12 10c-0.8 0-1.4 0.3-2 0.8l-3.2-1.8c0.1-0.3 0.2-0.7 0.2-1s-0.1-0.7-0.2-1l3.2-1.8c0.6 0.5 1.2 0.8 2 0.8 1.7 0 3-1.3 3-3s-1.3-3-3-3-3 1.3-3 3c0 0.2 0 0.3 0 0.5l-3.5 1.9c-0.4-0.2-0.9-0.4-1.5-0.4-1.6 0-3 1.3-3 3v0c0 1.6 1.4 3 3 3 0.6 0 1.1-0.2 1.5-0.4l3.5 1.9c0 0.2 0 0.3 0 0.5 0 1.7 1.3 3 3 3s3-1.3 3-3-1.3-3-3-3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/copy-file.svg b/Samples/DebugLogViewer/icons/copy-file.svg
new file mode 100644 (file)
index 0000000..63c2dd3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M13 3h-3l-3-3h-7v13h6v3h10v-10l-3-3zM7 1l2 2h-2v-2zM1 12v-11h5v3h3v8h-8zM15 15h-8v-2h3v-9h2v3h3v8zM13 6v-2l2 2h-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/crow.svg b/Samples/DebugLogViewer/icons/crow.svg
new file mode 100644 (file)
index 0000000..94f5cfc
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   height="35.987217"
+   width="51.116982"
+   version="1.1"
+   id="svg2">
+  <path
+     id="path2818"
+     d="m 36.232985,35.977162 c -0.02345,-0.0094 -0.04263,-0.04436 -0.04263,-0.07772 0,-0.03337 -0.04543,-0.117846 -0.100965,-0.187724 -0.05553,-0.06987 -0.10986,-0.152552 -0.120738,-0.183728 -0.04888,-0.140096 -0.547064,-0.441575 -0.740404,-0.448061 -0.01333,-6.73e-4 -0.0417,0.06441 -0.06301,0.144127 -0.0213,0.07971 -0.05448,0.164118 -0.0737,0.187567 -0.06807,0.08303 -0.2351,0.04596 -0.448164,-0.09947 -0.114492,-0.07815 -0.231452,-0.140793 -0.259915,-0.139198 -0.103032,0.0057 -0.22753,-0.0647 -0.284401,-0.160973 -0.105659,-0.178872 -0.451937,-0.41031 -0.613884,-0.41031 -0.11287,0 -0.378547,-0.121442 -0.488394,-0.223239 -0.06283,-0.05824 -0.129597,-0.08369 -0.219515,-0.08369 -0.191898,0 -0.291236,-0.05025 -0.332315,-0.168082 -0.02007,-0.05761 -0.05795,-0.104746 -0.08415,-0.104746 -0.02621,0 -0.07371,-0.02879 -0.105549,-0.06398 -0.03185,-0.03519 -0.108169,-0.07213 -0.169604,-0.08211 -0.219849,-0.03568 -0.937873,-0.414299 -0.993727,-0.524009 -0.01875,-0.03685 -0.103161,-0.143806 -0.187567,-0.237705 -0.189643,-0.210956 -0.537045,-0.371869 -0.741262,-0.343338 -0.710425,0.09925 -0.737631,0.100685 -1.030367,0.05449 -0.337983,-0.05334 -0.630446,-0.05889 -1.115893,-0.02117 -0.331487,0.02576 -0.347801,0.02387 -0.368967,-0.04283 -0.01219,-0.03838 0.0026,-0.154623 0.03266,-0.258318 0.03015,-0.103694 0.04455,-0.205124 0.03202,-0.225402 -0.04471,-0.07234 -0.314032,-0.0065 -0.532991,0.130268 -0.165667,0.103489 -0.230973,0.169125 -0.288563,0.290041 -0.07126,0.149603 -0.19268,0.232754 -0.339892,0.232754 -0.09327,0 -0.01149,-0.448641 0.108895,-0.597398 0.0301,-0.03719 0.045,-0.04843 0.03312,-0.02499 -0.01262,0.02492 3.4e-5,0.04263 0.03051,0.04263 0.03229,0 0.04463,-0.01945 0.03247,-0.05115 -0.0108,-0.02813 -0.0027,-0.05115 0.01813,-0.05115 0.02077,0 0.03776,-0.02034 0.03776,-0.04521 0,-0.05853 0.151433,-0.201223 0.181571,-0.171088 0.01268,0.01268 0.02305,0.003 0.02305,-0.02158 0,-0.05501 0.190827,-0.241992 0.218611,-0.214209 0.01107,0.01107 0.02012,0.0013 0.02012,-0.02169 0,-0.02299 0.01358,-0.03341 0.03018,-0.02314 0.0166,0.01026 0.07415,0.0046 0.127887,-0.01261 0.05374,-0.01721 0.185946,-0.03746 0.293797,-0.04502 0.154262,-0.01082 0.196092,-0.0032 0.196092,0.03533 0,0.03062 0.02017,0.04134 0.05362,0.02851 0.02949,-0.01132 0.08321,-0.0048 0.119365,0.01461 0.04469,0.02391 0.06573,0.02399 0.06573,0 0,-0.0546 0.166343,-0.02716 0.19016,0.03136 0.01696,0.04168 0.02726,0.03685 0.05065,-0.02383 0.03017,-0.0782 0.05209,-0.07969 0.33327,-0.02256 0.04625,0.0094 0.07104,0.0023 0.05918,-0.01685 -0.01918,-0.03103 0.105189,-0.09308 0.158609,-0.07913 0.01351,0.0035 0.0409,-0.02412 0.06088,-0.06145 0.01998,-0.03733 0.06279,-0.06787 0.09513,-0.06787 0.03235,0 0.07872,-0.0319 0.103074,-0.07089 0.03874,-0.06204 0.03597,-0.07306 -0.02225,-0.08828 -0.04068,-0.01065 -0.07465,-0.05808 -0.08746,-0.122132 -0.01151,-0.0576 -0.03098,-0.0947 -0.04325,-0.08243 -0.02243,0.02243 -0.09396,-0.07925 -0.134223,-0.190818 -0.01192,-0.03303 -0.05709,-0.06895 -0.100386,-0.07981 -0.0433,-0.01087 -0.08702,-0.04139 -0.09717,-0.06783 -0.01015,-0.02644 -0.03811,-0.04866 -0.06215,-0.04937 -0.02403,-6.72e-4 -0.09734,-0.06977 -0.162897,-0.153463 -0.06556,-0.08369 -0.141017,-0.152171 -0.167679,-0.152171 -0.02665,0 -0.03909,-0.0094 -0.02762,-0.02084 0.02949,-0.02949 -0.161533,-0.183774 -0.227545,-0.183774 -0.03567,0 -0.05475,-0.02971 -0.05475,-0.08526 0,-0.04689 -0.01667,-0.08526 -0.03705,-0.08526 -0.02039,0 -0.132932,-0.09206 -0.250118,-0.204591 -0.117184,-0.112527 -0.225744,-0.193097 -0.241239,-0.179042 -0.0155,0.01404 -0.01813,0.008 -0.0059,-0.01351 0.02148,-0.0376 -0.06692,-0.09775 -0.12476,-0.08487 -0.01546,0.0034 -0.01943,-0.0078 -0.0088,-0.02496 0.01062,-0.01717 -0.02277,-0.05853 -0.0742,-0.09191 -0.05142,-0.03337 -0.113546,-0.08877 -0.138053,-0.123093 -0.02451,-0.03432 -0.06672,-0.0624 -0.09378,-0.0624 -0.02707,0 -0.04922,-0.01355 -0.04922,-0.03012 0,-0.0438 -0.778285,-0.624964 -0.930964,-0.695162 -0.0729,-0.03352 -0.164401,-0.05081 -0.209278,-0.03955 -0.05655,0.01418 -0.102151,-0.0031 -0.15683,-0.05944 -0.0424,-0.0437 -0.06447,-0.05739 -0.04905,-0.03043 0.01542,0.02698 -0.03574,-0.0023 -0.113694,-0.06486 -0.140423,-0.112848 -0.199258,-0.210672 -0.162485,-0.270173 0.01048,-0.01696 -0.0034,-0.03946 -0.03092,-0.05001 -0.03157,-0.0121 -0.04839,-0.06147 -0.04566,-0.133995 0.0046,-0.123415 -0.115972,-0.333547 -0.242202,-0.421962 -0.03969,-0.0278 -0.06324,-0.06494 -0.05237,-0.08255 0.01089,-0.01761 -0.0042,-0.04121 -0.03354,-0.05247 -0.02932,-0.01125 -0.05331,-0.04833 -0.05331,-0.0824 0,-0.03407 -0.03837,-0.107533 -0.08526,-0.163263 -0.07704,-0.09156 -0.08519,-0.130424 -0.08459,-0.403332 0.0011,-0.467434 0.102818,-0.951299 0.346875,-1.649081 0.133708,-0.382291 0.234679,-0.776483 0.280602,-1.095504 0.01999,-0.138863 0.01188,-0.170521 -0.06808,-0.265547 -0.09126,-0.108463 -0.277674,-0.207699 -0.390138,-0.207699 -0.03326,0 -0.167911,-0.04572 -0.299229,-0.101598 -0.334854,-0.142493 -0.698295,-0.199641 -1.524701,-0.239741 -0.393891,-0.01911 -0.856189,-0.05756 -1.027322,-0.08543 -0.171134,-0.02796 -0.404168,-0.05076 -0.517855,-0.05076 -0.113686,0 -0.249901,-0.01718 -0.302703,-0.03821 -0.0528,-0.02101 -0.22913,-0.0397 -0.391836,-0.04152 -0.16271,-0.0018 -0.288412,-0.01532 -0.27934,-0.03 0.0091,-0.01468 -0.01127,-0.02647 -0.0452,-0.02621 -0.03393,2.24e-4 -0.315468,-0.0481 -0.625641,-0.107494 l -0.563945,-0.107977 -0.33979,0.10758 c -0.186882,0.05917 -0.349511,0.107539 -0.361388,0.107494 -0.04086,-1.36e-4 -0.05638,-0.13324 -0.01741,-0.149221 0.02145,-0.0088 -0.0023,-0.01721 -0.05276,-0.01869 -0.05047,-0.0015 -0.100161,0.01089 -0.110412,0.02747 -0.03208,0.05191 -0.458126,0.118498 -0.505769,0.07904 -0.02811,-0.02328 -0.09385,-0.0242 -0.195783,-0.0028 -0.08441,0.01777 -0.280073,0.0495 -0.434816,0.07054 -0.154743,0.02104 -0.281352,0.05283 -0.281352,0.07068 0,0.01786 -0.02302,0.02362 -0.05115,0.01281 -0.02814,-0.0108 -0.05123,-0.0086 -0.05131,0.0049 0,0.01348 -0.05615,0.02741 -0.124603,0.03097 -0.06845,0.0036 -0.1336,0.01891 -0.144786,0.0341 -0.02606,0.03542 -0.139983,0.04146 -0.796184,0.04221 -0.297591,4.49e-4 -0.537126,0.01439 -0.537126,0.0315 0,0.01698 -0.134282,0.03143 -0.298403,0.0321 -0.369505,0.0015 -0.539084,0.01992 -0.844055,0.09164 -0.131298,0.03088 -0.373004,0.06513 -0.537126,0.0761 -0.164122,0.01097 -0.298404,0.03207 -0.298404,0.04687 0,0.01481 -0.05371,0.0182 -0.119361,0.0076 -0.08039,-0.01304 -0.119361,-0.0061 -0.119361,0.02122 0,0.02232 -0.01443,0.03166 -0.03208,0.02075 -0.03408,-0.02106 -0.587009,0.111706 -0.615884,0.147893 -0.0094,0.01176 -0.04775,0.02527 -0.08526,0.03003 -0.319552,0.04061 -0.388045,0.05571 -0.371812,0.08197 0.01026,0.01661 -0.02466,0.02725 -0.07759,0.02367 -0.107275,-0.0073 -0.331986,0.114563 -0.292219,0.15843 0.014,0.01544 0.0067,0.01729 -0.01626,0.0041 -0.03986,-0.0229 -0.410541,0.170723 -0.776766,0.405746 -0.09378,0.06018 -0.400713,0.229852 -0.682064,0.377042 -0.8431486,0.441091 -1.5106691,0.786933 -1.9438848,1.00712 -0.331279,0.168378 -0.7656083,0.411685 -1.2106655,0.678201 -0.1208071,0.07234 -0.7235464,0.348753 -1.0060453,0.461358 -0.1688108,0.06729 -0.3529682,0.143067 -0.4092389,0.168389 -0.3782305,0.170213 -0.4488005,0.204855 -0.4944967,0.24276 -0.1118065,0.09275 -0.7795227,0.48269 -0.974639,0.569184 -0.1140235,0.05055 -0.3212008,0.108223 -0.4603938,0.12817 -0.2794774,0.04005 -0.6793677,0.03386 -0.6793677,-0.01051 0,-0.01562 -0.014897,-0.01916 -0.033103,-0.0079 -0.018206,0.01125 -0.04289,-0.01852 -0.054852,-0.0662 -0.011962,-0.04766 -0.028767,-0.08665 -0.037344,-0.08665 -0.027842,0 -0.1640932,0.0777 -0.1816285,0.103583 -0.024028,0.03546 -0.2704515,0.135139 -0.3340901,0.135139 -0.040327,0 -0.033244,-0.02142 0.029742,-0.08996 l 0.082677,-0.08996 -0.1534646,0.02493 c -0.084405,0.01371 -0.2762361,0.02752 -0.4262904,0.0307 -0.1617809,0.0034 -0.3133657,0.02625 -0.3724277,0.0561 -0.076685,0.03876 -0.1028397,0.04063 -0.113677,0.0081 -0.00774,-0.02322 -0.050258,-0.04223 -0.09448,-0.04223 -0.044221,0 -0.090781,-0.0168 -0.1034652,-0.03732 -0.012684,-0.02052 -0.05963,-0.03032 -0.1043224,-0.02178 -0.044694,0.0085 -0.0812605,0.0028 -0.0812605,-0.01277 0,-0.01557 -0.0226251,-0.01963 -0.0502787,-0.009 -0.0276536,0.01062 -0.0747891,-0.0052 -0.10474605,-0.03517 -0.0299569,-0.02996 -0.0836695,-0.05446 -0.11936206,-0.05446 -0.0755134,0 -0.16300798,-0.155442 -0.14396948,-0.255775 0.0216458,-0.114071 0.0858903,-0.269677 0.13551736,-0.328235 0.0258287,-0.03048 0.0424846,-0.07582 0.0370134,-0.100762 -0.005471,-0.02494 0.0126179,-0.04604 0.0401989,-0.04689 0.0275816,-8.75e-4 0.0695576,-0.03992 0.0932812,-0.08681 0.0237239,-0.04689 0.0433594,-0.07187 0.0436366,-0.05551 2.7333e-4,0.01638 0.0233532,0.0108 0.0512819,-0.01239 0.0279281,-0.02318 0.0409047,-0.05812 0.0288344,-0.07765 -0.0120695,-0.01954 -0.00597,-0.02563 0.013563,-0.01355 0.03826,0.02364 0.1334119,-0.06902 0.102556,-0.09987 -0.010234,-0.01023 -0.081291,0.01337 -0.15790503,0.05246 -0.19132318,0.0976 -0.53029094,0.131726 -0.60948002,0.06135 -0.040574,-0.03605 -0.10602968,-0.04828 -0.20760549,-0.03876 L 0,26.723956 0.13129745,26.603285 c 0.20194096,-0.185598 1.15569925,-0.834706 1.22646285,-0.834706 0.017944,0 1.0011722,-0.593762 1.1596288,-0.700289 l 0.1062908,-0.07146 -0.097498,-0.04316 c -0.075194,-0.03329 -0.09082,-0.05618 -0.068306,-0.100101 0.016056,-0.03132 0.038207,-0.148677 0.049225,-0.2608 0.013936,-0.141813 0.038705,-0.216631 0.081377,-0.245814 0.1348325,-0.09221 0.317117,-0.268214 0.317117,-0.306188 0,-0.04333 -0.2144179,0.01817 -0.8473768,0.243035 -0.1940842,0.06895 -0.3609084,0.117337 -0.3707213,0.107524 -0.030038,-0.03004 0.1889381,-0.28351 0.3932649,-0.455219 0.1064018,-0.08942 0.2148835,-0.182797 0.2410706,-0.207519 0.134978,-0.127412 0.6824316,-0.46318 1.0116807,-0.620491 0.2054297,-0.09815 0.4118743,-0.205241 0.4587663,-0.237974 0.046892,-0.03274 0.2270451,-0.133333 0.40034,-0.223546 0.1732947,-0.09022 0.3093674,-0.169742 0.3023838,-0.176726 -0.00698,-0.007 -0.1087422,0.01965 -0.226129,0.0592 -0.1501313,0.05057 -0.2241353,0.06119 -0.249524,0.0358 -0.025388,-0.02539 -0.024637,-0.03609 0.00253,-0.03609 0.021244,0 0.048451,-0.03096 0.060459,-0.06879 0.019185,-0.06045 0.1680893,-0.221549 0.4635947,-0.501568 0.048755,-0.0462 0.1428871,-0.117089 0.2091823,-0.157532 0.2161395,-0.131856 0.3951126,-0.257621 0.4169899,-0.29302 0.022754,-0.03682 1.0610754,-0.562441 1.1881729,-0.601483 0.04125,-0.01267 0.1911105,-0.08059 0.3330257,-0.150923 0.1419153,-0.07034 0.2933966,-0.139111 0.3366242,-0.152832 0.043226,-0.01372 0.1463559,-0.07271 0.2291753,-0.131083 0.1199707,-0.08456 0.1625792,-0.09864 0.2096072,-0.06927 0.047284,0.02953 0.1538875,-0.0087 0.5358933,-0.192258 0.2622766,-0.126017 0.5689448,-0.264972 0.6814862,-0.308789 0.1125401,-0.04382 0.2249981,-0.09985 0.2499076,-0.124513 0.081951,-0.08115 0.1773194,-0.116582 0.3449729,-0.128175 0.1131113,-0.0078 0.1886589,-0.03475 0.2391522,-0.08524 0.040595,-0.0406 0.1438461,-0.118225 0.2294472,-0.172512 0.1733184,-0.109916 0.2284002,-0.176259 0.2623733,-0.316014 0.01334,-0.05486 0.06939,-0.123095 0.132975,-0.161862 0.06158,-0.03755 0.08742,-0.0685 0.05876,-0.07038 -0.08661,-0.0057 0.555593,-0.16351 0.673539,-0.16552 0.06836,-0.0011 0.110835,-0.01922 0.110835,-0.0471 0,-0.02486 0.03789,-0.08081 0.08421,-0.124319 0.09656,-0.09071 0.08465,-0.1374 -0.03506,-0.1374 -0.139172,0 -0.09502,-0.04884 0.164003,-0.181411 0.306614,-0.156928 0.449342,-0.161093 0.841624,-0.02456 0.28366,0.09873 0.288206,0.09917 0.345032,0.03364 0.03167,-0.03652 0.06838,-0.06639 0.08158,-0.06639 0.02544,0 0.444123,-0.288445 0.530711,-0.36562 0.02814,-0.02508 0.1816,-0.14031 0.341033,-0.256071 0.159432,-0.115763 0.427996,-0.311618 0.596806,-0.435234 0.324997,-0.237988 0.519973,-0.363211 0.852581,-0.547569 0.112541,-0.06238 0.272663,-0.181743 0.355823,-0.265252 l 0.151204,-0.151834 -0.279091,0.01616 c -0.295876,0.01713 -0.322422,0.0016 -0.24494,-0.143172 0.05332,-0.09963 0.736112,-0.634181 1.100461,-0.86154 0.05926,-0.03698 0.08714,-0.07645 0.07227,-0.102311 -0.01332,-0.02315 -0.01159,-0.03067 0.0038,-0.01669 0.01542,0.01398 0.07543,-0.01065 0.133354,-0.05471 0.219267,-0.166827 1.171023,-0.727058 1.367134,-0.804733 0.258942,-0.102562 0.861798,-0.404573 0.886111,-0.443911 0.0101,-0.01634 0.121786,-0.06366 0.248193,-0.105146 0.287589,-0.09439 0.30873,-0.106826 0.229061,-0.134772 -0.06732,-0.02362 -0.07326,-0.02127 0.880461,-0.347551 0.239998,-0.08211 0.429331,-0.156371 0.420748,-0.165033 -0.0086,-0.0087 0.03161,-0.01751 0.08933,-0.01966 0.05771,-0.0022 0.121598,-0.02517 0.141958,-0.05115 0.02171,-0.0277 0.120634,-0.05234 0.239187,-0.05957 0.210669,-0.01285 0.602989,-0.173276 0.928324,-0.379597 0.08567,-0.05433 0.264945,-0.123611 0.398397,-0.153965 0.133453,-0.03035 0.2584,-0.06637 0.277662,-0.08004 0.01927,-0.01367 0.09641,-0.04558 0.171433,-0.07092 0.07503,-0.02534 0.173013,-0.07458 0.217746,-0.109424 0.04473,-0.03484 0.09298,-0.06335 0.107228,-0.06335 0.01425,0 0.07348,-0.04445 0.131636,-0.09877 0.113963,-0.106457 0.351444,-0.240935 0.463279,-0.26234 0.038,-0.0073 0.08445,-0.03321 0.10321,-0.05764 0.01875,-0.02443 0.09498,-0.08983 0.169391,-0.145337 0.194156,-0.144837 0.214536,-0.162058 0.478569,-0.404414 0.251516,-0.230862 0.606848,-0.516232 1.227718,-0.98599 0.344093,-0.2603468 0.589539,-0.4332454 1.258562,-0.886573 0.133088,-0.09018 0.449157,-0.2640469 0.702374,-0.3863728 0.253216,-0.1223245 0.529451,-0.2557186 0.613857,-0.2964302 0.08441,-0.04071 0.158614,-0.085626 0.16491,-0.099811 0.0063,-0.014184 0.02548,-0.017112 0.04263,-0.00653 0.01716,0.010605 0.0312,0.00558 0.0312,-0.011156 0,-0.016741 0.02005,-0.030435 0.04455,-0.030435 0.0245,0 0.158784,-0.058252 0.298402,-0.129445 0.139619,-0.071195 0.430335,-0.1978034 0.646038,-0.2813523 0.215704,-0.083549 0.491939,-0.1954213 0.613858,-0.2486049 0.121921,-0.053185 0.306077,-0.1321049 0.40924,-0.1753788 0.103162,-0.043273 0.29828,-0.1359289 0.433601,-0.2058975 0.135324,-0.069969 0.361685,-0.1753594 0.503025,-0.2342005 0.141344,-0.058844 0.256987,-0.118339 0.256987,-0.1322199 0,-0.013882 0.01945,-0.02524 0.04319,-0.02524 0.02377,0 0.303834,-0.1227275 0.622385,-0.2727296 0.318551,-0.1500017 0.675102,-0.3078947 0.792333,-0.3508747 0.117228,-0.042978 0.213145,-0.092292 0.213145,-0.1095837 0,-0.017291 0.01918,-0.027759 0.04263,-0.02326 0.06969,0.013374 0.594379,-0.1884232 0.639435,-0.2459351 0.0094,-0.011971 0.04007,-0.021527 0.06821,-0.021238 0.121558,0.00127 0.660662,-0.1945862 0.918837,-0.3337747 0.241294,-0.1300895 0.587545,-0.3830342 0.701059,-0.5121391 0.01875,-0.021333 0.06131,-0.048999 0.09456,-0.061479 0.03325,-0.012481 0.07001,-0.047591 0.08169,-0.078024 0.02692,-0.070138 0.174568,-0.219039 0.217202,-0.219039 0.01774,0 0.05143,-0.030691 0.07486,-0.068207 0.02342,-0.037513 0.06448,-0.068206 0.09123,-0.068206 0.02675,0 0.03887,-0.00976 0.02696,-0.021682 -0.01192,-0.011924 0.05783,-0.09633 0.155007,-0.1875678 0.09718,-0.091238 0.161929,-0.1668596 0.143886,-0.168049 -0.01803,-0.00118 0.0028,-0.016405 0.04612,-0.033815 0.04747,-0.019039 0.06915,-0.047456 0.05441,-0.071314 -0.01348,-0.021822 -0.0098,-0.030553 0.0083,-0.019409 0.01801,0.011138 0.09144,-0.040204 0.163151,-0.1140923 0.0717,-0.073888 0.117738,-0.1343421 0.10229,-0.1343421 -0.01546,0 0.02072,-0.036015 0.08038,-0.080032 0.05967,-0.044017 0.09718,-0.091336 0.08336,-0.105152 -0.01383,-0.013815 -0.0095,-0.020006 0.0097,-0.013752 0.04939,0.01615 0.223702,-0.1274928 0.194271,-0.1600887 -0.01342,-0.014875 -0.0072,-0.017247 0.01376,-0.00527 0.06096,0.034779 0.607999,-0.4589859 0.563584,-0.5087016 -0.0121,-0.013544 -0.0039,-0.014234 0.01831,-0.00155 0.02248,0.012885 0.06394,-0.010665 0.09378,-0.053276 0.02942,-0.042001 0.05349,-0.064232 0.05349,-0.049403 0,0.035425 0.155483,-0.078134 0.314002,-0.2293306 0.06954,-0.066327 0.191209,-0.1634486 0.270384,-0.2158258 l 0.143933,-0.095226 -0.09461,-0.017052 c -0.09208,-0.016595 -0.08962,-0.020213 0.09234,-0.1351948 0.102836,-0.064979 0.180276,-0.1355869 0.172099,-0.1569075 -0.0082,-0.021322 0.03576,-0.063723 0.09766,-0.094226 l 0.112534,-0.055461 -0.110835,-7.738e-4 c -0.121681,-8.545e-4 -0.148951,-0.052289 -0.04518,-0.085223 0.03611,-0.011461 0.177308,-0.1287936 0.313783,-0.260741 0.136473,-0.1319475 0.294923,-0.2638643 0.352116,-0.2931487 0.05718,-0.029285 0.112307,-0.066044 0.122484,-0.081687 0.01017,-0.015643 0.08691,-0.0653452 0.170517,-0.1104495 0.08361,-0.0451035 0.148684,-0.0976873 0.144617,-0.11685267 -0.0041,-0.0191645 0.0331,-0.0450046 0.08257,-0.0574227 0.04948,-0.0124174 0.127764,-0.0523182 0.173974,-0.0886698 0.04622,-0.0363507 0.110775,-0.0660921 0.143466,-0.0660921 0.08441,0 0.311151,-0.09789 0.391757,-0.16912543 0.07224,-0.0638419 0.511584,-0.24011339 0.598463,-0.24011339 0.02826,0 0.08528,-0.0237481 0.126716,-0.0527741 0.137291,-0.09616158 0.661132,-0.14352007 1.525634,-0.1379271367 0.792642,0.005129127 0.827085,0.008206607 1.091305,0.0975625367 0.150053,0.050747 0.291903,0.09246343 0.315215,0.09270283 0.09396,9.6895e-4 0.976611,0.42511458 1.100071,0.52862744 0.02811,0.02359 0.159498,0.0947176 0.291932,0.15806233 0.235834,0.11281152 0.25372,0.12719829 0.25372,0.20412699 0,0.023291 0.03271,0.029587 0.08526,0.016402 0.05003,-0.012556 0.08526,-0.00673 0.08526,0.014086 0,0.019516 0.04219,0.054229 0.09378,0.077137 0.05158,0.022909 0.123537,0.06862 0.159895,0.1015785 0.03637,0.032959 0.08624,0.059926 0.110835,0.059926 0.02459,0 0.04471,0.012883 0.04471,0.028629 0,0.037801 0.156041,0.1077839 0.240323,0.1077839 0.03664,0 0.0666,0.015347 0.0666,0.034103 0,0.050098 0.102113,0.041678 0.103394,-0.00853 4.52e-4,-0.025512 0.01972,-0.01804 0.04753,0.018611 0.03352,0.044207 0.07116,0.055035 0.135327,0.038932 0.05776,-0.014496 0.08889,-0.00837 0.08889,0.017504 0,0.021897 0.01498,0.030556 0.0333,0.019242 0.0461,-0.028494 0.444224,0.057046 0.423279,0.090944 -0.0093,0.015101 0.01841,0.027008 0.06163,0.02646 0.09589,-0.00121 0.512136,0.096881 0.42817,0.100902 -0.03285,0.00157 -0.05968,0.016565 -0.05968,0.033318 0,0.03259 0.410853,0.1157062 0.437957,0.0886 0.0089,-0.00889 0.03294,-0.00257 0.0534,0.014024 0.06789,0.055028 0.736829,0.2457834 0.776319,0.2213777 0.02148,-0.013281 0.02951,-0.00894 0.01796,0.00974 -0.01146,0.018537 0.130919,0.1054296 0.316393,0.1930939 0.185473,0.087664 0.472547,0.2615323 0.637942,0.3863739 0.1654,0.1248417 0.319902,0.2270363 0.343352,0.2270984 0.02346,6.81e-5 0.03547,0.00725 0.02675,0.015975 -0.0087,0.00872 0.03686,0.077444 0.101278,0.1527108 0.06442,0.075267 0.110018,0.148369 0.101315,0.162449 -0.0087,0.014079 0.0071,0.034399 0.03515,0.045154 0.02802,0.010755 0.0512,8.546e-4 0.05148,-0.022004 4.51e-4,-0.032265 0.0064,-0.032371 0.02662,-4.693e-4 0.01435,0.022595 0.02243,0.1068802 0.01796,0.1872996 -0.0057,0.1024476 0.0013,0.1309839 0.024,0.09533 0.02653,-0.041988 0.03272,-0.038959 0.03537,0.017319 0.0018,0.037513 0.01096,0.049024 0.0204,0.025578 0.0094,-0.023446 0.02802,-0.042629 0.04119,-0.042629 0.03781,0 0.03799,0.1327189 0,0.1560674 -0.02003,0.012395 -0.01119,0.037667 0.0217,0.061689 0.03979,0.029097 0.04904,0.067036 0.03244,0.1331389 -0.01277,0.050846 -0.03781,0.092447 -0.05563,0.092447 -0.01783,0 -0.02058,-0.019183 -0.0061,-0.042629 0.01444,-0.023446 -0.01394,-0.016324 -0.06312,0.015829 -0.08648,0.056549 -0.219373,0.09752 -0.342779,0.1056776 -0.0328,0.00217 -0.05968,0.015832 -0.05968,0.030358 0,0.014528 -0.03452,0.026195 -0.07673,0.025926 -0.04219,-2.688e-4 -0.12277,0.00591 -0.17904,0.013737 -0.971882,0.1351175 -1.779858,0.2316536 -2.0803,0.2485518 -0.206324,0.011606 -0.393648,0.035672 -0.416267,0.053482 -0.02261,0.017814 -0.05578,0.023341 -0.07366,0.012286 -0.05845,-0.036117 -0.137867,0.016695 -0.115393,0.076729 0.01854,0.049502 0.01385,0.050803 -0.03628,0.010053 -0.03979,-0.032383 -0.05754,-0.034549 -0.05754,-0.00703 0,0.021875 -0.01918,0.037283 -0.04264,0.034238 -0.113695,-0.014764 -0.168405,0.00487 -0.149657,0.0537 0.02179,0.056803 -0.03027,0.070789 -0.06349,0.017051 -0.01159,-0.018757 -0.0547,-0.032889 -0.0958,-0.031409 -0.04111,0.00149 -0.0564,0.010143 -0.03402,0.019253 0.02238,0.00911 0.03199,0.039256 0.02134,0.066986 -0.01674,0.043659 -0.02757,0.043 -0.0805,-0.00493 -0.04614,-0.041755 -0.07725,-0.046733 -0.126687,-0.020273 -0.03605,0.019289 -0.100448,0.02594 -0.143132,0.014777 -0.06857,-0.017931 -0.07496,-0.010784 -0.05491,0.061432 0.02026,0.072941 0.01773,0.075587 -0.02355,0.024614 -0.043,-0.053101 -0.05392,-0.052267 -0.155229,0.011876 -0.05993,0.037942 -0.108954,0.096734 -0.108954,0.1306499 0,0.044877 -0.01859,0.056808 -0.0682,0.04383 -0.0459,-0.012002 -0.06821,-0.00104 -0.06821,0.033502 0,0.031463 -0.04526,0.059826 -0.11689,0.073265 -0.0945,0.017728 -0.121158,0.041367 -0.139184,0.1234405 -0.02175,0.099065 -0.131379,0.1912377 -0.208964,0.1757021 -0.0213,-0.00429 -0.04769,0.015535 -0.05861,0.044002 -0.01092,0.028466 -0.0342,0.051758 -0.05175,0.051758 -0.03502,0 -0.139325,0.089285 -0.496709,0.4251098 -0.130107,0.1222664 -0.264395,0.2311337 -0.298403,0.241927 -0.03401,0.010793 -0.0623,0.045447 -0.06289,0.077007 -6.73e-4,0.031562 -0.0658,0.1065697 -0.144939,0.1666874 -0.270923,0.2058155 -0.531097,0.4853767 -0.510157,0.5481845 0.0076,0.022891 -0.0026,0.041625 -0.02258,0.041625 -0.02005,0 -0.05384,0.069059 -0.0751,0.1534642 -0.02126,0.084405 -0.05168,0.153465 -0.06763,0.153465 -0.01593,0 -0.02014,0.023019 -0.0093,0.051153 0.0108,0.028133 0.0056,0.051153 -0.01149,0.051153 -0.01712,0 -0.03115,0.034533 -0.03119,0.076733 0,0.1328989 -0.05393,0.4006339 -0.07758,0.3860182 -0.02005,-0.012388 -0.02725,0.1344432 -0.04256,0.8672752 -0.002,0.1031621 -0.01694,0.1959073 -0.03288,0.2061001 -0.03087,0.019749 -0.0581,0.1355871 -0.06226,0.2648322 -0.0013,0.043314 -0.0177,0.069369 -0.03625,0.057909 -0.01933,-0.011951 -0.02505,0.00175 -0.0134,0.03209 0.01118,0.029109 0.0038,0.052929 -0.01638,0.052929 -0.02017,0 -0.02725,0.024567 -0.01573,0.054598 0.01151,0.030024 0.004,0.065088 -0.01676,0.077907 -0.02074,0.012818 -0.04479,0.099111 -0.05345,0.1917602 -0.0087,0.092648 -0.03066,0.1734248 -0.0489,0.1795037 -0.01824,0.00606 -0.02536,0.040824 -0.01584,0.077209 0.01077,0.041208 -0.0034,0.074092 -0.03753,0.087197 -0.03015,0.01157 -0.04634,0.03478 -0.03596,0.05157 0.01038,0.0168 0.005,0.03053 -0.01205,0.03053 -0.017,0 -0.03228,0.04742 -0.03393,0.105393 -0.0051,0.179718 -0.117438,0.644115 -0.15081,0.623489 -0.01741,-0.01076 -0.02813,0.0011 -0.02381,0.02649 0.0043,0.02533 -0.0024,0.08442 -0.01478,0.131309 -0.01244,0.04689 -0.02923,0.154317 -0.03733,0.238722 -0.03648,0.380211 -0.166541,0.813049 -0.262056,0.87208 -0.01658,0.01025 -0.03014,0.06376 -0.03014,0.118927 0,0.05516 -0.01494,0.100297 -0.03323,0.100297 -0.04322,0 -0.145532,0.197792 -0.122006,0.23586 0.01,0.01608 -0.0048,0.04821 -0.0327,0.07138 -0.02793,0.02318 -0.05078,0.06201 -0.05078,0.08628 0,0.02428 -0.01521,0.04926 -0.03381,0.05551 -0.01859,0.0063 -0.03965,0.06171 -0.0468,0.123232 -0.0071,0.06153 -0.03801,0.139504 -0.06858,0.173284 -0.03057,0.03378 -0.04532,0.07168 -0.03278,0.08423 0.01255,0.01254 0.0024,0.02281 -0.02266,0.02281 -0.02501,0 -0.03585,0.0096 -0.0241,0.02137 0.0306,0.0306 -0.07344,0.220798 -0.170284,0.311282 -0.04526,0.04228 -0.07383,0.09055 -0.06351,0.107262 0.01033,0.01671 -0.0042,0.03918 -0.03219,0.04993 -0.02803,0.01075 -0.05096,0.05164 -0.05096,0.09084 0,0.03921 -0.01459,0.06228 -0.03239,0.05127 -0.03561,-0.022 -0.113081,0.09788 -0.08282,0.128147 0.01035,0.01034 -0.02074,0.04474 -0.06911,0.07642 -0.04835,0.03169 -0.08004,0.07036 -0.0704,0.08595 0.01898,0.03069 -0.114371,0.168819 -0.162961,0.168819 -0.01633,0 -0.02025,0.01524 -0.0088,0.03387 0.01151,0.01863 -0.03329,0.0897 -0.09956,0.157928 -0.06627,0.06823 -0.110938,0.139503 -0.09927,0.158378 0.01168,0.01887 -0.01552,0.06424 -0.06042,0.100806 -0.0449,0.03656 -0.05862,0.05631 -0.03048,0.04387 0.02814,-0.01243 0.01662,0.0079 -0.02558,0.04514 -0.0422,0.03726 -0.07673,0.08078 -0.07673,0.09671 0,0.01593 -0.03129,0.0485 -0.06953,0.07238 -0.03825,0.02388 -0.06135,0.05666 -0.05135,0.07284 0.01,0.01618 -0.0057,0.03859 -0.03494,0.0498 -0.02921,0.01121 -0.04333,0.03622 -0.03137,0.05557 0.01196,0.01935 0.0028,0.03097 -0.02039,0.02582 -0.02317,-0.0052 -0.05348,0.02899 -0.06734,0.07589 -0.01387,0.04689 -0.02673,0.07265 -0.0286,0.05724 -0.0047,-0.0388 -0.105707,0.06596 -0.105707,0.109636 0,0.01944 -0.03113,0.05199 -0.06916,0.07235 -0.03805,0.02035 -0.06111,0.05004 -0.05127,0.06597 0.0099,0.01593 -0.03193,0.07271 -0.09283,0.126176 -0.0609,0.05347 -0.118399,0.112566 -0.127777,0.131323 -0.0094,0.01876 -0.0255,0.03129 -0.03584,0.02784 -0.01033,-0.0034 -0.03831,0.02502 -0.0622,0.06325 -0.03566,0.0571 -0.03535,0.06485 0.0018,0.0434 0.05754,-0.03329 -0.100394,0.1488 -0.202424,0.233387 -0.04238,0.03514 -0.06834,0.078 -0.05767,0.09525 0.01067,0.01725 -0.0028,0.03137 -0.02973,0.03137 -0.05121,0 -0.198718,0.175689 -0.238939,0.28459 -0.01279,0.0346 -0.05386,0.07092 -0.09128,0.08071 -0.03742,0.0098 -0.06803,0.03258 -0.06803,0.05064 0,0.01807 -0.09548,0.127541 -0.212171,0.243271 -0.116693,0.115729 -0.208771,0.221926 -0.204617,0.235994 0.0042,0.01407 -0.0136,0.02558 -0.03946,0.02558 -0.0419,0 -0.36223,0.342153 -0.36223,0.386912 0,0.01812 -0.168333,0.207786 -0.434598,0.489667 -0.0797,0.08438 -0.134927,0.169585 -0.122716,0.189342 0.01221,0.01976 0.0063,0.02606 -0.01324,0.01401 -0.01949,-0.01205 -0.148957,0.09803 -0.287676,0.244627 -0.138717,0.146595 -0.276317,0.280693 -0.305775,0.297993 -0.113761,0.06682 -0.575254,0.510672 -0.575254,0.553274 0,0.0247 -0.01457,0.0359 -0.03239,0.0249 -0.01781,-0.01102 -0.04944,0.01184 -0.07028,0.05078 -0.02084,0.03893 -0.07624,0.08538 -0.123127,0.103201 -0.04688,0.01782 -0.07681,0.04604 -0.06651,0.06271 0.01031,0.01667 0,0.04609 -0.02352,0.06537 -0.04179,0.03468 -0.06108,0.04086 -0.127513,0.04086 -0.01875,0 -0.03027,0.01782 -0.02558,0.03961 0.0047,0.02178 -0.02216,0.04864 -0.05968,0.05968 -0.09596,0.02823 -0.460392,0.278998 -0.460392,0.316789 0,0.01721 -0.01255,0.02353 -0.02789,0.01405 -0.01535,-0.0095 -0.06906,0.02093 -0.119362,0.06757 -0.05031,0.04665 -0.09193,0.07268 -0.09251,0.05785 -6.72e-4,-0.01482 -0.01667,-6.8e-5 -0.0358,0.03272 -0.01911,0.03282 -0.06469,0.05968 -0.101275,0.05968 -0.03659,0 -0.09465,0.02686 -0.129032,0.05968 -0.03439,0.03282 -0.08427,0.06436 -0.110835,0.07008 -0.02657,0.0057 -0.06461,0.03156 -0.08453,0.05742 -0.01992,0.02586 -0.07746,0.05738 -0.127885,0.07003 -0.05042,0.01265 -0.09168,0.03925 -0.09168,0.0591 0,0.01985 -0.0097,0.02636 -0.02162,0.01447 -0.04327,-0.04327 -0.532043,0.244878 -0.72163,0.425432 -0.107024,0.101924 -0.294339,0.269485 -0.416257,0.372357 -0.351072,0.296226 -0.477445,0.419441 -0.477445,0.465526 0,0.02358 -0.01248,0.03903 -0.02774,0.03434 -0.03696,-0.01136 -0.401163,0.357536 -0.389174,0.394188 0.0052,0.01575 -0.0044,0.02012 -0.0213,0.0097 -0.01687,-0.01042 -0.120842,0.08723 -0.231043,0.217028 -0.110194,0.129794 -0.21571,0.237324 -0.234468,0.238955 -0.01875,0.0015 -0.139775,0.102333 -0.268924,0.223779 -0.129156,0.121446 -0.242179,0.220809 -0.251161,0.220809 -0.02537,0 -0.405851,0.275683 -0.572008,0.414454 -0.08205,0.06852 -0.314931,0.239897 -0.51753,0.380842 -0.387603,0.269655 -0.569368,0.44102 -0.766137,0.7223 -0.153643,0.219636 -0.36955,0.618807 -0.36955,0.683236 0,0.02749 -0.01176,0.04998 -0.02616,0.04998 -0.03167,0 -0.156417,0.321733 -0.224782,0.579755 -0.02733,0.103161 -0.05974,0.38707 -0.07201,0.63091 -0.01228,0.243838 -0.0367,0.457921 -0.0543,0.47574 -0.01759,0.01781 -0.03199,0.148686 -0.03199,0.290814 0,0.176685 -0.01649,0.281962 -0.05214,0.332861 -0.06265,0.08945 -0.03628,0.229636 0.05526,0.293757 0.03494,0.02447 0.273134,0.242804 0.529317,0.485172 0.256175,0.242373 0.479046,0.445791 0.495268,0.452042 0.01622,0.0063 0.02949,0.03311 0.02949,0.05968 0,0.02657 0.01297,0.04831 0.02881,0.04831 0.01584,0 0.103231,0.07579 0.194197,0.168432 0.09096,0.09264 0.17544,0.16222 0.187725,0.154627 0.01228,-0.0076 0.05524,0.02404 0.09546,0.07029 0.04022,0.04625 0.08856,0.0841 0.107445,0.0841 0.01889,0 0.03433,0.02302 0.03433,0.05115 0,0.02814 0.02393,0.05115 0.05316,0.05115 0.02924,0 0.04403,0.01481 0.03285,0.03288 -0.01118,0.01808 0.0378,0.07056 0.108823,0.116611 0.146636,0.09507 0.410528,0.327953 0.371622,0.327953 -0.01411,0 -0.0027,0.02302 0.02548,0.05115 0.02813,0.02814 0.07527,0.05115 0.104743,0.05115 0.02948,0 0.04976,0.01918 0.04506,0.04263 -0.0047,0.02344 0.01067,0.03879 0.0341,0.0341 0.02345,-0.0047 0.03879,0.01066 0.0341,0.0341 -0.0047,0.02344 0.01067,0.03879 0.03411,0.0341 0.02345,-0.0047 0.04263,0.0068 0.04263,0.02558 0,0.01875 0.01151,0.03167 0.02558,0.02869 0.01407,-0.003 0.05372,0.0068 0.08812,0.0218 0.04921,0.02142 0.05285,0.03336 0.01705,0.05605 -0.03107,0.0197 -0.01515,0.029 0.05031,0.02936 0.05269,4.48e-4 0.08814,0.01291 0.07878,0.02806 -0.0094,0.01515 0.01658,0.05262 0.05767,0.08326 0.211981,0.158129 0.321478,0.232868 0.398667,0.272128 0.115603,0.05878 0.204537,0.136366 0.205017,0.178823 6.73e-4,0.01926 0.06544,0.06496 0.144938,0.101519 0.141447,0.06505 0.340091,0.238163 0.308982,0.269278 -0.02718,0.02718 0.06833,0.153699 0.127777,0.169241 0.06948,0.01817 0.188265,0.276674 0.320871,0.69827 0.08404,0.267179 0.118475,0.330863 0.220688,0.408197 0.06662,0.0504 0.147197,0.124217 0.17907,0.164057 0.09286,0.116054 0.407185,0.314295 0.561941,0.354407 0.212211,0.05501 0.317944,0.197997 0.317944,0.42998 0,0.177064 0.0046,0.186422 0.114315,0.232258 0.06286,0.02626 0.181802,0.05857 0.2643,0.07179 0.08249,0.01322 0.264143,0.05332 0.403658,0.08911 0.139516,0.0358 0.327111,0.06508 0.416878,0.06508 0.191088,0 0.623427,0.160645 0.804959,0.299105 0.06647,0.0507 0.148841,0.153773 0.183033,0.229045 0.08345,0.183693 0.08156,0.232392 -0.0079,0.203999 -0.0628,-0.01994 -0.06843,-0.01289 -0.04589,0.05738 0.06069,0.189278 0.08178,0.333911 0.08254,0.566071 l 8.75e-4,0.247251 -0.10231,0 c -0.141004,0 -0.224605,-0.0965 -0.270173,-0.311862 -0.02207,-0.104268 -0.09225,-0.260923 -0.163567,-0.365089 -0.119313,-0.174261 -0.130354,-0.181565 -0.24619,-0.162767 -0.149842,0.02432 -0.206755,0.09784 -0.206755,0.267096 l 0,0.130514 -0.144938,-0.0091 c -0.128781,-0.0081 -0.143506,-0.0015 -0.132061,0.05907 0.02757,0.146015 0.01951,0.403542 -0.01289,0.41185 -0.01875,0.0048 -0.05329,0.0011 -0.07673,-0.0083 z m -4.19369,-3.988246 c 0.03255,-0.03255 -0.11857,-0.219098 -0.220265,-0.271924 -0.05026,-0.0261 -0.100619,-0.07448 -0.111934,-0.107508 -0.01132,-0.03303 -0.08846,-0.113161 -0.171444,-0.178065 -0.08298,-0.06491 -0.144604,-0.124279 -0.136937,-0.131946 0.01826,-0.01826 -0.252842,-0.244541 -0.292968,-0.244541 -0.01698,0 -0.03088,-0.02302 -0.03088,-0.05116 0,-0.02813 -0.01918,-0.04732 -0.04263,-0.04263 -0.02345,0.0047 -0.03879,-0.01067 -0.03411,-0.0341 0.0047,-0.02344 -0.0145,-0.04263 -0.04263,-0.04263 -0.02814,0 -0.05115,-0.02165 -0.05115,-0.04811 0,-0.02646 -0.09552,-0.13005 -0.212251,-0.230198 -0.116736,-0.100146 -0.253339,-0.224289 -0.30356,-0.27587 -0.05022,-0.05158 -0.09883,-0.09379 -0.108026,-0.09379 -0.0092,0 -0.09926,-0.08057 -0.200152,-0.17904 -0.186476,-0.182007 -0.359788,-0.332507 -0.382912,-0.332507 -0.007,0 -0.08682,-0.06799 -0.177335,-0.151102 -0.09051,-0.08311 -0.17673,-0.143589 -0.191592,-0.1344 -0.01486,0.0092 -0.02702,0.0024 -0.02702,-0.01528 0,-0.04201 -0.511787,-0.42675 -0.567681,-0.42675 -0.02375,0 -0.03553,-0.01237 -0.02619,-0.02747 0.02194,-0.03549 -0.281469,-0.225376 -0.403641,-0.252609 -0.05158,-0.01149 -0.09378,-0.03557 -0.09378,-0.05349 0,-0.019 -0.02956,-0.01678 -0.07091,0.0054 -0.06793,0.03636 -0.064,0.04498 0.09378,0.205769 0.09058,0.0923 0.183871,0.167842 0.207322,0.167869 0.02344,2.7e-5 0.04263,0.01302 0.04263,0.02885 0,0.01584 0.117144,0.14245 0.26033,0.281352 0.143178,0.138902 0.292804,0.289504 0.332507,0.334665 0.125042,0.142265 0.487691,0.495555 0.560957,0.546484 0.03864,0.02686 0.06096,0.06523 0.04957,0.08526 -0.01138,0.02003 -0.0087,0.02557 0.0061,0.0123 0.0147,-0.01326 0.07471,0.01169 0.133356,0.05543 0.05864,0.04375 0.165259,0.106726 0.236917,0.139967 0.0936,0.04341 0.117608,0.06848 0.08526,0.08899 -0.03381,0.02144 -0.02966,0.02869 0.01667,0.02908 0.03393,4.48e-4 0.05331,0.01409 0.04306,0.03066 -0.01667,0.02698 0.14951,0.115529 0.236282,0.125904 0.01875,0.0023 0.05419,0.0064 0.07875,0.0093 0.02455,0.0029 0.03515,0.02054 0.02356,0.0393 -0.01161,0.01875 0.0036,0.0341 0.0339,0.0341 0.03023,0 0.111436,0.03837 0.180445,0.08526 0.06901,0.04689 0.10272,0.08549 0.07492,0.08578 -0.04424,6.72e-4 -0.04417,0.0046 6.73e-4,0.03333 0.02814,0.01803 0.0764,0.02496 0.107242,0.01537 0.05882,-0.01828 0.141637,0.04693 0.20138,0.15856 0.01945,0.03632 0.09688,0.104889 0.17209,0.152367 0.10982,0.06933 0.132322,0.100292 0.114247,0.157236 -0.01432,0.04508 -0.0096,0.06294 0.01288,0.04903 0.01947,-0.01203 0.04436,-0.0074 0.05532,0.01035 0.01095,0.01772 -0.01483,0.0389 -0.05733,0.04706 -0.06684,0.01286 -0.06461,0.01548 0.01656,0.01949 0.07775,0.0038 0.09378,0.02023 0.09378,0.09574 0,0.149781 0.08859,0.215831 0.289483,0.215831 0.09713,0 0.186006,-0.0094 0.197504,-0.02091 z m -3.916702,-3.351519 c 0.01031,-0.01667 -0.03866,-0.07277 -0.108823,-0.124668 -0.162544,-0.12024 -0.245198,-0.220673 -0.246159,-0.299097 -0.0011,-0.08664 -0.139045,-0.398508 -0.176318,-0.398508 -0.01692,0 -0.04534,-0.03837 -0.06316,-0.08526 -0.01784,-0.04689 -0.04766,-0.08526 -0.06629,-0.08526 -0.01864,0 -0.02504,-0.02302 -0.01425,-0.05115 0.0108,-0.02813 0.0057,-0.05115 -0.01129,-0.05115 -0.04968,0 -0.120395,0.399496 -0.08306,0.469258 0.01779,0.03321 0.143661,0.159902 0.279747,0.281536 0.13608,0.121632 0.279425,0.254059 0.318537,0.294281 0.07702,0.0792 0.141411,0.09803 0.17108,0.05003 z m -0.771004,-2.50443 c -0.0043,-0.02202 0.0183,-0.08917 0.05025,-0.149197 0.03194,-0.06003 0.05808,-0.149179 0.05808,-0.198109 0,-0.05436 0.01416,-0.08021 0.0364,-0.06647 0.03025,0.01869 0.09496,-0.116002 0.0709,-0.147575 -0.004,-0.0054 0.01613,-0.03331 0.04495,-0.06211 0.02881,-0.02881 0.05237,-0.08874 0.05237,-0.133183 0,-0.04445 0.01414,-0.08955 0.03142,-0.100225 0.01728,-0.01069 0.05839,-0.09215 0.09136,-0.181054 0.03297,-0.08891 0.08744,-0.201739 0.12104,-0.250748 0.0336,-0.04901 0.05132,-0.09889 0.03937,-0.110837 -0.01194,-0.01194 -0.0038,-0.02173 0.01806,-0.02173 0.02189,0 0.03955,-0.02686 0.03927,-0.05968 -6.73e-4,-0.05155 -0.0055,-0.05271 -0.03706,-0.0085 -0.03005,0.04207 -0.03367,0.03904 -0.02039,-0.01705 0.0089,-0.03751 0.02822,-0.09773 0.04298,-0.13381 0.02151,-0.05253 0.01548,-0.06124 -0.03023,-0.0437 -0.07092,0.02721 -0.07416,-0.02222 -0.0059,-0.09045 0.02814,-0.02813 0.05065,-0.07911 0.05002,-0.113272 -8.75e-4,-0.05383 -0.01019,-0.05124 -0.06906,0.01945 -0.03736,0.04486 -0.07781,0.07168 -0.08988,0.0596 -0.01208,-0.01207 -0.05363,0.0049 -0.09234,0.0378 -0.06688,0.05679 -0.06809,0.05679 -0.02417,0 0.02827,-0.0365 0.03201,-0.05968 0.0096,-0.05968 -0.02012,0 -0.04886,0.01918 -0.06386,0.04263 -0.01501,0.02344 -0.057,0.06565 -0.09334,0.09379 -0.06006,0.0465 -0.06403,0.04573 -0.0437,-0.0085 0.0123,-0.03282 0.0081,-0.05969 -0.0093,-0.05969 -0.01746,0 -0.04841,0.06522 -0.06882,0.144939 -0.02042,0.07972 -0.04562,0.167959 -0.05602,0.196096 -0.04849,0.131129 -0.111834,0.499144 -0.09503,0.552109 0.01033,0.03255 0.0018,0.09092 -0.01898,0.129723 -0.04485,0.08379 -0.0079,0.827525 0.03967,0.798134 0.01662,-0.01026 0.02669,-0.0367 0.02239,-0.05873 z m 0.415265,-1.487433 c 0,-0.01986 0.01535,-0.03611 0.0341,-0.03611 0.01875,0 0.03411,0.0068 0.03411,0.01503 0,0.0083 -0.01535,0.02453 -0.03411,0.03611 -0.01875,0.01158 -0.0341,0.0048 -0.0341,-0.01503 z m 0.06821,-0.102309 c 0,-0.01985 0.01535,-0.03611 0.0341,-0.03611 0.01875,0 0.0341,0.0068 0.0341,0.01503 0,0.0083 -0.01535,0.02452 -0.0341,0.03611 -0.01875,0.01158 -0.0341,0.0048 -0.0341,-0.01503 z M 50.350048,2.911456 c -0.04024,-0.04024 -0.0851,-0.060404 -0.09969,-0.044811 -0.01458,0.015594 -0.0073,0.035235 0.01633,0.043647 0.02355,0.00841 0.03614,0.026146 0.02793,0.039407 -0.0082,0.013261 0.01737,0.026543 0.05685,0.029515 l 0.07175,0.0054 -0.07316,-0.073163 z M 28.551232,31.653751 c 0,-0.0083 0.01534,-0.02453 0.0341,-0.03611 0.01875,-0.01158 0.0341,-0.0048 0.0341,0.01503 0,0.01987 -0.01534,0.03611 -0.0341,0.03611 -0.01875,0 -0.0341,-0.0067 -0.0341,-0.01503 z M 47.469354,1.6014697 c 0.0231,-0.00934 0.06912,-0.00991 0.102307,-0.00127 0.03317,0.00865 0.01431,0.016289 -0.04196,0.016985 -0.05627,6.93e-4 -0.08342,-0.00638 -0.06032,-0.015721 z"
+     style="fill:#dddddd" />
+</svg>
diff --git a/Samples/DebugLogViewer/icons/curly-brackets.svg b/Samples/DebugLogViewer/icons/curly-brackets.svg
new file mode 100644 (file)
index 0000000..89ef798
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M2.1 3.1c0.2 1.3 0.4 1.6 0.4 2.9 0 0.8-1.5 1.5-1.5 1.5v1c0 0 1.5 0.7 1.5 1.5 0 1.3-0.2 1.6-0.4 2.9-0.3 2.1 0.8 3.1 1.8 3.1s2.1 0 2.1 0v-2c0 0-1.8 0.2-1.8-1 0-0.9 0.2-0.9 0.4-2.9 0.1-0.9-0.5-1.6-1.1-2.1 0.6-0.5 1.2-1.1 1.1-2-0.3-2-0.4-2-0.4-2.9 0-1.2 1.8-1.1 1.8-1.1v-2c0 0-1 0-2.1 0s-2.1 1-1.8 3.1z"></path>
+<path fill="#dddddd" d="M13.9 3.1c-0.2 1.3-0.4 1.6-0.4 2.9 0 0.8 1.5 1.5 1.5 1.5v1c0 0-1.5 0.7-1.5 1.5 0 1.3 0.2 1.6 0.4 2.9 0.3 2.1-0.8 3.1-1.8 3.1s-2.1 0-2.1 0v-2c0 0 1.8 0.2 1.8-1 0-0.9-0.2-0.9-0.4-2.9-0.1-0.9 0.5-1.6 1.1-2.1-0.6-0.5-1.2-1.1-1.1-2 0.2-2 0.4-2 0.4-2.9 0-1.2-1.8-1.1-1.8-1.1v-2c0 0 1 0 2.1 0s2.1 1 1.8 3.1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/debug-bug.svg b/Samples/DebugLogViewer/icons/debug-bug.svg
new file mode 100644 (file)
index 0000000..8c73946
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 6h3c0.6 0 1-0.1 1-0.1 1.3-0.4 2-1.9 2-3.4 0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5c0 1-0.5 2.5-1.8 2.5h-0.2c0 0 0.2-2.1-2-2.8v-1.7c0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5v1.5c-0.2 0-0.3 0-0.5 0s-0.3 0-0.5 0v-1.5c0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5v1.7c-2.2 0.7-2 2.8-2 2.8h-0.2c-1.3 0-1.8-1.5-1.8-2.5 0-0.3-0.2-0.5-0.5-0.5s-0.5 0.2-0.5 0.5c0 1.4 0.7 2.9 2 3.4 0 0 0.3 0.1 1 0.1h4zM8 3h1v1h-1v-1zM6 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 7v1c-2.8 0.1-3 1.4-3 3.5 0 0.2 0.2 0.5 0.5 0.5s0.5-0.3 0.5-0.5c0-1.8 0-2.4 2-2.5 0 0 0 1.6 0.6 3.1-0.4 0.1-0.7 0.2-0.9 0.5-0.7 0.6-0.7 1.7-0.7 2.7v0.1c0 0.3 0.2 0.6 0.5 0.6s0.5-0.3 0.5-0.5v-0.1c0-0.8 0-1.7 0.4-2.1 0.1-0.2 0.4-0.3 0.7-0.3 0.5 1 1.5 1.8 2.9 2v-8h-4z"></path>
+<path fill="#dddddd" d="M12 8v-1h-4v8c1.4-0.2 2.4-1 2.9-1.9 0.3 0 0.5 0.1 0.7 0.2 0.4 0.4 0.4 1.2 0.4 2.1v0.1c0 0.3 0.2 0.5 0.5 0.5s0.5-0.2 0.5-0.5v-0.1c0-1 0-2.1-0.7-2.8-0.2-0.2-0.6-0.4-0.9-0.5 0.6-1.5 0.6-3 0.6-3.1 2 0 2 0.7 2 2.5 0 0.3 0.2 0.5 0.5 0.5s0.5-0.2 0.5-0.5c0-2.1-0.2-3.4-3-3.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/debug-pause.svg b/Samples/DebugLogViewer/icons/debug-pause.svg
new file mode 100644 (file)
index 0000000..33f4c86
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1h7v14h-7v-14z"></path>
+<path fill="#dddddd" d="M9 1h7v14h-7v-14z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/debug-play.svg b/Samples/DebugLogViewer/icons/debug-play.svg
new file mode 100644 (file)
index 0000000..91ee85d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M2 1v14l12-7z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/debug-step-into.svg b/Samples/DebugLogViewer/icons/debug-step-into.svg
new file mode 100644 (file)
index 0000000..f60dbf4
--- /dev/null
@@ -0,0 +1 @@
+<svg class="svg-icon" style="width: 1em; height: 1em;vertical-align: middle;fill: #dddddd;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M512 938.666667a85.333333 85.333333 0 0 1-85.333333-85.333334 85.333333 85.333333 0 0 1 85.333333-85.333333 85.333333 85.333333 0 0 1 85.333333 85.333333 85.333333 85.333333 0 0 1-85.333333 85.333334m42.666667-853.333334v469.333334l192-192 60.586666 60.586666L512 718.506667 216.746667 423.253333 277.333333 362.666667 469.333333 554.666667V85.333333h85.333334z" fill="" /></svg>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/icons/debug-step-out.svg b/Samples/DebugLogViewer/icons/debug-step-out.svg
new file mode 100644 (file)
index 0000000..8d052bf
--- /dev/null
@@ -0,0 +1 @@
+<svg class="svg-icon" style="width: 1em; height: 1em;vertical-align: middle;fill: #dddddd;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M512 938.666667a85.333333 85.333333 0 0 1-85.333333-85.333334 85.333333 85.333333 0 0 1 85.333333-85.333333 85.333333 85.333333 0 0 1 85.333333 85.333333 85.333333 85.333333 0 0 1-85.333333 85.333334m42.666667-256h-85.333334V256l-192 192-60.586666-60.586667L512 92.16l295.253333 295.253333-60.586666 60.586667L554.666667 256v426.666667z" fill="" /></svg>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/icons/debug-step-over.svg b/Samples/DebugLogViewer/icons/debug-step-over.svg
new file mode 100644 (file)
index 0000000..6deaf2a
--- /dev/null
@@ -0,0 +1 @@
+<svg class="svg-icon" style="width: 1em; height: 1em;vertical-align: middle;fill: #dddddd;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M512 597.333333C558.933333 597.333333 597.333333 635.733333 597.333333 682.666667 597.333333 729.6 558.933333 768 512 768 465.066667 768 426.666667 729.6 426.666667 682.666667 426.666667 635.733333 465.066667 597.333333 512 597.333333M1000.96 378.026667 933.12 672 640 604.16 802.133333 502.613333C741.973333 405.333333 634.453333 341.333333 512 341.333333 343.466667 341.333333 203.52 463.36 175.786667 624.213333L91.733333 609.28C126.293333 408.746667 301.226667 256 512 256 664.746667 256 799.146667 336.64 874.666667 457.386667L1000.96 378.026667Z"  /></svg>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/icons/debug-stop.svg b/Samples/DebugLogViewer/icons/debug-stop.svg
new file mode 100644 (file)
index 0000000..27d810a
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M1 1h14v14h-14v-14z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/dentist-chair.svg b/Samples/DebugLogViewer/icons/dentist-chair.svg
new file mode 100644 (file)
index 0000000..a567535
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11.5 8.2c-0.3-0.1-0.6-0.2-0.8-0.2h-2.7v-1h3c0-0.6-0.4-1-1-1h-4c0 0.6 0.4 1 1 1v1c-0.5 0-1-0.2-1.2-0.6l-1.1-1.8c-0.3-0.4-0.7-0.6-1.1-0.6h-0.6v-0.7c0-0.3-0.1-0.5-0.2-0.8l-0.3-0.7c-0.3-0.5-0.9-0.8-1.5-0.8h-1l5 7c0.4 0.6 1.1 1 1.8 1h1.2v1h-1v2h-0.6c-0.9 0-1.8 0.4-2.4 1v0h-1v1h11v-1h-1c-0.6-0.6-1.5-1-2.4-1h-0.6v-2h-1v-1h1.6c0.2 0 0.5 0.1 0.7 0.2l1.7 0.9c0.9 0.5 2 0.5 2.9 0h0.1l-4.5-2.9z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/drop.svg b/Samples/DebugLogViewer/icons/drop.svg
new file mode 100644 (file)
index 0000000..164aaa6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0c0 0-5 8.2-5 11s2.2 5 5 5 5-2.2 5-5-5-11-5-11zM8.9 14.9l-0.2-1c1.4-0.3 2.4-1.7 2.4-3.2 0-0.3-0.1-1.1-0.8-2.6l0.9-0.4c0.6 1.4 0.8 2.4 0.8 3 0 2-1.3 3.8-3.1 4.2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/earth-globe.svg b/Samples/DebugLogViewer/icons/earth-globe.svg
new file mode 100644 (file)
index 0000000..2d851cc
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zM13.2 5.3c0.4 0 0.7 0.3 1.1 0.3-0.3 0.4-1.6 0.4-2-0.1 0.3-0.1 0.5-0.2 0.9-0.2zM1 8c0-0.4 0-0.8 0.1-1.3 0.1 0 0.2 0.1 0.3 0.1 0 0 0.1 0.1 0.1 0.2 0 0.3 0.3 0.5 0.5 0.5 0.8 0.1 1.1 0.8 1.8 1 0.2 0.1 0.1 0.3 0 0.5-0.6 0.8-0.1 1.4 0.4 1.9 0.5 0.4 0.5 0.8 0.6 1.4 0 0.7 0.1 1.5 0.4 2.2-2.5-1.2-4.2-3.6-4.2-6.5zM8 15c-0.7 0-1.5-0.1-2.1-0.3-0.1-0.2-0.1-0.4 0-0.6 0.4-0.8 0.8-1.5 1.3-2.2 0.2-0.2 0.4-0.4 0.4-0.7 0-0.2 0.1-0.5 0.2-0.7 0.3-0.5 0.2-0.8-0.2-0.9-0.8-0.2-1.2-0.9-1.8-1.2s-1.2-0.5-1.7-0.2c-0.2 0.1-0.5 0.2-0.5-0.1 0-0.4-0.5-0.7-0.4-1.1-0.1 0-0.2 0-0.3 0.1s-0.2 0.2-0.4 0.1c-0.2-0.2-0.1-0.4-0.1-0.6 0.1-0.2 0.2-0.3 0.4-0.4 0.4-0.1 0.8-0.1 1 0.4 0.3-0.9 0.9-1.4 1.5-1.8 0 0 0.8-0.7 0.9-0.7s0.2 0.2 0.4 0.3c0.2 0 0.3 0 0.3-0.2 0.1-0.5-0.2-1.1-0.6-1.2 0-0.1 0.1-0.1 0.1-0.1 0.3-0.1 0.7-0.3 0.6-0.6 0-0.4-0.4-0.6-0.8-0.6-0.2 0-0.4 0-0.6 0.1-0.4 0.2-0.9 0.4-1.5 0.4 1.1-0.8 2.5-1.2 3.9-1.2 0.3 0 0.5 0 0.8 0-0.6 0.1-1.2 0.3-1.6 0.5 0.6 0.1 0.7 0.4 0.5 0.9-0.1 0.2 0 0.4 0.2 0.5s0.4 0.1 0.5-0.1c0.2-0.3 0.6-0.4 0.9-0.5 0.4-0.1 0.7-0.3 1-0.7 0-0.1 0.1-0.1 0.2-0.2 0.6 0.2 1.2 0.6 1.8 1-0.1 0-0.1 0.1-0.2 0.1-0.2 0.2-0.5 0.3-0.2 0.7 0.1 0.2 0 0.3-0.1 0.4-0.2 0.1-0.3 0-0.4-0.1s-0.1-0.3-0.4-0.3c-0.1 0.2-0.4 0.3-0.4 0.6 0.5 0 0.4 0.4 0.5 0.7-0.6 0.1-0.8 0.4-0.5 0.9 0.1 0.2-0.1 0.3-0.2 0.4-0.4 0.6-0.8 1-0.8 1.7s0.5 1.4 1.3 1.3c0.9-0.1 0.9-0.1 1.2 0.7 0 0.1 0.1 0.2 0.1 0.3 0.1 0.2 0.2 0.4 0.1 0.6-0.3 0.8 0.1 1.4 0.4 2 0.1 0.2 0.2 0.3 0.3 0.4-1.3 1.4-3 2.2-5 2.2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/edit.svg b/Samples/DebugLogViewer/icons/edit.svg
new file mode 100644 (file)
index 0000000..366862c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 4c0 0 0-1-1-2s-1.9-1-1.9-1l-1.1 1.1v-2.1h-12v16h12v-8l4-4zM6.3 11.4l-0.6-0.6 0.3-1.1 1.5 1.5-1.2 0.2zM7.2 9.5l-0.6-0.6 5.2-5.2c0.2 0.1 0.4 0.3 0.6 0.5zM14.1 2.5l-0.9 1c-0.2-0.2-0.4-0.3-0.6-0.5l0.9-0.9c0.1 0.1 0.3 0.2 0.6 0.4zM11 15h-10v-14h10v2.1l-5.9 5.9-1.1 4.1 4.1-1.1 2.9-3v6z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/eraser.svg b/Samples/DebugLogViewer/icons/eraser.svg
new file mode 100644 (file)
index 0000000..5dd73ba
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8.1 14l6.4-7.2c0.6-0.7 0.6-1.8-0.1-2.5l-2.7-2.7c-0.3-0.4-0.8-0.6-1.3-0.6h-1.8c-0.5 0-1 0.2-1.4 0.6l-6.7 7.6c-0.6 0.7-0.6 1.9 0.1 2.5l2.7 2.7c0.3 0.4 0.8 0.6 1.3 0.6h11.4v-1h-7.9zM6.8 13.9c0 0 0-0.1 0 0l-2.7-2.7c-0.4-0.4-0.4-0.9 0-1.3l3.4-3.9h-1l-3 3.3c-0.6 0.7-0.6 1.7 0.1 2.4l2.3 2.3h-1.3c-0.2 0-0.4-0.1-0.6-0.2l-2.8-2.8c-0.3-0.3-0.3-0.8 0-1.1l3.5-3.9h1.8l3.5-4h1l-3.5 4 3.1 3.7-3.5 4c-0.1 0.1-0.2 0.1-0.3 0.2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/event.svg b/Samples/DebugLogViewer/icons/event.svg
new file mode 100644 (file)
index 0000000..cedebd5
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 32 32">
+    <path fill="#dddddd" d="M18 13 L26 2 8 13 14 19 6 30 24 19 Z" />
+</svg>
diff --git a/Samples/DebugLogViewer/icons/exclamation.svg b/Samples/DebugLogViewer/icons/exclamation.svg
new file mode 100644 (file)
index 0000000..cc1b268
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z"></path>
+<path fill="#dddddd" d="M7 3h2v7h-2v-7z"></path>
+<path fill="#dddddd" d="M7 11h2v2h-2v-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/file-code.svg b/Samples/DebugLogViewer/icons/file-code.svg
new file mode 100644 (file)
index 0000000..2dc00db
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#FFFFFF" d="M6.2 13h-0.7l-2-2.5 2-2.5h0.7l-2 2.5z"></path>
+<path fill="#FFFFFF" d="M9.8 13h0.7l2-2.5-2-2.5h-0.7l2 2.5z"></path>
+<path fill="#FFFFFF" d="M6.7 14h0.6l2.1-7h-0.8z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/file-cube.svg b/Samples/DebugLogViewer/icons/file-cube.svg
new file mode 100644 (file)
index 0000000..6df0f4a
--- /dev/null
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512">
+    <path d="M448 341.37V170.61A32 32 0 00432.11 143l-152-88.46a47.94 47.94 0 00-48.24 0L79.89 143A32 32 0 0064 170.61v170.76A32 32 0 0079.89 369l152 88.46a48 48 0 0048.24 0l152-88.46A32 32 0 00448 341.37z"
+         fill="currentColor" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/>
+    <path fill="currentColor" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"
+        d="M69 153.99l187 110 187-110M256 463.99v-200"/>
+</svg>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/icons/file.svg b/Samples/DebugLogViewer/icons/file.svg
new file mode 100644 (file)
index 0000000..9d06b00
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M9 5h5v11h-12v-16h7v5zM10 4v-4l4 4h-4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/fill.svg b/Samples/DebugLogViewer/icons/fill.svg
new file mode 100644 (file)
index 0000000..afb6922
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M7.1 1.7l-1.2 1.1-2.3-2.4c-0.6-0.5-1.6-0.5-2.2 0-0.2 0.3-0.4 0.7-0.4 1.1s0.2 0.8 0.4 1.1l2.4 2.4-3.8 3.7 6.4 6.4 7-7.1-6.3-6.3zM2.1 1.9c0-0.1-0.1-0.3-0.1-0.4s0.1-0.3 0.1-0.4c0.2-0.1 0.6-0.1 0.8 0l2.4 2.4-0.8 0.7-2.4-2.3zM2.1 8l3.8-3.8 1.2 1.2c0.1 0.1 0.2 0.1 0.4 0.1s0.3 0 0.4-0.1c0.1-0.2 0.1-0.5-0.1-0.7l-1.2-1.2 0.4-0.4 5 4.9h-9.9z"></path>
+<path fill="#dddddd" d="M13.5 9c0 0-1.5 4.7-1.5 5.5s0.7 1.5 1.5 1.5 1.5-0.7 1.5-1.5-1.5-5.5-1.5-5.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/filter.svg b/Samples/DebugLogViewer/icons/filter.svg
new file mode 100644 (file)
index 0000000..7776fda
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M2 2h13v2l-5 5v7l-3-2v-5l-5-5z"></path>
+<path fill="#dddddd" d="M2 0h13v1h-13v-1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/folder.svg b/Samples/DebugLogViewer/icons/folder.svg
new file mode 100644 (file)
index 0000000..f59e2da
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+  <g id="False">
+    <path fill="#dddddd" d="M7 4l-1-2h-4l-1 2h-1v11h16v-11h-9zM15 14h-14v-9h0.6l1-2h2.6l1.2 2h8.6v9z"></path>
+  </g>
+  <g id="True">
+    <path fill="#dddddd" d="M14 6v-2h-7l-1-2h-4l-1 2h-1v11h14l2-9h-2zM14.9 7l-1.6 7-11.9-0.1 2.3-6.9h11.2zM1 5h0.6l1-2h2.6l1.2 2h6.6v1h-10l-2 5.9v-6.9z"></path>
+  </g>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/font-file.svg b/Samples/DebugLogViewer/icons/font-file.svg
new file mode 100644 (file)
index 0000000..20beac1
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#FFFFFF" d="M5 7v2h2v5h2v-5h2v-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/forward-arrow.svg b/Samples/DebugLogViewer/icons/forward-arrow.svg
new file mode 100644 (file)
index 0000000..59fcc90
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 7.9l-6-4.9v3c-0.5 0-1.1 0-2 0-8 0-8 8-8 8s1-4 7.8-4c1.1 0 1.8 0 2.2 0v2.9l6-5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/inbox.svg b/Samples/DebugLogViewer/icons/inbox.svg
new file mode 100644 (file)
index 0000000..6aa6714
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 6v-6h-4v6h-2l4 5 4-5z"></path>
+<path fill="#FFFFFF" d="M13 1h-2v1h1.3l2.6 8h-3.9v2h-6v-2h-3.9l2.6-8h1.3v-1h-2l-3 9v5h16v-5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/level-up.svg b/Samples/DebugLogViewer/icons/level-up.svg
new file mode 100644 (file)
index 0000000..cf86fcc
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M9 0l4 7h-3v9h-7l2-3h2v-6h-3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/light-bulb.svg b/Samples/DebugLogViewer/icons/light-bulb.svg
new file mode 100644 (file)
index 0000000..89ff236
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11.7 1.9c-1-1.2-2.6-1.9-4.2-1.9s-3.2 0.7-4.2 1.9c-1 1.1-1.4 2.6-1.2 4 0.2 1.5 0.8 2.6 2.1 3.7 0.5 0.4 0.7 0.8 0.9 1.2 0 0.1 0.1 0.2 0.1 0.3-0.1 0.1-0.2 0.2-0.2 0.4 0 0.3 0.2 0.5 0.5 0.5-0.3 0-0.5 0.2-0.5 0.5s0.2 0.5 0.5 0.5c-0.3 0-0.5 0.2-0.5 0.5s0.2 0.5 0.5 0.5c-0.3 0-0.5 0.2-0.5 0.5s0.2 0.5 0.5 0.5h0.5c0 0.5 0.7 1 1.5 1s1.5-0.5 1.5-1h0.5c0.3 0 0.5-0.2 0.5-0.5s-0.2-0.5-0.5-0.5c0.3 0 0.5-0.2 0.5-0.5s-0.2-0.5-0.5-0.5c0.3 0 0.5-0.2 0.5-0.5s-0.2-0.5-0.5-0.5c0.3 0 0.5-0.2 0.5-0.5 0-0.2-0.1-0.3-0.2-0.4 0-0.1 0.1-0.1 0.1-0.2 0.2-0.4 0.4-0.8 0.9-1.2 1.3-1.1 1.9-2.2 2.1-3.8 0.2-1.4-0.2-2.8-1.2-4zM12 5.8c-0.2 1.3-0.7 2.2-1.8 3.2-0.6 0.5-0.9 1-1.2 1.4-0.2 0.5-0.3 0.6-0.5 0.6h-2c-0.2 0-0.3-0.1-0.5-0.6-0.2-0.4-0.5-1-1.1-1.6-1.3-1.1-1.6-2-1.8-3-0.2-1.1 0.2-2.3 0.9-3.2 0.9-1 2.2-1.6 3.5-1.6s2.6 0.6 3.5 1.6c0.7 0.9 1.1 2.1 1 3.2z"></path>
+<path fill="#dddddd" d="M11 5h-1c0-0.7-0.8-2-2-2v-1c1.8 0 3 1.8 3 3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/log.svg b/Samples/DebugLogViewer/icons/log.svg
new file mode 100644 (file)
index 0000000..0f8a358
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M29.4 27.6H2.5V4.5h26.9zm-25.9-1h24.9V5.5H3.5z" fill="#cccccc"/><path fill="#ffffff" d="M2.5 5.5h26.9v1.9H2.5zM11.333 9.5H19.5v1h-8.167zM11.333 12.083h12.5v1h-12.5zM11.333 14.75H21.95v1H11.333zM11.333 17.583H25.5v1H11.333zM11.333 20.5h9.834v1h-9.834zM11.5 23.083h12.167v1H11.5zM5.5 9.5h4.333v1H5.5zM5.5 12.083h4.333v1H5.5z"/><path fill="#929292" d="M5.5 12.083h4.333v1H5.5zM5.5 14.667h4.333v1H5.5zM5.5 17.25h4.333v1H5.5zM5.5 20.5h4.333v1H5.5zM5.5 23.083h4.333v1H5.5z"/></svg>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/icons/magic-wand.svg b/Samples/DebugLogViewer/icons/magic-wand.svg
new file mode 100644 (file)
index 0000000..8b40691
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 5h3v1h-3v-1z"></path>
+<path fill="#dddddd" d="M5 0h1v3h-1v-3z"></path>
+<path fill="#dddddd" d="M6 11h-1v-2.5l1 1z"></path>
+<path fill="#dddddd" d="M11 6h-1.5l-1-1h2.5z"></path>
+<path fill="#dddddd" d="M3.131 7.161l0.707 0.707-2.97 2.97-0.707-0.707 2.97-2.97z"></path>
+<path fill="#dddddd" d="M10.131 0.161l0.707 0.707-2.97 2.97-0.707-0.707 2.97-2.97z"></path>
+<path fill="#dddddd" d="M0.836 0.199l3.465 3.465-0.707 0.707-3.465-3.465 0.707-0.707z"></path>
+<path fill="#dddddd" d="M6.1 4.1l-2.1 2 9.8 9.9 2.2-2.1-9.9-9.8zM6.1 5.5l2.4 2.5-0.6 0.6-2.5-2.5 0.7-0.6z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/move-arrows.svg b/Samples/DebugLogViewer/icons/move-arrows.svg
new file mode 100644 (file)
index 0000000..ecbb2f9
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 8l-3-3v2h-4v-4h2l-3-3-3 3h2v4h-4v-2l-3 3 3 3v-2h4v4h-2l3 3 3-3h-2v-4h4v2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/open.svg b/Samples/DebugLogViewer/icons/open.svg
new file mode 100644 (file)
index 0000000..bd8d7d9
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M6 5v6h4v-6h2l-4-5-4 5z"></path>
+<path fill="#FFFFFF" d="M13 2h-2l0.9 1h0.4l2.6 8h-3.9v2h-6v-2h-3.9l2.6-8h0.4l0.9-1h-2l-3 9v5h16v-5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/outbox.svg b/Samples/DebugLogViewer/icons/outbox.svg
new file mode 100644 (file)
index 0000000..bd8d7d9
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M6 5v6h4v-6h2l-4-5-4 5z"></path>
+<path fill="#FFFFFF" d="M13 2h-2l0.9 1h0.4l2.6 8h-3.9v2h-6v-2h-3.9l2.6-8h0.4l0.9-1h-2l-3 9v5h16v-5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/paint-brush.svg b/Samples/DebugLogViewer/icons/paint-brush.svg
new file mode 100644 (file)
index 0000000..2bdd5be
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M5.6 11.6l-1.2-1.2c-0.8-0.2-2-0.1-2.7 1-0.8 1.1-0.3 2.8-1.7 4.6 0 0 3.5 0 4.8-1.3 1.2-1.2 1.2-2.2 1-3l-0.2-0.1z"></path>
+<path fill="#dddddd" d="M5.8 8.1c-0.2 0.3-0.5 0.7-0.7 1 0 0.2-0.1 0.3-0.2 0.4l1.5 1.5c0.1-0.1 0.3-0.2 0.4-0.3 0.3-0.2 0.7-0.4 1-0.7 0.4 0 0.6-0.2 0.8-0.4l-2.2-2.2c-0.2 0.2-0.4 0.4-0.6 0.7z"></path>
+<path fill="#dddddd" d="M15.8 0.2c-0.3-0.3-0.7-0.3-1-0.1 0 0-3 2.5-5.9 5.1-0.4 0.4-0.7 0.7-1.1 1-0.2 0.2-0.4 0.4-0.6 0.5l2.1 2.1c0.2-0.2 0.4-0.4 0.5-0.7 0.3-0.4 0.6-0.7 0.9-1.1 2.5-3 5.1-5.9 5.1-5.9 0.3-0.2 0.3-0.6 0-0.9z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/palette.svg b/Samples/DebugLogViewer/icons/palette.svg
new file mode 100644 (file)
index 0000000..8e425f7
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 7.1c0-2.7-1.3-7.1-7.3-7.1s-8.5 7.4-7.5 9.9c0.8 1.9 2.5 0.1 3.1 1 1.8 2.5-2 3.8 0.1 4.7 2.5 1.1 11.6 0.4 11.6-8.5zM4.5 9c-0.9 0-1.5-0.7-1.5-1.5s0.6-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5zM6 3.5c0-0.8 0.6-1.5 1.5-1.5s1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5-1.5-0.7-1.5-1.5zM8.5 14c-0.9 0-1.5-0.7-1.5-1.5s0.6-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5zM11 4.5c0-0.8 0.6-1.5 1.5-1.5s1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5-1.5-0.7-1.5-1.5zM12.5 11c-0.8 0-1.5-0.7-1.5-1.5s0.6-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/paragraph.svg b/Samples/DebugLogViewer/icons/paragraph.svg
new file mode 100644 (file)
index 0000000..826aa63
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M5.5 0c-2.5 0-4.5 2-4.5 4.5s2 4.5 4.5 4.5h2.5v7h2v-14h1v14h2v-14h2v-2h-9.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/paste-on-document.svg b/Samples/DebugLogViewer/icons/paste-on-document.svg
new file mode 100644 (file)
index 0000000..b0a705e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M13 4h-3v-4h-10v14h6v2h10v-9l-3-3zM3 1h4v1h-4v-1zM15 15h-8v-10h5v3h3v7zM13 7v-2l2 2h-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/pause-symbol.svg b/Samples/DebugLogViewer/icons/pause-symbol.svg
new file mode 100644 (file)
index 0000000..33f4c86
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1h7v14h-7v-14z"></path>
+<path fill="#dddddd" d="M9 1h7v14h-7v-14z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/pin.svg b/Samples/DebugLogViewer/icons/pin.svg
new file mode 100644 (file)
index 0000000..b36340b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11 6.5v-5.5h1v-1h-8v1h1v5.5c0 0-2 1.5-2 3.5 0 0.5 1.9 0.7 4 0.7v2.2c0 0.7 0.2 1.4 0.5 2.1l0.5 1 0.5-1c0.3-0.6 0.5-1.3 0.5-2.1v-2.2c2.1 0 4-0.3 4-0.7 0-2-2-3.5-2-3.5zM7 6.6c0 0-0.5 0.3-1.6 1.4-1 1-1.5 1.9-1.5 1.9s0.1-1 0.8-1.9c0.9-1.1 1.3-1.4 1.3-1.4v-5.6h1v5.6z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/play-button.svg b/Samples/DebugLogViewer/icons/play-button.svg
new file mode 100644 (file)
index 0000000..91ee85d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M2 1v14l12-7z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/plugins.svg b/Samples/DebugLogViewer/icons/plugins.svg
new file mode 100644 (file)
index 0000000..14ea6f3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11 6.6v0-3.8l-4-1.8-4 1.8v4.2l-3 1.3v4.4l4 1.8 3.5-1.5 3.5 1.6 4-1.8v-4.5l-4-1.7zM7 2.1l2.8 1.2-2.7 1.1-2.6-1.2 2.5-1.1zM7 5v2.9l-3-1.3v-3l3 1.4zM4 13.5l-3-1.3v-3l3 1.4v2.9zM4 10l-2.6-1.2 2.6-1.1 2.8 1.2-2.8 1.1zM11 13.5l-3-1.3v-3l3 1.4v2.9zM11 10l-2.6-1.2 2.6-1.1 2.8 1.2-2.8 1.1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/presentation.svg b/Samples/DebugLogViewer/icons/presentation.svg
new file mode 100644 (file)
index 0000000..c79f5a4
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 1h-7v-1h-2v1h-7v11h5l-2 4h2.2l2-4h1.5l2 4h2.3l-2-4h5v-11zM15 11h-14v-9h14v9z"></path>
+<path fill="#dddddd" d="M6 4v5l4-2.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/previous.svg b/Samples/DebugLogViewer/icons/previous.svg
new file mode 100644 (file)
index 0000000..566c8a3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M0 7.9l6-4.9v3c0 0 1.1 0 2 0 8 0 8 8 8 8s-1-4-7.8-4c-1.1 0-1.8 0-2.2 0v2.9l-6-5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/processing-file.svg b/Samples/DebugLogViewer/icons/processing-file.svg
new file mode 100644 (file)
index 0000000..c5bcbb5
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M12 0h-7v6h0.7l0.2 0.7 0.1 0.1v-5.8h5v4h4v9h-6l0.3 0.5-0.5 0.5h7.2v-11l-4-4zM12 4v-3l3 3h-3z"></path>
+<path fill="#dddddd" d="M5.5 11.5c0 0.552-0.448 1-1 1s-1-0.448-1-1c0-0.552 0.448-1 1-1s1 0.448 1 1z"></path>
+<path fill="#dddddd" d="M7.9 12.4l1.1-0.4v-1l-1.1-0.4c-0.1-0.3-0.2-0.6-0.4-0.9l0.5-1-0.7-0.7-1 0.5c-0.3-0.2-0.6-0.3-0.9-0.4l-0.4-1.1h-1l-0.4 1.1c-0.3 0.1-0.6 0.2-0.9 0.4l-1-0.5-0.7 0.7 0.5 1.1c-0.2 0.3-0.3 0.6-0.4 0.9l-1.1 0.3v1l1.1 0.4c0.1 0.3 0.2 0.6 0.4 0.9l-0.5 1 0.7 0.7 1.1-0.5c0.3 0.2 0.6 0.3 0.9 0.4l0.3 1.1h1l0.4-1.1c0.3-0.1 0.6-0.2 0.9-0.4l1 0.5 0.7-0.7-0.5-1.1c0.2-0.2 0.3-0.5 0.4-0.8zM4.5 13.5c-1.1 0-2-0.9-2-2s0.9-2 2-2 2 0.9 2 2c0 1.1-0.9 2-2 2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/property.svg b/Samples/DebugLogViewer/icons/property.svg
new file mode 100644 (file)
index 0000000..de5dd37
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0l-8 8 8 8 8-8-8-8zM2 8l6-6 6 6-6 6-6-6z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/question.svg b/Samples/DebugLogViewer/icons/question.svg
new file mode 100644 (file)
index 0000000..fb8e3d3
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M9 11h-3c0-3 1.6-4 2.7-4.6 0.4-0.2 0.7-0.4 0.9-0.6 0.5-0.5 0.3-1.2 0.2-1.4-0.3-0.7-1-1.4-2.3-1.4-2.1 0-2.5 1.9-2.5 2.3l-3-0.4c0.2-1.7 1.7-4.9 5.5-4.9 2.3 0 4.3 1.3 5.1 3.2 0.7 1.7 0.4 3.5-0.8 4.7-0.5 0.5-1.1 0.8-1.6 1.1-0.9 0.5-1.2 1-1.2 2z"></path>
+<path fill="#FFFFFF" d="M9.5 14c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/recycling.svg b/Samples/DebugLogViewer/icons/recycling.svg
new file mode 100644 (file)
index 0000000..e86ca13
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 3.1l1.4 2.2-1.6 1.1 1.3 0.3 2.8 0.6 0.6-2.7 0.4-1.4-1.8 1.1-2-3.3h-2.2l-2.6 4.3 1.7 1z"></path>
+<path fill="#dddddd" d="M16 12l-2.7-4.3-1.7 1 2 3.3h-2.6v-2l-3 3 3 3v-2h3.7z"></path>
+<path fill="#dddddd" d="M2.4 12v0l1.4-2.3 1.7 1.1-0.9-4.2-2.8 0.7-1.3 0.3 1.6 1-2.1 3.4 1.3 2h5.7v-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/redo.svg b/Samples/DebugLogViewer/icons/redo.svg
new file mode 100644 (file)
index 0000000..59fcc90
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 7.9l-6-4.9v3c-0.5 0-1.1 0-2 0-8 0-8 8-8 8s1-4 7.8-4c1.1 0 1.8 0 2.2 0v2.9l6-5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/refresh.svg b/Samples/DebugLogViewer/icons/refresh.svg
new file mode 100644 (file)
index 0000000..464473e
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M2.6 5.6c0.9-2.1 3-3.6 5.4-3.6 3 0 5.4 2.2 5.9 5h2c-0.5-3.9-3.8-7-7.9-7-3 0-5.6 1.6-6.9 4.1l-1.1-1.1v4h4l-1.4-1.4z"></path>
+<path fill="#dddddd" d="M16 9h-4.1l1.5 1.4c-0.9 2.1-3 3.6-5.5 3.6-2.9 0-5.4-2.2-5.9-5h-2c0.5 3.9 3.9 7 7.9 7 3 0 5.6-1.7 7-4.1l1.1 1.1v-4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/reply.svg b/Samples/DebugLogViewer/icons/reply.svg
new file mode 100644 (file)
index 0000000..d008cb3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M16 8c0-5-4.9-5-4.9-5h-5.1v-3l-6 6 6 6v-3h5.2c3.5 0 1.8 7 1.8 7s3-4.1 3-8z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/save.svg b/Samples/DebugLogViewer/icons/save.svg
new file mode 100644 (file)
index 0000000..6aa6714
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 6v-6h-4v6h-2l4 5 4-5z"></path>
+<path fill="#FFFFFF" d="M13 1h-2v1h1.3l2.6 8h-3.9v2h-6v-2h-3.9l2.6-8h1.3v-1h-2l-3 9v5h16v-5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/scissors.svg b/Samples/DebugLogViewer/icons/scissors.svg
new file mode 100644 (file)
index 0000000..4b5a225
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M16 3.1c0 0-2.1-1.1-3.5-1-0.3 0-0.5 0.1-0.7 0.2l-4.3 3.4-1.8-1.5c0.1-0.3 0.2-0.6 0.3-1 0.1-1.8-1.4-3.4-3.3-3.2-1.2 0.1-2.3 1-2.6 2.2-0.3 1.3 0.2 2.5 1.2 3.2l3.3 2.6-3.3 2.6c-1 0.7-1.5 1.9-1.2 3.2 0.3 1.2 1.4 2 2.6 2.2 1.9 0.2 3.4-1.4 3.2-3.2 0-0.3-0.1-0.7-0.3-1l1.8-1.5 4.3 3.4c0.2 0.1 0.4 0.2 0.7 0.2 1.4 0.1 3.5-1 3.5-1l-5.7-4.9 5.8-4.9zM2.8 4.6c-0.9-0.1-1.6-0.9-1.5-1.8s0.9-1.6 1.8-1.5c0.9 0.1 1.6 0.9 1.5 1.8 0 0.9-0.9 1.6-1.8 1.5zM3.1 14.7c-0.9 0.1-1.7-0.6-1.8-1.5s0.6-1.7 1.5-1.8c0.9-0.1 1.7 0.6 1.8 1.5s-0.6 1.7-1.5 1.8zM12.4 3.2c0 0 0.1 0 0.2 0 0.4 0 0.9 0.1 1.4 0.2l-6.8 5.7-0.9-1.1 6.1-4.8zM14 12.6c-0.5 0.2-1 0.3-1.4 0.2-0.1 0-0.2 0-0.2 0l-4-3.2 1-0.9 4.6 3.9z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/search.svg b/Samples/DebugLogViewer/icons/search.svg
new file mode 100644 (file)
index 0000000..f3eb368
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15.7 14.3l-4.2-4.2c-0.2-0.2-0.5-0.3-0.8-0.3 0.8-1 1.3-2.4 1.3-3.8 0-3.3-2.7-6-6-6s-6 2.7-6 6 2.7 6 6 6c1.4 0 2.8-0.5 3.8-1.4 0 0.3 0 0.6 0.3 0.8l4.2 4.2c0.2 0.2 0.5 0.3 0.7 0.3s0.5-0.1 0.7-0.3c0.4-0.3 0.4-0.9 0-1.3zM6 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/services.svg b/Samples/DebugLogViewer/icons/services.svg
new file mode 100644 (file)
index 0000000..c1a14e7
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M12 7v-2l-1.2-0.4c-0.1-0.3-0.2-0.7-0.4-1l0.6-1.2-1.5-1.3-1.1 0.5c-0.3-0.2-0.6-0.3-1-0.4l-0.4-1.2h-2l-0.4 1.2c-0.3 0.1-0.7 0.2-1 0.4l-1.1-0.5-1.4 1.4 0.6 1.2c-0.2 0.3-0.3 0.6-0.4 1l-1.3 0.3v2l1.2 0.4c0.1 0.3 0.2 0.7 0.4 1l-0.5 1.1 1.4 1.4 1.2-0.6c0.3 0.2 0.6 0.3 1 0.4l0.3 1.3h2l0.4-1.2c0.3-0.1 0.7-0.2 1-0.4l1.2 0.6 1.4-1.4-0.6-1.2c0.2-0.3 0.3-0.6 0.4-1l1.2-0.4zM3 6c0-1.7 1.3-3 3-3s3 1.3 3 3c0 1.7-1.3 3-3 3s-3-1.3-3-3z"></path>
+<path fill="#FFFFFF" d="M7.5 6c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path>
+<path fill="#FFFFFF" d="M16 3v-1h-0.6c0-0.2-0.1-0.4-0.2-0.5l0.4-0.4-0.7-0.7-0.4 0.4c-0.2-0.1-0.3-0.2-0.5-0.2v-0.6h-1v0.6c-0.2 0-0.4 0.1-0.5 0.2l-0.4-0.4-0.7 0.7 0.4 0.4c-0.1 0.2-0.2 0.3-0.2 0.5h-0.6v1h0.6c0 0.2 0.1 0.4 0.2 0.5l-0.4 0.4 0.7 0.7 0.4-0.4c0.2 0.1 0.3 0.2 0.5 0.2v0.6h1v-0.6c0.2 0 0.4-0.1 0.5-0.2l0.4 0.4 0.7-0.7-0.4-0.4c0.1-0.2 0.2-0.3 0.2-0.5h0.6zM13.5 3.5c-0.6 0-1-0.4-1-1s0.4-1 1-1 1 0.4 1 1c0 0.6-0.4 1-1 1z"></path>
+<path fill="#FFFFFF" d="M15.4 11.8c-0.1-0.3-0.2-0.6-0.4-0.9l0.3-0.6-0.7-0.7-0.5 0.4c-0.3-0.2-0.6-0.3-0.9-0.4l-0.2-0.6h-1l-0.2 0.6c-0.3 0.1-0.6 0.2-0.9 0.4l-0.6-0.3-0.7 0.7 0.3 0.6c-0.2 0.3-0.3 0.6-0.4 0.9l-0.5 0.1v1l0.6 0.2c0.1 0.3 0.2 0.6 0.4 0.9l-0.3 0.6 0.7 0.7 0.6-0.3c0.3 0.2 0.6 0.3 0.9 0.4l0.1 0.5h1l0.2-0.6c0.3-0.1 0.6-0.2 0.9-0.4l0.6 0.3 0.7-0.7-0.4-0.5c0.2-0.3 0.3-0.6 0.4-0.9l0.6-0.2v-1l-0.6-0.2zM12.5 14c-0.8 0-1.5-0.7-1.5-1.5s0.7-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/share-arrow.svg b/Samples/DebugLogViewer/icons/share-arrow.svg
new file mode 100644 (file)
index 0000000..e0eb246
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 3h-5.1c0 0-4.9 0-4.9 5 0 3.9 3 8 3 8s-1.7-7 1.8-7h5.2v3l6-6-6-6v3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/sign-out.svg b/Samples/DebugLogViewer/icons/sign-out.svg
new file mode 100644 (file)
index 0000000..c5951fc
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M9 4v-3h-9v14h9v-3h-1v2h-7v-12h7v2z"></path>
+<path fill="#FFFFFF" d="M16 8l-5-4v2h-5v4h5v2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/startup.svg b/Samples/DebugLogViewer/icons/startup.svg
new file mode 100644 (file)
index 0000000..6605f3c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 8l4.9 1.4h0.1v-0.1l7.1-5.3-1.1 1.2-6.2 6.6 0.2 3.2 2.9-3.2 2.1 4.2 6-16z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/stop.svg b/Samples/DebugLogViewer/icons/stop.svg
new file mode 100644 (file)
index 0000000..27d810a
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M1 1h14v14h-14v-14z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/text-file.svg b/Samples/DebugLogViewer/icons/text-file.svg
new file mode 100644 (file)
index 0000000..826bc32
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#dddddd" d="M4 7h8v1h-8v-1z"></path>
+<path fill="#dddddd" d="M4 9h8v1h-8v-1z"></path>
+<path fill="#dddddd" d="M4 11h8v1h-8v-1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/text-label.svg b/Samples/DebugLogViewer/icons/text-label.svg
new file mode 100644 (file)
index 0000000..8fa9196
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M12.5 4.9c-1.4 0-2.5 0.8-2.6 0.9l1.2 1.6c0 0 0.7-0.5 1.4-0.5 1.4 0 1.5 1.2 1.5 1.6-0.4-0.1-1.1-0.3-2-0.1-1.4 0.3-2.8 2-2.1 3.9 0.7 1.8 3.1 2.1 4.1 0.6v1h2v-5.3c0-2.7-1.9-3.7-3.5-3.7zM11.5 11.4c-0.1-1.9 1.5-1.9 2.5-1.8v1c0 1.2-2.3 2.3-2.5 0.8z"></path>
+<path fill="#FFFFFF" d="M6.9 14h2.1l-3.2-12h-2.7l-3.1 12h2.1l1-4h2.7l1.1 4zM3.6 8l0.8-3.2 0.9 3.2h-1.7z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Border.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Border.svg
new file mode 100644 (file)
index 0000000..09eb7ac
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 2v-2h-14v14h2v2h14v-14h-2zM13 13h-12v-12h12v12z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Button.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Button.svg
new file mode 100644 (file)
index 0000000..01f5c6c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15.7 5.3l-1-1c-0.2-0.2-0.4-0.3-0.7-0.3h-13c-0.6 0-1 0.4-1 1v5c0 0.3 0.1 0.6 0.3 0.7l1 1c0.2 0.2 0.4 0.3 0.7 0.3h13c0.6 0 1-0.4 1-1v-5c0-0.3-0.1-0.5-0.3-0.7zM14 10h-13v-5h13v5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.CheckBox.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.CheckBox.svg
new file mode 100644 (file)
index 0000000..2f0b083
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M13 0.9l-1 1.1h-12v14h14v-10.5l1.7-2-2.7-2.6zM6.5 11.7l-4.2-4.2 1.4-1.4 2.7 2.7 6.6-6.6 1.4 1.4-7.9 8.1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.ColorPicker.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.ColorPicker.svg
new file mode 100644 (file)
index 0000000..517a26a
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 1c-1.8-1.8-3.7-0.7-4.6 0.1-0.4 0.4-0.7 0.9-0.7 1.5v0c0 1.1-1.1 1.8-2.1 1.5l-0.1-0.1-0.7 0.8 0.7 0.7-6 6-0.8 2.3-0.7 0.7 1.5 1.5 0.8-0.8 2.3-0.8 6-6 0.7 0.7 0.7-0.6-0.1-0.2c-0.3-1 0.4-2.1 1.5-2.1v0c0.6 0 1.1-0.2 1.4-0.6 0.9-0.9 2-2.8 0.2-4.6zM3.9 13.6l-2 0.7-0.2 0.1 0.1-0.2 0.7-2 5.8-5.8 1.5 1.5-5.9 5.7z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.ComboBox.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.ComboBox.svg
new file mode 100644 (file)
index 0000000..1cb88fa
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 4h-14c-0.6 0-1 0.4-1 1v6c0 0.6 0.4 1 1 1h14c0.6 0 1-0.4 1-1v-6c0-0.6-0.4-1-1-1zM10 11h-9v-6h9v6zM13 8.4l-2-1.4h4l-2 1.4z"></path>
+<path fill="#dddddd" d="M2 6h1v4h-1v-4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Container.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Container.svg
new file mode 100644 (file)
index 0000000..d7d1dc8
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 1h-14v14h14v-14zM14 14h-12v-12h12v12z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.DirectoryView.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.DirectoryView.svg
new file mode 100644 (file)
index 0000000..9029469
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 6v-2h-7l-1-2h-4l-1 2h-1v11h14l2-9h-2zM14.9 7l-1.6 7-11.9-0.1 2.3-6.9h11.2zM1 5h0.6l1-2h2.6l1.2 2h6.6v1h-10l-2 5.9v-6.9z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Docker.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Docker.svg
new file mode 100644 (file)
index 0000000..e38a283
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 2v13h15v-13h-15zM13 3h1v1h-1v-1zM7 14h-6v-9h6v9zM14 14h-6v-9h6v9z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Expandable.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Expandable.svg
new file mode 100644 (file)
index 0000000..1c56d56
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 4h-14c-0.6 0-1 0.4-1 1v6c0 0.6 0.4 1 1 1h14c0.6 0 1-0.4 1-1v-6c0-0.6-0.4-1-1-1zM12 9l-2-2h4l-2 2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.FileDialog.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.FileDialog.svg
new file mode 100644 (file)
index 0000000..25142ea
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11 2h-6v4h6v-4zM9 4h-2v-1h2v1z"></path>
+<path fill="#dddddd" d="M3 0v16h2v-1h6v1h2v-16h-10zM12 14h-8v-6h8v6zM12 7h-8v-6h8v6z"></path>
+<path fill="#dddddd" d="M11 9h-6v4h6v-4zM9 11h-2v-1h2v1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Grid.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Grid.svg
new file mode 100644 (file)
index 0000000..6151f97
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 0v16h16v-16h-16zM5 15h-4v-4h4v4zM5 10h-4v-4h4v4zM5 5h-4v-4h4v4zM10 15h-4v-4h4v4zM10 10h-4v-4h4v4zM10 5h-4v-4h4v4zM15 15h-4v-4h4v4zM15 10h-4v-4h4v4zM15 5h-4v-4h4v4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Group.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Group.svg
new file mode 100644 (file)
index 0000000..eae67f6
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 7h7v-7h-7v7zM1 1h5v5h-5v-5z"></path>
+<path fill="#dddddd" d="M9 0v7h7v-7h-7zM15 6h-5v-5h5v5z"></path>
+<path fill="#dddddd" d="M0 16h7v-7h-7v7zM1 10h5v5h-5v-5z"></path>
+<path fill="#dddddd" d="M9 16h7v-7h-7v7zM10 10h5v5h-5v-5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.GroupBox.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.GroupBox.svg
new file mode 100644 (file)
index 0000000..e469779
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M1 4h-1v-4h4v1h-3z"></path>
+<path fill="#dddddd" d="M12 1v-1h4v4h-1v-3z"></path>
+<path fill="#dddddd" d="M15 12h1v4h-4v-1h3z"></path>
+<path fill="#dddddd" d="M4 15v1h-4v-4h1v3z"></path>
+<path fill="#dddddd" d="M13 3v10h-10v-10h10zM14 2h-12v12h12v-12z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.HorizontalStack.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.HorizontalStack.svg
new file mode 100644 (file)
index 0000000..f8e7025
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 0v16h16v-16h-16zM5 15h-4v-14h4v14zM10 15h-4v-14h4v14zM15 15h-4v-14h4v14z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.IMLContainer.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.IMLContainer.svg
new file mode 100644 (file)
index 0000000..b5687ba
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M5.2 14l4.5-12h1.1l-4.5 12z"></path>
+<path fill="#dddddd" d="M11.1 13h1.2l3.7-5-3.7-5h-1.3l3.8 5z"></path>
+<path fill="#dddddd" d="M4.9 13h-1.2l-3.7-5 3.7-5h1.3l-3.8 5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Image.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Image.svg
new file mode 100644 (file)
index 0000000..11356c0
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 14h-16v-12h16v12zM1 13h14v-10h-14v10z"></path>
+<path fill="#dddddd" d="M2 10v2h12v-1c0 0 0.2-1.7-2-2-1.9-0.3-2.2 0.6-3.8 0.6-1.1 0-0.9-1.6-3.2-1.6-1.7 0-3 2-3 2z"></path>
+<path fill="#dddddd" d="M13 6c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Label.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Label.svg
new file mode 100644 (file)
index 0000000..65bb85b
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M12.5 4.9c-1.4 0-2.5 0.8-2.6 0.9l1.2 1.6c0 0 0.7-0.5 1.4-0.5 1.4 0 1.5 1.2 1.5 1.6-0.4-0.1-1.1-0.3-2-0.1-1.4 0.3-2.8 2-2.1 3.9 0.7 1.8 3.1 2.1 4.1 0.6v1h2v-5.3c0-2.7-1.9-3.7-3.5-3.7zM11.5 11.4c-0.1-1.9 1.5-1.9 2.5-1.8v1c0 1.2-2.3 2.3-2.5 0.8z"></path>
+<path fill="#dddddd" d="M6.9 14h2.1l-3.2-12h-2.7l-3.1 12h2.1l1-4h2.7l1.1 4zM3.6 8l0.8-3.2 0.9 3.2h-1.7z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.ListBox.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.ListBox.svg
new file mode 100644 (file)
index 0000000..40d1673
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1h3v3h-3v-3z"></path>
+<path fill="#dddddd" d="M0 6h3v3h-3v-3z"></path>
+<path fill="#dddddd" d="M0 11h3v3h-3v-3z"></path>
+<path fill="#dddddd" d="M5 1h11v3h-11v-3z"></path>
+<path fill="#dddddd" d="M5 6h11v3h-11v-3z"></path>
+<path fill="#dddddd" d="M5 11h11v3h-11v-3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Menu.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Menu.svg
new file mode 100644 (file)
index 0000000..b6b2111
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 2v2h-9v-2h9zM16 1h-11v4h11v-4z"></path>
+<path fill="#dddddd" d="M0 1h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M15 7v2h-9v-2h9zM16 6h-11v4h11v-4z"></path>
+<path fill="#dddddd" d="M0 6h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M15 12v2h-9v-2h9zM16 11h-11v4h11v-4z"></path>
+<path fill="#dddddd" d="M0 11h4v4h-4v-4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.MenuItem.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.MenuItem.svg
new file mode 100644 (file)
index 0000000..c8bd847
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 7v2h-9v-2h9zM16 6h-11v4h11v-4z"></path>
+<path fill="#dddddd" d="M0 6h4v4h-4v-4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.MessageBox.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.MessageBox.svg
new file mode 100644 (file)
index 0000000..16ebd72
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z"></path>
+<path fill="#dddddd" d="M7 6h2v7h-2v-7z"></path>
+<path fill="#dddddd" d="M7 3h2v2h-2v-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.ProgressBar.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.ProgressBar.svg
new file mode 100644 (file)
index 0000000..884f185
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 5v6h16v-6h-16zM15 10h-14v-4h14v4z"></path>
+<path fill="#dddddd" d="M2 7h7v2h-7v-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.RadioButton.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.RadioButton.svg
new file mode 100644 (file)
index 0000000..6c33e84
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 4c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z"></path>
+<path fill="#dddddd" d="M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.ScrollBar.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.ScrollBar.svg
new file mode 100644 (file)
index 0000000..91a1f84
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M2 2h1v4h-1v-4z"></path>
+<path fill="#dddddd" d="M1 0c-0.6 0-1 0.4-1 1v14c0 0.6 0.4 1 1 1h15v-16h-15zM13 15h-12v-14h12v14zM15 15v0h-1v-1h1v1zM15 13h-1v-10h1v10zM15 2h-1v-1h1v1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Scroller.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Scroller.svg
new file mode 100644 (file)
index 0000000..bbc9719
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 0v16h16v-16h-16zM15 15h-14v-6h3v1l3-2-3-2v1h-3v-6h6v3h-1l2 3 2-3h-1v-3h6v14z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Shape.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Shape.svg
new file mode 100644 (file)
index 0000000..de5dd37
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0l-8 8 8 8 8-8-8-8zM2 8l6-6 6 6-6 6-6-6z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Slider.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Slider.svg
new file mode 100644 (file)
index 0000000..fe41c2b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 6h-3.6c-0.7-1.2-2-2-3.4-2s-2.8 0.8-3.4 2h-5.6v4h5.6c0.7 1.2 2 2 3.4 2s2.8-0.8 3.4-2h3.6v-4zM1 9v-2h4.1c0 0.3-0.1 0.7-0.1 1s0.1 0.7 0.1 1h-4.1zM9 11c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3c0 1.7-1.3 3-3 3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Spinner.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Spinner.svg
new file mode 100644 (file)
index 0000000..5fa848a
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11 7h-6l3-4z"></path>
+<path fill="#dddddd" d="M5 9h6l-3 4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Splitter.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Splitter.svg
new file mode 100644 (file)
index 0000000..9fcd9dd
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M7 0h2v16h-2v-16z"></path>
+<path fill="#dddddd" d="M3 5l-3 3 3 3v-2h3v-2h-3z"></path>
+<path fill="#dddddd" d="M16 8l-3-3v2h-3v2h3v2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.TabItem.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.TabItem.svg
new file mode 100644 (file)
index 0000000..a9aaed3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M7 4l-1-2h-4l-1 2h-1v11h16v-11h-9zM15 14h-14v-9h0.6l1-2h2.6l1.2 2h8.6v9z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.TabView.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.TabView.svg
new file mode 100644 (file)
index 0000000..942358b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 4v-2h-14v13h16v-11h-2zM10 3h3v1h-3v-1zM6 3h3v1h-3v-1zM15 14h-14v-11h4v2h10v9z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Table.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Table.svg
new file mode 100644 (file)
index 0000000..0b42122
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1v15h16v-15h-16zM5 15h-4v-2h4v2zM5 12h-4v-2h4v2zM5 9h-4v-2h4v2zM5 6h-4v-2h4v2zM10 15h-4v-2h4v2zM10 12h-4v-2h4v2zM10 9h-4v-2h4v2zM10 6h-4v-2h4v2zM15 15h-4v-2h4v2zM15 12h-4v-2h4v2zM15 9h-4v-2h4v2zM15 6h-4v-2h4v2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.TemplatedContainer.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.TemplatedContainer.svg
new file mode 100644 (file)
index 0000000..34a0aa2
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0l-8 2v10l8 4 8-4v-10l-8-2zM14.4 2.6l-5.9 2.2-6.6-2.2 6.1-1.6 6.4 1.6zM1 11.4v-8.1l7 2.4v9.2l-7-3.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.TemplatedGroup.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.TemplatedGroup.svg
new file mode 100644 (file)
index 0000000..14ea6f3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11 6.6v0-3.8l-4-1.8-4 1.8v4.2l-3 1.3v4.4l4 1.8 3.5-1.5 3.5 1.6 4-1.8v-4.5l-4-1.7zM7 2.1l2.8 1.2-2.7 1.1-2.6-1.2 2.5-1.1zM7 5v2.9l-3-1.3v-3l3 1.4zM4 13.5l-3-1.3v-3l3 1.4v2.9zM4 10l-2.6-1.2 2.6-1.1 2.8 1.2-2.8 1.1zM11 13.5l-3-1.3v-3l3 1.4v2.9zM11 10l-2.6-1.2 2.6-1.1 2.8 1.2-2.8 1.1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.TextBox.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.TextBox.svg
new file mode 100644 (file)
index 0000000..c1fc2bb
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 5c0-0.6-0.4-1-1-1h-14c-0.6 0-1 0.4-1 1v6c0 0.6 0.4 1 1 1h14c0.6 0 1-0.4 1-1v-6zM15 11h-14v-6h14v6z"></path>
+<path fill="#dddddd" d="M2 6h1v4h-1v-4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.TreeView.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.TreeView.svg
new file mode 100644 (file)
index 0000000..b863291
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 10v-4h-11v1h-2v-3h9v-4h-12v4h2v10h3v2h11v-4h-11v1h-2v-5h2v2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.VerticalStack.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.VerticalStack.svg
new file mode 100644 (file)
index 0000000..c3c3ec9
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 0h-16v16h16v-16zM1 5v-4h14v4h-14zM1 10v-4h14v4h-14zM1 15v-4h14v4h-14z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Window.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Window.svg
new file mode 100644 (file)
index 0000000..74b0a24
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 4v11h16v-14h-16v3zM14 2h1v1h-1v-1zM1 4h14v10h-14v-10z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/Crow.Wrapper.svg b/Samples/DebugLogViewer/icons/toolbox/Crow.Wrapper.svg
new file mode 100644 (file)
index 0000000..9e69e41
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 6h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M6 6h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M12 6h4v4h-4v-4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/bar-chart.svg b/Samples/DebugLogViewer/icons/toolbox/bar-chart.svg
new file mode 100644 (file)
index 0000000..ff86c96
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 15h15v1h-15v-1z"></path>
+<path fill="#dddddd" d="M0 11h3v3h-3v-3z"></path>
+<path fill="#dddddd" d="M4 9h3v5h-3v-5z"></path>
+<path fill="#dddddd" d="M8 5h3v9h-3v-9z"></path>
+<path fill="#dddddd" d="M12 0h3v14h-3v-14z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/bar-menu.svg b/Samples/DebugLogViewer/icons/toolbox/bar-menu.svg
new file mode 100644 (file)
index 0000000..87ec061
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1h16v3h-16v-3z"></path>
+<path fill="#dddddd" d="M0 6h16v3h-16v-3z"></path>
+<path fill="#dddddd" d="M0 11h16v3h-16v-3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/bullets.svg b/Samples/DebugLogViewer/icons/toolbox/bullets.svg
new file mode 100644 (file)
index 0000000..81fb1f0
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 2.5v0c0 0.8 0.7 1.5 1.5 1.5v0c0.8 0 1.5-0.7 1.5-1.5v0c0-0.8-0.7-1.5-1.5-1.5v0c-0.8 0-1.5 0.7-1.5 1.5z"></path>
+<path fill="#dddddd" d="M0 7.5v0c0 0.8 0.7 1.5 1.5 1.5v0c0.8 0 1.5-0.7 1.5-1.5v0c0-0.8-0.7-1.5-1.5-1.5v0c-0.8 0-1.5 0.7-1.5 1.5z"></path>
+<path fill="#dddddd" d="M0 12.5v0c0 0.8 0.7 1.5 1.5 1.5v0c0.8 0 1.5-0.7 1.5-1.5v0c0-0.8-0.7-1.5-1.5-1.5v0c-0.8 0-1.5 0.7-1.5 1.5z"></path>
+<path fill="#dddddd" d="M5 1h11v3h-11v-3z"></path>
+<path fill="#dddddd" d="M5 6h11v3h-11v-3z"></path>
+<path fill="#dddddd" d="M5 11h11v3h-11v-3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/calendar.svg b/Samples/DebugLogViewer/icons/toolbox/calendar.svg
new file mode 100644 (file)
index 0000000..9ceaa1e
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 1v3h-3v-3h-6v3h-3v-3h-2v15h16v-15h-2zM3 15h-2v-2h2v2zM3 12h-2v-2h2v2zM3 9h-2v-2h2v2zM6 15h-2v-2h2v2zM6 12h-2v-2h2v2zM6 9h-2v-2h2v2zM9 15h-2v-2h2v2zM9 12h-2v-2h2v2zM9 9h-2v-2h2v2zM12 15h-2v-2h2v2zM12 12h-2v-2h2v2zM12 9h-2v-2h2v2zM15 15h-2v-2h2v2zM15 12h-2v-2h2v2zM15 9h-2v-2h2v2z"></path>
+<path fill="#dddddd" d="M3 0h1v3h-1v-3z"></path>
+<path fill="#dddddd" d="M12 0h1v3h-1v-3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/check-square-1.svg b/Samples/DebugLogViewer/icons/toolbox/check-square-1.svg
new file mode 100644 (file)
index 0000000..e198007
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 6.2v7.8h-12v-12h10.5l1-1h-12.5v14h14v-9.8z"></path>
+<path fill="#dddddd" d="M7.9 10.9l-4.2-4.2 1.5-1.4 2.7 2.8 6.7-6.7 1.4 1.4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/database.svg b/Samples/DebugLogViewer/icons/toolbox/database.svg
new file mode 100644 (file)
index 0000000..65a8f06
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 2.5c0 0.828-2.686 1.5-6 1.5s-6-0.672-6-1.5c0-0.828 2.686-1.5 6-1.5s6 0.672 6 1.5z"></path>
+<path fill="#dddddd" d="M8 5c-3.3 0-6-0.7-6-1.5v3c0 0.8 2.7 1.5 6 1.5s6-0.7 6-1.5v-3c0 0.8-2.7 1.5-6 1.5z"></path>
+<path fill="#dddddd" d="M8 9c-3.3 0-6-0.7-6-1.5v3c0 0.8 2.7 1.5 6 1.5s6-0.7 6-1.5v-3c0 0.8-2.7 1.5-6 1.5z"></path>
+<path fill="#dddddd" d="M8 13c-3.3 0-6-0.7-6-1.5v3c0 0.8 2.7 1.5 6 1.5s6-0.7 6-1.5v-3c0 0.8-2.7 1.5-6 1.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/ellipsis.svg b/Samples/DebugLogViewer/icons/toolbox/ellipsis.svg
new file mode 100644 (file)
index 0000000..cff94cc
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M6 0h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M6 6h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M6 12h4v4h-4v-4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/grab.svg b/Samples/DebugLogViewer/icons/toolbox/grab.svg
new file mode 100644 (file)
index 0000000..25bc571
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M12.6 4c-0.2 0-0.4 0-0.6 0 0-0.2-0.2-0.6-0.4-0.8s-0.5-0.4-1.1-0.4c-0.2 0-0.4 0-0.6 0.1-0.1-0.2-0.2-0.3-0.3-0.5-0.2-0.2-0.5-0.4-1.1-0.4-0.8 0-1.2 0.5-1.4 1-0.1 0-0.3-0.1-0.5-0.1-0.5 0-0.8 0.2-1.1 0.4-0.5 0.6-0.5 1.4-0.5 1.5v0.4c-0.6 0-1.1 0.2-1.4 0.5-0.6 0.7-0.6 1.6-0.6 2.8 0 0.2 0 0.5 0 0.7 0 1.4 0.7 2.1 1.4 2.8l0.3 0.4c1.3 1.2 2.5 1.6 5.1 1.6 2.9 0 4.2-1.6 4.2-5.1v-2.5c0-0.7-0.2-2.1-1.4-2.4zM10.5 3.8c0.4 0 0.5 0.4 0.5 0.6v0.8c0 0.3 0.2 0.5 0.4 0.5 0.3 0 0.5-0.1 0.5-0.4 0 0 0-0.4 0.4-0.3 0.6 0.2 0.7 1.1 0.7 1.3 0 0 0 0 0 0v2.6c0 3.4-1.3 4.1-3.2 4.1-2.4 0-3.3-0.3-4.3-1.3-0.1-0.1-0.2-0.2-0.4-0.4-0.7-0.7-1.1-1.1-1.1-2.1 0-0.2 0-0.3 0-0.6 0-1 0-1.8 0.3-2.1 0.1-0.2 0.4-0.3 0.7-0.3v0.8l-0.3 1.2c0 0.1 0 0.1 0.1 0.1 0.1 0.1 0.2 0 0.2 0l1-1.2c0 0 0-0.1 0-0.1v-2c0-0.1 0-0.6 0.2-0.8 0.1-0.1 0.2-0.2 0.4-0.2 0.3 0 0.4 0.2 0.4 0.4v0.4c0 0.2 0.2 0.5 0.5 0.5s0.5-0.3 0.5-0.5v-1.3c0-0.1 0-0.5 0.5-0.5 0.3 0 0.5 0.2 0.5 0.5v1.2c0 0.3 0.2 0.6 0.5 0.6s0.5-0.3 0.5-0.5v-0.5c0-0.3 0.2-0.5 0.5-0.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/hash.svg b/Samples/DebugLogViewer/icons/toolbox/hash.svg
new file mode 100644 (file)
index 0000000..82196fb
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 6v-2h-2.6l0.6-2.8-2-0.4-0.7 3.2h-3l0.7-2.8-2-0.4-0.7 3.2h-3.3v2h2.9l-0.9 4h-3v2h2.6l-0.6 2.8 2 0.4 0.7-3.2h3l-0.7 2.8 2 0.4 0.7-3.2h3.3v-2h-2.9l0.9-4h3zM9 10h-3l1-4h3l-1 4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/line-list.svg b/Samples/DebugLogViewer/icons/toolbox/line-list.svg
new file mode 100644 (file)
index 0000000..ec15f7b
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1h3v2h-3v-2z"></path>
+<path fill="#dddddd" d="M0 5h3v2h-3v-2z"></path>
+<path fill="#dddddd" d="M0 9h3v2h-3v-2z"></path>
+<path fill="#dddddd" d="M0 13h3v2h-3v-2z"></path>
+<path fill="#dddddd" d="M4 1h12v2h-12v-2z"></path>
+<path fill="#dddddd" d="M4 5h12v2h-12v-2z"></path>
+<path fill="#dddddd" d="M4 9h12v2h-12v-2z"></path>
+<path fill="#dddddd" d="M4 13h12v2h-12v-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/list.svg b/Samples/DebugLogViewer/icons/toolbox/list.svg
new file mode 100644 (file)
index 0000000..9aad88f
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M4 0h12v4h-12v-4z"></path>
+<path fill="#dddddd" d="M4 6h12v4h-12v-4z"></path>
+<path fill="#dddddd" d="M4 12h12v4h-12v-4z"></path>
+<path fill="#dddddd" d="M1 0l-0.9 0.5 0.2 0.7 0.7-0.3v3.1h1v-4z"></path>
+<path fill="#dddddd" d="M2.2 13.9c0.3-0.2 0.5-0.5 0.5-0.8 0-0.5-0.4-1-1.3-1-0.5 0-1 0.1-1.2 0.3h-0.1l0.2 0.8 0.1-0.1c0.1-0.1 0.4-0.2 0.7-0.2s0.4 0.1 0.4 0.3c0 0.4-0.5 0.4-0.6 0.4h-0.4v0.7h0.4c0.3 0 0.6 0.1 0.6 0.4 0 0.2-0.2 0.4-0.6 0.4s-0.7-0.2-0.8-0.2l-0.1-0.1v0.9h0.1c0.2 0.2 0.6 0.3 1.1 0.3 1 0 1.6-0.5 1.6-1.2 0-0.4-0.2-0.8-0.6-0.9z"></path>
+<path fill="#dddddd" d="M0.1 6.4l0.3 1c0 0 0.7-0.6 1.2-0.3 1.1 0.8-1.6 2.4-1.6 2.4v0.5h3v-1h-1.2c0.6-0.5 1.2-1.2 1-1.9-0.5-1.9-2.7-0.7-2.7-0.7z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/modal-list.svg b/Samples/DebugLogViewer/icons/toolbox/modal-list.svg
new file mode 100644 (file)
index 0000000..f1d8f70
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 4v11h16v-14h-16v3zM14 2h1v1h-1v-1zM1 4h14v10h-14v-10z"></path>
+<path fill="#dddddd" d="M3 6h2v1h-2v-1z"></path>
+<path fill="#dddddd" d="M6 6h7v1h-7v-1z"></path>
+<path fill="#dddddd" d="M3 8h2v1h-2v-1z"></path>
+<path fill="#dddddd" d="M6 8h7v1h-7v-1z"></path>
+<path fill="#dddddd" d="M3 10h2v1h-2v-1z"></path>
+<path fill="#dddddd" d="M6 10h7v1h-7v-1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/options.svg b/Samples/DebugLogViewer/icons/toolbox/options.svg
new file mode 100644 (file)
index 0000000..a56f6be
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M5 3.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path>
+<path fill="#dddddd" d="M3.5 0c-1.9 0-3.5 1.6-3.5 3.5s1.6 3.5 3.5 3.5 3.5-1.6 3.5-3.5-1.6-3.5-3.5-3.5zM3.5 6c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5c0 1.4-1.1 2.5-2.5 2.5z"></path>
+<path fill="#dddddd" d="M3.5 8c-1.9 0-3.5 1.6-3.5 3.5s1.6 3.5 3.5 3.5 3.5-1.6 3.5-3.5c0-1.9-1.6-3.5-3.5-3.5zM3.5 14c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5c0 1.4-1.1 2.5-2.5 2.5z"></path>
+<path fill="#dddddd" d="M8 2h8v3h-8v-3z"></path>
+<path fill="#dddddd" d="M8 10h8v3h-8v-3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/package.svg b/Samples/DebugLogViewer/icons/toolbox/package.svg
new file mode 100644 (file)
index 0000000..07f8b37
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0l-8 2v10l8 4 8-4v-10l-8-2zM8 1l2.1 0.5-5.9 1.9-2.3-0.8 6.1-1.6zM8 14.9l-7-3.5v-8.1l3 1v3.4l1 0.3v-3.3l3 1v9.2zM8.5 4.8l-2.7-0.9 6.2-1.9 2.4 0.6-5.9 2.2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/padding.svg b/Samples/DebugLogViewer/icons/toolbox/padding.svg
new file mode 100644 (file)
index 0000000..d93b246
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 0v16h16v-16h-16zM15 3h-1v1h1v1h-1v1h1v1h-1v1h1v1h-1v1h1v1h-1v1h1v1h-1v1h1v1h-1v-1h-1v1h-1v-1h-1v1h-1v-1h-1v1h-1v-1h-1v1h-1v-1h-1v1h-1v-1h-1v1h-1v-1h-1v-1h1v-1h-1v-1h1v-1h-1v-1h1v-1h-1v-1h1v-1h-1v-1h1v-1h-1v-1h1v-1h-1v-1h1v1h1v-1h1v1h1v-1h1v1h1v-1h1v1h1v-1h1v1h1v-1h1v1h1v-1h1v1h1v1z"></path>
+<path fill="#dddddd" d="M3 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M4 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M6 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M5 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M7 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M9 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M8 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M10 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M11 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 5h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 4h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 7h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 6h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 9h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 8h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 11h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 10h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 13h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 4h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 5h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 6h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 7h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 8h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 9h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 10h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 11h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 13h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M4 11h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M4 13h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M5 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M6 13h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M7 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M9 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M8 13h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M11 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M10 13h1v1h-1v-1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/picture-file.svg b/Samples/DebugLogViewer/icons/toolbox/picture-file.svg
new file mode 100644 (file)
index 0000000..c45a6ad
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#dddddd" d="M4 11.5v2.5h8v-1.7c0 0 0.1-1.3-1.3-1.5-1.3-0.2-1.5 0.4-2.5 0.5-0.8 0-0.6-1.3-2.2-1.3-1.2 0-2 1.5-2 1.5z"></path>
+<path fill="#dddddd" d="M12 8.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/pointer.svg b/Samples/DebugLogViewer/icons/toolbox/pointer.svg
new file mode 100644 (file)
index 0000000..605c0e2
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11.6 5c-0.2 0-0.5 0-0.6 0 0-0.2-0.2-0.6-0.4-0.8s-0.6-0.4-1.1-0.4c-0.2 0-0.4 0-0.6 0.1-0.1-0.2-0.2-0.3-0.3-0.5-0.2-0.2-0.5-0.4-1.1-0.4-0.2 0-0.4 0-0.5 0.1v-1.7c0-0.6-0.4-1.4-1.4-1.4-0.4 0-0.8 0.2-1.1 0.4-0.5 0.6-0.5 1.4-0.5 1.4v4.3c-0.6 0.1-1.1 0.3-1.4 0.6-0.6 0.7-0.6 1.6-0.6 2.8 0 0.2 0 0.5 0 0.7 0 1.4 0.7 2.1 1.4 2.8l0.3 0.4c1.3 1.2 2.4 1.6 5.1 1.6 2.9 0 4.2-1.6 4.2-5.1v-2.5c0-0.7-0.2-2.1-1.4-2.4zM12 7.4v2.6c0 3.4-1.3 4.1-3.2 4.1-2.4 0-3.3-0.3-4.3-1.3-0.1-0.1-0.2-0.2-0.4-0.4-0.7-0.8-1.1-1.2-1.1-2.2 0-0.2 0-0.5 0-0.7 0-1 0-1.7 0.3-2.1 0.1-0.1 0.4-0.2 0.7-0.2v0.5l-0.3 1.5c0 0.1 0 0.1 0.1 0.2s0.2 0 0.2 0l1-1.2c0-0.1 0-0.2 0-0.2v-6.2c0-0.1 0-0.5 0.2-0.7 0.1 0 0.2-0.1 0.4-0.1 0.3 0 0.4 0.3 0.4 0.4v3.1c0 0 0 0 0 0v1.2c0 0.3 0.2 0.6 0.5 0.6s0.5-0.3 0.5-0.5v-1.3c0 0 0 0 0 0 0-0.1 0.1-0.5 0.5-0.5 0.3 0 0.5 0.1 0.5 0.4v1.3c0 0.3 0.2 0.6 0.5 0.6s0.5-0.3 0.5-0.5v-0.7c0-0.1 0.1-0.3 0.5-0.3 0.2 0 0.3 0.1 0.3 0.1 0.2 0.1 0.2 0.4 0.2 0.4v0.8c0 0.3 0.2 0.5 0.4 0.5 0.3 0 0.5-0.1 0.5-0.4 0-0.1 0.1-0.2 0.2-0.3 0 0 0.1 0 0.2 0 0.6 0.2 0.7 1.2 0.7 1.5 0-0.1 0-0.1 0 0z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/puzzle-piece.svg b/Samples/DebugLogViewer/icons/toolbox/puzzle-piece.svg
new file mode 100644 (file)
index 0000000..b09c47e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14.9 0.9c-1.1-1-2.5-1.3-3.1-0.4-0.7 1.1 0.5 1.7-0.3 2.5-0.5 0.6-2-0.8-2-0.8l-0.8-0.8-1.4 1.4c-0.6 0.7-2.1 1.5-2.6 1.1-0.7-0.6 0.1-1.8-0.5-2.6-0.7-1-2.1-0.8-3 0.3-1 1.1-1.4 2.4-0.5 3 1.1 0.7 1.9-0.3 2.7 0.5 0.4 0.4-0.2 1.7-0.5 2.1l-2.3 2.3 6.5 6.5 1.7-1.7c0.7-0.7 1.5-2 1.1-2.4-0.6-0.7-1.7 0.1-2.5-0.4-1-0.7-0.8-2 0.3-3s2.5-1.3 3.1-0.4c0.7 1.1-0.4 1.8 0.4 2.6 0.4 0.4 1.6-0.2 2-0.6l2.1-2.1-1.1-1.1c-0.6-0.6-1.9-2-1.4-2.5 0.6-0.7 1.7 0.2 2.5-0.4 0.9-0.8 0.6-2.1-0.4-3.1z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/refresh-file.svg b/Samples/DebugLogViewer/icons/toolbox/refresh-file.svg
new file mode 100644 (file)
index 0000000..248e420
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M10 0h-8v16h12v-12l-4-4zM13 15h-10v-14h6v4h4v10zM10 4v-3l3 3h-3z"></path>
+<path fill="#dddddd" d="M4.7 7.7l-0.7-0.7v3h3l-1.2-1.2c0.4-0.8 1.3-1.3 2.2-1.3 1.4 0 2.5 1.1 2.5 2.5h1.5c0-2.2-1.8-4-4-4-1.3 0-2.5 0.7-3.3 1.7z"></path>
+<path fill="#dddddd" d="M9.8 11.8c-0.5 0.5-1.1 0.8-1.8 0.7-1 0-1.9-0.6-2.3-1.5h-1.6c0.4 1.7 2 3 3.8 3 1.1 0 2.1-0.5 2.8-1.2l1.3 1.2v-3h-3l0.8 0.8z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/sliders.svg b/Samples/DebugLogViewer/icons/toolbox/sliders.svg
new file mode 100644 (file)
index 0000000..81f72d1
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M7 0h2v3h-2v-3z"></path>
+<path fill="#dddddd" d="M6 4v3h1v9h2v-9h1v-3z"></path>
+<path fill="#dddddd" d="M2 0h2v8h-2v-8z"></path>
+<path fill="#dddddd" d="M1 9v3h1v4h2v-4h1v-3z"></path>
+<path fill="#dddddd" d="M12 0h2v10h-2v-10z"></path>
+<path fill="#dddddd" d="M11 11v3h1v2h2v-2h1v-3z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/split-browser-1.svg b/Samples/DebugLogViewer/icons/toolbox/split-browser-1.svg
new file mode 100644 (file)
index 0000000..4dfd93a
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 15h15v-13h-15v13zM13 3h1v1h-1v-1zM14 14h-13v-4h13v4zM14 9h-13v-4h13v4z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/table.svg b/Samples/DebugLogViewer/icons/toolbox/table.svg
new file mode 100644 (file)
index 0000000..0b42122
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1v15h16v-15h-16zM5 15h-4v-2h4v2zM5 12h-4v-2h4v2zM5 9h-4v-2h4v2zM5 6h-4v-2h4v2zM10 15h-4v-2h4v2zM10 12h-4v-2h4v2zM10 9h-4v-2h4v2zM10 6h-4v-2h4v2zM15 15h-4v-2h4v2zM15 12h-4v-2h4v2zM15 9h-4v-2h4v2zM15 6h-4v-2h4v2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/tasks.svg b/Samples/DebugLogViewer/icons/toolbox/tasks.svg
new file mode 100644 (file)
index 0000000..8793c88
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M6 0h10v4h-10v-4z"></path>
+<path fill="#dddddd" d="M6 6h10v4h-10v-4z"></path>
+<path fill="#dddddd" d="M6 12h10v4h-10v-4z"></path>
+<path fill="#dddddd" d="M3 1v2h-2v-2h2zM4 0h-4v4h4v-4z"></path>
+<path fill="#dddddd" d="M3 13v2h-2v-2h2zM4 12h-4v4h4v-4z"></path>
+<path fill="#dddddd" d="M5.3 5.9l-0.6-0.8-0.9 0.9h-3.8v4h4v-2.8l1.3-1.3zM2.7 7l-0.7 0.7-0.8-0.7h1.5zM1 8.2l0.9 0.8h-0.9v-0.8zM3 9h-0.9l0.9-0.9v0.9z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/toolbox/warning.svg b/Samples/DebugLogViewer/icons/toolbox/warning.svg
new file mode 100644 (file)
index 0000000..f5a2573
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 1l-8 14h16l-8-14zM8 13c-0.6 0-1-0.4-1-1s0.4-1 1-1 1 0.4 1 1c0 0.6-0.4 1-1 1zM7 10v-4h2v4h-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/tools.svg b/Samples/DebugLogViewer/icons/tools.svg
new file mode 100644 (file)
index 0000000..5ad8a8d
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M10.3 8.2l-0.9 0.9 0.9 0.9-1.2 1.2 4.3 4.3c0.6 0.6 1.5 0.6 2.1 0s0.6-1.5 0-2.1l-5.2-5.2zM14.2 15c-0.4 0-0.8-0.3-0.8-0.8 0-0.4 0.3-0.8 0.8-0.8s0.8 0.3 0.8 0.8c0 0.5-0.3 0.8-0.8 0.8z"></path>
+<path fill="#dddddd" d="M3.6 8l0.9-0.6 1.5-1.7 0.9 0.9 0.9-0.9-0.1-0.1c0.2-0.5 0.3-1 0.3-1.6 0-2.2-1.8-4-4-4-0.6 0-1.1 0.1-1.6 0.3l2.9 2.9-2.1 2.1-2.9-2.9c-0.2 0.5-0.3 1-0.3 1.6 0 2.1 1.6 3.7 3.6 4z"></path>
+<path fill="#dddddd" d="M8 10.8l0.9-0.8-0.9-0.9 5.7-5.7 1.2-0.4 1.1-2.2-0.7-0.7-2.3 1-0.5 1.2-5.6 5.7-0.9-0.9-0.8 0.9c0 0 0.8 0.6-0.1 1.5-0.5 0.5-1.3-0.1-2.8 1.4-0.5 0.5-2.1 2.1-2.1 2.1s-0.6 1 0.6 2.2 2.2 0.6 2.2 0.6 1.6-1.6 2.1-2.1c1.4-1.4 0.9-2.3 1.3-2.7 0.9-0.9 1.6-0.2 1.6-0.2zM4.9 10.4l0.7 0.7-3.8 3.8-0.7-0.7z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/trash.svg b/Samples/DebugLogViewer/icons/trash.svg
new file mode 100644 (file)
index 0000000..e73a5e3
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M2 5v1h1v9c0 0 1.1 1 4.5 1s4.5-1 4.5-1v-9h1v-1h-11zM6 14h-1v-7h1v7zM8 14h-1v-7h1v7zM10 14h-1v-7h1v7z"></path>
+<path fill="#dddddd" d="M12 3c0 0 0-0.5-2-0.8v-0.7c0-0.8-0.7-1.5-1.5-1.5h-2c-0.8 0-1.5 0.7-1.5 1.5v0.7c-1.6 0.3-2 0.8-2 0.8h-1v1h11v-1h-1zM6 1.5c0-0.3 0.2-0.5 0.5-0.5h2c0.2 0 0.5 0.2 0.5 0.5v0.6c0-0.1-0.9-0.1-1.5-0.1s-1.1 0-1.5 0.1v-0.6z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/undo.svg b/Samples/DebugLogViewer/icons/undo.svg
new file mode 100644 (file)
index 0000000..f78f134
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 7.9l6-4.9v3c0 0 1.1 0 2 0 8 0 8 8 8 8s-1-4-7.8-4c-1.1 0-1.8 0-2.2 0v2.9l-6-5z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/zoom-in.svg b/Samples/DebugLogViewer/icons/zoom-in.svg
new file mode 100644 (file)
index 0000000..540a93b
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15.7 14.3l-4.2-4.2c-0.2-0.2-0.5-0.3-0.8-0.3 0.8-1 1.3-2.4 1.3-3.8 0-3.3-2.7-6-6-6s-6 2.7-6 6 2.7 6 6 6c1.4 0 2.8-0.5 3.8-1.4 0 0.3 0 0.6 0.3 0.8l4.2 4.2c0.2 0.2 0.5 0.3 0.7 0.3s0.5-0.1 0.7-0.3c0.4-0.3 0.4-0.9 0-1.3zM6 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"></path>
+<path fill="#dddddd" d="M7 3h-2v2h-2v2h2v2h2v-2h2v-2h-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/icons/zoom-out.svg b/Samples/DebugLogViewer/icons/zoom-out.svg
new file mode 100644 (file)
index 0000000..6bd256f
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15.7 14.3l-4.2-4.2c-0.2-0.2-0.5-0.3-0.8-0.3 0.8-1 1.3-2.4 1.3-3.8 0-3.3-2.7-6-6-6s-6 2.7-6 6 2.7 6 6 6c1.4 0 2.8-0.5 3.8-1.4 0 0.3 0 0.6 0.3 0.8l4.2 4.2c0.2 0.2 0.5 0.3 0.7 0.3s0.5-0.1 0.7-0.3c0.4-0.3 0.4-0.9 0-1.3zM6 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"></path>
+<path fill="#dddddd" d="M3 5h6v2h-6v-2z"></path>
+</svg>
diff --git a/Samples/DebugLogViewer/src/DbgEventWidget.cs b/Samples/DebugLogViewer/src/DbgEventWidget.cs
new file mode 100644 (file)
index 0000000..570cc2f
--- /dev/null
@@ -0,0 +1,161 @@
+// Copyright (c) 2025  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using Drawing2D;
+using Crow.DebugLogger;
+
+namespace Crow
+{
+       public class DbgEventView : TemplatedContainer {
+               DbgEvent evt;
+               public DbgEvent Event {
+                       get => evt;
+                       set {
+                               if (evt == value)
+                                       return;
+                               evt = value;
+                               NotifyValueChangedAuto (evt);
+                       }
+               }
+       }
+       public class DbgEventWidget : Widget
+       {
+               public DbgEventWidget (){}
+
+               DbgEvent evt, hoverEvt;
+               long ticksPerPixel;
+               double pixelPerTick;
+
+               object dataMutex = new object();
+
+               public DbgEvent Event {
+                       get => evt;
+                       set {
+                               if (evt == value)
+                                       return;
+                               lock (dataMutex)
+                                       evt = value;
+                               updatePixelPerTicks ();
+                               NotifyValueChangedAuto (evt);
+                               RegisterForRedraw ();
+                       }
+               }
+               public DbgEvent HoverEvent {
+                       get => hoverEvt;
+                       private set {
+                               if (hoverEvt == value)
+                                       return;
+                               lock (dataMutex)
+                                       evt = value;
+                               hoverEvt = value;
+                               NotifyValueChangedAuto (hoverEvt);
+                       }
+               }
+
+               [DefaultValue ("1000")]
+               public long TicksPerPixel {
+                       get => ticksPerPixel;
+                       set {
+                               if (ticksPerPixel == value)
+                                       return;
+                               ticksPerPixel = value;
+                               NotifyValueChangedAuto (ticksPerPixel);
+                               if (Width == Measure.Fit)
+                                       RegisterForLayouting (LayoutingType.Width);
+                       }
+               }
+
+               public override int measureRawSize (LayoutingType lt)
+               {
+                       updatePixelPerTicks ();
+                       if (lt == LayoutingType.Width)
+                               contentSize.Width = Event == null ? 0 : (int)Math.Max(pixelPerTick * Event.Duration, 2);
+                       
+                       return base.measureRawSize (lt);
+               }
+
+               public override void OnLayoutChanges (LayoutingType layoutType)
+               {
+                       if (layoutType == LayoutingType.Width)
+                               updatePixelPerTicks ();
+
+                       base.OnLayoutChanges (layoutType);
+               }
+
+               protected override void onDraw (IContext gr)
+               {
+                       lock (dataMutex) {
+
+                               if (Event == null) {
+                                       base.onDraw (gr);
+                                       return;
+                               }
+
+                               gr.LineWidth = 1;
+                               gr.SetDash (new double [] { 1.0, 3.0 }, 0);
+
+                               Rectangle cb = ClientRectangle;
+
+                               if (Event.Duration == 0) {
+                                       gr.SetSource (Event.Color);
+                                       gr.Rectangle (cb);
+                                       gr.Fill ();
+                                       return;
+                               }
+
+                               drawEvent (gr, cb.Height, Event);
+                       }
+               }
+               void drawEvent (IContext ctx, int h, DbgEvent dbge)
+               {
+                       double w = Math.Max(dbge.Duration * pixelPerTick, 2.0);
+                       double x = (dbge.begin - Event.begin) * pixelPerTick;
+
+                       ctx.Rectangle (x, 0, w, h);
+                       ctx.SetSource (dbge.Color);
+                       /*if (dbge.IsSelected) {
+                               ctx.FillPreserve ();
+                               ctx.SetSource (1, 1, 1);
+                               ctx.Stroke ();
+                       }else*/
+                               ctx.Fill ();
+
+                       if (dbge.Events == null)
+                               return;
+                       foreach (DbgEvent e in dbge.Events)
+                               drawEvent (ctx, h, e);
+               }
+
+               public override void onMouseMove (object sender, MouseMoveEventArgs e)
+               {
+                       if (Event != null) {
+                               Point m = ScreenPointToLocal (e.Position);
+                               long curTick = (long)(m.X / pixelPerTick) + Event.begin;
+                               HoverEvent = hoverEvent (Event, curTick);
+
+                               e.Handled = true;
+                       }                       
+                       base.onMouseMove (sender, e);
+               }
+
+               DbgEvent hoverEvent (DbgEvent hevt, long curTick){
+                       if (hevt.Events != null) {
+                               foreach (DbgEvent e in hevt.Events) {
+                                       if (curTick >= e.begin && curTick <= e.end)
+                                               return hoverEvent (e, curTick);
+                               }
+                       }
+                       return hevt;
+               }
+               void updatePixelPerTicks ()
+               {
+                       if (Width == Measure.Fit)
+                               pixelPerTick = 1.0 / ticksPerPixel;
+                       else
+                               pixelPerTick = Event == null ? 0 : (double)ClientRectangle.Width / Event.Duration;
+               }               
+       }
+}
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/src/DbgLogViewer.cs b/Samples/DebugLogViewer/src/DbgLogViewer.cs
new file mode 100644 (file)
index 0000000..265f031
--- /dev/null
@@ -0,0 +1,800 @@
+// Copyright (c) 2013-2025  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.IO;
+using System.Linq;
+using System.Threading.Tasks;
+using Drawing2D;
+using Crow.DebugLogger;
+using System.Diagnostics;
+
+namespace Crow
+{
+       public class DbgLogViewer : Widget
+       {
+               public static Dictionary<DbgEvtType, Color> colors;
+
+               #region CTOR
+               protected DbgLogViewer () : base(){}
+               public DbgLogViewer (Interface iface, string style = null) : base(iface, style){}
+               #endregion
+
+               FontExtents fe;
+
+
+               double xScale = 1.0/1024.0, yScale = 1.0, leftMargin, topMargin = 0.0;
+               DbgWidgetRecord curWidget, hoverWidget;
+               DbgEvent curEvent, hoverEvent;
+
+               IList<DbgEvent> events = new List<DbgEvent> ();
+               IList<DbgWidgetRecord> widgets = new List<DbgWidgetRecord> ();
+
+
+               public DbgEvtType Filter {
+                       get => Configuration.Global.Get<DbgEvtType> ("DbgLogViewFilter");
+                       set {
+                               if (Filter == value)
+                                       return;
+                               Configuration.Global.Set ("DbgLogViewFilter", value);
+                               NotifyValueChangedAuto(Filter);
+                               RegisterForGraphicUpdate();
+                       }
+               }
+               public IList<DbgEvent> Events {
+                       get => events;
+                       set {
+                               if (events == value)
+                                       return;
+                               events = value;
+                               NotifyValueChanged (nameof (Events), events);
+
+                               maxTicks = minTicks = 0;
+                               if (events != null && events.Count > 0) {
+                                       minTicks = long.MaxValue;
+                                       foreach (DbgEvent e in events) {
+                                               if (e.begin < minTicks)
+                                                       minTicks = e.begin;
+                                               if (e.end > maxTicks)
+                                                       maxTicks = e.end;
+                                       }
+                                       visibleTicks = maxTicks - minTicks;
+                                       XScale = (ClientRectangle.Width - leftMargin)/visibleTicks;
+                                       ScrollX = 0;
+                                       ScrollY = 0;
+                               } else {
+                                       maxTicks = 1;
+                                       XScale = 1.0/1024.0;
+                               }
+
+
+                               RegisterForGraphicUpdate ();
+                       }
+               }
+               public IList<DbgWidgetRecord> Widgets {
+                       get => widgets;
+                       set {
+                               if (widgets == value)
+                                       return;
+                               widgets = value;
+                               NotifyValueChanged (nameof (Widgets), widgets);
+                               updateMargins ();
+                               updateMaxScrollX ();
+                               updateMaxScrollY ();
+                       }
+               }
+               public DbgWidgetRecord CurrentWidget {
+                       get => curWidget;
+                       set {
+                               if (curWidget == value)
+                                       return;
+                               curWidget = value;
+                               NotifyValueChanged (nameof (CurrentWidget), curWidget);
+                               if (CurrentWidget == null)
+                                       return;
+                               if (CurrentWidget.listIndex < scrollY || CurrentWidget.listIndex > scrollY + visibleLines)
+                                       ScrollY = CurrentWidget.listIndex - (visibleLines / 2);
+
+                               currentLine = CurrentWidget.listIndex;
+                               RegisterForRedraw();
+                       }
+               }
+               public DbgEvent CurrentEvent {
+                       get => curEvent;
+                       set {
+                               if (curEvent == value)
+                                       return;
+                               /*if (curEvent != null)
+                                       curEvent.IsSelected = false;*/
+                               curEvent = value;
+                               if (curEvent != null) {
+                                       //curEvent.IsSelected = true;
+                                       if (curEvent is DbgWidgetEvent we) {
+                                               //CurrentWidget = Widgets [we.InstanceIndex];
+                                               hoverLine = we.InstanceIndex;
+                                       }
+                                       currentTick = curEvent.begin;
+                                       if (curEvent.begin > minTicks + ScrollX + visibleTicks ||
+                                               curEvent.end < minTicks + ScrollX)
+                                                       ScrollX = curEvent.begin - minTicks - visibleTicks / 2;
+                               }
+                               NotifyValueChanged (nameof (CurrentEvent), curEvent);
+                               RegisterForRedraw ();
+                       }
+               }
+               public DbgWidgetRecord HoverWidget {
+                       get => hoverWidget;
+                       internal set {
+                               if (hoverWidget == value)
+                                       return;
+                               hoverWidget = value;
+                               NotifyValueChanged (nameof (HoverWidget), hoverWidget);
+                       }
+               }
+
+               public DbgEvent HoverEvent {
+                       get => hoverEvent;
+                       set {
+                               if (hoverEvent == value)
+                                       return;
+                               hoverEvent = value;
+                               NotifyValueChanged (nameof (HoverEvent), hoverEvent);
+                               RegisterForRepaint ();
+                       }
+               }
+
+               long hoverTick = 0, currentTick, selStart = -1, selEnd = -1, minTicks = 0, maxTicks = 0, visibleTicks = 0;
+               int hoverLine = -1, currentLine = -1;
+               int visibleLines = 1;
+               Point mousePos;
+
+               public double XScale {
+                       get => xScale;
+                       set {
+                               if (xScale == value)
+                                       return;
+                               xScale = value;
+                               NotifyValueChanged ("XScale", xScale);
+                               updateVisibleTicks ();
+                               RegisterForGraphicUpdate ();
+                       }
+               }
+               public double YScale {
+                       get => yScale;
+                       set {
+                               if (yScale == value)
+                                       return;
+                               yScale = value;
+                               NotifyValueChanged ("YScale", yScale);
+                               RegisterForGraphicUpdate ();
+                       }
+               }
+               public override Font Font {
+                       get { return base.Font; }
+                       set {
+                               base.Font = value;
+                               using (IContext gr = IFace.Backend.CreateContext (IFace.MainSurface)) {
+                                       gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
+                                       gr.SetFontSize (Font.Size);
+
+                                       fe = gr.FontExtents;
+                               }
+                               updateMargins ();
+                       }
+               }
+               RectangleD getWidgetEvtBounds (DbgEvent evt, ref Rectangle cb, double penY) {
+                       double x = xScale * (evt.begin - minTicks - ScrollX);
+                       double w = Math.Max (Math.Max (2.0, 2.0 * xScale), (double)(evt.end - evt.begin) * xScale);
+                       if (x < 0.0) {
+                               w += x;
+                               x = 0.0;
+                       }
+                       x += leftMargin + cb.Left;
+                       double rightDiff = x + w - cb.Right;
+                       if (rightDiff > 0)
+                               w -= rightDiff;
+                       return new RectangleD(x, penY, w, fe.Height);
+               }
+               void drawEvents (IContext ctx, IList<DbgEvent> evts)
+               {
+                       if (evts == null || evts.Count == 0)
+                               return;
+                       Rectangle cb = ClientRectangle;
+
+                       foreach (DbgEvent evt in evts) {
+                               if ((evt.Category & currentFilter) == currentFilter) {
+                                       if (evt.end - minTicks <= ScrollX)
+                                               continue;
+                                       if (evt.begin - minTicks > ScrollX + visibleTicks)
+                                               break;
+                                       double penY = topMargin + ClientRectangle.Top;
+
+                                       if (evt.type.HasFlag (DbgEvtType.Widget)) {
+                                               DbgWidgetEvent eW = evt as DbgWidgetEvent;
+                                               int lIdx = eW.InstanceIndex - ScrollY;
+                                               if (lIdx >= 0 && lIdx <= visibleLines) {
+
+                                                       penY += (lIdx) * fe.Height;
+
+                                                       ctx.SetSource (evt.Color);
+                                                       RectangleD r = getWidgetEvtBounds (evt, ref cb, penY);
+                                                       if (r.Width > 0){
+                                                               ctx.Rectangle (r.X,r.Y,r.Width,r.Height);
+                                                               ctx.Fill ();
+                                                       }
+                                               }
+                                       } else if (evt.type.HasFlag (DbgEvtType.IFace)) {
+                                               double x = xScale * (evt.begin - minTicks - ScrollX);
+                                               double w = Math.Max (Math.Max (2.0, 2.0 * xScale), (double)(evt.end - evt.begin) * xScale);
+                                               if (x < 0.0) {
+                                                       w += x;
+                                                       x = 0.0;
+                                               }
+                                               x += leftMargin + cb.Left;
+                                               double rightDiff = x + w - cb.Right;
+                                               if (rightDiff > 0)
+                                                       w -= rightDiff;
+                                               //ctx.SetSource (0.9,0.9,0.0,0.1);
+                                               ctx.SetSource (evt.Color.AdjustAlpha(0.13));
+                                               ctx.Rectangle (x, cb.Top + topMargin, w, cb.Height);
+                                               ctx.Fill ();
+                                       }
+                               }
+                               drawEvents (ctx, evt.Events);
+                       }
+               }
+
+               DbgEvtType currentFilter;
+               protected override void onDraw (IContext gr)
+               {
+                       base.onDraw (gr);
+
+                       gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
+                       gr.SetFontSize (Font.Size);
+
+                       if (widgets == null)
+                               return;
+
+                       gr.LineWidth = 1.0;
+
+                       Rectangle cb = ClientRectangle;
+
+                       double penY = topMargin + ClientRectangle.Top;
+
+                       for (int i = 0; i < visibleLines; i++) {
+                               if (i + ScrollY >= widgets.Count)
+                                       break;
+                               int gIdx = i + ScrollY;
+                               DbgWidgetRecord g = widgets [gIdx];
+
+                               penY += fe.Height;
+
+                               gr.SetSource (Colors.Jet);
+                               gr.MoveTo (cb.X, penY - 0.5);
+                               gr.LineTo (cb.Right, penY - 0.5);
+                               gr.Stroke ();
+
+                               double penX = 5.0 * g.xLevel + cb.Left;
+
+                               if (g.xLevel == 0)
+                                       gr.SetSource (Colors.LightSalmon);
+                               else if (currentLine == g.listIndex)
+                                       gr.SetSource(Colors.RoyalBlue);
+                               else
+                                       Foreground.SetAsSource (IFace, gr);
+
+                               gr.MoveTo (penX, penY - gr.FontExtents.Descent);
+                               gr.ShowText (g.name + gIdx);
+                       }
+
+                       currentFilter = Filter;
+                       drawEvents (gr, events);
+
+                       gr.MoveTo (cb.Left, topMargin - 0.5 + cb.Top);
+                       gr.LineTo (cb.Right, topMargin - 0.5 + cb.Top);
+
+                       gr.MoveTo (leftMargin + cb.Left, cb.Top);
+                       gr.LineTo (leftMargin + cb.Left, cb.Bottom);
+                       gr.SetSource (Colors.Grey);
+
+                       penY = topMargin + ClientRectangle.Top;
+
+                       //graduation
+                       long largeGrad = long.Parse ("1" + new string ('0', visibleTicks.ToString ().Length - 1));
+                       long smallGrad = Math.Max (1, largeGrad / 10);
+
+                       long firstVisibleTicks = minTicks + ScrollX;
+                       long curGrad = firstVisibleTicks - firstVisibleTicks % smallGrad + smallGrad;
+
+                       long gg = curGrad - ScrollX - minTicks;
+                       while (gg < visibleTicks ) {
+                               double x = (double)gg * xScale + leftMargin + cb.Left;
+
+                               gr.MoveTo (x, penY - 0.5);
+                               if (curGrad % largeGrad == 0) {
+                                       gr.LineTo (x, penY - 8.5);
+                                       string str = ticksToMS(curGrad);
+                                       TextExtents te = gr.TextExtents (str);
+                                       gr.RelMoveTo (-0.5 * te.Width, -2.0);
+                                       gr.ShowText (str);
+                               }else
+                                       gr.LineTo (x, penY - 2.5);
+
+                               curGrad += smallGrad;
+                               gg = curGrad - ScrollX - minTicks;
+                       }
+
+                       gr.Stroke ();
+
+
+
+               }
+               string ticksToMS(long ticks) => Math.Round ((double)ticks / Stopwatch.Frequency * 1000.0, 2).ToString();
+               public override bool Paint (IContext ctx)
+               {
+                       base.Paint (ctx);
+
+                       Rectangle r = new Rectangle(mousePos.X, 0, 1, Slot.Height);
+                       Rectangle ctxR = ContextCoordinates (r);
+                       Rectangle cb = ClientRectangle;
+                       ctx.LineWidth = 1.0;
+                       if (hoverTick >= 0) {
+                               double x = xScale * (hoverTick - minTicks - ScrollX) + leftMargin;
+                               if (x - Math.Truncate (x) > 0.5)
+                                       x = Math.Truncate (x) + 0.5;
+                               else
+                                       x = Math.Truncate (x) - 0.5;
+                               ctx.MoveTo (x, cb.Top + topMargin - 4.0);
+                               ctx.LineTo (x, cb.Bottom);
+                               ctx.SetSource (0.7,0.7,0.7,0.5);
+                               ctx.Stroke();
+                       }
+                       if (currentTick >= 0) {
+                               double x = xScale * (currentTick - minTicks - ScrollX) + leftMargin;
+                               if (x > leftMargin && x < cb.Right) {
+                                       if (x - Math.Truncate (x) > 0.5)
+                                               x = Math.Truncate (x) + 0.5;
+                                       else
+                                               x = Math.Truncate (x) - 0.5;
+                                       ctx.MoveTo (x, cb.Top);
+                                       ctx.LineTo (x, cb.Bottom);
+                                       ctx.SetSource (0.2,0.7,1.0,0.6);
+                                       ctx.Stroke();
+                               }
+                       }
+
+                       ctx.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
+                       ctx.SetFontSize (Font.Size);
+
+                       string str = ticksToMS(hoverTick);
+
+                       ctx.MoveTo (ctxR.X - ctx.TextExtents (str).Width / 2, ctxR.Y + fe.Height);
+                       ctx.ShowText (str);
+
+                       ctx.Operator = Operator.Add;
+
+                       if (hoverLine >= 0) {
+                               double y = fe.Height * (hoverLine - ScrollY) + topMargin + cb.Top;
+                               r = new Rectangle (cb.Left,  (int)y, cb.Width, (int)fe.Height);
+
+                               ctx.SetSource (0.1, 0.1, 0.1, 0.4);
+                               ctx.Rectangle (ContextCoordinates (r));
+                               ctx.Fill ();
+
+                               if (hoverEvent is DbgWidgetEvent wevt) {
+                                       ctx.SetSource (1.0,1.0,1.0,0.7);
+                                       ctx.SetDash (new double[] {1, 2});
+                                       ctx.Rectangle ((Rectangle)getWidgetEvtBounds (wevt, ref cb, y).Inflated (1), 1);
+                               }
+                       }
+
+                       if (currentLine >= ScrollY && currentLine < scrollY + visibleLines) {
+                               double y = fe.Height * (currentLine - ScrollY) + topMargin + cb.Top;
+                               r = new Rectangle (cb.Left,  (int)y, cb.Width, (int)fe.Height);
+
+                               ctx.SetSource (0.1, 0.1, 0.7, 0.2);
+                               ctx.Rectangle (ContextCoordinates (r));
+                               ctx.Fill ();
+                       }
+
+                       if (selStart < 0 || selEnd < 0) {
+                               ctx.Operator = Operator.Over;
+                               return true;
+                       }
+                       double selStartX = (double)(selStart - ScrollX - minTicks) * xScale + leftMargin + cb.Left;
+                       double selEndX = (double)(selEnd - ScrollX - minTicks) * xScale + leftMargin + cb.Left;
+
+                       if (selStartX < selEndX) {
+                               ctxR.X = (int)selStartX;
+                               ctxR.Width = (int)(selEndX - selStartX);
+                       } else {
+                               ctxR.X = (int)selEndX;
+                               ctxR.Width = (int)(selStartX - selEndX);
+                       }
+
+                       ctxR.Width = Math.Max (1, ctxR.Width);
+                       ctx.Rectangle (ctxR);
+                       ctx.SetSource (0.0,0.2,0.8,0.15);
+                       //ctx.SetSource (Colors.Jet);
+                       ctx.Fill();
+                       ctx.Operator = Operator.Over;
+
+                       str = $"{ticksToMS(Math.Abs (selEnd - selStart))} (ms)";
+
+                       ctx.MoveTo (ctxR.Center.X - ctx.TextExtents (str).Width / 2, ctxR.Y + fe.Height);
+                       ctx.SetSource (Colors.Black);
+                       ctx.ShowText (str);
+
+                       return true;
+               }
+               public override void OnLayoutChanges (LayoutingType layoutType)
+               {
+                       base.OnLayoutChanges (layoutType);
+                       switch (layoutType) {
+                       case LayoutingType.Width:
+                               if (xScale < 0) {
+                                       visibleTicks = maxTicks - minTicks;
+                                       XScale = (ClientRectangle.Width - leftMargin) / visibleTicks;
+                               }
+                               updateVisibleTicks ();
+                               break;
+                       case LayoutingType.Height:
+                               updateVisibleLines ();
+                               break;
+                       }
+               }
+
+               public override void onMouseLeave (object sender, MouseMoveEventArgs e)
+               {
+                       base.onMouseLeave (sender, e);
+                       hoverLine = -1;
+                       hoverTick = 0;
+               }
+               public override void onMouseMove (object sender, MouseMoveEventArgs e)
+               {
+                       long lastTick = hoverTick;
+                       int lastLine = hoverLine;
+                       updateMouseLocalPos (e.Position);
+
+                       if ((IFace.IsDown (Glfw.MouseButton.Left) || IFace.IsDown (Glfw.MouseButton.Middle)) && selStart >= 0)
+                               selEnd = hoverTick;
+                       else if (IFace.IsDown(Glfw.MouseButton.Right)) {
+                               if (lastTick >= 0 && hoverTick >= 0)
+                                       ScrollX += lastTick - hoverTick;
+                               if (lastLine >= 0 && hoverLine >= 0)
+                                       ScrollY += lastLine - hoverLine;
+                               updateMouseLocalPos (e.Position);
+                       } else if (widgets != null) {
+                               HoverWidget = (hoverLine < 0 || hoverLine >= widgets.Count) ? null : widgets [hoverLine];
+                               //HoverEvent = hoverWidget?.Events.FirstOrDefault (ev => ev.begin <= hoverTick && ev.end >= hoverTick);
+                               double tickPerPixel = (double)visibleTicks / ClientRectangle.Width;
+                               //Console.WriteLine ($"ticks per pixel: {tickPerPixel}");
+                               Task.Run (() => findHoverEvent (hoverWidget, hoverTick, (int)tickPerPixel));
+                       }
+
+                       RegisterForRepaint();
+
+                       e.Handled = true;
+                       base.onMouseMove (sender, e);
+               }
+               void findHoverEvent (DbgWidgetRecord widget, long tick, long precision = 0) {
+                       DbgEvent tmp = widget?.Events.FirstOrDefault (ev => ev.begin - precision <= tick && ev.end + precision >= tick);
+                       if (tmp == null) {
+                               tmp = Events.Where(e=>e.type.HasFlag(DbgEvtType.IFace)).Where (ev => ev.begin - precision <= tick && ev.end + precision >= tick).FirstOrDefault();
+                               while(tmp != null) {
+                                       DbgEvent che = tmp.Events?.Where(e=>e.type.HasFlag(DbgEvtType.IFace)).Where (ev => ev.begin - precision <= tick && ev.end + precision >= tick).FirstOrDefault();
+                                       if (che == null)
+                                               break;
+                                       tmp = che;
+                               }
+                       } else {
+                               while(tmp != null) {
+                                       DbgEvent che = tmp.Events?.OfType<DbgWidgetEvent>()?.Where(ev=>ev.InstanceIndex == widget.listIndex && ev.begin - precision <= tick && ev.end + precision >= tick).FirstOrDefault();
+                                       if (che == null)
+                                               break;
+                                       tmp = che;
+                               }
+                       }
+                       HoverEvent = tmp;
+               }
+               public override void onMouseClick(object sender, MouseButtonEventArgs e)
+               {
+                       if (e.Button == Glfw.MouseButton.Left) {
+                               if (selEnd < 0) {
+                                       currentTick = hoverTick;
+                                       currentLine = hoverLine;
+                                       CurrentWidget = hoverWidget;
+                                       CurrentEvent = hoverEvent;
+                               }
+                               selStart = -1;
+                               selEnd = -1;
+                       }
+
+                       e.Handled = true;
+                       base.onMouseClick(sender, e);
+               }
+               public override void onMouseDown (object sender, MouseButtonEventArgs e)
+               {
+                       if (e.Button == Glfw.MouseButton.Left || e.Button == Glfw.MouseButton.Middle) {
+                               selStart = hoverTick;
+                               selEnd = -1;
+                       }
+
+                       RegisterForRedraw ();
+                       e.Handled = true;
+                       base.onMouseDown (sender, e);
+               }
+               public override void onMouseUp (object sender, MouseButtonEventArgs e)
+               {
+
+                       if (e.Button == Glfw.MouseButton.Left && selEnd > 0 && selEnd != selStart) {
+                               long scrX = 0;
+                               if (selStart < selEnd) {
+                                       visibleTicks = selEnd - selStart;
+                                       scrX = selStart - minTicks;
+                               } else {
+                                       visibleTicks = selStart - selEnd;
+                                       scrX = selEnd - minTicks;
+                               }
+                               XScale = (ClientRectangle.Width - leftMargin) / visibleTicks;
+                               ScrollX = scrX;
+                       }
+
+                       RegisterForRedraw ();
+                       e.Handled = true;
+                       base.onMouseUp (sender, e);
+               }
+
+               /// <summary> Process scrolling vertically, or if shift is down, vertically </summary>
+               public override void onMouseWheel (object sender, MouseWheelEventArgs e)
+               {
+                       //base.onMouseWheel (sender, e);
+
+                       if (IFace.Shift)
+                               ScrollX -= (int)((double)(e.Delta * MouseWheelSpeed) / xScale);
+                       else if (IFace.Ctrl)
+                               ScrollY -= e.Delta * MouseWheelSpeed;
+                       else {
+                               if (e.Delta > 0) {
+                                       XScale *= 2.0;
+                               } else {
+                                       if (MaxScrollX > 0)
+                                               XScale *= 0.5;
+                               }
+                               ScrollX = (long)(hoverTick - (long)((double)Math.Max(0, mousePos.X - (long)leftMargin) / xScale) - minTicks);
+                       }
+               }
+
+               public override void onKeyDown (object sender, KeyEventArgs e)
+               {
+                       base.onKeyDown (sender, e);
+
+                       if (e.Key == Glfw.Key.F3) {
+                               if (selEnd < 0)
+                                       return;
+                               if (selEnd < selStart)
+                                       zoom (selEnd, selStart);
+                               else
+                                       zoom (selStart, selEnd);
+                               selEnd = selStart = -1;
+                       }
+               }
+
+               void updateMargins ()
+               {
+                       leftMargin = topMargin = 0.0;
+
+                       if (widgets == null)
+                               return;
+
+                       using (IContext gr = IFace.Backend.CreateContext (IFace.MainSurface)) {
+                               gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
+                               gr.SetFontSize (Font.Size);
+                               
+                               double maxNameWidth = 0.0;
+
+                               foreach (DbgWidgetRecord o in widgets) {
+                                       double nameWidth = gr.TextExtents (o.name).Width + 5.0 * o.xLevel;
+                                       if (nameWidth > maxNameWidth)
+                                               maxNameWidth = nameWidth;
+                               }
+
+                               leftMargin = 10.5 + maxNameWidth;
+                               topMargin = 2.0 * fe.Height;
+
+                               RegisterForGraphicUpdate ();
+                       }
+               }
+
+               void updateVisibleLines ()
+               {
+                       visibleLines = fe.Height < 1 ? 1 : (int)Math.Ceiling (((double)ClientRectangle.Height - topMargin) / fe.Height);
+                       NotifyValueChanged ("VisibleLines", visibleLines);
+                       updateMaxScrollY ();
+               }
+               void updateVisibleTicks ()
+               {
+                       visibleTicks = Math.Max (0, (long)((double)(ClientRectangle.Width - leftMargin) / XScale));
+                       NotifyValueChanged ("VisibleTicks", visibleTicks);
+                       updateMaxScrollX ();
+               }
+
+               void updateMaxScrollX ()
+               {
+                       if (widgets == null) {
+                               MaxScrollX = 0;
+                       } else {
+                               long tot = maxTicks - minTicks;
+                               MaxScrollX = Math.Max (0L, tot - visibleTicks);
+                               NotifyValueChanged ("ChildWidthRatio", (double)visibleTicks / tot);
+                       }
+               }
+               void updateMaxScrollY ()
+               {
+                       if (widgets == null)
+                               MaxScrollY = 0;
+                       else {
+                               MaxScrollY = Math.Max (0, widgets.Count + 1 - visibleLines);
+                               NotifyValueChanged ("ChildHeightRatio", (double)visibleLines / (widgets.Count + 1));
+                       }
+               }
+
+               void updateMouseLocalPos (Point mPos)
+               {
+                       Rectangle r = ScreenCoordinates (Slot);
+                       Rectangle cb = ClientRectangle;
+                       cb.Left += (int)leftMargin;
+                       cb.Width -= (int)leftMargin;
+                       cb.Y += (int)topMargin;
+                       cb.Height -= (int)topMargin;
+
+                       mousePos = mPos - r.Position;
+
+                       mousePos.X = Math.Max (cb.X, mousePos.X);
+                       mousePos.X = Math.Min (cb.Right, mousePos.X);
+
+                       if (mousePos.Y < cb.Top || mousePos.Y > cb.Bottom)
+                               hoverLine = -1;
+                       else
+                               hoverLine = (int)((double)(mousePos.Y - cb.Top) / fe.Height) + ScrollY;
+
+                       NotifyValueChanged ("CurrentLine", hoverLine);
+
+                       mousePos.Y = Math.Max (cb.Y, mousePos.Y);
+                       mousePos.Y = Math.Min (cb.Bottom, mousePos.Y);
+
+                       hoverTick = (long)((double)(mousePos.X - cb.X) / xScale) + minTicks + ScrollX;
+                       RegisterForRedraw ();
+               }
+               void zoom (long start, long end) {
+                       //Rectangle cb = ClientRectangle;
+                       //cb.X += (int)leftMargin;
+                       XScale = ((double)ClientRectangle.Width - leftMargin)/(end - start);
+                       ScrollX = (int)(start - minTicks);
+               }
+
+
+               long scrollX, maxScrollX;
+               int scrollY, maxScrollY, mouseWheelSpeed;
+
+               /// <summary>
+               /// if true, key stroke are handled in derrived class
+               /// </summary>
+               protected bool KeyEventsOverrides = false;
+
+               /// <summary> Horizontal Scrolling Position </summary>
+               [DefaultValue(0)]
+               public virtual long ScrollX {
+                       get => scrollX;
+                       set {
+                               if (scrollX == value)
+                                       return;
+
+                               long newS = value;
+                               if (newS < 0)
+                                       newS = 0;
+                               else if (newS > maxScrollX)
+                                       newS = maxScrollX;
+
+                               if (newS == scrollX)
+                                       return;
+
+                               scrollX = newS;
+
+                               NotifyValueChangedAuto (scrollX);
+                               RegisterForGraphicUpdate ();
+                       }
+               }
+               /// <summary> Vertical Scrolling Position </summary>
+               [DefaultValue(0)]
+               public virtual int ScrollY {
+                       get => scrollY;
+                       set {
+                               if (scrollY == value)
+                                       return;
+
+                               int newS = value;
+                               if (newS < 0)
+                                       newS = 0;
+                               else if (newS > maxScrollY)
+                                       newS = maxScrollY;
+
+                               if (newS == scrollY)
+                                       return;
+
+                               scrollY = newS;
+
+                               NotifyValueChangedAuto (scrollY);
+                               RegisterForGraphicUpdate ();
+
+                               if (widgets == null)
+                                       return;
+
+                               Rectangle cb = ClientRectangle;
+                               cb.Left += (int)leftMargin;
+                               cb.Width -= (int)leftMargin;
+                               cb.Y += (int)topMargin;
+                               cb.Height -= (int)topMargin;
+
+                               if (mousePos.Y < cb.Top || mousePos.Y > cb.Bottom)
+                                       hoverLine = -1;
+                               else
+                                       hoverLine = (int)((double)(mousePos.Y - cb.Top) / fe.Height) + ScrollY;
+
+                               NotifyValueChanged ("CurrentLine", hoverLine);
+                       }
+               }
+               /// <summary> Horizontal Scrolling maximum value </summary>
+               [DefaultValue(0)]
+               public virtual long MaxScrollX {
+                       get => maxScrollX;
+                       set {
+                               if (maxScrollX == value)
+                                       return;
+
+                               maxScrollX = Math.Max(0, value);
+
+                               if (scrollX > maxScrollX)
+                                       ScrollX = maxScrollX;
+
+                               NotifyValueChangedAuto (maxScrollX);
+                               RegisterForGraphicUpdate ();
+                       }
+               }
+               /// <summary> Vertical Scrolling maximum value </summary>
+               [DefaultValue(0)]
+               public virtual int MaxScrollY {
+                       get => maxScrollY;
+                       set {
+                               if (maxScrollY == value)
+                                       return;
+
+                               maxScrollY = Math.Max (0, value);
+
+                               if (scrollY > maxScrollY)
+                                       ScrollY = maxScrollY;
+
+                               NotifyValueChangedAuto (maxScrollY);
+                               RegisterForGraphicUpdate ();
+                       }
+               }
+               /// <summary> Mouse Wheel Scrolling multiplier </summary>
+               [DefaultValue(1)]
+               public virtual int MouseWheelSpeed {
+                       get => mouseWheelSpeed;
+                       set {
+                               if (mouseWheelSpeed == value)
+                                       return;
+
+                               mouseWheelSpeed = value;
+
+                               NotifyValueChangedAuto (mouseWheelSpeed);
+                       }
+               }
+       }
+}
+
+
diff --git a/Samples/DebugLogViewer/src/main.cs b/Samples/DebugLogViewer/src/main.cs
new file mode 100644 (file)
index 0000000..ac1c9d3
--- /dev/null
@@ -0,0 +1,281 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using Crow;
+using Crow.DebugLogger;
+using Drawing2D;
+using Glfw;
+using Samples;
+
+namespace DebugLogViewer
+{
+       class DebugLogViewer : Interface {
+               static void Main (string[] args) {
+                       using (DebugLogViewer app = new DebugLogViewer ())
+                               app.Run ();
+               }
+
+               public DebugLogViewer () : base (Configuration.Global.Get<int>("MainWinWidth", 800), Configuration.Global.Get<int>("MainWinHeight", 600), true) { }
+               public override void ProcessResize(Rectangle bounds)
+               {
+                       base.ProcessResize(bounds);
+                       Configuration.Global.Set ("MainWinWidth", clientRectangle.Width);
+                       Configuration.Global.Set ("MainWinHeight", clientRectangle.Height);
+                       //Console.WriteLine($"{clientRectangle.Width}x{clientRectangle.Height}");
+               }
+               protected override void OnInitialized () {
+                       base.OnInitialized ();
+
+                       initCommands ();
+
+                       SetWindowIcon ("#Crow.Icons.crow.png");
+
+                       if (ReopenLastLog)
+                               loadLog(CurrentLogFilePath);
+
+                       Load ("#ui.main.crow").DataSource = this;
+               }
+
+               #region Commands
+               public Command CMDQuit, CMDHelp, CMDAbout, CMDOptions;
+               public Command CMDStartRecording, CMDStopRecording, CMDRefresh, CMDAddEventToRecord, CMDRemoveEventToRecord;
+               public Command CMDGotoParentEvent, CMDEventHistoryForward, CMDEventHistoryBackward;
+               public CommandGroup LoggerCommands => new CommandGroup (CMDRefresh, CMDStartRecording, CMDStopRecording);
+               public CommandGroup EventCommands => new CommandGroup(
+                               CMDGotoParentEvent, CMDEventHistoryBackward, CMDEventHistoryForward);
+               public CommandGroup CommandsRoot, FileCommands;
+
+               void initCommands ()
+               {
+                       FileCommands = new CommandGroup ("File",
+                               new ActionCommand("Open Log...", openFileDialog, "#icons.outbox.svg"),
+                               new ActionCommand("Options", openOptionsDialog, "#icons.tools.svg"),
+                               new ActionCommand("Quit", base.Quit, "#icons.sign-out.svg")
+                       );
+                       
+
+                       CMDGotoParentEvent = new ActionCommand("parent", ()=> { CurrentEvent = CurrentEvent?.parentEvent; }, "#icons.level-up.svg", false);
+                       CMDEventHistoryBackward = new ActionCommand("back.", currentEventHistoryGoBack, "#icons.previous.svg", false);
+                       CMDEventHistoryForward = new ActionCommand("forw.", currentEventHistoryGoForward, "#icons.forward-arrow.svg", false);
+
+                       CMDHelp = new ActionCommand("Help", () => System.Diagnostics.Debug.WriteLine("help"), "#icons.question.svg");
+
+                       CommandsRoot = new CommandGroup (
+                               FileCommands,
+                               new CommandGroup ("Help", CMDHelp)
+                       );
+               }
+               void openOptionsDialog() =>     Load ("#ui.Options.crow").DataSource = this;
+               void openFileDialog() =>
+                       LoadIMLFragment (
+                               @"<FileDialog Width='60%' Height='50%' Caption='Open Log File' AlwaysOnTop='true'
+                                       CurrentDirectory='{²CurrentDir}'
+                                       SelectedFile='{²CurrentLogFileName}'
+                                       OkClicked='openFileDialog_OkClicked'/>").DataSource = this;
+
+               void openFileDialog_OkClicked (object sender, EventArgs e)
+               {
+                       loadLog (CurrentLogFilePath);
+               }
+
+               #endregion
+
+
+               IList<DbgEvent> events;
+               IList<DbgWidgetRecord> widgets;
+
+               public string CurrentDir {
+                       get => Configuration.Global.Get<string>("CurrentDir", Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments));
+                       set {
+                               if (CurrentDir == value)
+                                       return;
+                               Configuration.Global.Set ("CurrentDir", value);
+                               NotifyValueChanged (CurrentDir);
+                       }
+               }
+               public string CurrentLogFileName {
+                       get => Configuration.Global.Get<string> ("CurrentLogFileName");
+                       set {
+                               if (CurrentLogFileName == value)
+                                       return;
+                               Configuration.Global.Set ("CurrentLogFileName", value);
+                               NotifyValueChanged (value);
+                       }
+               }
+               public string CurrentLogFilePath => Path.Combine(CurrentDir,CurrentLogFileName);
+               public bool ReopenLastLog
+               {
+                       get => Configuration.Global.Get<bool> ("ReopenLastLog", true); 
+                       set {
+                               if (ReopenLastLog == value)
+                                       return;
+                               Configuration.Global.Set ("ReopenLastLog", value);
+                               NotifyValueChanged (value);
+                       }
+               }
+               
+               public IList<DbgEvent> Events {
+                       get => events;
+                       set {
+                               if (events == value)
+                                       return;
+                               events = value;
+                               NotifyValueChanged (nameof (Events), events);
+                       }
+               }
+               public IList<DbgWidgetRecord> Widgets {
+                       get => widgets;
+                       set {
+                               if (widgets == value)
+                                       return;
+                               widgets = value;
+                               NotifyValueChanged (nameof (Widgets), widgets);
+                       }
+               }
+
+               void loadLog (string logFile) {
+                       if (!File.Exists(logFile))
+                               return;
+                       //lock(UpdateMutex) {
+                               using (Stream stream = new FileStream (logFile, FileMode.Open, FileAccess.Read)) {
+                                       List<DbgWidgetRecord> widgets = new List<DbgWidgetRecord>();
+                                       List<DbgEvent> events = new List<DbgEvent>();
+                                       DbgLogger.Load (stream, events, widgets);
+
+                                       for (int i = 0; i < widgets.Count; i++) {
+                                               widgets[i].listIndex = i;
+                                               //Widgets.Add   (widgets[i]);
+                                       }
+                                       for (int i = 0; i < events.Count; i++) {
+                                               //Events.Add (events[i]);
+                                               updateWidgetEvents (widgets, events[i]);
+                                       }
+                               
+                                       Events = events;
+                                       Widgets = widgets;
+                               }
+                       //}
+               }
+               void updateWidgetEvents (IList<DbgWidgetRecord> widgets, DbgEvent evt) {
+                       if (evt is DbgWidgetEvent we)
+                               widgets.FirstOrDefault (w => w.InstanceIndex == we.InstanceIndex)?.Events.Add (we);
+                       if (evt.Events == null)
+                               return;
+                       foreach (DbgEvent e in evt.Events)
+                               updateWidgetEvents (widgets, e);
+               }
+               void saveLogToDebugLogFilePath () {
+
+               }
+               void loadLogFromDebugLogFilePath () {
+
+               }
+
+               DbgEvent curEvent;
+               bool disableCurrentEventHistory;
+               Stack<DbgEvent> CurrentEventHistoryForward = new Stack<DbgEvent>();
+               Stack<DbgEvent> CurrentEventHistoryBackward = new Stack<DbgEvent>();
+               DbgWidgetRecord curWidgetRecord = new DbgWidgetRecord();
+               public string[] AllEventTypes => Enum.GetNames (typeof(DbgEvtType));
+               string searchEventType;
+               DbgWidgetRecord searchWidget;
+               public string SearchEventType {
+                       get => searchEventType;
+                       set {
+                               if (searchEventType == value)
+                                       return;
+                               searchEventType = value;
+                               NotifyValueChanged (searchEventType);
+                       }
+               }
+               public DbgWidgetRecord SearchWidget {
+                       get => searchWidget;
+                       set {
+                               if (searchWidget == value)
+                                       return;
+                               searchWidget = value;
+                               NotifyValueChanged (searchWidget);
+                       }
+               }
+               
+               public DbgEvent CurrentEvent {
+                       get => curEvent;
+                       set {
+                               if (curEvent == value)
+                                       return;
+
+                               if (!disableCurrentEventHistory) {
+                                       CurrentEventHistoryForward.Clear ();
+                                       CMDEventHistoryForward.CanExecute = false;
+                                       if (!(value == null || curEvent == null)) {
+                                               CurrentEventHistoryBackward.Push (curEvent);
+                                               CMDEventHistoryBackward.CanExecute = true;
+                                       }
+                               }
+
+                               curEvent = value;
+
+                               NotifyValueChanged (nameof (CurrentEvent), curEvent);
+                               NotifyValueChanged ("CurEventChildEvents", curEvent?.Events);
+                               NotifyValueChanged ("CurWidgetProperties", CurWidgetProperties);
+
+                               if (CurrentEvent != null && CurrentEvent.parentEvent != null)
+                                       CMDGotoParentEvent.CanExecute = true;
+                               else
+                                       CMDGotoParentEvent.CanExecute = false;
+                       }
+               }
+               public DbgWidgetRecord CurrentWidget {
+                       get => curWidgetRecord;
+                       set {
+                               if (curWidgetRecord == value)
+                                       return;
+                               curWidgetRecord = value;
+                               NotifyValueChanged ("CurrentWidget", curWidgetRecord);
+                               NotifyValueChanged ("CurWidgetRootEvents", curWidgetRecord?.RootEvents);
+                               NotifyValueChanged ("CurrentWidgetEvents", curWidgetRecord?.Events);
+                               NotifyValueChanged ("CurWidgetProperties", CurWidgetProperties);
+                       }
+               }
+               public List<DbgWidgetEvent> CurWidgetRootEvents => curWidgetRecord == null? new List<DbgWidgetEvent>() : curWidgetRecord.RootEvents;
+
+               public IEnumerable<KeyValuePair<string, string>> CurWidgetProperties {
+                       get {
+                               if (curWidgetRecord == null)
+                                       return null;
+                               long endTime = curEvent == null ? long.MaxValue : curEvent.end;
+                               Dictionary<string, string> result = new Dictionary<string, string> ();
+                               foreach (DbgWidgetEvent evt in curWidgetRecord?.Events?.Where (e => e.type == DbgEvtType.GOSetProperty && e.begin <= endTime)){
+                                       string[] tmp = evt.Message.Split('=');
+                                       if (result.ContainsKey (tmp[0]))
+                                               result[tmp[0]] = tmp[1];
+                                       else
+                                               result.Add (tmp[0], tmp[1]);
+                               }
+                               return result;
+                       }
+               }
+
+               void currentEventHistoryGoBack () {
+                       disableCurrentEventHistory = true;
+                       if (CurrentEvent != null) {
+                               CurrentEventHistoryForward.Push (CurrentEvent);
+                               CMDEventHistoryForward.CanExecute = true;
+                       }
+                       CurrentEvent = CurrentEventHistoryBackward.Pop ();
+                       CMDEventHistoryBackward.CanExecute = CurrentEventHistoryBackward.Count > 0;
+
+                       disableCurrentEventHistory = false;
+               }
+               void currentEventHistoryGoForward () {
+                       disableCurrentEventHistory = true;
+                       CurrentEventHistoryBackward.Push (CurrentEvent);
+                       CMDEventHistoryBackward.CanExecute = true;
+                       CurrentEvent = CurrentEventHistoryForward.Pop ();
+                       CMDEventHistoryForward.CanExecute = CurrentEventHistoryForward.Count > 0;
+
+                       disableCurrentEventHistory = false;
+               }
+       }
+}
diff --git a/Samples/DebugLogViewer/ui/CrowEdit.style b/Samples/DebugLogViewer/ui/CrowEdit.style
new file mode 100644 (file)
index 0000000..eccf2c6
--- /dev/null
@@ -0,0 +1,141 @@
+SmallUIFont = "sans, 12";
+SmallFont = "consolas, 12";
+InactiveTabBackground = "DarkGrey";
+SelectedTabBackground = "Onyx";
+InactiveTabForeground = "Grey";
+SelectedTabForeground = "White";
+MenuIconSize = "22";
+
+ControlForeground = "LightGrey";
+ControlCaptionHoverColor = "White";
+
+ControlHighlight = "RoyalBlue";
+ControlIdle = "Jet";
+
+DockWindowBackground = "DarkGrey";
+
+TreeItemBorderCornerRadius     = "0";
+TreeItemBorderFG                       = "Transparent";
+TreeItemBorderHighlightFG      = "DimGrey";
+TreeItemBackground                     = "Transparent";
+//TreeItemHighlight                    = "
+
+TxtInFileDialog {
+       Margin = "2";
+       Font = "mono, 14";
+}
+
+Editor {
+       Focusable="true";
+       Height="Stretched";
+       Width="Stretched";
+       Background="White";
+       Foreground="Black";
+       MouseWheelSpeed = "20";
+       BubbleEvents ="None";
+       ClipToClientRect = "true";
+       MouseCursor = "ibeam";
+       CacheEnabled = "true";
+}
+
+icon {
+       Width="14";
+       Height="14";
+}
+MemberViewLabel {
+       Margin="1";
+       Height="Fit";
+       Width="50%";
+       Background="White";
+}
+MemberViewHStack {
+       Focusable="true";
+       Height="Fit";
+       Spacing="1";
+       MouseEnter="{Background=SteelBlue}";
+       MouseLeave="{Background=Transparent}";
+}
+
+IcoBut {
+       Template = "#ui.IcoBut.template";
+       MinimumSize = "10,10";
+       Width = "32";
+       Height = "32";
+}
+Spinner {
+       Template = "#ui.spinner.template";
+}
+TreeIcon {
+       Width="16";
+       Height="16";
+}
+TreeIconSmall {
+       Width="12";
+       Height="12";
+}
+TreeLabel {
+       Foreground="White";
+       Margin = "1";
+}
+TreeLabel2 {
+       Foreground="Black";
+       Background="LightGrey";
+       Margin = "1";
+       Font = "sans, 9";
+}
+
+Splitter {
+       Thickness="1";
+       Background="Transparent";
+       Hover="{Background=White}";
+       Unhover="{Background=Transparent}";
+}
+
+MenuItem {
+       Template = "#ui.MenuItem.template";
+}
+
+MenuIcon {
+       Margin = "1";
+       Width = "${MenuIconSize}";
+       Height = "${MenuIconSize}";
+}
+
+EnumSelector {
+       Template = "#ui.EnumSelector.template";
+       ItemStyle = "CheckBoxEvtType";
+}
+CheckBox {
+       Template= "#Crow.CheckBox2.template";
+       Width = "Stretched";
+       Height = "Fit";
+       CornerRadius = "2";
+       Background = "${ControlIdle}";
+       Foreground = "${ControlForeground}";
+       Checked = "{Background=${ControlHighlight}}";
+       Unchecked = "{Background=${ControlIdle}}";
+       MouseEnter = "{Foreground=${ControlCaptionHoverColor}}";
+       MouseLeave = "{Foreground=${ControlForeground}}";
+}
+StateBox {
+       Template= "#Crow.CheckBox2.template";
+       Width = "Stretched";
+       Height = "Fit";
+       CornerRadius = "2";
+       Background = "${ControlIdle}";
+       Foreground = "${ControlForeground}";
+       Checked = "{Background=Green}";
+       Unchecked = "{Background=DarkRed}";
+       Focusable = "false";
+}
+StateBoxSmall {
+       Template= "#ui.SimpleStatus.template";
+       Checked = "{Background=Green}";
+       Unchecked = "{Background=DarkRed}";
+       Focusable = "false";
+       Background = "DarkRed";
+       Foreground = "${ControlForeground}";
+       Width = "Fit";
+       Height = "Fit";
+}
+
diff --git a/Samples/DebugLogViewer/ui/DbgEventTreeItems.itemp b/Samples/DebugLogViewer/ui/DbgEventTreeItems.itemp
new file mode 100644 (file)
index 0000000..1267fa5
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ItemTemplate Data="Events">
+       <ListItem Height="Fit"
+                                               Selected="{/exp.Background=${ControlHighlight}}"
+                                               Unselected="{/exp.Background=Transparent}">
+               <Expandable Name="exp" Caption="{type}" MouseDoubleClick="/onClickForExpand" CacheEnabled="true" BubbleEvents="All">
+                       <Template>
+                                       <VerticalStack>
+                                               <Border CornerRadius="2" Margin="0" Height="Fit" MouseDoubleClick="./onClickForExpand"
+                                                               Foreground="Transparent"
+                                                               Background="{./Background}"
+                                                               MouseEnter="{Foreground=DimGrey}"
+                                                               MouseLeave="{Foreground=Transparent}">
+                                                       <HorizontalStack Spacing="2" >
+                                                               <Image Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
+                                                                       Path="{./Image}"
+                                                                       Visible="{HasChildEvents}"
+                                                                       SvgSub="{./IsExpanded}"
+                                                                       MouseEnter="{Background=LightGrey}"
+                                                                       MouseLeave="{Background=Transparent}"/>
+                                                               <Label Text="{./Caption}" Width="80" Font="mono, 8" />
+                                                               <Label Text="{DurationMS}" Width="40" Font="mono, 8" TextAlignment="Center" Background="DimGrey"/>
+                                                               <DbgEventWidget Event="{}" Tooltip="#ui.DbgEvtTooltip.crow" Width="Stretched" Height="5"/>
+                                                       </HorizontalStack>
+                                               </Border>
+                                               <Container Name="Content" Visible="false"/>
+                                       </VerticalStack>
+                       </Template>
+                       <HorizontalStack Height="Fit">
+                               <Widget Width="12" Height="10"/>
+                               <VerticalStack Height="Fit" Name="ItemsContainer"/>
+                       </HorizontalStack>
+               </Expandable>
+       </ListItem>
+</ItemTemplate>                
+<ItemTemplate Data="Events" DataType="DbgWidgetEvent">
+       <ListItem  Height="Fit"
+                                               Selected="{/exp.Background=${ControlHighlight}}"
+                                               Unselected="{/exp.Background=Transparent}">
+               <Expandable Name="exp" Caption="{type}" MouseDoubleClick="/onClickForExpand" CacheEnabled="true" BubbleEvents="All">
+                       <Template>
+                               <VerticalStack>
+                                       <Border CornerRadius="2" Margin="0" Height="Fit" MouseDoubleClick="./onClickForExpand"
+                                                       Foreground="Transparent"
+                                                       Background="{./Background}"
+                                                       MouseEnter="{Foreground=DimGrey}"
+                                                       MouseLeave="{Foreground=Transparent}">
+                                               <HorizontalStack Spacing="2" >
+                                                       <Image Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
+                                                               Path="{./Image}"
+                                                               Visible="{HasChildEvents}"
+                                                               SvgSub="{./IsExpanded}"
+                                                               MouseEnter="{Background=LightGrey}"
+                                                               MouseLeave="{Background=Transparent}"/>
+                                                       <Label Text="{./Caption}" Width="80" Font="mono, 8" />
+                                                       <Label Text="{DurationMS}" Width="40" Font="mono, 8" TextAlignment="Center" Background="DimGrey"/>
+                                                       <Label Text="{InstanceIndex}" Width="40" Font="mono, 8" TextAlignment="Center" Background="DimGrey"/>
+                                                       <DbgEventWidget Event="{}" Tooltip="#ui.DbgEvtTooltip.crow" Width="Stretched" Height="5"/>
+                                               </HorizontalStack>
+                                       </Border>
+                                       <Container Name="Content" Visible="false"/>
+                               </VerticalStack>
+                       </Template>
+                       <HorizontalStack Height="Fit">
+                               <Widget Width="12" Height="10"/>
+                               <VerticalStack Height="Fit" Name="ItemsContainer"/>
+                       </HorizontalStack>
+               </Expandable>
+       </ListItem>
+</ItemTemplate>                
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/ui/DbgEventView.template b/Samples/DebugLogViewer/ui/DbgEventView.template
new file mode 100644 (file)
index 0000000..8b6f548
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<VerticalStack Margin="${TooltipMargin}" DataSource="{./Event}">
+       <Label Text="{type}" Background="{Color}" Foreground="Black" Width="200" TextAlignment="Center" Margin="6"/>
+       <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Visible="{IsWidgetEvent}" Background="DimGrey" Margin="2">
+               <Label Text="Instance:" Foreground="White" Width="50%" />       
+               <Label Text="{InstanceIndex}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Center"/>                           
+       </HorizontalStack>
+       <Label Text="{Message}" Foreground="White" Background="Onyx" Width="Stretched" Visible="{HasMessage}" Margin="2" Tooltip="{}"/>                 
+       <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Background="DimGrey" Margin="2">
+               <Label Text="Duration(ms):" Foreground="White" Width="50%" />   
+               <Label Text="{DurationMS}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Right"/>                               
+       </HorizontalStack>
+       <HorizontalStack Height="Fit" Width="Stretched" Spacing="2">
+               <Label Text="Begin(s):" Foreground="${TooltipForeground}" Width="50%"/> 
+               <Label Text="{BeginMS}" Foreground="${TooltipForeground}" Width="Stretched" TextAlignment="Right"/>                             
+       </HorizontalStack>
+       <HorizontalStack Height="Fit" Width="Stretched" Spacing="2">
+               <Label Text="End(s):" Foreground="${TooltipForeground}" Width="50%"/>   
+               <Label Text="{EndMS}" Foreground="${TooltipForeground}" Width="Stretched" TextAlignment="Right"/>                               
+       </HorizontalStack>
+       <VerticalStack Height="Fit" Width="Stretched" IsVisible="{IsLayoutEvent}" >
+               <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Background="DimGrey" Margin="2">
+                       <Label Text="Layout:" Foreground="White" Width="50%" /> 
+                       <Label Text="{layouting}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Center"/>                               
+               </HorizontalStack>
+               <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Background="DimGrey" Margin="2">
+                       <Label Text="Result:" Foreground="White" Width="50%" /> 
+                       <Label Text="{result}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Center"/>                          
+               </HorizontalStack>
+               <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Background="DimGrey" Margin="2">
+                       <Label Text="Old Slot:" Foreground="White" Width="50%" />       
+                       <Label Text="{OldSlot}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Center"/>                         
+               </HorizontalStack>
+               <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Background="DimGrey" Margin="2">
+                       <Label Text="New Slot:" Foreground="White" Width="50%" />       
+                       <Label Text="{NewSlot}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Center"/>                         
+               </HorizontalStack>
+       </VerticalStack>
+       <DbgEventWidget Height="10" Width="Stretched" Event="{}" Tooltip="#ui.DbgEvtTooltip.crow" />
+       <GroupBox Caption="Parent Event" Height="Fit" >
+               <DbgEventWidget Height="10" Width="Stretched" Event="{parentEvent}" Tooltip="#ui.DbgEvtTooltip.crow" />
+       </GroupBox>
+       <!--<Label Text="{}" Foreground="${TooltipForeground}"/>-->
+</VerticalStack>                                       
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/ui/DbgEvtTooltip.crow b/Samples/DebugLogViewer/ui/DbgEvtTooltip.crow
new file mode 100644 (file)
index 0000000..a336924
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<Border Fit="true" Foreground="${TooltipForeground}" Background="${TooltipBackground}">
+       <VerticalStack Fit="true" Margin="${TooltipMargin}" DataSource="{HoverEvent}">
+               <Label Text="{type}" Background="{Color}" Foreground="Black" Width="200" TextAlignment="Center" Margin="6"/>
+               <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Visible="{IsWidgetEvent}" Background="DimGrey" Margin="2">
+                       <Label Text="Instance:" Foreground="White" Width="50%" />       
+                       <Label Text="{InstanceIndex}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Center"/>                           
+               </HorizontalStack>
+               <Label Text="{Message}" Foreground="White" Background="Onyx" Width="Stretched" Visible="{HasMessage}" Margin="2" Tooltip="{}"/>                 
+               <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Background="DimGrey" Margin="2">
+                       <Label Text="Duration:" Foreground="White" Width="50%" />       
+                       <Label Text="{DurationMS}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Right"/>                               
+               </HorizontalStack>
+               <HorizontalStack Height="Fit" Width="Stretched" Spacing="2">
+                       <Label Text="Begin:" Foreground="${TooltipForeground}" Width="50%"/>    
+                       <Label Text="{BeginMS}" Foreground="${TooltipForeground}" Width="Stretched" TextAlignment="Right"/>                             
+               </HorizontalStack>
+               <HorizontalStack Height="Fit" Width="Stretched" Spacing="2">
+                       <Label Text="End:" Foreground="${TooltipForeground}" Width="50%"/>      
+                       <Label Text="{EndMS}" Foreground="${TooltipForeground}" Width="Stretched" TextAlignment="Right"/>                               
+               </HorizontalStack>
+               <VerticalStack Height="Fit" Width="Stretched" IsVisible="{IsLayoutEvent}" >
+                       <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Background="DimGrey" Margin="2">
+                               <Label Text="Layout:" Foreground="White" Width="50%" /> 
+                               <Label Text="{layouting}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Center"/>                               
+                       </HorizontalStack>
+                       <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Background="DimGrey" Margin="2">
+                               <Label Text="Result:" Foreground="White" Width="50%" /> 
+                               <Label Text="{result}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Center"/>                          
+                       </HorizontalStack>
+                       <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Background="DimGrey" Margin="2">
+                               <Label Text="Old Slot:" Foreground="White" Width="50%" />       
+                               <Label Text="{OldSlot}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Center"/>                         
+                       </HorizontalStack>
+                       <HorizontalStack Height="Fit" Width="Stretched" Spacing="2" Background="DimGrey" Margin="2">
+                               <Label Text="New Slot:" Foreground="White" Width="50%" />       
+                               <Label Text="{NewSlot}" Foreground="White" Background="Onyx" Width="Stretched" TextAlignment="Center"/>                         
+                       </HorizontalStack>
+               </VerticalStack>                
+               <!--<Label Text="{}" Foreground="${TooltipForeground}"/>-->
+       </VerticalStack>
+</Border>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/ui/DbgWidgetEventListItems.itemp b/Samples/DebugLogViewer/ui/DbgWidgetEventListItems.itemp
new file mode 100644 (file)
index 0000000..d7a397a
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ListItem Height="Fit"
+       Selected="{Background=${ControlHighlight}}"
+       Unselected="{Background=Transparent}">
+               <HorizontalStack Spacing="2" >
+                       <Label Text="{BeginMS}" Width="70" TextAlignment="Right" Background="DimGrey"/>
+                       <Label Text="{type}" Width="160" Background="{Color}" Foreground="Black"/>
+                       <Label Text="{Message}" Width="Stretched" />
+                       <Label Text="{DurationMS}" Width="70" TextAlignment="Right" Background="DimGrey"/>
+               </HorizontalStack>
+</ListItem>
diff --git a/Samples/DebugLogViewer/ui/EnumSelector.template b/Samples/DebugLogViewer/ui/EnumSelector.template
new file mode 100644 (file)
index 0000000..3472ec0
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!--<Popper >
+       <Template>
+               <HorizontalStack Background="{../../Background}" Margin="5" Spacing="10">
+                       <Label Text="{../../../Caption}" Width="Stretched"/>
+                       <Label Background="SeaGreen" Text="{../../../EnumValue}" Margin="3" Width="Stretched"/>
+               </HorizontalStack>
+       </Template>     
+       <Wrapper Name="Content" Height="300" Width="Fit" Background="Jet" Orientation="Horizontal" />   
+</Popper>-->
+<Border Style="ControlBorder" Background="{./Background}" CornerRadius="{./CornerRadius}">
+       <HorizontalStack>
+               <Label Text="{./Caption}"/>
+               <Popper Caption="{./EnumValue}"  >
+                       <Template>
+                               <Label Style="ControlCaption" Text="{./Caption}" Foreground="{./Foreground}" MinimumSize="80,1" TextAlignment="Center"/>
+                       </Template>
+                       <Wrapper Name="Content" Background="Onyx" Width="60%" Height="Fit" Margin="5" Orientation="Vertical"/>
+               </Popper>
+       </HorizontalStack>
+</Border>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/ui/IconCommand.itmp b/Samples/DebugLogViewer/ui/IconCommand.itmp
new file mode 100644 (file)
index 0000000..8f648dd
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<Button Command="{}" MinimumSize="0,0" >
+       <Template>
+               <Border Style="WindowIconBorder" Width="16" Height="16" IsVisible="{./IsEnabled}">
+                       <Image Path="{./Icon}" Tooltip="{./Caption}"/>
+               </Border>
+       </Template>
+</Button>
+
+
diff --git a/Samples/DebugLogViewer/ui/MenuButton.template b/Samples/DebugLogViewer/ui/MenuButton.template
new file mode 100644 (file)
index 0000000..3a3e2c6
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<Button Command="{}" Width="Stretched" BubbleEvents="All">
+       <Template>
+               <HorizontalStack Background="{./Background}" Width="Stretched" Height="Stretched" Margin="3" Spacing="6"
+                                               MouseEnter="{Background=${ControlHighlight}}"
+                                               MouseLeave="{Background=Transparent}">
+                       <Image Style="MenuIcon" Picture="{./Icon}" />
+                       <Label Text="{./Caption}" Width="Stretched" Height="Fit" Margin="1"/>
+               </HorizontalStack>
+       </Template>
+</Button>
diff --git a/Samples/DebugLogViewer/ui/MenuItem.itmp b/Samples/DebugLogViewer/ui/MenuItem.itmp
new file mode 100644 (file)
index 0000000..8dfb330
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<ItemTemplate DataType="Crow.Command" Path="#ui.MenuButton.template"/>
+<ItemTemplate DataType="Crow.CommandGroup" Data="Commands">
+       <Popper PopDirection="Right" Caption="{Caption}" Width="Stretched" IsPopped="{²./IsOpened}"
+                       MouseEnter="{Background=${ControlHighlight}}"
+                       MouseLeave="{Background=Transparent}">
+               <Template>
+                       <HorizontalStack Background="{./Background}" Width="Stretched" Height="Fit" Margin="3" Spacing="6">
+                               <Image Style="MenuIcon" Picture="{Icon}"/>
+                               <Label Text="{./Caption}" Height="Fit"/>
+                               <Label Text="..." Width="Fit"/>
+                       </HorizontalStack>
+               </Template>
+               <VerticalStack Margin="0" Name="ItemsContainer" Fit="true" Background="${MenuBackground}"/>
+       </Popper>
+</ItemTemplate>
diff --git a/Samples/DebugLogViewer/ui/WidgetRecord.itemp b/Samples/DebugLogViewer/ui/WidgetRecord.itemp
new file mode 100644 (file)
index 0000000..e9d15d1
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<ListItem Height="Fit" Margin="1" Focusable="true" HorizontalAlignment="Left" 
+                               Selected = "{Background=${ControlHighlight}}"
+                               Unselected = "{Background=Transparent}">
+       <HorizontalStack>
+               <Label Text="{nameAndIndex}" Width="Stretched"/>
+               <!--<Label Style="labWidgetRecordList" Text="{listIndex}" Tooltip="List index"/>-->
+               <Label Style="labWidgetRecordList" Text="{InstanceIndex}" Tooltip="tree index"/>
+               <Label Style="labWidgetRecordList" Text="{yIndex}" Tooltip="yIndex"/>
+               <Label Style="labWidgetRecordList" Text="{xLevel}" Tooltip="xLevel"/>
+       </HorizontalStack>
+</ListItem>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/ui/main.crow b/Samples/DebugLogViewer/ui/main.crow
new file mode 100644 (file)
index 0000000..a1f99e1
--- /dev/null
@@ -0,0 +1,122 @@
+<?xml version="1.0"?>
+<VerticalStack RootDataLevel="true">
+       <Menu Data="{CommandsRoot}"  >
+               <ItemTemplate DataType="Crow.Command" Path="#ui.MenuButton.template"/>
+               <ItemTemplate DataType="Crow.CommandGroup"  >
+                       <MenuItem Data="{Commands}" Width="Fit" IsEnabled="{CanExecute}"
+                                               ItemTemplate="#ui.MenuItem.itmp">
+                               <Template>
+                                       <Popper PopDirection="Bottom" Caption="{Caption}" Width="Fit"
+                                                                       MouseEnter="{Background=${ControlHighlight}}"
+                                                                       MouseLeave="{Background=Transparent}">
+                                               <Template>
+                                                       <Label Text="{./Caption}" Width="Stretched" Height="Fit" Margin="5"
+                                                               Background="{./Background}"/>
+                                               </Template>
+                                               <VerticalStack Name="ItemsContainer" Height="Fit" Width="Fit" Background="Jet"/>
+                                       </Popper>
+                               </Template>
+                       </MenuItem>
+               </ItemTemplate>
+       </Menu>
+       <TabView>
+               <VerticalStack Name="LogGraph" Background="DarkGrey">
+                       <EnumSelector RadioButtonStyle="CheckBoxEvtType" Template="#ui.EnumSelector.template"
+                                       Caption="Discarded Events" EnumValue="{²../dbv.Filter}" BitFieldExcludeMask="255" />
+                       <HorizontalStack>
+                               <DbgLogViewer Visible="true" Name="dbv" Events="{Events}" Widgets="{Widgets}" 
+                                                                                       CurrentEvent="{²CurrentEvent}" CurrentWidget="{²CurrentWidget}" />
+                               <ScrollBar Maximum="{../dbv.MaxScrollY}" Value="{²../dbv.ScrollY}" SmallIncrement="1" LargeIncrement="10"
+                                                                               CursorRatio="{../dbv.ChildHeightRatio}"/>
+                       </HorizontalStack>
+                       <ScrollBar Style="HScrollBar"  Maximum="{../dbv.MaxScrollX}" Value="{²../dbv.ScrollX}" SmallIncrement="1" LargeIncrement="10"
+                               CursorRatio="{../dbv.ChildWidthRatio}"/>
+                       <HorizontalStack Height="Fit" DataSource="{CurrentWidget}" Spacing="3">
+                               <Label Style="smallLabValue" Text="{name}"/>
+                               <Label Style="smallLabValue" Text="{listIndex}" Tooltip="List index"/>
+                               <Label Style="smallLabValue" Text="{treeIndex}" Tooltip="tree index"/>
+                               <Label Style="smallLabValue" Text="{yIndex}" Tooltip="yIndex"/>
+                               <Label Style="smallLabValue" Text="{xLevel}" Tooltip="xLevel"/>
+                               <Label Style="smallLabCaption" Text="Width:"/>
+                               <Label Style="smallLabValue" Text="{Width}"/>
+                               <Label Style="smallLabCaption" Text="Height:" />
+                               <Label Style="smallLabValue" Text="{Height}"/>
+                               <Label Style="smallLabCaption" Text="ScrollX:" />
+                               <Label Style="smallLabValue" Text="{../../dbv.ScrollX}"/>
+                               <Label Style="smallLabCaption" Text="MaxScrollX:" />
+                               <Label Style="smallLabValue" Text="{../../dbv.MaxScrollX}"/>
+                               <Label Style="smallLabValue" Tooltip="XScale" Text="{../../dbv.XScale}"/>
+                               <Label Style="smallLabValue" Tooltip="VisibleTicks" Text="{../../dbv.VisibleTicks}"/>                           
+                       </HorizontalStack>
+               </VerticalStack>
+               <VerticalStack Name="AllEvents" Width="Stretched" IsVisible="false" RootDataLevel="true" Background="DarkGrey">
+                       <TreeView Height="Stretched" Name="dbgTV" Data="{Events}" SelectedItem="{²CurrentEvent}" Background="DarkGrey"
+                                               ItemTemplate="#ui.DbgEventTreeItems.itemp"/>
+               </VerticalStack>
+               <VerticalStack Name="CurWidgetEvents" Width="Stretched" IsVisible="false" RootDataLevel="true" Background="DarkGrey">
+                       <ListBox  Data="{CurrentWidgetEvents}" Background="Black" SelectedItem="{²CurrentEvent}">
+                               <ItemTemplate>
+                                       <ListItem Margin="0" Height="16" IsSelected="{²IsSelected}" Width="Fit"
+                                                               Selected="{Background=${ControlHighlight}}" Template="Crow.ScrollingListBox.template"
+                                                               Unselected="{Background=Transparent}">
+                                               <DbgEventWidget Height="10" Width="Fit" Event="{}" Tooltip="#ui.DbgEvtTooltip.crow" TicksPerPixel="1000" VerticalAlignment="Center"/>
+                                       </ListItem>
+                               </ItemTemplate>
+                               <Template>
+                                       <Wrapper Name="ItemsContainer" Spacing="1" Background="{./Background}"/>
+                               </Template>
+                       </ListBox>
+               </VerticalStack>
+       </TabView>
+       
+       <Splitter/>
+       <HorizontalStack Height="30%">
+               <ListBox Data="{Widgets}" Width="200" SelectedItem="{²CurrentWidget}"
+                       ItemTemplate="#ui.WidgetRecord.itemp">
+               </ListBox>
+               <ListBox Data="{CurWidgetProperties}" Width="25%" >
+                       <ItemTemplate>
+                               <ListItem Height="Fit" Margin="1" Focusable="true" HorizontalAlignment="Left" 
+                                                               Selected = "{Background=${ControlHighlight}}"
+                                                               Unselected = "{Background=Transparent}">
+                                       <HorizontalStack>
+                                               <Label Text="{Key}" Width="140"/>
+                                               <Label Text="{Value}" Width="Stretched" Background="White" Foreground="Black" TextAlignment="Left"/>
+                                       </HorizontalStack>
+                               </ListItem>
+                       </ItemTemplate>
+               </ListBox>
+               <Splitter/>
+               <VerticalStack>
+                       <HorizontalStack Height="Fit" Background="Onyx" Spacing="5">
+                               <Label Text="{CurrentWidget}"/>
+                               <Label Text="events"/>
+                       </HorizontalStack>
+                       <ListBox Height="Stretched" Data="{CurrentWidgetEvents}" SelectedItem="{²CurrentEvent}" Background="DarkGrey"
+                                               ItemTemplate="#ui.DbgWidgetEventListItems.itemp"/>
+               </VerticalStack>
+               <!--<Splitter/>
+               <DbgEventView Template="#ui.DbgEventView.template" Event="{../../dbv.HoverEvent}"/>-->
+               <Splitter/>
+               <DbgEventView Template="#ui.DbgEventView.template" Event="{CurrentEvent}"/>
+       </HorizontalStack>
+       <HorizontalStack Height="Fit" Background="Onyx" Margin="1">
+               <HorizontalStack Height="Fit" DataSource="{CurrentEvent}">
+                       <Label Foreground="Black" Text="Current Event:" Background="{Color}" Margin="2" />
+                       <DbgEventWidget Height="14" Width="Stretched" Event="{}" Tooltip="#ui.DbgEvtTooltip.crow" />
+               </HorizontalStack>
+               <ListBox Data="{EventCommands}" Fit="true">
+                       <Template>
+                               <HorizontalStack Name="ItemsContainer" />
+                       </Template>
+                       <ItemTemplate Path="#ui.IconCommand.itmp"/>
+               </ListBox>
+               <Popper Caption="Search...">
+                       <VerticalStack Fit="true" Background="Onyx" Margin="10">
+                               <ComboBox Caption="Event Type" Data="{AllEventTypes}" SelectedItem="{²SearchEventType}"/>
+                               <ComboBox Caption="Widget" Data="{Widgets}" SelectedItem="{²SearchWidget}"/>
+                       </VerticalStack>
+               </Popper>
+       </HorizontalStack>
+       
+</VerticalStack>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/ui/winDebugLog.crow b/Samples/DebugLogViewer/ui/winDebugLog.crow
new file mode 100644 (file)
index 0000000..90557a0
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<Window Caption="Debug Log" Background="0.05,0.05,0.1,0.9" Width="95%" Height="95%">
+       <VerticalStack RootDataLevel="true">
+               <TabView>
+                       <VerticalStack Name="LogGraph" Background="DarkGrey">
+                               <EnumSelector RadioButtonStyle="CheckBox2" Template="#ui.EnumSelector.template"
+                                               Caption="Discarded Events" EnumValue="{²../dbv.Filter}" BitFieldExcludeMask="255" />
+                               <HorizontalStack>
+                                       <DbgLogViewer Visible="true" Name="dbv" Events="{Events}" Widgets="{Widgets}" 
+                                                                                        CurrentEvent="{²CurrentEvent}" CurrentWidget="{²CurrentWidget}" />
+                                       <ScrollBar Maximum="{../dbv.MaxScrollY}" Value="{²../dbv.ScrollY}" SmallIncrement="1" LargeIncrement="10"
+                                                                                       CursorRatio="{../dbv.ChildHeightRatio}"/>
+                               </HorizontalStack>
+                               <ScrollBar Style="HScrollBar"  Maximum="{../dbv.MaxScrollX}" Value="{²../dbv.ScrollX}" SmallIncrement="1" LargeIncrement="10"
+                                       CursorRatio="{../dbv.ChildWidthRatio}"/>
+                               <HorizontalStack Height="Fit" DataSource="{CurrentWidget}" Spacing="3">
+                                       <Label Style="smallLabValue" Text="{name}"/>
+                                       <Label Style="smallLabValue" Text="{listIndex}" Tooltip="List index"/>
+                                       <Label Style="smallLabValue" Text="{treeIndex}" Tooltip="tree index"/>
+                                       <Label Style="smallLabValue" Text="{yIndex}" Tooltip="yIndex"/>
+                                       <Label Style="smallLabValue" Text="{xLevel}" Tooltip="xLevel"/>
+                                       <Label Style="smallLabCaption" Text="Width:"/>
+                                       <Label Style="smallLabValue" Text="{Width}"/>
+                                       <Label Style="smallLabCaption" Text="Height:" />
+                                       <Label Style="smallLabValue" Text="{Height}"/>
+                                       <Label Style="smallLabCaption" Text="ScrollX:" />
+                                       <Label Style="smallLabValue" Text="{../../dbv.ScrollX}"/>
+                                       <Label Style="smallLabCaption" Text="MaxScrollX:" />
+                                       <Label Style="smallLabValue" Text="{../../dbv.MaxScrollX}"/>
+                                       <Label Style="smallLabValue" Tooltip="XScale" Text="{../../dbv.XScale}"/>
+                                       <Label Style="smallLabValue" Tooltip="VisibleTicks" Text="{../../dbv.VisibleTicks}"/>                           
+                               </HorizontalStack>
+                       </VerticalStack>
+                       <VerticalStack Name="AllEvents" Width="Stretched" IsVisible="false" RootDataLevel="true">
+                               <TreeView Height="Stretched" Name="dbgTV" Data="{Events}" SelectedItem="{²CurrentEvent}" Background="DarkGrey"                                                 
+                                                       ItemTemplate="#ui.DbgEventTreeItems.itemp"/> 
+                       </VerticalStack>
+                       <VerticalStack Name="CurWidgetEvents" Width="Stretched" IsVisible="false" RootDataLevel="true">
+                               <ListBox  Data="{CurrentWidgetEvents}" Background="Black" SelectedItem="{²CurrentEvent}">
+                                       <ItemTemplate>
+                                               <ListItem Margin="0" Height="16" IsSelected="{²IsSelected}" Width="Fit"
+                                                                       Selected="{Background=${ControlHighlight}}" Template="Crow.ScrollingListBox.template"
+                                                                       Unselected="{Background=Transparent}">
+                                                       <DbgEventWidget Height="10" Width="Fit" Event="{}" Tooltip="#ui.DbgEvtTooltip.crow" TicksPerPixel="1000" VerticalAlignment="Center"/>
+                                               </ListItem>
+                                       </ItemTemplate>
+                                       <Template>
+                                               <Wrapper Name="ItemsContainer" Spacing="1" Background="{./Background}"/>
+                                       </Template>
+                               </ListBox>
+                       </VerticalStack>
+               </TabView>
+               <Splitter/>
+               <HorizontalStack Height="30%">
+                       <ListBox Data="{Widgets}" Width="200" SelectedItem="{²CurrentWidget}"
+                               ItemTemplate="#ui.WidgetRecord.itemp">
+                       </ListBox>
+                       <ListBox Data="{CurWidgetProperties}" Width="25%" >
+                               <ItemTemplate>
+                                       <ListItem Height="Fit" Margin="1" Focusable="true" HorizontalAlignment="Left" 
+                                                                       Selected = "{Background=${ControlHighlight}}"
+                                                                       Unselected = "{Background=Transparent}">
+                                               <HorizontalStack>
+                                                       <Label Text="{Key}" Width="140"/>
+                                                       <Label Text="{Value}" Width="Stretched" Background="White" Foreground="Black" TextAlignment="Left"/>
+                                               </HorizontalStack>
+                                       </ListItem>
+                               </ItemTemplate>
+                       </ListBox>
+                       <Splitter/>
+                       <VerticalStack>
+                               <HorizontalStack Height="Fit" Background="Onyx" Spacing="5">
+                                       <Label Text="{CurrentWidget}"/>
+                                       <Label Text="events"/>
+                               </HorizontalStack>
+                               <ListBox Height="Stretched" Data="{CurrentWidgetEvents}" SelectedItem="{²CurrentEvent}" Background="DarkGrey"
+                                                       ItemTemplate="#ui.DbgWidgetEventListItems.itemp"/>
+                       </VerticalStack>
+                       <Splitter/>
+                       <DbgEventView Template="#ui.DbgEventView.template" Event="{../../dbv.HoverEvent}"/>
+                       <Splitter/>
+                       <DbgEventView Template="#ui.DbgEventView.template" Event="{CurrentEvent}"/>
+               </HorizontalStack>
+               <HorizontalStack Height="Fit" Background="Onyx" Margin="1">
+                       <HorizontalStack Height="Fit" DataSource="{CurrentEvent}">
+                               <Label Foreground="Black" Text="Current Event:" Background="{Color}" Margin="2" />
+                               <DbgEventWidget Height="14" Width="Stretched" Event="{}" Tooltip="#ui.DbgEvtTooltip.crow" />
+                       </HorizontalStack>
+                       <ListBox Data="{EventCommands}" Fit="true">
+                               <Template>
+                                       <HorizontalStack Name="ItemsContainer" />
+                               </Template>
+                               <ItemTemplate Path="#ui.IconCommand.itmp"/>
+                       </ListBox>
+                       <Popper Caption="Search...">
+                               <VerticalStack Fit="true" Background="Onyx" Margin="10">
+                                       <ComboBox Caption="Event Type" Data="{AllEventTypes}" SelectedItem="{²SearchEventType}"/>
+                                       <ComboBox Caption="Widget" Data="{Widgets}" SelectedItem="{²SearchWidget}"/>
+                               </VerticalStack>
+                       </Popper>
+               </HorizontalStack>
+       </VerticalStack>
+</Window>
\ No newline at end of file
diff --git a/Samples/DebugLogViewer/ui/winLogGraph.crow b/Samples/DebugLogViewer/ui/winLogGraph.crow
new file mode 100644 (file)
index 0000000..085596a
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<DockWindow Caption="Debug Log Graph"  Width="90%" Height="90%">
+       <VerticalStack Name="LogGraph" >
+               <EnumSelector RadioButtonStyle="CheckBox2" Template="#ui.EnumSelector.template"
+                               Caption="Discarded Events" EnumValue="{²../dbv.Filter}" BitFieldExcludeMask="255" />                                   
+               <HorizontalStack>
+                       <DbgLogViewer Visible="true" Name="dbv" Events="{Events}" Widgets="{Widgets}" 
+                                                                        CurrentEvent="{²CurrentEvent}" CurrentWidget="{²CurrentWidget}" />
+                       <ScrollBar Maximum="{../dbv.MaxScrollY}" Value="{²../dbv.ScrollY}" SmallIncrement="1" LargeIncrement="10"
+                                                                       CursorRatio="{../dbv.ChildHeightRatio}"/>
+               </HorizontalStack>
+               <ScrollBar Style="HScrollBar"  Maximum="{../dbv.MaxScrollX}" Value="{²../dbv.ScrollX}" SmallIncrement="1" LargeIncrement="10"
+                       CursorRatio="{../dbv.ChildWidthRatio}"/>
+               <HorizontalStack Height="Fit" DataSource="{CurrentWidget}" Spacing="3">
+                       <Label Style="smallLabValue" Text="{name}"/>
+                       <Label Style="smallLabValue" Text="{listIndex}" Tooltip="List index"/>
+                       <Label Style="smallLabValue" Text="{treeIndex}" Tooltip="tree index"/>
+                       <Label Style="smallLabValue" Text="{yIndex}" Tooltip="yIndex"/>
+                       <Label Style="smallLabValue" Text="{xLevel}" Tooltip="xLevel"/>
+                       <Label Style="smallLabCaption" Text="ScrollX:" />
+                       <Label Style="smallLabValue" Text="{../../dbv.ScrollX}"/>
+                       <Label Style="smallLabCaption" Text="MaxScrollX:" />
+                       <Label Style="smallLabValue" Text="{../../dbv.MaxScrollX}"/>
+                       <Label Style="smallLabValue" Tooltip="XScale" Text="{../../dbv.XScale}"/>
+                       <Label Style="smallLabValue" Tooltip="VisibleTicks" Text="{../../dbv.VisibleTicks}"/>                           
+               </HorizontalStack>
+       </VerticalStack>
+</DockWindow>
+
+
diff --git a/Samples/DebugLogViewer/ui/winLogNavigation.crow b/Samples/DebugLogViewer/ui/winLogNavigation.crow
new file mode 100644 (file)
index 0000000..62d71a5
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<DockWindow Caption="Debug Log Navigation"  Width="90%" Height="Fit">
+       <VerticalStack Name="LogGraph" >
+               <ListBox Name="lbAllEvents" Data="{Events}" Height="Fit" >
+                       <ItemTemplate>
+                               <ListItem Margin="0" Height="16" Width="Fit"
+                                                       Selected="{Background=Yellow}"
+                                                       Unselected="{Background=Transparent}">
+                                       <DbgEventWidget CacheEnabled="true" Height="10" Width="Fit" Event="{}" Tooltip="#ui.DbgEvtTooltip.crow" TicksPerPixel="3000" VerticalAlignment="Center"/>
+                               </ListItem>
+                       </ItemTemplate>
+                       <Template>
+                               <VerticalStack Width="Stretched" >
+                                       <Scroller Name="scroller"   >
+                                               <HorizontalStack Name="ItemsContainer"  Width="Fit" HorizontalAlignment="Left"/>
+                                       </Scroller>
+                                       <ScrollBar Style="HScrollBar" Name="scrollbar1" Value="{²../scroller.ScrollX}"
+                                               LargeIncrement="{../scroller.PageWidth}" SmallIncrement="30" CursorRatio="{../scroller.ChildWidthRatio}"
+                                               Maximum="{../scroller.MaxScrollX}" Height="12" />
+                               </VerticalStack>
+                       </Template>
+               </ListBox>
+               <ListBox DataSource="{../lbAllEvents.SelectedItem}" Data="{Events}" Height="Fit" >
+                       <ItemTemplate>
+                               <ListItem Margin="0" Height="16" Width="Fit"
+                                                       Selected="{Background=Yellow}"
+                                                       Unselected="{Background=Transparent}">
+                                       <DbgEventWidget CacheEnabled="true" Height="10" Width="Fit" Event="{}" Tooltip="#ui.DbgEvtTooltip.crow" TicksPerPixel="3000" VerticalAlignment="Center"/>
+                               </ListItem>
+                       </ItemTemplate>
+                       <Template>
+                               <VerticalStack Width="Stretched" >
+                                       <Scroller Name="scroller"   >
+                                               <HorizontalStack Name="ItemsContainer"  Width="Fit" HorizontalAlignment="Left"/>
+                                       </Scroller>
+                                       <ScrollBar Style="HScrollBar" Name="scrollbar1" Value="{²../scroller.ScrollX}"
+                                               LargeIncrement="{../scroller.PageWidth}" SmallIncrement="30" CursorRatio="{../scroller.ChildWidthRatio}"
+                                               Maximum="{../scroller.MaxScrollX}" Height="12" />
+                               </VerticalStack>
+                       </Template>
+               </ListBox>
+       </VerticalStack>
+</DockWindow>
+
+
index 823ee37ef09be2557f98d2d15da0f942dd757817..a921afcf1e8194624f0c7da2e053b6dcfd525fdb 100644 (file)
                        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
                        <Link>Interfaces\%(RecursiveDir)%(Filename)%(Extension)</Link>
                </None>
+               <EmbeddedResource Include="$(SamplesDir)common\ui\debugLog\*.*">
+                       <LogicalName>ui.%(Filename)%(Extension)</LogicalName>
+                       <Link>Interfaces\%(RecursiveDir)%(Filename)%(Extension)</Link>
+               </EmbeddedResource>
                <EmbeddedResource Include="$(SamplesDir)common\ui\templates\**\*.*">
                        <LogicalName>ui.%(Filename)%(Extension)</LogicalName>
                        <Link>Templates\%(Filename)%(Extension)</Link>
diff --git a/Samples/DockTests/DockTests.csproj b/Samples/DockTests/DockTests.csproj
new file mode 100644 (file)
index 0000000..4c64f05
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project Sdk="Microsoft.NET.Sdk">
+       <ItemGroup>
+               <EmbeddedResource Include="ui\*.*">
+                       <LogicalName>ui.%(Filename)%(Extension)</LogicalName>
+               </EmbeddedResource>
+       </ItemGroup>    
+</Project>
\ No newline at end of file
diff --git a/Samples/DockTests/main.cs b/Samples/DockTests/main.cs
new file mode 100644 (file)
index 0000000..99e58f2
--- /dev/null
@@ -0,0 +1,68 @@
+using System;
+using System.Collections.Generic;
+using Crow;
+using Glfw;
+using Samples;
+
+namespace DockTests
+{
+       class Program : Interface {
+               Program() : base (1400, 1000, true) {}
+               static void Main (string[] args) {
+                       //Interface.PreferedBackendType = Drawing2D.BackendType.Egl;
+                       using (Program app = new Program ()) {
+                               //app.Initialized += (sender, e) => app.LoadIMLFragment (@"<Label Text='Hello World' Background='Red' Top='50' Margin='0'/>");
+                               //app.Initialized += (sender, e) => app.LoadIMLFragment (@"<Container Width='Stretched' ><Window Caption='hello world' Background='Jet'/></Container>");
+                               //app.Initialized += (sender, e) => app.Load("#ui.helloworld.crow");
+                               app.Run ();
+
+                               //DbgLogger.Save(app);
+                       }
+               }
+               public Command CMDNewDockWin;
+               protected DockStack mainDock;
+
+               static int winCpt = 5;
+               Random rnd = new Random();
+
+               int rndColorComp => (int)(25.5f * rnd.NextInt64(10));
+               Drawing2D.Color randomColor => new Drawing2D.Color(rndColorComp, rndColorComp, rndColorComp);
+
+        protected override void OnInitialized()
+        {
+            base.OnInitialized();
+
+                       CMDNewDockWin = new ActionCommand("New Dock Win", ()=>LoadIMLFragment(
+                               $"<DockWindow Name='win{winCpt++}' Style='SimpleDockWin' Background='{randomColor}' Width='200' Height='200' MinimumSize='20,20'/> ") );
+
+                       Widget w = Load ("#ui.main.crow");
+                       w.DataSource = this;
+
+                       mainDock = w.FindByName ("mainDock") as DockStack;
+
+
+                       LoadIMLFragment(@"<Window Background='Jet'><ListBox Style='ScrollingListBox' Data='{List2}' Height='95%' Width='95%' Background='Black' Foreground='Blue'/></Window>").DataSource = this;
+                       LoadIMLFragment(@"<Window Background='Onyx'/>");
+
+                       
+               }
+               public IEnumerable<String> List2 = new List<string>(new string[]
+                       {
+                               "string1",
+                               "string2",
+                               "string3",
+                               "string4",
+                               "string5",
+                               "string6",
+                               "string7",
+                               "string8",
+                               "string8",
+                               "string8",
+                               "string8",
+                               "string8",
+                               "string8",
+                               "string9"
+                       }
+               );              
+       }
+}
diff --git a/Samples/DockTests/ui/main.crow b/Samples/DockTests/ui/main.crow
new file mode 100644 (file)
index 0000000..85486b3
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<VerticalStack>
+       <HorizontalStack Height="Fit" Width="Stretched" Background="Yellow">
+               <Label Text="Hover:" Width="50" Foreground="Grey"/>
+               <Label Width="Stretched" Text="{HoverWidget}" Font="mono, 10" Foreground="Black"/>
+       </HorizontalStack  >
+       <HorizontalStack Height="Fit" Width="Stretched">
+               <Label  Text="Focus:" Width="50" Foreground="Grey"/>
+               <Label Width="Stretched" Text="{FocusedWidget}" Font="mono, 10"/>
+       </HorizontalStack  >
+       <HorizontalStack Height="Fit">
+               <Label  Text="Active:" Width="50" Foreground="Grey"/>
+               <Label Width="Stretched" Text="{ActiveWidget}" Font="mono, 10"/>
+       </HorizontalStack>
+       <Group Width="200" Height="200" Background="Yellow">
+               <Border Top="20" Left="20" Width="70" Height="70" Foreground="Purple" Background="Blue"/>
+               <Border Top="40" Left="40" Width="70" Height="70" Foreground="Purple" Background="Red"/>
+       </Group>
+       <Button Command="{CMDNewDockWin}"/>
+       <Group Name="dockRoot" Margin="20" Focusable="true" Width="Stretched" Height="Stretched">
+               <DockStack CacheEnabled="false"  Name="mainDock" Focusable="false" Width="90%" Spacing="10" Background="0.1,0.1,0.1,0.8"/>
+               <!--<DockWindow Name="win1" Style="SimpleDockWin" Top="10" Left="10" Background="Red" Width="200" Height="200"/> 
+               <DockWindow Name="win2" Style="SimpleDockWin" Top="30" Left="30" Background="Green" Width="200" Height="200"/>
+               <DockWindow Name="win3" Style="SimpleDockWin" Top="50" Left="50" Background="Pink" Width="200" Height="200"/>
+               <DockWindow Name="win4" Style="SimpleDockWin" Top="70" Left="70" Background="RoyalBlue" Width="200" Height="200"/> -->
+       </Group>
+</VerticalStack>
\ No newline at end of file
index c3187a8a1c29a9ec0731ffbc8b45d1043663c72d..a8f92fbe3387ca0090b3930f5ea759c344eeb53c 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <VerticalStack>
-<TextBox Margin="10"/>
+<TextBox Margin="10" Multiline="true"/>
 </VerticalStack>
 <!--<Group CacheEnabled="false" Name="dockRoot" Margin="20" Focusable="true" Width="Stretched" Height="Stretched">
        <DockStack ClipToClientRect="false" CacheEnabled="false" Name="mainDock" Focusable="false" Width="50%" Background="0.1,0.1,0.1,0.8"/>
index 125dc4b54cd8702b7330aa9195ccce12db455bbb..536fad90aff0ac307c611185ccef00d677e9257d 100644 (file)
@@ -1,28 +1,26 @@
-// Copyright (c) 2013-2021  Bruyère Jean-Philippe <jp_bruyere@hotmail.com>
+// Copyright (c) 2013-2025  Bruyère Jean-Philippe <jp_bruyere@hotmail.com>
 //
 // This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
 
 using System;
 using Crow;
 using System.IO;
-using System.Text;
 using Crow.IML;
-using System.Runtime.CompilerServices;
 using Glfw;
 using System.Diagnostics;
-using Crow.Text;
 using System.Collections.Generic;
 using Encoding = System.Text.Encoding;
 using Samples;
 using System.Threading;
+using System.Linq;
 
 namespace ShowCase
 {
        class Showcase : SampleBaseForEditor
        {
                static DbgEvtType[] logEvts = {
-                       /*DbgEvtType.IFace,
-                       DbgEvtType.Widget,*/
+                       DbgEvtType.IFace,
+                       DbgEvtType.Widget,
                        DbgEvtType.Ressources
                        /*DbgEvtType.MouseEnter,
                        DbgEvtType.MouseLeave,
@@ -32,8 +30,8 @@ namespace ShowCase
                };
                static void Main ()
                {
-                       DbgLogger.ConsoleOutput = true;
-                       DbgLogger.IncludedEvents.Add(DbgEvtType.Ressources);                    
+                       //DbgLogger.ConsoleOutput = true;
+                       //DbgLogger.IncludedEvents.Add(DbgEvtType.Ressources);
                        
                        //Configuration.Global.Set ("RecordedEvents", new DbgEvtType[] { DbgEvtType.Ressources});
 
@@ -113,7 +111,7 @@ namespace ShowCase
                        }
                }
                public string TemplateContainerSource {
-                       get => Configuration.Global.Get<string> ("TemplateContainerSource", "<Button/>");
+                       get => Configuration.Global.Get<string> ("TemplateContainerSource", "<Button>");
                        set {
                                if (TemplateContainerSource == value)
                                        return;
@@ -135,8 +133,13 @@ namespace ShowCase
                                        Instantiator inst = null;
                                        string src = source;
                                        if (EncloseInTemplatedControl) {
+                                               if (!string.IsNullOrEmpty(src) && src.StartsWith("<?xml")) {
+                                                       int pos = src.IndexOf('>');
+                                                       if (pos > 0)
+                                                               src = src.Substring(pos + 1);
+                                               }
                                                string tmpControl = TemplateContainerSource.Split (' ', StringSplitOptions.RemoveEmptyEntries)[0].Replace ("<","").Replace (">","");
-                                               src = $"{TemplateContainerSource}\n<Template>\n{source}\n</Template>\n</{tmpControl}>";
+                                               src = $"{TemplateContainerSource}<Template>{src}</Template></{tmpControl}>";
                                        }
                                        using (MemoryStream ms = new MemoryStream (Encoding.UTF8.GetBytes (src)))
                                                inst = new Instantiator (this, ms);
@@ -187,7 +190,6 @@ namespace ShowCase
                        reloadChrono.Reset ();
                }
 
-
         public override bool OnKeyDown (KeyEventArgs e) {
 
             switch (e.Key) {
@@ -196,12 +198,15 @@ namespace ShowCase
                 return true;
             case Key.F6:
                                if (DebugLogRecording) {
-                                       DbgLogger.IncludedEvents.Clear();
                                        if (DebugLogToFile && !string.IsNullOrEmpty(DebugLogFilePath))
                                DbgLogger.Save (this, DebugLogFilePath);
+                                       DbgLogger.IncludedEvents.Clear();
                                        DebugLogRecording = false;
+                                       NotifyValueChanged("DebugEvents", DebugEvents );
                                } else {
+                                       DbgLogger.ConsoleOutput = false;
                                        DbgLogger.Reset ();
+                                       NotifyValueChanged("DebugEvents", (object)null );
                                        DbgLogger.IncludedEvents = new List<DbgEvtType> (logEvts);
                                        DebugLogRecording = true;
                                }
diff --git a/Samples/ShowCase/ui/DebugLog.crow b/Samples/ShowCase/ui/DebugLog.crow
deleted file mode 100644 (file)
index db9528b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0"?>
-<Window Caption="Debug Log"  Background="0.1,0.1,0.1,0.8">
-       <ListBox Data="{DebugEvents}">
-       </ListBox>
-</Window>
\ No newline at end of file
index a7d7e97d87558bd8a79e609a66e7d52cd6d3af82..69e10dec621046a12f12e1f0125bec97021b9569 100644 (file)
@@ -18,9 +18,9 @@
                                                        <Border CornerRadius="2" Margin="0" Height="Fit"
                                                                        Foreground="Transparent"
                                                                        MouseEnter="{Foreground=DimGrey}"
-                                                                       MouseLeave="{Foreground=Transparent}">                                                          
+                                                                       MouseLeave="{Foreground=Transparent}">
                                                                <HorizontalStack>
-                                                                       <Image Margin="1" Width="14" Height="14" Path="#Crow.Icons.file.svg"/>
+                                                                       <Image Margin="1" Width="16" Height="16" Path="#Crow.Icons.file.svg"/>
                                                                        <Label Text="{Name}" Width="Stretched"/>
                                                                </HorizontalStack>
                                                        </Border>
                                        </Template>
                                        <VerticalStack Width="200" Height="200" Background="Jet" Margin="5">
                                                <CheckBox Caption="Embed source in template" IsChecked="{²EncloseInTemplatedControl}"/>
-                                               <TextBox BubbleEvents="None" Text="{²TemplateContainerSource}" Width="Stretched" Height="Stretched" Multiline="true"
-                                                       Tooltip="Add '*source* where you want to load the source in the editor."/>
+                                               <TextBox BubbleEvents="None" Text="{²TemplateContainerSource}" Width="Stretched" Height="Stretched" Multiline="true"/>
                                        </VerticalStack>
                                </Popper>
                        </Wrapper>
index 4fbe0293ea2b9a90de69e6de07bb5690abe6fafe..a82b9a85abede2671f13c1526a3a9432ebbca8d3 100644 (file)
@@ -3,8 +3,8 @@ InactiveTabBackground = "DarkGrey";
 SelectedTabBackground = "Onyx";
 InactiveTabForeground = "Grey";
 SelectedTabForeground = "White";
-SmallUIFont = "sans, 12";
-SmallFont = "consolas, 12";
+SmallUIFont = "sans, 20";
+SmallFont = "mono, 20";
 
 FpsLabel {
        Width = "30";
@@ -69,7 +69,7 @@ DockStack {
        //EndDrag="{Background=Jet}";
 }
 SimpleDockWin {
-       Template= "#ui.dockwinsimple.itmp";
+       //Template= "#ui.dockwinsimple.itmp";
        Background = "Yellow";
        Width="200";
        Height="200";
@@ -91,7 +91,7 @@ valignStyle2 {
        //Initialized="{Background=Blue}";
 }
 smallLabel {
-       Font="consolas, 8";
+       Font="mono, 8";
 }
 suggestionsListBox {
        Template = "#ui.Suggestions.template";
index b97982e604cf437691290ca9c4d7ce8f76df5f6b..3133286f68de0dc536c6605fa7a108cca43683b8 100644 (file)
@@ -5,15 +5,11 @@
 using System;
 using Crow;
 using System.IO;
-using System.Text;
-using Crow.IML;
-using System.Runtime.CompilerServices;
 using Glfw;
-using System.Diagnostics;
 using Crow.Text;
 using System.Collections.Generic;
 using Encoding = System.Text.Encoding;
-using System.Linq;
+using Crow.DebugLogger;
 
 namespace Samples
 {
@@ -69,9 +65,10 @@ namespace Samples
                        }
                }
 
-               #region DebugLog                
+               #region DebugLog
                bool debugLogRecording;
                public bool DebugLoggingEnabled => DbgLogger.IsEnabled;
+               public IEnumerable<DbgEvent> DebugEvents => DbgLogger.Events;
 
                static ObservableList<DbgEvtType> RecordedEvents;
                public bool DebugLogRecording {
@@ -80,11 +77,6 @@ namespace Samples
                                if (debugLogRecording == value)
                                        return;
                                debugLogRecording = value;
-                               if (debugLogRecording) {
-                                       DbgLogger.IncludedEvents = new List<DbgEvtType>(RecordedEvents);
-                               } else {
-                                       DbgLogger.IncludedEvents = null;
-                               }
                                NotifyValueChanged(debugLogRecording);
                        }
                }
@@ -107,6 +99,9 @@ namespace Samples
                                NotifyValueChanged (DebugLogFilePath);
                        }
                }
+               
+               
+               
                #endregion
 
 
index e59d30d54a0209bb5a343a74fdc174acd02ad93e..2d1601aa7ed1a1071d9b8396e8bf3127e9308e54 100644 (file)
@@ -7,7 +7,7 @@
                        <Button />
                        <CheckBox />
                        <RadioButton/>
-                       <Spinner/>                      
+                       <Spinner/>
                        <Slider />
                        <Popper />
                        <Expandable />
index d1f24c4fa17127a55278c3717ef08948dd6ae324..c13c9e8bb5d2b24a878a2a66269bd8bf0a2daa92 100644 (file)
@@ -15,7 +15,7 @@
                                                <Image Focusable="true" Name="Image" Margin="0" Width="Stretched" Height="Stretched" Path="#Crow.Icons.exit2.svg"
                                                         MouseClick="onQuitPress"/>
                                        </Border>
-                                       </HorizontalStack>
+                               </HorizontalStack>
                        </ListItem>
                </ItemTemplate>
        </ListBox>
diff --git a/Samples/common/ui/debugLog/DebugLog.crow b/Samples/common/ui/debugLog/DebugLog.crow
new file mode 100644 (file)
index 0000000..cc721d6
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<Window Width="1000" Height="600" Caption="Debug Log"  Background="0.1,0.1,0.1,0.8">
+       <ListBox Data="{DebugEvents}">
+       </ListBox>
+</Window>
\ No newline at end of file
diff --git a/Samples/common/ui/debugLog/dbg.style b/Samples/common/ui/debugLog/dbg.style
new file mode 100644 (file)
index 0000000..2050060
--- /dev/null
@@ -0,0 +1,52 @@
+ControlBackground = "Transparent";
+ControlForeground = "Grey";
+ControlHighlight = "RoyalBlue";
+ControlBorderColor = "DimGrey";
+ControlBorderWidth = "1";
+ControlCaptionHoverColor = "White";
+ControlCornerRadius = "0";
+ControlInsideMargin = "1";
+ControlIdle = "Jet";
+
+smallLabCaption {
+       Font="mono, 10";
+       Foreground="Grey";
+}
+smallLabValue {
+       Font="mono, 10";
+       Foreground="White";
+}
+DbgLogViewer {
+       MouseWheelSpeed="3";
+       Font="mono, 8";
+       Background="Onyx";
+       CacheEnabled = "true";  
+}
+DbgEventView {
+       Height="Fit";
+       Width="150";
+}
+labWidgetRecordList {
+       Font="mono, 11";
+       Background="Grey";
+       Foreground="Jet";
+       Margin="0";
+       Width="24";
+       TextAlignment="Right";
+}
+
+DbgEventWidget {
+       CacheEnabled = "true";
+}
+CheckBoxEvtType {
+       Template= "#Crow.CheckBox2.template";
+       Width = "160";
+       Height = "Fit";
+       CornerRadius = "2";
+       Background = "${ControlIdle}";
+       Foreground = "${ControlForeground}";
+       Checked = "{Background=${ControlHighlight}}";
+       Unchecked = "{Background=${ControlIdle}}";
+       MouseEnter = "{Foreground=${ControlCaptionHoverColor}}";
+       MouseLeave = "{Foreground=${ControlForeground}}";
+}
\ No newline at end of file
index fa0e27e7ac5ad67c7ed16a175e032fa2ee4b788a..0ad22e0e5065210ed4894805c7515d21e1f5c790 100644 (file)
@@ -1,4 +1,7 @@
 <?xml version="1.0"?>
-<VerticalStack CacheEnabled="false" Name="MoveHandle" Background="{./Background}">
-    <Label CacheEnabled="false" Background="Jet" Text="{./DockingPosition}"/>
+<VerticalStack Name="MoveHandle" Background="{./Background}">
+    <Label Background="Jet" Text="{./DockingPosition}"/>
+    <TextBox Background="Jet" Text="{./Name}" Width="Stretched" Multiline="true"/>
+    <Label Background="Jet" Text="{./FloatingGroup}"/>
+    <Label Background="Jet" Text="{./Width}"/>
 </VerticalStack>