]> O.S.I.I.S - jp/crow.git/commitdiff
crow ide toolbox, syntax tree depth and generalize node handling accross parser
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Fri, 9 Mar 2018 09:35:06 +0000 (10:35 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Fri, 9 Mar 2018 09:35:06 +0000 (10:35 +0100)
119 files changed:
Crow.csproj
CrowIDE/CrowIDE.csproj
CrowIDE/CrowIDE.sln [new file with mode: 0644]
CrowIDE/CrowIDE.userprefs [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Border.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Button.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.CheckBox.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.ColorPicker.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.ComboBox.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Container.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.DirectoryView.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Docker.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Expandable.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.FileDialog.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Grid.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Group.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.GroupBox.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.HorizontalStack.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.IMLContainer.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Image.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Label.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.ListBox.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Menu.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.MenuItem.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.MessageBox.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.ProgressBar.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.RadioButton.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.ScrollBar.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Scroller.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Shape.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Slider.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Spinner.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Splitter.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.TabItem.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.TabView.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.TemplatedContainer.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.TemplatedGroup.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.TextBox.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.TreeView.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.VerticalStack.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Window.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/Crow.Wrapper.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/bar-chart.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/bar-menu.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/bullets.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/calendar.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/check-square-1.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/curly-brackets.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/database.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/dot-inside-a-circle.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/edit.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/ellipsis.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/eraser.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/exclamation-circle-1.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/exclamation-circle.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/file-code.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/gear.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/grab.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/hard-drive-1.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/hash.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/info.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/layout.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/light-bulb.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/line-list.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/list.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/modal-list.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/move-arrows.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/package.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/padding.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/paint-brush.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/picture-file.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/pin.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/pointer.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/puzzle-piece.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/refresh-file.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/search.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/sliders.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/split-browser-1.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/table.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/tasks.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/text-file.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/tools.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/trash.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/warning.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/zoom-in.svg [new file with mode: 0644]
CrowIDE/icons/toolbox/zoom-out.svg [new file with mode: 0644]
CrowIDE/src/CrowIDE.cs
CrowIDE/src/DesignInterface.cs
CrowIDE/src/GraphicObjectDesignContainer.cs [new file with mode: 0644]
CrowIDE/src/ImlVisualEditor.cs
CrowIDE/src/MemberView/MembersView.cs
CrowIDE/src/Solution.cs
CrowIDE/src/SourceEditor/BufferParser.cs
CrowIDE/src/SourceEditor/CSharpParser.cs
CrowIDE/src/SourceEditor/CodeBuffer.cs
CrowIDE/src/SourceEditor/SourceEditor.cs
CrowIDE/src/SourceEditor/StyleParser.cs
CrowIDE/src/SourceEditor/XMLParser.cs
CrowIDE/ui/CrowIDE.crow
CrowIDE/ui/DockWindows/toolboxBut.template [new file with mode: 0644]
CrowIDE/ui/DockWindows/winToolbox.crow [new file with mode: 0644]
CrowIDE/ui/IDE.style
CrowIDE/ui/IMLEdit.itemp
CrowIDE/ui/SrcEdit.itemp
Default.style
src/GraphicObjects/ColorSelector.cs
src/GraphicObjects/DockStack.cs
src/GraphicObjects/GraduatedSlider.cs
src/GraphicObjects/GraphicObject.cs
src/GraphicObjects/HueSelector.cs
src/GraphicObjects/MDIContainer.cs [deleted file]
src/GraphicObjects/PrivateContainer.cs
src/GraphicObjects/SaturationValueSelector.cs
src/GraphicObjects/ScrollingObject.cs
src/GraphicObjects/ScrollingTextBox.cs [deleted file]
src/GraphicObjects/TextRun.cs
src/IMLAttributes.cs
src/Interface.cs
src/LayoutingQueueItem.cs

index 7a0ffadaee265d9c44fb44cab2edd6653725e62b..9e474f586f9110b61f3af9d36ca5b8b04a5769ab 100644 (file)
     <Compile Include="src\IML\BindingMember.cs" />
     <Compile Include="src\CrowThread.cs" />
     <Compile Include="src\GraphicObjects\ScrollingObject.cs" />
-    <Compile Include="src\GraphicObjects\ScrollingTextBox.cs" />
     <Compile Include="src\Mono.Cairo\Antialias.cs" />
     <Compile Include="src\Mono.Cairo\Cairo.cs" />
     <Compile Include="src\Mono.Cairo\CairoDebug.cs" />
     <Compile Include="src\IML\IMLContext.cs" />
     <Compile Include="src\Mono.Cairo\MeshPattern.cs" />
     <Compile Include="src\GraphicObjects\Shape.cs" />
-    <Compile Include="src\GraphicObjects\MDIContainer.cs" />
     <Compile Include="src\IListChanged.cs" />
     <Compile Include="src\ObservableList.cs" />
     <Compile Include="src\GraphicObjects\IMLContainer.cs" />
index 9cca73b4c3670ff402a1e3417173d402de92182f..6b720536cf6a54d40272a76119f5d5df13fb6900 100644 (file)
     <StartWorkingDirectory>%24{SolutionDir}\build\%24{ProjectConfigName}</StartWorkingDirectory>
     <ConsolePause>false</ConsolePause>
   </PropertyGroup>
-  <PropertyGroup Condition=" '$(RunConfiguration)' == 'Custom Command' ">
-    <StartAction>Program</StartAction>
-    <StartProgram>%24{TargetName}</StartProgram>
-    <StartWorkingDirectory>%24{SolutionDir}\build\%24{ProjectConfigName}</StartWorkingDirectory>
-    <ConsolePause>false</ConsolePause>
-  </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Data" />
     <Compile Include="src\MemberView\MembersView.cs" />
     <Compile Include="src\MemberView\PropertyContainer.cs" />
     <Compile Include="src\MemberView\CategoryContainer.cs" />
+    <Compile Include="src\GraphicObjectDesignContainer.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="ui\" />
     <EmbeddedResource Include="ui\DockWindows\winErrors.crow" />
     <EmbeddedResource Include="ui\DockWindows\winSolution.crow" />
     <EmbeddedResource Include="ui\DockWindows\winProperties.crow" />
+    <EmbeddedResource Include="ui\DockWindows\winToolbox.crow" />
+    <EmbeddedResource Include="ui\DockWindows\toolboxBut.template" />
+    <EmbeddedResource Include="icons\toolbox\bar-chart.svg" />
+    <EmbeddedResource Include="icons\toolbox\bar-menu.svg" />
+    <EmbeddedResource Include="icons\toolbox\bullets.svg" />
+    <EmbeddedResource Include="icons\toolbox\calendar.svg" />
+    <EmbeddedResource Include="icons\toolbox\check-square-1.svg" />
+    <EmbeddedResource Include="icons\toolbox\curly-brackets.svg" />
+    <EmbeddedResource Include="icons\toolbox\database.svg" />
+    <EmbeddedResource Include="icons\toolbox\ellipsis.svg" />
+    <EmbeddedResource Include="icons\toolbox\eraser.svg" />
+    <EmbeddedResource Include="icons\toolbox\file-code.svg" />
+    <EmbeddedResource Include="icons\toolbox\gear.svg" />
+    <EmbeddedResource Include="icons\toolbox\grab.svg" />
+    <EmbeddedResource Include="icons\toolbox\hash.svg" />
+    <EmbeddedResource Include="icons\toolbox\light-bulb.svg" />
+    <EmbeddedResource Include="icons\toolbox\line-list.svg" />
+    <EmbeddedResource Include="icons\toolbox\list.svg" />
+    <EmbeddedResource Include="icons\toolbox\move-arrows.svg" />
+    <EmbeddedResource Include="icons\toolbox\package.svg" />
+    <EmbeddedResource Include="icons\toolbox\paint-brush.svg" />
+    <EmbeddedResource Include="icons\toolbox\pin.svg" />
+    <EmbeddedResource Include="icons\toolbox\pointer.svg" />
+    <EmbeddedResource Include="icons\toolbox\puzzle-piece.svg" />
+    <EmbeddedResource Include="icons\toolbox\refresh-file.svg" />
+    <EmbeddedResource Include="icons\toolbox\search.svg" />
+    <EmbeddedResource Include="icons\toolbox\sliders.svg" />
+    <EmbeddedResource Include="icons\toolbox\split-browser-1.svg" />
+    <EmbeddedResource Include="icons\toolbox\table.svg" />
+    <EmbeddedResource Include="icons\toolbox\tasks.svg" />
+    <EmbeddedResource Include="icons\toolbox\tools.svg" />
+    <EmbeddedResource Include="icons\toolbox\trash.svg" />
+    <EmbeddedResource Include="icons\toolbox\zoom-in.svg" />
+    <EmbeddedResource Include="icons\toolbox\zoom-out.svg" />
+    <EmbeddedResource Include="icons\toolbox\dot-inside-a-circle.svg" />
+    <EmbeddedResource Include="icons\toolbox\edit.svg" />
+    <EmbeddedResource Include="icons\toolbox\picture-file.svg" />
+    <EmbeddedResource Include="icons\toolbox\text-file.svg" />
+    <EmbeddedResource Include="icons\toolbox\warning.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Button.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.TextBox.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Label.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.CheckBox.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.RadioButton.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Spinner.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Container.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Group.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.HorizontalStack.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.VerticalStack.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Splitter.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.ListBox.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.ComboBox.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.TreeView.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.TabView.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Docker.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Window.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Slider.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.ProgressBar.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Grid.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Image.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.TemplatedContainer.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.TemplatedGroup.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.IMLContainer.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Wrapper.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.ColorPicker.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Border.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.GroupBox.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.ScrollBar.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Menu.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.MenuItem.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Shape.svg" />
+    <EmbeddedResource Include="icons\toolbox\padding.svg" />
+    <EmbeddedResource Include="icons\toolbox\modal-list.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Scroller.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.FileDialog.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.TabItem.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.Expandable.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.DirectoryView.svg" />
+    <EmbeddedResource Include="icons\toolbox\Crow.MessageBox.svg" />
   </ItemGroup>
   <ItemGroup>
     <None Include="ui\test.crow">
diff --git a/CrowIDE/CrowIDE.sln b/CrowIDE/CrowIDE.sln
new file mode 100644 (file)
index 0000000..49e1e02
--- /dev/null
@@ -0,0 +1,17 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrowIDE", "CrowIDE.csproj", "{B6D911CD-1D09-42FC-B300-9187190F2AE1}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Any CPU = Debug|Any CPU
+               Release|Any CPU = Release|Any CPU
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Release|Any CPU.Build.0 = Release|Any CPU
+       EndGlobalSection
+EndGlobal
diff --git a/CrowIDE/CrowIDE.userprefs b/CrowIDE/CrowIDE.userprefs
new file mode 100644 (file)
index 0000000..0f4ab21
--- /dev/null
@@ -0,0 +1,19 @@
+<Properties StartupConfiguration="{B6D911CD-1D09-42FC-B300-9187190F2AE1}|Default">
+  <MonoDevelop.Ide.Workbench />
+  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
+  <MonoDevelop.Ide.DebuggingService.Breakpoints>
+    <BreakpointStore />
+  </MonoDevelop.Ide.DebuggingService.Breakpoints>
+  <MonoDevelop.Ide.DebuggingService.PinnedWatches>
+    <Watch file="../src/GraphicObjects/Shape.cs" line="42" offsetX="508" offsetY="265" expression="c" liveUpdate="False" />
+    <Watch file="../src/GraphicObjects/Shape.cs" line="48" offsetX="524" offsetY="319" expression="tmp" liveUpdate="False" />
+    <Watch file="../src/GraphicObjects/Slider.cs" line="88" offsetX="534" offsetY="788" expression="value" liveUpdate="False" />
+    <Watch file="src/SourceEditor/SourceEditor.cs" line="632" offsetX="703" offsetY="8806" expression="cl.Tokens [t]" liveUpdate="False" />
+    <Watch file="src/SourceEditor/CSharpParser.cs" line="202" offsetX="590" offsetY="1493" expression="currentTok" liveUpdate="False" />
+    <Watch file="src/SourceEditor/Parser.cs" line="258" offsetX="328" offsetY="3348" expression="tmp" liveUpdate="False" />
+    <Watch file="src/SourceEditor/SourceEditor.cs" line="629" offsetX="835" offsetY="9513" expression="lineIndex" liveUpdate="False" />
+    <Watch file="src/SourceEditor/BufferParser.cs" line="90" offsetX="544" offsetY="972" expression="SyntacticTreeMaxDepth" liveUpdate="False" />
+  </MonoDevelop.Ide.DebuggingService.PinnedWatches>
+  <MultiItemStartupConfigurations />
+  <MonoDevelop.Ide.ItemProperties.CrowIDE PreferredExecutionTarget="MonoDevelop.Default" />
+</Properties>
\ No newline at end of file
diff --git a/CrowIDE/icons/toolbox/Crow.Border.svg b/CrowIDE/icons/toolbox/Crow.Border.svg
new file mode 100644 (file)
index 0000000..9337dee
--- /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="#444444" d="M14 2v-2h-14v14h2v2h14v-14h-2zM13 13h-12v-12h12v12z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Button.svg b/CrowIDE/icons/toolbox/Crow.Button.svg
new file mode 100644 (file)
index 0000000..34c2a56
--- /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="#444444" 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/CrowIDE/icons/toolbox/Crow.CheckBox.svg b/CrowIDE/icons/toolbox/Crow.CheckBox.svg
new file mode 100644 (file)
index 0000000..c6415d8
--- /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="#444444" 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/CrowIDE/icons/toolbox/Crow.ColorPicker.svg b/CrowIDE/icons/toolbox/Crow.ColorPicker.svg
new file mode 100644 (file)
index 0000000..d2a3f6e
--- /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="#444444" 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/CrowIDE/icons/toolbox/Crow.ComboBox.svg b/CrowIDE/icons/toolbox/Crow.ComboBox.svg
new file mode 100644 (file)
index 0000000..7ed5133
--- /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="#444444" 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="#444444" d="M2 6h1v4h-1v-4z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Container.svg b/CrowIDE/icons/toolbox/Crow.Container.svg
new file mode 100644 (file)
index 0000000..a0015fa
--- /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="#444444" d="M15 1h-14v14h14v-14zM14 14h-12v-12h12v12z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.DirectoryView.svg b/CrowIDE/icons/toolbox/Crow.DirectoryView.svg
new file mode 100644 (file)
index 0000000..587450a
--- /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="#444444" 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/CrowIDE/icons/toolbox/Crow.Docker.svg b/CrowIDE/icons/toolbox/Crow.Docker.svg
new file mode 100644 (file)
index 0000000..1831feb
--- /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="#444444" d="M0 2v13h15v-13h-15zM13 3h1v1h-1v-1zM7 14h-6v-9h6v9zM14 14h-6v-9h6v9z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Expandable.svg b/CrowIDE/icons/toolbox/Crow.Expandable.svg
new file mode 100644 (file)
index 0000000..3dd3699
--- /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="#444444" 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/CrowIDE/icons/toolbox/Crow.FileDialog.svg b/CrowIDE/icons/toolbox/Crow.FileDialog.svg
new file mode 100644 (file)
index 0000000..a495640
--- /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="#444444" d="M11 2h-6v4h6v-4zM9 4h-2v-1h2v1z"></path>
+<path fill="#444444" d="M3 0v16h2v-1h6v1h2v-16h-10zM12 14h-8v-6h8v6zM12 7h-8v-6h8v6z"></path>
+<path fill="#444444" d="M11 9h-6v4h6v-4zM9 11h-2v-1h2v1z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Grid.svg b/CrowIDE/icons/toolbox/Crow.Grid.svg
new file mode 100644 (file)
index 0000000..acf1594
--- /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="#444444" 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/CrowIDE/icons/toolbox/Crow.Group.svg b/CrowIDE/icons/toolbox/Crow.Group.svg
new file mode 100644 (file)
index 0000000..e679974
--- /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="#444444" d="M0 7h7v-7h-7v7zM1 1h5v5h-5v-5z"></path>
+<path fill="#444444" d="M9 0v7h7v-7h-7zM15 6h-5v-5h5v5z"></path>
+<path fill="#444444" d="M0 16h7v-7h-7v7zM1 10h5v5h-5v-5z"></path>
+<path fill="#444444" d="M9 16h7v-7h-7v7zM10 10h5v5h-5v-5z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.GroupBox.svg b/CrowIDE/icons/toolbox/Crow.GroupBox.svg
new file mode 100644 (file)
index 0000000..b2c1d03
--- /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="#444444" d="M1 4h-1v-4h4v1h-3z"></path>
+<path fill="#444444" d="M12 1v-1h4v4h-1v-3z"></path>
+<path fill="#444444" d="M15 12h1v4h-4v-1h3z"></path>
+<path fill="#444444" d="M4 15v1h-4v-4h1v3z"></path>
+<path fill="#444444" d="M13 3v10h-10v-10h10zM14 2h-12v12h12v-12z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.HorizontalStack.svg b/CrowIDE/icons/toolbox/Crow.HorizontalStack.svg
new file mode 100644 (file)
index 0000000..62ea475
--- /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="#444444" d="M0 0v16h16v-16h-16zM5 15h-4v-14h4v14zM10 15h-4v-14h4v14zM15 15h-4v-14h4v14z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.IMLContainer.svg b/CrowIDE/icons/toolbox/Crow.IMLContainer.svg
new file mode 100644 (file)
index 0000000..81f8524
--- /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="#444444" d="M5.2 14l4.5-12h1.1l-4.5 12z"></path>
+<path fill="#444444" d="M11.1 13h1.2l3.7-5-3.7-5h-1.3l3.8 5z"></path>
+<path fill="#444444" d="M4.9 13h-1.2l-3.7-5 3.7-5h1.3l-3.8 5z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Image.svg b/CrowIDE/icons/toolbox/Crow.Image.svg
new file mode 100644 (file)
index 0000000..f17cce6
--- /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="#444444" d="M16 14h-16v-12h16v12zM1 13h14v-10h-14v10z"></path>
+<path fill="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/Crow.Label.svg b/CrowIDE/icons/toolbox/Crow.Label.svg
new file mode 100644 (file)
index 0000000..56c8c34
--- /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="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/Crow.ListBox.svg b/CrowIDE/icons/toolbox/Crow.ListBox.svg
new file mode 100644 (file)
index 0000000..f466e3b
--- /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="#444444" d="M0 1h3v3h-3v-3z"></path>
+<path fill="#444444" d="M0 6h3v3h-3v-3z"></path>
+<path fill="#444444" d="M0 11h3v3h-3v-3z"></path>
+<path fill="#444444" d="M5 1h11v3h-11v-3z"></path>
+<path fill="#444444" d="M5 6h11v3h-11v-3z"></path>
+<path fill="#444444" d="M5 11h11v3h-11v-3z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Menu.svg b/CrowIDE/icons/toolbox/Crow.Menu.svg
new file mode 100644 (file)
index 0000000..9d0bf4a
--- /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="#444444" d="M15 2v2h-9v-2h9zM16 1h-11v4h11v-4z"></path>
+<path fill="#444444" d="M0 1h4v4h-4v-4z"></path>
+<path fill="#444444" d="M15 7v2h-9v-2h9zM16 6h-11v4h11v-4z"></path>
+<path fill="#444444" d="M0 6h4v4h-4v-4z"></path>
+<path fill="#444444" d="M15 12v2h-9v-2h9zM16 11h-11v4h11v-4z"></path>
+<path fill="#444444" d="M0 11h4v4h-4v-4z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.MenuItem.svg b/CrowIDE/icons/toolbox/Crow.MenuItem.svg
new file mode 100644 (file)
index 0000000..68932e2
--- /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="#444444" d="M15 7v2h-9v-2h9zM16 6h-11v4h11v-4z"></path>
+<path fill="#444444" d="M0 6h4v4h-4v-4z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.MessageBox.svg b/CrowIDE/icons/toolbox/Crow.MessageBox.svg
new file mode 100644 (file)
index 0000000..3e608eb
--- /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="#444444" 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="#444444" d="M7 6h2v7h-2v-7z"></path>
+<path fill="#444444" d="M7 3h2v2h-2v-2z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.ProgressBar.svg b/CrowIDE/icons/toolbox/Crow.ProgressBar.svg
new file mode 100644 (file)
index 0000000..63057a7
--- /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="#444444" d="M0 5v6h16v-6h-16zM15 10h-14v-4h14v4z"></path>
+<path fill="#444444" d="M2 7h7v2h-7v-2z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.RadioButton.svg b/CrowIDE/icons/toolbox/Crow.RadioButton.svg
new file mode 100644 (file)
index 0000000..a149a35
--- /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="#444444" 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="#444444" 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="#444444" 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="#444444" d="M8 2h8v3h-8v-3z"></path>
+<path fill="#444444" d="M8 10h8v3h-8v-3z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.ScrollBar.svg b/CrowIDE/icons/toolbox/Crow.ScrollBar.svg
new file mode 100644 (file)
index 0000000..eab0c58
--- /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="#444444" d="M2 2h1v4h-1v-4z"></path>
+<path fill="#444444" 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/CrowIDE/icons/toolbox/Crow.Scroller.svg b/CrowIDE/icons/toolbox/Crow.Scroller.svg
new file mode 100644 (file)
index 0000000..b36551b
--- /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="#444444" d="M0 0v16h16v-16h-16zM15 15h-14v-6h3v1l3-2-3-2v1h-3v-6h6v3h-1l2 3 2-3h-1v-3h6v14z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Shape.svg b/CrowIDE/icons/toolbox/Crow.Shape.svg
new file mode 100644 (file)
index 0000000..2ebd68f
--- /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="#444444" d="M8 0l-8 8 8 8 8-8-8-8zM2 8l6-6 6 6-6 6-6-6z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Slider.svg b/CrowIDE/icons/toolbox/Crow.Slider.svg
new file mode 100644 (file)
index 0000000..f3c6296
--- /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="#444444" 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/CrowIDE/icons/toolbox/Crow.Spinner.svg b/CrowIDE/icons/toolbox/Crow.Spinner.svg
new file mode 100644 (file)
index 0000000..3a3dc5d
--- /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="#444444" d="M11 7h-6l3-4z"></path>
+<path fill="#444444" d="M5 9h6l-3 4z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Splitter.svg b/CrowIDE/icons/toolbox/Crow.Splitter.svg
new file mode 100644 (file)
index 0000000..be8fb02
--- /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="#444444" d="M7 0h2v16h-2v-16z"></path>
+<path fill="#444444" d="M3 5l-3 3 3 3v-2h3v-2h-3z"></path>
+<path fill="#444444" d="M16 8l-3-3v2h-3v2h3v2z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.TabItem.svg b/CrowIDE/icons/toolbox/Crow.TabItem.svg
new file mode 100644 (file)
index 0000000..0b5bd9c
--- /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="#444444" 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/CrowIDE/icons/toolbox/Crow.TabView.svg b/CrowIDE/icons/toolbox/Crow.TabView.svg
new file mode 100644 (file)
index 0000000..8d9f794
--- /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="#444444" d="M14 4v-2h-14v13h16v-11h-2zM10 3h3v1h-3v-1zM6 3h3v1h-3v-1zM15 14h-14v-11h4v2h10v9z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.TemplatedContainer.svg b/CrowIDE/icons/toolbox/Crow.TemplatedContainer.svg
new file mode 100644 (file)
index 0000000..a4b3a4f
--- /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="#444444" 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/CrowIDE/icons/toolbox/Crow.TemplatedGroup.svg b/CrowIDE/icons/toolbox/Crow.TemplatedGroup.svg
new file mode 100644 (file)
index 0000000..d83ab4d
--- /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="#444444" 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/CrowIDE/icons/toolbox/Crow.TextBox.svg b/CrowIDE/icons/toolbox/Crow.TextBox.svg
new file mode 100644 (file)
index 0000000..98abb7b
--- /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="#444444" 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="#444444" d="M2 6h1v4h-1v-4z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.TreeView.svg b/CrowIDE/icons/toolbox/Crow.TreeView.svg
new file mode 100644 (file)
index 0000000..33b0cda
--- /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="#444444" d="M16 10v-4h-11v1h-2v-3h9v-4h-12v4h2v10h3v2h11v-4h-11v1h-2v-5h2v2z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.VerticalStack.svg b/CrowIDE/icons/toolbox/Crow.VerticalStack.svg
new file mode 100644 (file)
index 0000000..b58772b
--- /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="#444444" d="M16 0h-16v16h16v-16zM1 5v-4h14v4h-14zM1 10v-4h14v4h-14zM1 15v-4h14v4h-14z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Window.svg b/CrowIDE/icons/toolbox/Crow.Window.svg
new file mode 100644 (file)
index 0000000..ae8f3ab
--- /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="#444444" d="M0 4v11h16v-14h-16v3zM14 2h1v1h-1v-1zM1 4h14v10h-14v-10z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/Crow.Wrapper.svg b/CrowIDE/icons/toolbox/Crow.Wrapper.svg
new file mode 100644 (file)
index 0000000..88506a1
--- /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="#444444" d="M0 6h4v4h-4v-4z"></path>
+<path fill="#444444" d="M6 6h4v4h-4v-4z"></path>
+<path fill="#444444" d="M12 6h4v4h-4v-4z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/bar-chart.svg b/CrowIDE/icons/toolbox/bar-chart.svg
new file mode 100644 (file)
index 0000000..08c633b
--- /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="#444444" d="M0 15h15v1h-15v-1z"></path>
+<path fill="#444444" d="M0 11h3v3h-3v-3z"></path>
+<path fill="#444444" d="M4 9h3v5h-3v-5z"></path>
+<path fill="#444444" d="M8 5h3v9h-3v-9z"></path>
+<path fill="#444444" d="M12 0h3v14h-3v-14z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/bar-menu.svg b/CrowIDE/icons/toolbox/bar-menu.svg
new file mode 100644 (file)
index 0000000..0bbb97d
--- /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="#444444" d="M0 1h16v3h-16v-3z"></path>
+<path fill="#444444" d="M0 6h16v3h-16v-3z"></path>
+<path fill="#444444" d="M0 11h16v3h-16v-3z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/bullets.svg b/CrowIDE/icons/toolbox/bullets.svg
new file mode 100644 (file)
index 0000000..1f8c569
--- /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="#444444" 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="#444444" 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="#444444" 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="#444444" d="M5 1h11v3h-11v-3z"></path>
+<path fill="#444444" d="M5 6h11v3h-11v-3z"></path>
+<path fill="#444444" d="M5 11h11v3h-11v-3z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/calendar.svg b/CrowIDE/icons/toolbox/calendar.svg
new file mode 100644 (file)
index 0000000..35df970
--- /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="#444444" 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="#444444" d="M3 0h1v3h-1v-3z"></path>
+<path fill="#444444" d="M12 0h1v3h-1v-3z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/check-square-1.svg b/CrowIDE/icons/toolbox/check-square-1.svg
new file mode 100644 (file)
index 0000000..fca782c
--- /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="#444444" d="M14 6.2v7.8h-12v-12h10.5l1-1h-12.5v14h14v-9.8z"></path>
+<path fill="#444444" 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/CrowIDE/icons/toolbox/curly-brackets.svg b/CrowIDE/icons/toolbox/curly-brackets.svg
new file mode 100644 (file)
index 0000000..f70fe9f
--- /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="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/database.svg b/CrowIDE/icons/toolbox/database.svg
new file mode 100644 (file)
index 0000000..bd2d182
--- /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="#444444" 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="#444444" 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="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/dot-inside-a-circle.svg b/CrowIDE/icons/toolbox/dot-inside-a-circle.svg
new file mode 100644 (file)
index 0000000..c84374a
--- /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="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/edit.svg b/CrowIDE/icons/toolbox/edit.svg
new file mode 100644 (file)
index 0000000..f4b3190
--- /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="#444444" 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/CrowIDE/icons/toolbox/ellipsis.svg b/CrowIDE/icons/toolbox/ellipsis.svg
new file mode 100644 (file)
index 0000000..6e1cc42
--- /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="#444444" d="M6 0h4v4h-4v-4z"></path>
+<path fill="#444444" d="M6 6h4v4h-4v-4z"></path>
+<path fill="#444444" d="M6 12h4v4h-4v-4z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/eraser.svg b/CrowIDE/icons/toolbox/eraser.svg
new file mode 100644 (file)
index 0000000..ae4c190
--- /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="#444444" 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/CrowIDE/icons/toolbox/exclamation-circle-1.svg b/CrowIDE/icons/toolbox/exclamation-circle-1.svg
new file mode 100644 (file)
index 0000000..8b2f318
--- /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="#444444" 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="#444444" d="M7 3h2v7h-2v-7z"></path>
+<path fill="#444444" d="M7 11h2v2h-2v-2z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/exclamation-circle.svg b/CrowIDE/icons/toolbox/exclamation-circle.svg
new file mode 100644 (file)
index 0000000..fd1a258
--- /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="#444444" d="M8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zM9 13h-2v-2h2v2zM9 10h-2v-7h2v7z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/file-code.svg b/CrowIDE/icons/toolbox/file-code.svg
new file mode 100644 (file)
index 0000000..3727328
--- /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="#444444" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#444444" d="M6.2 13h-0.7l-2-2.5 2-2.5h0.7l-2 2.5z"></path>
+<path fill="#444444" d="M9.8 13h0.7l2-2.5-2-2.5h-0.7l2 2.5z"></path>
+<path fill="#444444" d="M6.7 14h0.6l2.1-7h-0.8z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/gear.svg b/CrowIDE/icons/toolbox/gear.svg
new file mode 100644 (file)
index 0000000..3f6ed2b
--- /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="#444444" 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="#444444" 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="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/grab.svg b/CrowIDE/icons/toolbox/grab.svg
new file mode 100644 (file)
index 0000000..a0b7580
--- /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="#444444" 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/CrowIDE/icons/toolbox/hard-drive-1.svg b/CrowIDE/icons/toolbox/hard-drive-1.svg
new file mode 100644 (file)
index 0000000..7bab2e5
--- /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="#444444" d="M13 1h-10l-2.7 8h15.4z"></path>
+<path fill="#444444" d="M0 10v5h16v-5h-16zM3 13h-1v-1h1v1zM7 13h-3v-1h3v1z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/hash.svg b/CrowIDE/icons/toolbox/hash.svg
new file mode 100644 (file)
index 0000000..401536c
--- /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="#444444" 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/CrowIDE/icons/toolbox/info.svg b/CrowIDE/icons/toolbox/info.svg
new file mode 100644 (file)
index 0000000..af12b4b
--- /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="#444444" d="M7 5h3v11h-3v-11z"></path>
+<path fill="#444444" d="M10.5 2c0 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/CrowIDE/icons/toolbox/layout.svg b/CrowIDE/icons/toolbox/layout.svg
new file mode 100644 (file)
index 0000000..c3ab446
--- /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="#444444" d="M0 0v16h16v-16h-16zM1 3h4v12h-4v-12zM15 15h-9v-12h9v12z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/light-bulb.svg b/CrowIDE/icons/toolbox/light-bulb.svg
new file mode 100644 (file)
index 0000000..c7df82a
--- /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="#444444" 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="#444444" d="M11 5h-1c0-0.7-0.8-2-2-2v-1c1.8 0 3 1.8 3 3z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/line-list.svg b/CrowIDE/icons/toolbox/line-list.svg
new file mode 100644 (file)
index 0000000..f9b157c
--- /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="#444444" d="M0 1h3v2h-3v-2z"></path>
+<path fill="#444444" d="M0 5h3v2h-3v-2z"></path>
+<path fill="#444444" d="M0 9h3v2h-3v-2z"></path>
+<path fill="#444444" d="M0 13h3v2h-3v-2z"></path>
+<path fill="#444444" d="M4 1h12v2h-12v-2z"></path>
+<path fill="#444444" d="M4 5h12v2h-12v-2z"></path>
+<path fill="#444444" d="M4 9h12v2h-12v-2z"></path>
+<path fill="#444444" d="M4 13h12v2h-12v-2z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/list.svg b/CrowIDE/icons/toolbox/list.svg
new file mode 100644 (file)
index 0000000..117a58c
--- /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="#444444" d="M4 0h12v4h-12v-4z"></path>
+<path fill="#444444" d="M4 6h12v4h-12v-4z"></path>
+<path fill="#444444" d="M4 12h12v4h-12v-4z"></path>
+<path fill="#444444" d="M1 0l-0.9 0.5 0.2 0.7 0.7-0.3v3.1h1v-4z"></path>
+<path fill="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/modal-list.svg b/CrowIDE/icons/toolbox/modal-list.svg
new file mode 100644 (file)
index 0000000..6e0e527
--- /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="#444444" d="M0 4v11h16v-14h-16v3zM14 2h1v1h-1v-1zM1 4h14v10h-14v-10z"></path>
+<path fill="#444444" d="M3 6h2v1h-2v-1z"></path>
+<path fill="#444444" d="M6 6h7v1h-7v-1z"></path>
+<path fill="#444444" d="M3 8h2v1h-2v-1z"></path>
+<path fill="#444444" d="M6 8h7v1h-7v-1z"></path>
+<path fill="#444444" d="M3 10h2v1h-2v-1z"></path>
+<path fill="#444444" d="M6 10h7v1h-7v-1z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/move-arrows.svg b/CrowIDE/icons/toolbox/move-arrows.svg
new file mode 100644 (file)
index 0000000..2100ea2
--- /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="#444444" 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/CrowIDE/icons/toolbox/package.svg b/CrowIDE/icons/toolbox/package.svg
new file mode 100644 (file)
index 0000000..7ee3404
--- /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="#444444" 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/CrowIDE/icons/toolbox/padding.svg b/CrowIDE/icons/toolbox/padding.svg
new file mode 100644 (file)
index 0000000..5ef0f28
--- /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="#444444" 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="#444444" d="M3 2h1v1h-1v-1z"></path>
+<path fill="#444444" d="M4 3h1v1h-1v-1z"></path>
+<path fill="#444444" d="M6 3h1v1h-1v-1z"></path>
+<path fill="#444444" d="M5 2h1v1h-1v-1z"></path>
+<path fill="#444444" d="M7 2h1v1h-1v-1z"></path>
+<path fill="#444444" d="M9 2h1v1h-1v-1z"></path>
+<path fill="#444444" d="M8 3h1v1h-1v-1z"></path>
+<path fill="#444444" d="M10 3h1v1h-1v-1z"></path>
+<path fill="#444444" d="M12 3h1v1h-1v-1z"></path>
+<path fill="#444444" d="M11 2h1v1h-1v-1z"></path>
+<path fill="#444444" d="M13 2h1v1h-1v-1z"></path>
+<path fill="#444444" d="M12 5h1v1h-1v-1z"></path>
+<path fill="#444444" d="M13 4h1v1h-1v-1z"></path>
+<path fill="#444444" d="M12 7h1v1h-1v-1z"></path>
+<path fill="#444444" d="M13 6h1v1h-1v-1z"></path>
+<path fill="#444444" d="M12 9h1v1h-1v-1z"></path>
+<path fill="#444444" d="M13 8h1v1h-1v-1z"></path>
+<path fill="#444444" d="M12 11h1v1h-1v-1z"></path>
+<path fill="#444444" d="M13 10h1v1h-1v-1z"></path>
+<path fill="#444444" d="M12 13h1v1h-1v-1z"></path>
+<path fill="#444444" d="M13 12h1v1h-1v-1z"></path>
+<path fill="#444444" d="M2 3h1v1h-1v-1z"></path>
+<path fill="#444444" d="M3 4h1v1h-1v-1z"></path>
+<path fill="#444444" d="M2 5h1v1h-1v-1z"></path>
+<path fill="#444444" d="M3 6h1v1h-1v-1z"></path>
+<path fill="#444444" d="M2 7h1v1h-1v-1z"></path>
+<path fill="#444444" d="M3 8h1v1h-1v-1z"></path>
+<path fill="#444444" d="M2 9h1v1h-1v-1z"></path>
+<path fill="#444444" d="M3 10h1v1h-1v-1z"></path>
+<path fill="#444444" d="M2 11h1v1h-1v-1z"></path>
+<path fill="#444444" d="M2 13h1v1h-1v-1z"></path>
+<path fill="#444444" d="M3 12h1v1h-1v-1z"></path>
+<path fill="#444444" d="M4 11h1v1h-1v-1z"></path>
+<path fill="#444444" d="M4 13h1v1h-1v-1z"></path>
+<path fill="#444444" d="M5 12h1v1h-1v-1z"></path>
+<path fill="#444444" d="M6 13h1v1h-1v-1z"></path>
+<path fill="#444444" d="M7 12h1v1h-1v-1z"></path>
+<path fill="#444444" d="M9 12h1v1h-1v-1z"></path>
+<path fill="#444444" d="M8 13h1v1h-1v-1z"></path>
+<path fill="#444444" d="M11 12h1v1h-1v-1z"></path>
+<path fill="#444444" d="M10 13h1v1h-1v-1z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/paint-brush.svg b/CrowIDE/icons/toolbox/paint-brush.svg
new file mode 100644 (file)
index 0000000..b98eb85
--- /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="#444444" 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="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/picture-file.svg b/CrowIDE/icons/toolbox/picture-file.svg
new file mode 100644 (file)
index 0000000..f0b3f7f
--- /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="#444444" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/pin.svg b/CrowIDE/icons/toolbox/pin.svg
new file mode 100644 (file)
index 0000000..0c66eb3
--- /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="#444444" 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/CrowIDE/icons/toolbox/pointer.svg b/CrowIDE/icons/toolbox/pointer.svg
new file mode 100644 (file)
index 0000000..d0ec071
--- /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="#444444" 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/CrowIDE/icons/toolbox/puzzle-piece.svg b/CrowIDE/icons/toolbox/puzzle-piece.svg
new file mode 100644 (file)
index 0000000..889dfe8
--- /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="#444444" 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/CrowIDE/icons/toolbox/refresh-file.svg b/CrowIDE/icons/toolbox/refresh-file.svg
new file mode 100644 (file)
index 0000000..77bfdfa
--- /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="#444444" d="M10 0h-8v16h12v-12l-4-4zM13 15h-10v-14h6v4h4v10zM10 4v-3l3 3h-3z"></path>
+<path fill="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/search.svg b/CrowIDE/icons/toolbox/search.svg
new file mode 100644 (file)
index 0000000..3b13c13
--- /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="#444444" 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/CrowIDE/icons/toolbox/sliders.svg b/CrowIDE/icons/toolbox/sliders.svg
new file mode 100644 (file)
index 0000000..7a7b4c8
--- /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="#444444" d="M7 0h2v3h-2v-3z"></path>
+<path fill="#444444" d="M6 4v3h1v9h2v-9h1v-3z"></path>
+<path fill="#444444" d="M2 0h2v8h-2v-8z"></path>
+<path fill="#444444" d="M1 9v3h1v4h2v-4h1v-3z"></path>
+<path fill="#444444" d="M12 0h2v10h-2v-10z"></path>
+<path fill="#444444" d="M11 11v3h1v2h2v-2h1v-3z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/split-browser-1.svg b/CrowIDE/icons/toolbox/split-browser-1.svg
new file mode 100644 (file)
index 0000000..019cf26
--- /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="#444444" d="M0 15h15v-13h-15v13zM13 3h1v1h-1v-1zM14 14h-13v-4h13v4zM14 9h-13v-4h13v4z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/table.svg b/CrowIDE/icons/toolbox/table.svg
new file mode 100644 (file)
index 0000000..b546628
--- /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="#444444" 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/CrowIDE/icons/toolbox/tasks.svg b/CrowIDE/icons/toolbox/tasks.svg
new file mode 100644 (file)
index 0000000..c8ba6a7
--- /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="#444444" d="M6 0h10v4h-10v-4z"></path>
+<path fill="#444444" d="M6 6h10v4h-10v-4z"></path>
+<path fill="#444444" d="M6 12h10v4h-10v-4z"></path>
+<path fill="#444444" d="M3 1v2h-2v-2h2zM4 0h-4v4h4v-4z"></path>
+<path fill="#444444" d="M3 13v2h-2v-2h2zM4 12h-4v4h4v-4z"></path>
+<path fill="#444444" 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/CrowIDE/icons/toolbox/text-file.svg b/CrowIDE/icons/toolbox/text-file.svg
new file mode 100644 (file)
index 0000000..88fe979
--- /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="#444444" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#444444" d="M4 7h8v1h-8v-1z"></path>
+<path fill="#444444" d="M4 9h8v1h-8v-1z"></path>
+<path fill="#444444" d="M4 11h8v1h-8v-1z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/tools.svg b/CrowIDE/icons/toolbox/tools.svg
new file mode 100644 (file)
index 0000000..8fa643b
--- /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="#444444" 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="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/trash.svg b/CrowIDE/icons/toolbox/trash.svg
new file mode 100644 (file)
index 0000000..cf7f728
--- /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="#444444" 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="#444444" 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/CrowIDE/icons/toolbox/warning.svg b/CrowIDE/icons/toolbox/warning.svg
new file mode 100644 (file)
index 0000000..7e0d4c6
--- /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="#444444" 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/CrowIDE/icons/toolbox/zoom-in.svg b/CrowIDE/icons/toolbox/zoom-in.svg
new file mode 100644 (file)
index 0000000..1ec25bb
--- /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="#444444" 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="#444444" d="M7 3h-2v2h-2v2h2v2h2v-2h2v-2h-2z"></path>
+</svg>
diff --git a/CrowIDE/icons/toolbox/zoom-out.svg b/CrowIDE/icons/toolbox/zoom-out.svg
new file mode 100644 (file)
index 0000000..414cf9d
--- /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="#444444" 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="#444444" d="M3 5h6v2h-6v-2z"></path>
+</svg>
index f2b4d9c2a7e002eb5982b3f5325b7bfa50568649..a5e8c249390ded3f7a9198ca68ccf285feb9a2e5 100644 (file)
@@ -42,6 +42,7 @@ namespace Crow.Coding
                CMDUndo, CMDRedo, CMDCut, CMDCopy, CMDPaste, CMDHelp,
                CMDAbout, CMDOptions,
                CMDViewGTExp, CMDViewProps, CMDViewProj, CMDViewProjProps, CMDViewErrors, CMDViewSolution, CMDViewEditor, CMDViewProperties,
+               CMDViewToolbox,
                CMDCompile;
 
                void initCommands () {
@@ -66,6 +67,8 @@ namespace Crow.Coding
                        { Caption = "Editor Pane"};
                        CMDViewProperties = new Command(new Action(() => loadDockWindow ("#Crow.Coding.ui.DockWindows.winProperties.crow")))
                        { Caption = "Properties"};
+                       CMDViewToolbox = new Command(new Action(() => loadDockWindow ("#Crow.Coding.ui.DockWindows.winToolbox.crow")))
+                       { Caption = "Toolbox"};
 
                        CMDViewGTExp = new Command(new Action(() => loadWindow ("#Crow.Coding.ui.GTreeExplorer.crow"))) { Caption = "Graphic Tree Explorer"};
                        CMDViewProps = new Command(new Action(() => loadWindow ("#Crow.Coding.ui.MemberView.crow"))) { Caption = "Properties View"};
@@ -134,6 +137,10 @@ namespace Crow.Coding
                        dw = loadDockWindow ("#Crow.Coding.ui.DockWindows.winSolution.crow");
                        dw.DockingPosition = Alignment.Right;
                        dw.Dock (mainDock.Children [0] as DockStack);
+                       dw = loadDockWindow ("#Crow.Coding.ui.DockWindows.winToolbox.crow");
+                       dw.DockingPosition = Alignment.Left;
+                       dw.Dock (mainDock.Children [0] as DockStack);
+
                }
 
                void loadProjProps () {
index 0ac3e3ba795f253d20254125246df4256d5e373e..3c1abf016665119c9752c47f736401ad3ebcf9ae 100644 (file)
@@ -26,6 +26,9 @@
 using System;
 using Crow;
 using System.Globalization;
+using System.Threading;
+using System.Collections.Generic;
+using System.Diagnostics;
 
 namespace Crow.Coding
 {
@@ -156,6 +159,34 @@ namespace Crow.Coding
                        HoverWidget = null;
                        return false;           
                }
+       
+               protected override void processLayouting ()
+               {
+                       #if MEASURE_TIME
+                       layoutingMeasure.StartCycle();
+                       #endif
+
+                       if (Monitor.TryEnter (LayoutMutex)) {
+                               DiscardQueue = new Queue<LayoutingQueueItem> ();
+                               LayoutingQueueItem lqi;
+                               while (LayoutingQueue.Count > 0) {
+                                       lqi = LayoutingQueue.Dequeue ();
+                                       Console.WriteLine (lqi.ToString ());
+                                       #if DEBUG_LAYOUTING
+                                       currentLQI = lqi;
+                                       curLQIsTries.Add(currentLQI);
+                                       #endif
+                                       lqi.ProcessLayouting ();
+                               }
+                               LayoutingQueue = DiscardQueue;
+                               Monitor.Exit (LayoutMutex);
+                               DiscardQueue = null;
+                       }
+
+                       #if MEASURE_TIME
+                       layoutingMeasure.StopCycle();
+                       #endif
+               }
        }
 }
 
diff --git a/CrowIDE/src/GraphicObjectDesignContainer.cs b/CrowIDE/src/GraphicObjectDesignContainer.cs
new file mode 100644 (file)
index 0000000..c8e1a70
--- /dev/null
@@ -0,0 +1,83 @@
+//
+// GraphicObjectDesignContainer.cs
+//
+// Author:
+//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using Cairo;
+
+namespace Crow.Coding
+{
+       public class GraphicObjectDesignContainer
+       {
+               public Type CrowType;
+
+               public string IconPath {
+                       get { return "#Crow.Coding.icons.toolbox." + CrowType.FullName + ".svg"; }
+               }
+               public string DisplayName {
+                       get { return CrowType.Name; }
+               }
+                       
+               public GraphicObjectDesignContainer (Type crowType)
+               {
+                       CrowType = crowType;
+               }
+               int dis = 32;
+               void onStartDrag (object sender, EventArgs e)
+               {
+                       GraphicObject go = sender as GraphicObject;
+
+                       lock (go.IFace.UpdateMutex) {                           
+                               go.IFace.DragImageHeight = dis;
+                               go.IFace.DragImageWidth = dis;
+                               SvgPicture pic = new SvgPicture ();
+                               pic.Load (IconPath);
+                               ImageSurface img = new ImageSurface (Format.Argb32, dis, dis);
+                               using (Context ctx = new Context (img)) {
+                                       Rectangle r = new Rectangle (0, 0, dis, dis);
+                                       pic.Paint (ctx, r);     
+                                       ctx.Operator = Operator.In;
+                                       ctx.SetSourceRGBA (1.0, 1.0, 1.0, 1.0);
+                                       ctx.Rectangle (r);
+                                       ctx.Fill ();
+
+                               }
+                               go.IFace.DragImage = img;
+                       }
+               }
+               void onEndDrag (object sender, DragDropEventArgs e)
+               {
+                       (sender as GraphicObject).IFace.ClearDragImage ();
+
+               }
+               void onDrop (object sender, DragDropEventArgs e)
+               {
+                       ImlVisualEditor imlVE = e.DropTarget as ImlVisualEditor;
+                       if (imlVE != null)
+                               imlVE.ClearDraggedObj (false);
+                       (sender as GraphicObject).IFace.ClearDragImage ();
+               }
+       }
+}
+
index c9e5484e96d10ec6c145d598ff0edda71ef25499..88ee2ffe2935742b86cfce6e482422c07c913469 100644 (file)
@@ -194,14 +194,77 @@ namespace Crow.Coding
                                break;
                        }
                }
+               bool tryAddDraggedObjTo(GraphicObject g){
+                       lock (imlVE.UpdateMutex) {
+                               if (g.GetType ().IsSubclassOf (typeof(Container))) {
+                                       Container c = g as Container;
+                                       c.SetChild (draggedObj);
+                                       GraphicTree [0].design_HasChanged = true;
+                               } else if (g.GetType ().IsSubclassOf (typeof(Group))) {
+                                       Group c = g as Group;
+                                       c.AddChild (draggedObj);
+                               } else
+                                       return false;
+                               GraphicTree [0].design_HasChanged = true;
+                               draggedObjContainer = g;
+                       }
+                       return true;
+               }
+               bool isPossibleContainer (GraphicObject g){
+                       if (g.GetType().IsSubclassOf(typeof(Container))){
+                               Container c = g as Container;
+                               return c.Child == null;
+                       }
+                       return g.GetType ().IsSubclassOf (typeof(Group));
+               }
+               void removeDraggedObjFrom(){
+                       if (draggedObjContainer == null)
+                               return;
+                       lock (imlVE.UpdateMutex) {
+                               if (draggedObjContainer.GetType().IsSubclassOf(typeof(Container))){
+                                       Container c = draggedObjContainer as Container;
+                                       c.SetChild (null);
+                                       GraphicTree [0].design_HasChanged = true;
+                                       //Console.WriteLine ("remove {0} from {1}", draggedObj, c);
+                               }else if (draggedObjContainer.GetType().IsSubclassOf(typeof(Group))){
+                                       Group c = draggedObjContainer as Group;
+                                       c.RemoveChild (draggedObj);
+                                       GraphicTree [0].design_HasChanged = true;
+                                       //Console.WriteLine ("remove {0} from {1}", draggedObj, c);
+                               }//else
+                               //      Console.WriteLine ("Error removing dragged obj");
+                       }
+                       draggedObjContainer = null;
+               }
+               public void ClearDraggedObj (bool removeFromTree = true) {
+                       //Console.WriteLine ("Clear dragged obj {0}, remove from tree = {1}", draggedObj, removeFromTree);
+                       if (removeFromTree)
+                               removeDraggedObjFrom ();
+                       draggedObjContainer = null;
+                       if (draggedObj == null)
+                               return;
+                       if (removeFromTree)
+                               draggedObj.Dispose ();
+                       draggedObj = null;
+               }
                public override void onMouseMove (object sender, MouseMoveEventArgs e)
                {
-                       //base.onMouseMove (sender, e);
+                       base.onMouseMove (sender, e);
+
                        GraphicObject oldHW = HoverWidget;
                        Rectangle scr = this.ScreenCoordinates (this.getSlot ());
                        ProcessMouseMove (e.X - scr.X, e.Y - scr.Y);
+
                        if (oldHW == HoverWidget)
                                return;
+
+                       if (draggedObj != null) {
+                               if (isPossibleContainer (HoverWidget) && draggedObjContainer != HoverWidget) {
+                                       removeDraggedObjFrom ();
+                                       tryAddDraggedObjTo (HoverWidget);
+                               }
+                       }
+
                        RegisterForRedraw ();
 
                }
@@ -274,6 +337,30 @@ namespace Crow.Coding
                        gr.SetDash (new double[]{ 5.0, 3.0 },0.0);
                        gr.Rectangle (hr, 1.0);
                }
+
+               public GraphicObject draggedObj = null;
+               public GraphicObject draggedObjContainer = null;
+
+               protected override void onDragEnter (object sender, DragDropEventArgs e)
+               {
+                       base.onDragEnter (sender, e);
+                       GraphicObjectDesignContainer godc = e.DragSource.DataSource as GraphicObjectDesignContainer;
+                       if (godc == null)
+                               return;
+                       Console.WriteLine ("IMLEditor Drag Enter");
+
+                       lock (imlVE.UpdateMutex) {
+                               draggedObj = imlVE.CreateITorFromIMLFragment ("<" + godc.CrowType.Name + "/>").CreateInstance ();
+                       }
+               }
+               protected override void onDragLeave (object sender, DragDropEventArgs e)
+               {
+                       base.onDragLeave (sender, e);
+
+                       Console.WriteLine ("IMLEditor Drag Enter");
+
+                       ClearDraggedObj ();
+               }
                #endregion
 
                void WidgetCheckOver (GraphicObject go, MouseMoveEventArgs e){
index 65dc9595d00edfc1a348b435bd0ff52f104a804c..e23a41ba80ba730e31370a06c8eaa36313c9aa61 100644 (file)
@@ -112,11 +112,11 @@ namespace Crow.Coding
                        }
                }
 
-               public void updateSource () {
-                       if (projFile == null)
-                               return;
-                       projFile.UpdateSource (this, (Instance as GraphicObject).GetIML ());
-               }
+//             public void updateSource () {
+//                     if (projFile == null)
+//                             return;
+//                     projFile.UpdateSource (this, (Instance as GraphicObject).GetIML ());
+//             }
 
 //             public override void Paint (ref Context ctx)
 //             {
index bd100dae19097a05528bed49247759b74fedfcb7..fb4bcbfab57dacfd7847ae362bf098928827349b 100644 (file)
@@ -44,6 +44,7 @@ namespace Crow.Coding{
                ProjectItem selectedItem = null;
                object selectedItemElement = null;
                ObservableList<ProjectItem> openedItems = new ObservableList<ProjectItem>();
+               ObservableList<GraphicObjectDesignContainer> toolboxItems;
 
                public Dictionary<string, Style> Styling;
                public Dictionary<string, string> DefaultTemplates;
@@ -63,6 +64,17 @@ namespace Crow.Coding{
                        if (StartupProject != null)
                                StartupProject.GetDefaultTemplates ();
                }
+               public void updateToolboxItems () {
+                       Type[] crowItems = AppDomain.CurrentDomain.GetAssemblies ()
+                               .SelectMany (t => t.GetTypes ())
+                               .Where (t => t.IsClass && !t.IsAbstract && t.IsPublic &&                                        
+                                       t.Namespace == "Crow" && t.IsSubclassOf(typeof(GraphicObject)) &&
+                                       t.GetCustomAttribute<DesignIgnore>(false) == null).ToArray ();
+                       ToolboxItems = new ObservableList<GraphicObjectDesignContainer> ();
+                       foreach (Type ci in crowItems) {
+                               toolboxItems.AddElement(new GraphicObjectDesignContainer(ci));
+                       }
+               }
                public bool GetProjectFileFromPath (string path, out ProjectFile pi){
                        pi = null;
                        return StartupProject == null ? false :
@@ -78,6 +90,16 @@ namespace Crow.Coding{
                                NotifyValueChanged ("OpenedItems", openedItems);
                        }
                }
+
+               public ObservableList<GraphicObjectDesignContainer> ToolboxItems {
+                       get { return toolboxItems; }
+                       set {
+                               if (toolboxItems == value)
+                                       return;
+                               toolboxItems = value;
+                               NotifyValueChanged ("ToolboxItems", toolboxItems);
+                       }                       
+               }
                public ProjectItem SelectedItem {
                        get { return selectedItem; }
                        set {
@@ -451,6 +473,7 @@ namespace Crow.Coding{
                        s.UserConfig = new Configuration (s.path + ".user");
                        s.ReloadStyling ();
                        s.ReloadDefaultTemplates ();
+                       s.updateToolboxItems ();
                return s;
            } //LoadSolution
                #endregion
index 6bef920d93070293788f18740dc48bd1a8b01412..dfec17a3a456dbd5b19705331b774a957671017a 100644 (file)
@@ -341,6 +341,38 @@ namespace Crow.Coding
                }
                #endregion
 
+               protected Node addChildNode (Node curNode, CodeLine cl, int tokPtr, string type = "") {
+                       Node n = new Node () { Name = cl.Tokens [tokPtr].Content, StartLine = cl, Type = type };
+                       curNode.AddChild (n);
+                       if (cl.SyntacticNode == null)
+                               cl.SyntacticNode = n;
+                       SyntacticTreeDepth++;
+                       return n;
+               }
+               protected void closeNodeAndGoUp (ref Node n, CodeLine cl, string type = ""){
+                       while (n != null) {
+                               if (n.Type == type) {
+                                       n.EndLine = cl;
+                                       n = n.Parent;
+                                       SyntacticTreeDepth--;
+                                       break;
+                               }
+                               n = n.Parent;
+                               SyntacticTreeDepth--;
+                       }
+               }
+               protected void closeNodeAndGoUp (ref Node n, CodeLine cl){
+                       SyntacticTreeDepth--;
+                       n.EndLine = cl;
+                       n = n.Parent;
+               }
+
+               protected void initSyntaxAnalysis () {
+                       RootNode = new Node () { Name = "RootNode", Type="Root" };
+                       SyntacticTreeDepth = SyntacticTreeMaxDepth = 0;
+               }
+
+
                protected void throwParserException(string msg){
                        throw new ParserException (currentLine, currentColumn, msg);
                }
index f612dacce642b958bc3c4a960311883423707611..62090bc1acfb1295e3ec9ec0f7a4b4631b9ad7f2 100644 (file)
@@ -307,49 +307,10 @@ namespace Crow.Coding
                        cl.EndingState = (int)curState;
                }
                
-               Node addChildNode (Node curNode, CodeLine cl, int tokPtr, string type = "") {
-                       Node n = new Node () { Name = cl.Tokens [tokPtr].Content, StartLine = cl, Type = type };
-                       curNode.AddChild (n);
-                       if (cl.SyntacticNode == null)
-                               cl.SyntacticNode = n;
-                       SyntacticTreeDepth++;
-                       return n;
-               }
-               void closeNodeAndGoUp (ref Node n, CodeLine cl, string type = ""){
-                       while (n != null) {
-                               if (n.Type == type) {
-                                       n.EndLine = cl;
-                                       n = n.Parent;
-                                       SyntacticTreeDepth--;
-                                       break;
-                               }
-                               n = n.Parent;
-                               SyntacticTreeDepth--;
-                       }
-//                     if (n.StartLine == cl){//prevent single line node
-//                             n.Parent.Children.Remove (n);
-//                             if (cl.SyntacticNode == n)
-//                                     cl.SyntacticNode = null;
-//                     }else                           
-
-               }
-               void closeNodeAndGoUp (ref Node n, CodeLine cl){
-                       //                      if (n.StartLine == cl){//prevent single line node
-                       //                              n.Parent.Children.Remove (n);
-                       //                              if (cl.SyntacticNode == n)
-                       //                                      cl.SyntacticNode = null;
-                       //                      }else   
-                       SyntacticTreeDepth--;
-                       n.EndLine = cl;
-                       n = n.Parent;
-               }
-
                public override void SyntaxAnalysis ()
                {
-                       RootNode = new Node () { Name = "RootNode", Type="Root" };
-
+                       initSyntaxAnalysis ();
                        Node currentNode = RootNode;
-                       SyntacticTreeDepth = SyntacticTreeMaxDepth = 0;
 
                        int ptrLine = 0;
                        while (ptrLine < buffer.LineCount) {
index 3672479792c7bae55c27cea360b5ec706b82ce61..13c422a649b14b660731c412d3adf3c51c86c3c1 100644 (file)
@@ -126,6 +126,20 @@ namespace Crow.Coding
                        editMutex.ExitWriteLock ();
                        LineUpadateEvent.Raise (this, new CodeBufferEventArgs (i));
                }
+               public void RemoveLeadingTab (int l) {
+                       if (this [l] [0] == '\t') {
+                               UpdateLine (l, this [l].Content.Substring (1));
+                               return;
+                       }
+                       int i = 0;
+                       while (i < Interface.TabSize) {
+                               if (this [l] [i] != ' ')
+                                       break;
+                               i++;
+                       }
+                       if (i > 0)
+                               UpdateLine (l, this [l].Content.Substring (i));
+               }
                public void ToogleFolding (int line) {
                        if (!this [line].IsFoldable)
                                return;
@@ -292,6 +306,15 @@ namespace Crow.Coding
                        selEndPos = CurrentPosition;
                        SelectionChanged.Raise (this, null);
                }
+               public void SetSelectionOnFullLines () {
+                       if (!SelectionInProgress)
+                               return;
+                       Point s = new Point (0, SelectionStart.Y);
+                       Point e = new Point (this [SelectionEnd.Y].Length, SelectionEnd.Y);
+                       selStartPos = s;
+                       selEndPos = e;
+                       SelectionChanged.Raise (this, null);
+               }
                /// <summary>
                /// Set selection in buffer to -1, empty selection
                /// </summary>
index 760bd2c89bd0db3094bc6d5db04e727cd6d08fb9..691b6d9d79ce5bb2d0917e3eb74c1ce28c4d7f7b 100644 (file)
@@ -908,7 +908,22 @@ namespace Crow.Coding
 
                #region Mouse handling
 
-               void updateCurrentPosFromMouseLocalPos(){
+               int hoverLine = -1;
+               public int HoverLine {
+                       get { return hoverLine; }
+                       set { 
+                               if (hoverLine == value)
+                                       return;
+                               hoverLine = value;
+                               NotifyValueChanged ("HoverLine", hoverLine);                            
+                       }
+               }
+               void updateHoverLine () {
+                       int hvl = (int)Math.Max (0, Math.Floor (mouseLocalPos.Y / (fe.Ascent+fe.Descent)));
+                       hvl = Math.Min (PrintedLines.Count, hvl);
+                       HoverLine = buffer.IndexOf (PrintedLines[hvl]);
+               }
+               void updateCurrentPosFromMouseLocalPos(){                       
                        PrintedCurrentLine = (int)Math.Max (0, Math.Floor (mouseLocalPos.Y / (fe.Ascent+fe.Descent)));
                        int curVisualCol = ScrollX +  (int)Math.Round ((mouseLocalPos.X - leftMargin) / fe.MaxXAdvance);
 
@@ -922,9 +937,6 @@ namespace Crow.Coding
                                buffCol++;
                        }
                        buffer.CurrentColumn = buffCol;
-
-//                     if (mouseLocalPos.Y < 0)
-//                             ScrollY--;
                }
                public override void onMouseEnter (object sender, MouseMoveEventArgs e)
                {
@@ -945,6 +957,8 @@ namespace Crow.Coding
 
                        mouseLocalPos = e.Position - ScreenCoordinates(Slot).TopLeft - ClientRectangle.TopLeft;
 
+                       updateHoverLine ();
+
                        if (!e.Mouse.IsButtonDown (MouseButton.Left)) {
                                if (mouseLocalPos.X < leftMargin)
                                        IFace.MouseCursor = XCursor.Default;
@@ -1157,7 +1171,26 @@ namespace Crow.Coding
                        case Key.RWin:
                                break;
                        case Key.Tab:
-                               buffer.Insert ("\t");
+                               if (e.Shift) {
+                                       if (buffer.SelectionIsEmpty ||
+                                               (buffer.SelectionStart.Y == buffer.SelectionEnd.Y)) {
+                                               //TODO
+                                               break;
+                                       }
+                                       for (int i = buffer.SelectionStart.Y; i <= buffer.SelectionEnd.Y; i++)
+                                               buffer.RemoveLeadingTab (i);
+                                       buffer.SetSelectionOnFullLines ();
+                               } else {
+                                       if (buffer.SelectionIsEmpty ||
+                                               (buffer.SelectionStart.Y == buffer.SelectionEnd.Y)) {
+                                               buffer.Insert ("\t");
+                                               break;
+                                       }
+                                       for (int i = buffer.SelectionStart.Y; i <= buffer.SelectionEnd.Y; i++) {
+                                               buffer.UpdateLine (i, "\t" + buffer [i].Content);
+                                       }
+                               }
+
                                break;
                        case Key.F8:
                                toogleFolding (buffer.CurrentLine);
index 2aba68480ba989f9423ebd122f1540cf1c0eb79f..9a1e74cd2a5475e14bfb2f59619f384ae16e964d 100644 (file)
@@ -77,7 +77,7 @@ namespace Crow.Coding
                                        }
                                        break;
                                case ',':
-                                       if (curState != States.init || curState != States.classNames )
+                                       if (curState != States.init && curState != States.classNames )
                                                throw new ParserException (currentLine, currentColumn, "Unexpected char ','");
                                        readAndResetCurrentTok (TokenType.OperatorOrPunctuation, true);
                                        curState = States.classNames;
@@ -151,8 +151,7 @@ namespace Crow.Coding
                }
                public override void SyntaxAnalysis ()
                {
-                       RootNode = new Node () { Name = "RootNode", Type="Root" };
-
+                       initSyntaxAnalysis ();
                        Node currentNode = RootNode;
 
                        for (int i = 0; i < buffer.LineCount; i++) {
@@ -165,15 +164,10 @@ namespace Crow.Coding
                                while (tokPtr < cl.Tokens.Count) {
                                        switch (cl.Tokens [tokPtr].Type) {
                                        case TokenType.OpenBlock:                                               
-                                               Node newElt = new Node () { Name = cl.Tokens [tokPtr].Content, StartLine = cl };
-                                               currentNode.AddChild (newElt);
-                                               currentNode = newElt;
-                                               if (cl.SyntacticNode == null)
-                                                       cl.SyntacticNode = newElt;
+                                               currentNode = addChildNode (currentNode, cl, tokPtr, "style");
                                                break;
                                        case TokenType.CloseBlock:                                              
-                                               currentNode.EndLine = cl;
-                                               currentNode = currentNode.Parent;
+                                               closeNodeAndGoUp (ref currentNode, cl, "style");
                                                break;
                                        }
                                        tokPtr++;
index ad7aaa62a4cc93e9cba530a38593f29ffb5ceb1e..d31e1023db6abfd7d466cbdb382eac084275f2bf 100644 (file)
@@ -255,12 +255,11 @@ namespace Crow.Coding
 
                        cl.EndingState = (int)curState;
                }
+
                public override void SyntaxAnalysis ()
                {
-                       RootNode = new Node () { Name = "RootNode", Type="Root" };
-
+                       initSyntaxAnalysis ();
                        Node currentNode = RootNode;
-                       SyntacticTreeDepth = SyntacticTreeMaxDepth = 0;
 
                        for (int i = 0; i < buffer.LineCount; i++) {
                                CodeLine cl = buffer[i];
@@ -273,23 +272,16 @@ namespace Crow.Coding
                                        switch ((XMLParser.TokenType)cl.Tokens [tokPtr].Type) {
                                        case TokenType.ElementStart:
                                                tokPtr++;
-                                               Node newElt = new Node () { Name = cl.Tokens [tokPtr].Content, StartLine = cl };
-                                               currentNode.AddChild (newElt);
-                                               currentNode = newElt;
-                                               if (cl.SyntacticNode == null)
-                                                       cl.SyntacticNode = newElt;
-                                               SyntacticTreeDepth++;
+                                               currentNode = addChildNode (currentNode, cl, tokPtr, "Element");
                                                break;
                                        case TokenType.ElementEnd:
                                                tokPtr++;
                                                if (tokPtr < cl.Tokens.Count) {
                                                        if ((XMLParser.TokenType)cl.Tokens [tokPtr].Type == TokenType.ElementName &&
-                                                               cl.Tokens [tokPtr].Content != currentNode.Name)
+                                                           cl.Tokens [tokPtr].Content != currentNode.Name)
                                                                throw new ParserException (currentLine, currentColumn, "Closing tag mismatch");
                                                }
-                                               currentNode.EndLine = cl;
-                                               currentNode = currentNode.Parent;
-                                               SyntacticTreeDepth--;
+                                               closeNodeAndGoUp (ref currentNode, cl, "Element");
                                                break;
                                        case TokenType.ElementClosing:
                                                //currentNode = currentNode.Parent;
index 22f98ebc39ae0fde40038cdb06f7882d7bf724e3..6d0565364890d3b857531b8b5dec9f4bf6c30f9f 100644 (file)
@@ -21,6 +21,7 @@
                                <MenuItem Command="{CMDViewSolution}"/>
                                <MenuItem Command="{CMDViewEditor}"/>
                                <MenuItem Command="{CMDViewProperties}"/>
+                               <MenuItem Command="{CMDViewToolbox}"/>
                                <MenuItem Command="{CMDViewErrors}"/>
                                <MenuItem Command="{CMDViewGTExp}"/>
                                <MenuItem Command="{CMDViewProps}"/>
@@ -35,6 +36,7 @@
                                <MenuItem Command="{CMDHelp}"/>
                        </MenuItem>
                </Menu>
+               <Label DataSource="{CurrentSolution}" Text="{SelectedItemElement}" Width="Stretched"/>
                <Docker Name="mainDock">
                        <DockStack />
 <!--                   <DockWindow DataSource="{CurrentSolution}" Name="winEditor" Caption="Edit View" Width="70%" Height="80%">
diff --git a/CrowIDE/ui/DockWindows/toolboxBut.template b/CrowIDE/ui/DockWindows/toolboxBut.template
new file mode 100644 (file)
index 0000000..9e1e43b
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<Border Background="{./Background}" Name="Content"
+       Foreground="Transparent" CornerRadius="{./CornerRadius}" BorderWidth="1"
+       MouseDown="{Foreground=vgradient|0:Black|0.05:Gray|0.85:Gray|1:White}"
+       MouseUp="{Foreground=vgradient|0:White|0.2:Gray|0.9:Gray|1:Black}">
+       <Image Path="{./Caption}" Margin="2" Width="20" Height="20" />
+</Border>
diff --git a/CrowIDE/ui/DockWindows/winToolbox.crow b/CrowIDE/ui/DockWindows/winToolbox.crow
new file mode 100644 (file)
index 0000000..d6b1bd4
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<DockWindow DataSource="{CurrentSolution}" Name="winToolbox" Caption="Toolbox" Width="10%" Height="80%">
+       <ListBox Margin="10" Data="{ToolboxItems}" SelectionBackground="SkyBlue">
+               <Template>
+                       <Wrapper Name="ItemsContainer" Orientation="Vertical" Margin="10" Spacing="3"/>
+               </Template>
+               <ItemTemplate>
+                       <Container Fit="true" Focusable="true" Tooltip="{DisplayName}" Margin="2" AllowDrag="true"
+                               StartDrag="onStartDrag" EndDrag="onEndDrag" Drop="onDrop">
+                               <Border Background="Silver" Margin="0"
+                                       Foreground="Transparent" BorderWidth="1"
+                                       MouseDown="{Foreground=vgradient|0:Black|0.05:Gray|0.85:Gray|1:White}"
+                                       MouseUp="{Foreground=vgradient|0:White|0.2:Gray|0.9:Gray|1:Black}">
+                                       <Image Path="{IconPath}" Margin="2"  Width="20" Height="20" />
+                               </Border>
+                       </Container>
+               </ItemTemplate>
+       </ListBox>
+</DockWindow>
index ed964dca2881d7ddc13bdf6c0903c3e8cbfd22d0..e7b96c17df9802643e1b295b1307975d418a5122 100644 (file)
@@ -22,4 +22,4 @@ IcoBut {
        Width = "8";
        Height = "14";
        Background = "White";
-}
\ No newline at end of file
+}
index 221cbe07c58877782630d8672d7c6367e70758c5..b0431a94691734f36e7f870a1c1a45411e251c9d 100644 (file)
@@ -2,7 +2,8 @@
 <TabItem Caption="{DisplayName}" QueryClose="OnQueryClose">
        <VerticalStack>
                <Label Width="Stretched" Margin="1" Text="{HoverWidget}"/>
-               <ImlVisualEditor Height="60%" Margin="0" MinimumSize="10,10" Foreground="SkyBlue"                                       
+               <ImlVisualEditor Height="60%" Margin="0" MinimumSize="10,10" Foreground="SkyBlue"
+                       AllowDrop="true"
                        ProjectNode="{}" SelectedItem="{²SelectedItem}"
                        Name="crowContainer" Background="Onyx"/>
                <Splitter/>
index a35184dbac7d99687a1b26d686c0b74f0faa6c9d..d9e5139097030729d6de3183653ba8be09e22a60 100644 (file)
                                Height="14" />                  
                <HorizontalStack Height="Fit">
                        <GraphicObject Height="5" Width="Stretched"/>
-                       <GraphicObject Background="Red" Width="5" Height="5" Visible="{../../editor.IsDirty}"/>
-                       <Label Text="Line:"/>
+                       <GraphicObject Background="Red" Width="5" Height="5" Visible="{IsDirty}"/>
+                       <Label Text="Line:" Foreground="Gray"/>
                        <Label Text="{CurrentLine}"/>
-                       <Label Text="column:"/>
+                       <GraphicObject Height="5" Width="10"/>
+                       <Label Text="column:" Foreground="Gray"/>
                        <Label Text="{CurrentColumn}"/>
-                       <Label Text="ScrollX:"/>
+                       <GraphicObject Height="5" Width="10"/>
+                       <Label Text="ScrollX:" Foreground="Gray"/>
                        <Label Text="{../../editor.ScrollX}"/>
                </HorizontalStack>
        </VerticalStack>
index 51e9dfb01bc315ea02e9c4a1947288f026b99ae0..ed92e89b0d7c30a1233f9825e463a02d7282976d 100644 (file)
@@ -69,7 +69,8 @@ MessageBox {
 Slider {
        Background = "vgradient|0:Black|0.1:Gray|0.9:Gray|1:LightGray";
        Foreground = "Gray";
-       Width = "Fit";
+       Height = "10";
+       Value="5";
 }
 Splitter {
        Focusable = "true";
index e2d6cb6a829775f617708a410aedb57013476207..ee57a2621f0ebcda6e0755380e1c645835fd45c4 100644 (file)
@@ -33,6 +33,7 @@ namespace Crow
        /// <summary>
        /// simple squarred rgb color selector
        /// </summary>
+       [DesignIgnore]
        public class ColorSelector : GraphicObject
        {
                #region CTOR
index e9a5348601d533bd5dda1afd271a02932929d21d..caefb2ec3b4588b465d1e60f5dcefe4b97e06c23 100644 (file)
@@ -28,6 +28,7 @@ using Crow.IML;
 
 namespace Crow
 {
+       [DesignIgnore]
        public class DockStack : GenericStack
        {
                Docker rootDock { get { return LogicalParent as Docker; }}
index 52ba296080231c0369fc2fcaa7f5f47ccb9e7cf7..e1d4dd46e8a45f872811842542f1ea6d477b0801 100644 (file)
@@ -33,6 +33,7 @@ using System.Xml.Serialization;
 
 namespace Crow
 {
+       [DesignIgnore]
        public class GraduatedSlider : Slider
     {     
                #region CTOR
index 911ea7bd0150d7951a67f632bd291c2d8e483a60..c74913300a43c2c8313647676ec43eef5672660a 100644 (file)
@@ -425,11 +425,11 @@ namespace Crow
                public event EventHandler Disabled;
 
                #region DragAndDrop Events
-               public event EventHandler StartDrag;
-               public event EventHandler DragEnter;
-               public event EventHandler DragLeave;
-               public event EventHandler EndDrag;
-               public event EventHandler Drop;
+               public event EventHandler<DragDropEventArgs> StartDrag;
+               public event EventHandler<DragDropEventArgs> DragEnter;
+               public event EventHandler<DragDropEventArgs> DragLeave;
+               public event EventHandler<DragDropEventArgs> EndDrag;
+               public event EventHandler<DragDropEventArgs> Drop;
                #endregion
 
                /// <summary>
@@ -1242,7 +1242,9 @@ namespace Crow
                        IFace.HoverWidget = null;
                        IsDragged = true;
                        StartDrag.Raise (this, e);
+                       #if DEBUG_DRAGNDROP
                        Debug.WriteLine(this.ToString() + " : START DRAG => " + e.ToString());
+                       #endif
                }
                /// <summary>
                ///  Occured when dragging ends without dropping
@@ -1250,27 +1252,31 @@ namespace Crow
                protected virtual void onEndDrag (object sender, DragDropEventArgs e){                  
                        IsDragged = false;
                        EndDrag.Raise (this, e);
+                       #if DEBUG_DRAGNDROP
                        Debug.WriteLine(this.ToString() + " : END DRAG => " + e.ToString());
+                       #endif
                }
                protected virtual void onDragEnter (object sender, DragDropEventArgs e){
                        e.DropTarget = this;
                        DragEnter.Raise (this, e);
+                       #if DEBUG_DRAGNDROP
                        Debug.WriteLine(this.ToString() + " : DRAG Enter => " + e.ToString());
+                       #endif
                }
                protected virtual void onDragLeave (object sender, DragDropEventArgs e){                        
                        e.DropTarget = null;
                        DragLeave.Raise (this, e);
+                       #if DEBUG_DRAGNDROP
                        Debug.WriteLine(this.ToString() + " : DRAG Leave => " + e.ToString());
+                       #endif
                }
                protected virtual void onDrop (object sender, DragDropEventArgs e){                     
                        IsDragged = false;
                        Drop.Raise (this, e);
                        //e.DropTarget.onDragLeave (this, e);//raise drag leave in target
+                       #if DEBUG_DRAGNDROP
                        Debug.WriteLine(this.ToString() + " : DROP => " + e.ToString());
-               }
-               public virtual void OnDragMove(object sender, MouseMoveEventArgs e, DragDropEventArgs dde)
-               {
-
+                       #endif
                }
                public bool IsDropTarget {
                        get { return IFace.DragAndDropOperation?.DropTarget == this; }
@@ -1398,6 +1404,11 @@ namespace Crow
                        IFace.currentLQI.NewSlot = Slot;
                        Debug.WriteLine ("\t\t{0} => {1}",LastSlots,Slot);
                        #endif
+                       #if DESIGN_MODE
+                       if (IFace.GetType().Name == "DesignInterface"){
+                               Debug.WriteLine ("\t\t{2}: {0} => {1}",LastSlots,Slot,this.name);
+                       }
+                       #endif
 
                        switch (layoutType) {
                        case LayoutingType.Width:
@@ -1860,6 +1871,13 @@ namespace Crow
                        Disabled.Raise (this, e);
                }
                protected virtual void onParentChanged(object sender, DataSourceChangeEventArgs e) {
+//                     if (e.NewDataSource != null) {
+//                             if (width == Measure.Inherit)
+//                                     RegisterForLayouting (LayoutingType.Width);
+//                             if (height == Measure.Inherit)
+//                                     RegisterForLayouting (LayoutingType.Height);
+//                     }
+                       
                        ParentChanged.Raise (this, e);
                        if (logicalParent == null)
                                LogicalParentChanged.Raise (this, e);
index 518ee6c4c04d7c00550599b2d76cbef3cd33c9f6..67f4ec6ee0b8a0c0381e4f97aec02c1a274a72e6 100644 (file)
@@ -31,6 +31,7 @@ using Cairo;
 
 namespace Crow
 {
+       [DesignIgnore]
        public class HueSelector : ColorSelector
        {
                #region CTOR
diff --git a/src/GraphicObjects/MDIContainer.cs b/src/GraphicObjects/MDIContainer.cs
deleted file mode 100644 (file)
index d8ce464..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// MDIContainer.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-using System;
-
-namespace Crow
-{
-       public class MDIContainer : Group
-       {
-               #region CTOR
-               public MDIContainer () : base()
-               {
-               }
-               #endregion
-
-       }
-}
-
index b0719ef088e903fdb7ea6c75fc383df097a75a8c..668ba45284d047e8428c46b7d6ebc8e1a87cb3b4 100644 (file)
@@ -38,6 +38,7 @@ namespace Crow
        /// TemplatedControl may have 3 children (template,templateItem,content) but
        /// behave exactely as a container for layouting and drawing
        /// </summary>
+       [DesignIgnore]
        public class PrivateContainer : GraphicObject
        {
                #region CTOR
@@ -64,9 +65,8 @@ namespace Crow
                                        if (this.Contains (IFace.HoverWidget))
                                                IFace.HoverWidget = null;
                                }
-                               contentSize = new Size (0, 0);
+                               contentSize = default(Size);
                                child.LayoutChanged -= OnChildLayoutChanges;
-                               child.Dispose ();
                                this.RegisterForGraphicUpdate ();
                        }
 
@@ -75,11 +75,19 @@ namespace Crow
                        if (child != null) {
                                child.Parent = this;
                                child.LayoutChanged += OnChildLayoutChanges;
+                               child.Slot = child.LastSlots = default(Rectangle);
                                contentSize = child.Slot.Size;
                                child.RegisteredLayoutings = LayoutingType.None;
                                child.RegisterForLayouting (LayoutingType.Sizing);
                        }
                }
+               //dispose child if not null
+               protected virtual void deleteChild () {
+                       GraphicObject g = child;
+                       SetChild (null);
+                       if (g != null)
+                               g.Dispose ();
+               }
 
                #region GraphicObject Overrides
 
index d9ee0a00e5d2f4cc6501254ad8ee690438eac6ea..6f93f718348160f1404a29679f996ccbc830acef 100644 (file)
@@ -30,6 +30,7 @@ using System.Xml.Serialization;
 
 namespace Crow
 {
+       [DesignIgnore]
        public class SaturationValueSelector : ColorSelector
        {
                public SaturationValueSelector () : base(){}
index b636d993b9fc5aafb0148838ab676adeacd77c53..de4b21132df992f567ab7c1a3001718f8618921e 100644 (file)
@@ -36,6 +36,7 @@ namespace Crow
        /// <summary>
        /// generic class to build scrolling control in both directions
        /// </summary>
+       [DesignIgnore]
        public class ScrollingObject : GraphicObject
        {
                #region CTOR
diff --git a/src/GraphicObjects/ScrollingTextBox.cs b/src/GraphicObjects/ScrollingTextBox.cs
deleted file mode 100644 (file)
index d3c4276..0000000
+++ /dev/null
@@ -1,794 +0,0 @@
-//
-// ScrollingTextBox.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using System.Xml.Serialization;
-using System.ComponentModel;
-using System.Collections;
-using Cairo;
-using System.Text;
-using System.Collections.Generic;
-using System.Text.RegularExpressions;
-using System.Linq;
-
-namespace Crow
-{
-       /// <summary>
-       /// Scrolling text box optimized for monospace fonts, for coding
-       /// </summary>
-       public class ScrollingTextBox : ScrollingObject
-       {
-               #region CTOR
-               protected ScrollingTextBox ():base()
-               {
-                       KeyEventsOverrides = true;
-               }
-               public ScrollingTextBox (Interface iface):base(iface){
-                       KeyEventsOverrides = true;
-               }
-               #endregion
-
-               public event EventHandler TextChanged;
-
-               public virtual void OnTextChanged(Object sender, EventArgs e)
-               {
-                       TextChanged.Raise (this, e);
-               }
-
-               #region private and protected fields
-               string lineBreak = Interface.LineBreak;
-               int visibleLines = 1;
-               List<string> lines;
-               string _text = "label";
-               Color selBackground;
-               Color selForeground;
-               Point mouseLocalPos = 0;//mouse coord in widget space
-               int _currentCol;        //0 based cursor position in string
-               int _currentLine;
-               Point _selBegin = -1;   //selection start (row,column)
-               Point _selRelease = -1; //selection end (row,column)
-
-               protected Rectangle rText;
-               protected FontExtents fe;
-               protected TextExtents te;
-               #endregion
-
-               [XmlAttributeAttribute][DefaultValue("label")]
-               public string Text
-               {
-                       get {
-                               return lines == null ?
-                                       _text : lines.Aggregate((i, j) => i + Interface.LineBreak + j);
-                       }
-                       set
-                       {
-                               if (string.Equals (value, _text, StringComparison.Ordinal))
-                                       return;
-
-                               _text = value;
-
-                               if (string.IsNullOrEmpty(_text))
-                                       _text = "";
-
-                               lines = getLines;
-                               MaxScrollY = Math.Max (0, lines.Count - visibleLines);
-
-                               OnTextChanged (this, null);
-                               RegisterForGraphicUpdate ();
-                       }
-               }
-
-
-               [XmlAttributeAttribute][DefaultValue("BlueGray")]
-               public virtual Color SelectionBackground {
-                       get { return selBackground; }
-                       set {
-                               if (value == selBackground)
-                                       return;
-                               selBackground = value;
-                               NotifyValueChanged ("SelectionBackground", selBackground);
-                               RegisterForRedraw ();
-                       }
-               }
-               [XmlAttributeAttribute][DefaultValue("White")]
-               public virtual Color SelectionForeground {
-                       get { return selForeground; }
-                       set {
-                               if (value == selForeground)
-                                       return;
-                               selForeground = value;
-                               NotifyValueChanged ("SelectionForeground", selForeground);
-                               RegisterForRedraw ();
-                       }
-               }
-               [XmlAttributeAttribute][DefaultValue(0)]
-               public int CurrentColumn{
-                       get { return _currentCol; }
-                       set {
-                               if (value == _currentCol)
-                                       return;
-                               if (value < 0)
-                                       _currentCol = 0;
-                               else if (value > lines [_currentLine].Length)
-                                       _currentCol = lines [_currentLine].Length;
-                               else
-                                       _currentCol = value;
-                               NotifyValueChanged ("CurrentColumn", _currentCol);
-                       }
-               }
-               [XmlAttributeAttribute][DefaultValue(0)]
-               public int CurrentLine{
-                       get { return _currentLine; }
-                       set {
-                               if (value == _currentLine)
-                                       return;
-                               if (value >= lines.Count)
-                                       _currentLine = lines.Count-1;
-                               else if (value < 0)
-                                       _currentLine = 0;
-                               else
-                                       _currentLine = value;
-                               //force recheck of currentCol for bounding
-                               int cc = _currentCol;
-                               _currentCol = 0;
-                               CurrentColumn = cc;
-                               NotifyValueChanged ("CurrentLine", _currentLine);
-
-                               if (CurrentLine < ScrollY)
-                                       ScrollY = CurrentLine;
-                               else if (CurrentLine >= ScrollY + visibleLines)
-                                       ScrollY = Math.Max (0, CurrentLine - visibleLines + 1);
-                       }
-               }
-               [XmlIgnore]public Point CurrentPosition {
-                       get { return new Point(CurrentColumn, CurrentLine); }
-               }
-               //TODO:using HasFocus for drawing selection cause SelBegin and Release binding not to work
-               /// <summary>
-               /// Selection begin position in char units (line, column)
-               /// </summary>
-               [XmlAttributeAttribute][DefaultValue("-1")]
-               public Point SelBegin {
-                       get { return _selBegin; }
-                       set {
-                               if (value == _selBegin)
-                                       return;
-                               _selBegin = value;
-                               System.Diagnostics.Debug.WriteLine ("SelBegin=" + _selBegin);
-                               NotifyValueChanged ("SelBegin", _selBegin);
-                               NotifyValueChanged ("SelectedText", SelectedText);
-                       }
-               }
-               /// <summary>
-               /// Selection release position in char units (line, column)
-               /// </summary>
-               [XmlAttributeAttribute][DefaultValue("-1")]
-               public Point SelRelease {
-                       get {
-                               return _selRelease;
-                       }
-                       set {
-                               if (value == _selRelease)
-                                       return;
-                               _selRelease = value;
-                               NotifyValueChanged ("SelRelease", _selRelease);
-                               NotifyValueChanged ("SelectedText", SelectedText);
-                       }
-               }
-               /// <summary>
-               /// return char at CurrentLine, CurrentColumn
-               /// </summary>
-               [XmlIgnore]protected Char CurrentChar
-               {
-                       get {
-                               return lines [CurrentLine] [CurrentColumn];
-                       }
-               }
-               /// <summary>
-               /// ordered selection start and end positions in char units
-               /// </summary>
-               [XmlIgnore]protected Point selectionStart
-               {
-                       get {
-                               return SelRelease < 0 || SelBegin.Y < SelRelease.Y ? SelBegin :
-                                       SelBegin.Y > SelRelease.Y ? SelRelease :
-                                       SelBegin.X < SelRelease.X ? SelBegin : SelRelease;
-                       }
-               }
-               [XmlIgnore]public Point selectionEnd
-               {
-                       get {
-                               return SelRelease < 0 || SelBegin.Y > SelRelease.Y ? SelBegin :
-                                       SelBegin.Y < SelRelease.Y ? SelRelease :
-                                       SelBegin.X > SelRelease.X ? SelBegin : SelRelease;
-                       }
-               }
-               [XmlIgnore]public string SelectedText
-               {
-                       get {
-
-                               if (SelRelease < 0 || SelBegin < 0)
-                                       return "";
-                               if (selectionStart.Y == selectionEnd.Y)
-                                       return lines [selectionStart.Y].Substring (selectionStart.X, selectionEnd.X - selectionStart.X);
-                               string tmp = "";
-                               tmp = lines [selectionStart.Y].Substring (selectionStart.X);
-                               for (int l = selectionStart.Y + 1; l < selectionEnd.Y; l++) {
-                                       tmp += Interface.LineBreak + lines [l];
-                               }
-                               tmp += Interface.LineBreak + lines [selectionEnd.Y].Substring (0, selectionEnd.X);
-                               return tmp;
-                       }
-               }
-               [XmlIgnore]public bool selectionIsEmpty
-               { get { return SelRelease == SelBegin; } }
-
-               List<string> getLines {
-                       get {
-                               return Regex.Split (_text, "\r\n|\r|\n|\\\\n").ToList();
-                       }
-               }
-               /// <summary>
-               /// Moves cursor one char to the left.
-               /// </summary>
-               /// <returns><c>true</c> if move succeed</returns>
-               public bool MoveLeft(){
-                       int tmp = _currentCol - 1;
-                       if (tmp < 0) {
-                               if (_currentLine == 0)
-                                       return false;
-                               CurrentLine--;
-                               CurrentColumn = int.MaxValue;
-                       } else
-                               CurrentColumn = tmp;
-                       return true;
-               }
-               /// <summary>
-               /// Moves cursor one char to the right.
-               /// </summary>
-               /// <returns><c>true</c> if move succeed</returns>
-               public bool MoveRight(){
-                       int tmp = _currentCol + 1;
-                       if (tmp > lines [_currentLine].Length){
-                               if (CurrentLine == lines.Count - 1)
-                                       return false;
-                               CurrentLine++;
-                               CurrentColumn = 0;
-                       } else
-                               CurrentColumn = tmp;
-                       return true;
-               }
-               public void GotoWordStart(){
-                       if (lines[CurrentLine].Length == 0)
-                               return;
-                       CurrentColumn--;
-                       //skip white spaces
-                       while (!char.IsLetterOrDigit (this.CurrentChar) && CurrentColumn > 0)
-                               CurrentColumn--;
-                       while (char.IsLetterOrDigit (lines [CurrentLine] [CurrentColumn]) && CurrentColumn > 0)
-                               CurrentColumn--;
-                       if (!char.IsLetterOrDigit (this.CurrentChar))
-                               CurrentColumn++;
-               }
-               public void GotoWordEnd(){
-                       //skip white spaces
-                       if (CurrentColumn >= lines [CurrentLine].Length - 1)
-                               return;
-                       while (!char.IsLetterOrDigit (this.CurrentChar) && CurrentColumn < lines [CurrentLine].Length-1)
-                               CurrentColumn++;
-                       while (char.IsLetterOrDigit (this.CurrentChar) && CurrentColumn < lines [CurrentLine].Length-1)
-                               CurrentColumn++;
-                       if (char.IsLetterOrDigit (this.CurrentChar))
-                               CurrentColumn++;
-               }
-               public void DeleteChar()
-               {
-                       if (selectionIsEmpty) {
-                               if (CurrentColumn == 0) {
-                                       if (CurrentLine == 0 && lines.Count == 1)
-                                               return;
-                                       CurrentLine--;
-                                       CurrentColumn = lines [CurrentLine].Length;
-                                       lines [CurrentLine] += lines [CurrentLine + 1];
-                                       lines.RemoveAt (CurrentLine + 1);
-                                       OnTextChanged (this, null);
-                                       return;
-                               }
-                               CurrentColumn--;
-                               lines [CurrentLine] = lines [CurrentLine].Remove (CurrentColumn, 1);
-                       } else {
-                               int linesToRemove = selectionEnd.Y - selectionStart.Y + 1;
-                               int l = selectionStart.Y;
-
-                               if (linesToRemove > 0) {
-                                       lines [l] = lines [l].Remove (selectionStart.X, lines [l].Length - selectionStart.X) +
-                                               lines [selectionEnd.Y].Substring (selectionEnd.X, lines [selectionEnd.Y].Length - selectionEnd.X);
-                                       l++;
-                                       for (int c = 0; c < linesToRemove-1; c++)
-                                               lines.RemoveAt (l);
-                                       CurrentLine = selectionStart.Y;
-                                       CurrentColumn = selectionStart.X;
-                               } else
-                                       lines [l] = lines [l].Remove (selectionStart.X, selectionEnd.X - selectionStart.X);
-                               CurrentColumn = selectionStart.X;
-                               SelBegin = -1;
-                               SelRelease = -1;
-                       }
-                       OnTextChanged (this, null);
-               }
-
-               #region GraphicObject overrides
-               public override Font Font {
-                       get { return base.Font; }
-                       set {
-                               base.Font = value;
-
-                               using (ImageSurface img = new ImageSurface (Format.Argb32, 1, 1)) {
-                                       using (Context gr = new Context (img)) {
-                                               gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
-                                               gr.SetFontSize (Font.Size);
-
-                                               fe = gr.FontExtents;
-                                       }
-                               }
-                               MaxScrollY = 0;
-                               RegisterForGraphicUpdate ();
-                       }
-               }
-               protected override int measureRawSize(LayoutingType lt)
-               {
-                       if (lt == LayoutingType.Height)
-                               return (int)Math.Ceiling(fe.Height * lines.Count) + Margin * 2;
-
-                       string txt = _text.Replace("\t", new String (' ', Interface.TabSize));
-
-
-                       int maxChar = 0;
-                       foreach (string s in Regex.Split (txt, "\r\n|\r|\n|\\\\n")) {
-                               if (maxChar < s.Length)
-                                       maxChar = s.Length;
-                       }
-                       return (int)(fe.MaxXAdvance * maxChar) + Margin * 2;
-               }
-               public override void OnLayoutChanges (LayoutingType layoutType)
-               {
-                       base.OnLayoutChanges (layoutType);
-
-                       if (layoutType == LayoutingType.Height)
-                               updateVisibleLines ();
-               }
-               protected override void onDraw (Context gr)
-               {
-                       base.onDraw (gr);
-
-                       gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
-                       gr.SetFontSize (Font.Size);
-                       gr.FontOptions = Interface.FontRenderingOptions;
-                       gr.Antialias = Interface.Antialias;
-
-                       Rectangle cb = ClientRectangle;
-
-                       Foreground.SetAsSource (gr);
-
-                       bool selectionInProgress = false;
-
-                       #region draw text cursor
-                       if (SelBegin != SelRelease)
-                               selectionInProgress = true;
-                       else if (HasFocus){
-                               gr.SetSourceColor(Color.Red);
-                               gr.LineWidth = 2.0;
-                               double cursorX = cb.X + (CurrentColumn - ScrollX) * fe.MaxXAdvance;
-                               gr.MoveTo (0.5 + cursorX, cb.Y + (CurrentLine - ScrollY) * fe.Height);
-                               gr.LineTo (0.5 + cursorX, cb.Y + (CurrentLine + 1 - ScrollY) * fe.Height);
-                               gr.Stroke();
-                       }
-                       #endregion
-
-                       Foreground.SetAsSource (gr);
-
-                       for (int i = 0; i < visibleLines; i++) {
-                               int curL = i + ScrollY;
-                               if (curL >= lines.Count)
-                                       break;
-                               string lstr = lines[curL];
-
-                               gr.MoveTo (cb.X, cb.Y + fe.Ascent + fe.Height * i);
-                               gr.ShowText (lstr);
-                               gr.Fill ();
-
-                               if (selectionInProgress && curL >= selectionStart.Y && curL <= selectionEnd.Y) {
-
-                                       double rLineX = cb.X,
-                                       rLineY = cb.Y + i * fe.Height,
-                                       rLineW = lstr.Length * fe.MaxXAdvance;
-
-                                       System.Diagnostics.Debug.WriteLine ("sel start: " + selectionStart + " sel end: " + selectionEnd);
-                                       if (curL == selectionStart.Y) {
-                                               rLineX += (selectionStart.X - ScrollX) * fe.MaxXAdvance;
-                                               rLineW -= selectionStart.X * fe.MaxXAdvance;
-                                       }
-                                       if (curL == selectionEnd.Y)
-                                               rLineW -= (lstr.Length - selectionEnd.X) * fe.MaxXAdvance;
-
-                                       gr.Save ();
-                                       gr.Operator = Operator.Source;
-                                       gr.Rectangle (rLineX, rLineY, rLineW, fe.Height);
-                                       gr.SetSourceColor (SelectionBackground);
-                                       gr.FillPreserve ();
-                                       gr.Clip ();
-                                       gr.Operator = Operator.Over;
-                                       gr.SetSourceColor (SelectionForeground);
-                                       gr.MoveTo (cb.X, cb.Y + fe.Ascent + fe.Height * i);
-                                       gr.ShowText (lstr);
-                                       gr.Fill ();
-                                       gr.Restore ();
-                               }
-                       }
-               }
-               #endregion
-
-               #region Mouse handling
-               void updatemouseLocalPos(Point mpos){
-                       Point mouseLocalPos = mpos - ScreenCoordinates(Slot).TopLeft - ClientRectangle.TopLeft;
-                       if (mouseLocalPos.X < 0)
-                               CurrentColumn--;
-                       else
-                               CurrentColumn = ScrollX +  (int)Math.Round (mouseLocalPos.X / fe.MaxXAdvance);
-
-                       if (mouseLocalPos.Y < 0)
-                               CurrentLine--;
-                       else
-                               CurrentLine = ScrollY + (int)Math.Floor (mouseLocalPos.Y / fe.Height);
-               }
-               public override void onMouseEnter (object sender, MouseMoveEventArgs e)
-               {
-                       base.onMouseEnter (sender, e);
-                       IFace.MouseCursor = XCursor.Text;
-               }
-               public override void onMouseLeave (object sender, MouseMoveEventArgs e)
-               {
-                       base.onMouseLeave (sender, e);
-                       IFace.MouseCursor = XCursor.Default;
-               }
-               protected override void onFocused (object sender, EventArgs e)
-               {
-                       base.onFocused (sender, e);
-
-                       //                      SelBegin = new Point(0,0);
-                       //                      SelRelease = new Point (lines.LastOrDefault ().Length, lines.Count-1);
-                       RegisterForRedraw ();
-               }
-               protected override void onUnfocused (object sender, EventArgs e)
-               {
-                       base.onUnfocused (sender, e);
-
-                       //                      SelBegin = -1;
-                       //                      SelRelease = -1;
-                       RegisterForRedraw ();
-               }
-               public override void onMouseMove (object sender, MouseMoveEventArgs e)
-               {
-                       base.onMouseMove (sender, e);
-
-                       if (!e.Mouse.IsButtonDown (MouseButton.Left))
-                               return;
-                       if (!HasFocus || SelBegin < 0)
-                               return;
-
-                       updatemouseLocalPos (e.Position);
-                       SelRelease = CurrentPosition;
-
-                       RegisterForRedraw();
-               }
-               public override void onMouseDown (object sender, MouseButtonEventArgs e)
-               {
-                       if (this.HasFocus){
-                               updatemouseLocalPos (e.Position);
-                               SelBegin = SelRelease = CurrentPosition;
-                               RegisterForRedraw();//TODO:should put it in properties
-                       }
-
-                       //done at the end to set 'hasFocus' value after testing it
-                       base.onMouseDown (sender, e);
-               }
-               public override void onMouseUp (object sender, MouseButtonEventArgs e)
-               {
-                       base.onMouseUp (sender, e);
-
-                       if (SelBegin == SelRelease)
-                               SelBegin = SelRelease = -1;
-
-                       updatemouseLocalPos (e.Position);
-                       RegisterForRedraw ();
-               }
-               public override void onMouseDoubleClick (object sender, MouseButtonEventArgs e)
-               {
-                       base.onMouseDoubleClick (sender, e);
-
-                       GotoWordStart ();
-                       SelBegin = CurrentPosition;
-                       GotoWordEnd ();
-                       SelRelease = CurrentPosition;
-                       RegisterForRedraw ();
-               }
-               #endregion
-
-               #region Keyboard handling
-               public override void onKeyDown (object sender, KeyboardKeyEventArgs e)
-               {
-                       base.onKeyDown (sender, e);
-
-                       Key key = e.Key;
-
-                       switch (key)
-                       {
-                       case Key.Back:
-                               if (CurrentPosition == 0)
-                                       return;
-                               this.DeleteChar();
-                               break;
-                       case Key.Clear:
-                               break;
-                       case Key.Delete:
-                               if (selectionIsEmpty) {
-                                       if (!MoveRight ())
-                                               return;
-                               }else if (e.Shift)
-                                       IFace.Clipboard = this.SelectedText;
-                               this.DeleteChar ();
-                               break;
-                       case Key.Enter:
-                       case Key.KeypadEnter:
-                               if (!selectionIsEmpty)
-                                       this.DeleteChar ();
-                               this.InsertLineBreak ();
-                               break;
-                       case Key.Escape:
-                               Text = "";
-                               CurrentColumn = 0;
-                               SelRelease = -1;
-                               break;
-                       case Key.Home:
-                               if (e.Shift) {
-                                       if (selectionIsEmpty)
-                                               SelBegin = new Point (CurrentColumn, CurrentLine);
-                                       if (e.Control)
-                                               CurrentLine = 0;
-                                       CurrentColumn = 0;
-                                       SelRelease = new Point (CurrentColumn, CurrentLine);
-                                       break;
-                               }
-                               SelRelease = -1;
-                               if (e.Control)
-                                       CurrentLine = 0;
-                               CurrentColumn = 0;
-                               break;
-                       case Key.End:
-                               if (e.Shift) {
-                                       if (selectionIsEmpty)
-                                               SelBegin = CurrentPosition;
-                                       if (e.Control)
-                                               CurrentLine = int.MaxValue;
-                                       CurrentColumn = int.MaxValue;
-                                       SelRelease = CurrentPosition;
-                                       break;
-                               }
-                               SelRelease = -1;
-                               if (e.Control)
-                                       CurrentLine = int.MaxValue;
-                               CurrentColumn = int.MaxValue;
-                               break;
-                       case Key.Insert:
-                               if (e.Shift)
-                                       this.Insert (IFace.Clipboard);
-                               else if (e.Control && !selectionIsEmpty)
-                                       IFace.Clipboard = this.SelectedText;
-                               break;
-                       case Key.Left:
-                               if (e.Shift) {
-                                       if (selectionIsEmpty)
-                                               SelBegin = new Point(CurrentColumn, CurrentLine);
-                                       if (e.Control)
-                                               GotoWordStart ();
-                                       else if (!MoveLeft ())
-                                               return;
-                                       SelRelease = CurrentPosition;
-                                       break;
-                               }
-                               SelRelease = -1;
-                               if (e.Control)
-                                       GotoWordStart ();
-                               else
-                                       MoveLeft();
-                               break;
-                       case Key.Right:
-                               if (e.Shift) {
-                                       if (selectionIsEmpty)
-                                               SelBegin = CurrentPosition;
-                                       if (e.Control)
-                                               GotoWordEnd ();
-                                       else if (!MoveRight ())
-                                               return;
-                                       SelRelease = CurrentPosition;
-                                       break;
-                               }
-                               SelRelease = -1;
-                               if (e.Control)
-                                       GotoWordEnd ();
-                               else
-                                       MoveRight ();
-                               break;
-                       case Key.Up:
-                               if (e.Shift) {
-                                       if (selectionIsEmpty)
-                                               SelBegin = CurrentPosition;
-                                       CurrentLine--;
-                                       SelRelease = CurrentPosition;
-                                       break;
-                               }
-                               SelRelease = -1;
-                               CurrentLine--;
-                               break;
-                       case Key.Down:
-                               if (e.Shift) {
-                                       if (selectionIsEmpty)
-                                               SelBegin = CurrentPosition;
-                                       CurrentLine++;
-                                       SelRelease = CurrentPosition;
-                                       break;
-                               }
-                               SelRelease = -1;
-                               CurrentLine++;
-                               break;
-                       case Key.Menu:
-                               break;
-                       case Key.NumLock:
-                               break;
-                       case Key.PageDown:
-                               if (e.Shift) {
-                                       if (selectionIsEmpty)
-                                               SelBegin = CurrentPosition;
-                                       CurrentLine += visibleLines;
-                                       SelRelease = CurrentPosition;
-                                       break;
-                               }
-                               SelRelease = -1;                                
-                               CurrentLine += visibleLines;
-                               break;
-                       case Key.PageUp:
-                               if (e.Shift) {
-                                       if (selectionIsEmpty)
-                                               SelBegin = CurrentPosition;
-                                       CurrentLine -= visibleLines;
-                                       SelRelease = CurrentPosition;
-                                       break;
-                               }                               
-                               CurrentLine -= visibleLines;
-                               break;
-                       case Key.RWin:
-                               break;
-                       case Key.Tab:
-                               this.Insert ("\t");
-                               break;
-                       default:
-                               break;
-                       }
-                       RegisterForGraphicUpdate();
-               }
-               public override void onKeyPress (object sender, KeyPressEventArgs e)
-               {
-                       base.onKeyPress (sender, e);
-
-                       this.Insert (e.KeyChar.ToString());
-
-                       SelRelease = -1;
-                       SelBegin = -1; //new Point(CurrentColumn, SelBegin.Y);
-
-                       RegisterForGraphicUpdate();
-               }
-               #endregion
-
-
-               /// <summary> Compute x offset in cairo unit from text position </summary>
-               double GetXFromTextPointer(Context gr, Point pos)
-               {
-                       try {
-                               string l = lines [pos.Y].Substring (0, pos.X).
-                                       Replace ("\t", new String (' ', Interface.TabSize));
-                               return gr.TextExtents (l).XAdvance;
-                       } catch{
-                               return -1;
-                       }
-               }
-
-               /// <summary> line break could be '\r' or '\n' or '\r\n' </summary>
-               string detectLineBreakKind(){
-                       string strLB = "";
-
-                       if (string.IsNullOrEmpty(_text))
-                               return Interface.LineBreak;
-                       int i = 0;
-                       while ( i < _text.Length) {
-                               if (_text [i] == '\r') {
-                                       strLB += '\r';
-                                       i++;
-                               }
-                               if (i < _text.Length) {
-                                       if (_text [i] == '\r')
-                                               return "\r";
-                                       if (_text [i] == '\n')
-                                               strLB += '\n';
-                               }
-                               if (!string.IsNullOrEmpty (strLB))
-                                       return strLB;
-                               i++;
-                       }
-                       return Interface.LineBreak;
-               }
-
-               void updateVisibleLines(){
-                       visibleLines = (int)Math.Floor ((double)ClientRectangle.Height / fe.Height);
-                       MaxScrollY = Math.Max (0, lines.Count - visibleLines);
-
-                       System.Diagnostics.Debug.WriteLine ("update visible lines: " + visibleLines);
-                       System.Diagnostics.Debug.WriteLine ("update MaxScrollY: " + MaxScrollY);
-               }
-
-
-               /// <summary>
-               /// Insert new string at caret position, should be sure no line break is inside.
-               /// </summary>
-               /// <param name="str">String.</param>
-               protected void Insert(string str)
-               {
-                       if (!selectionIsEmpty)
-                               this.DeleteChar ();
-                       string[] strLines = Regex.Split (str, "\r\n|\r|\n|" + @"\\n").ToArray();
-                       lines [CurrentLine] = lines [CurrentLine].Insert (CurrentColumn, strLines[0]);
-                       CurrentColumn += strLines[0].Length;
-                       for (int i = 1; i < strLines.Length; i++) {
-                               InsertLineBreak ();
-                               lines [CurrentLine] = lines [CurrentLine].Insert (CurrentColumn, strLines[i]);
-                               CurrentColumn += strLines[i].Length;
-                       }
-                       OnTextChanged (this, null);
-                       RegisterForGraphicUpdate();
-               }
-
-               /// <summary>
-               /// Insert a line break.
-               /// </summary>
-               protected void InsertLineBreak()
-               {
-                       lines.Insert(CurrentLine + 1, lines[CurrentLine].Substring(CurrentColumn));
-                       lines [CurrentLine] = lines [CurrentLine].Substring (0, CurrentColumn);
-                       CurrentLine++;
-                       CurrentColumn = 0;
-                       OnTextChanged (this, null);
-               }
-       }
-}
\ No newline at end of file
index 69495647416fd0bc0576b1912c571b2353a3edd4..17e3b7701f871e3e30cf552d086a545300bef08a 100644 (file)
@@ -36,6 +36,7 @@ using System.ComponentModel;
 
 namespace Crow
 {
+       [DesignIgnore]
        public class TextRun : GraphicObject
        {
                #region CTOR
index 40ba5f994a6a2c42a1ea82183d0ca40b6faa011d..929fd4f8f8324adbecc43cf9473f180e83865b67 100644 (file)
@@ -27,6 +27,10 @@ using System;
 
 namespace Crow
 {
+       public class DesignIgnore : Attribute
+       {               
+       }
+
        public class DesignCategory : Attribute
        {
                public string Name { get; set; }
index 76e7771d0d056187a7f0abf0a79261582b5eff45..a3bd9fd49c7b4c63beb1952985dacdf6f4b3017b 100644 (file)
@@ -582,7 +582,7 @@ namespace Crow
                /// <summary>Layouting loop, this is the first step of the udpate and process registered
                /// Layouting queue items. Failing LQI's are requeued in this cycle until MaxTry is reached which
                /// trigger an enqueue for the next Update Cycle</summary>
-               void processLayouting(){
+               protected virtual void processLayouting(){
                        #if MEASURE_TIME
                        layoutingMeasure.StartCycle();
                        #endif
index 08810aaa62f3e88e83e07eda535969472a124002..a9ef298a5dbfc1aa6a12a49479418cffdc9825ab 100644 (file)
@@ -98,10 +98,10 @@ namespace Crow
                public void ProcessLayouting()
                {
                        GraphicObject go = Layoutable as GraphicObject;
-                       if (go == null) {
-                               Debug.WriteLine ("ERROR: processLayouting on something else than a graphic object: " + this.ToString ());
-                               return;
-                       }
+//                     if (go == null) {
+//                             Debug.WriteLine ("ERROR: processLayouting on something else than a graphic object: " + this.ToString ());
+//                             return;
+//                     }
 
                        go.parentRWLock.EnterReadLock ();