]> O.S.I.I.S - jp/crow.git/commitdiff
work in progress TestC
authorjpbruyere <jp.bruyere@hotmail.com>
Thu, 15 Jun 2017 15:14:31 +0000 (17:14 +0200)
committerjpbruyere <jp.bruyere@hotmail.com>
Thu, 15 Jun 2017 15:14:31 +0000 (17:14 +0200)
Crow.sln
MDEmbedTest/Makefile
MDEmbedTest/libcrow.so
Tests/BasicTests.cs
Tests/CrowWindow.cs
Tests/InterfaceControler.cs
Tests/Tests.csproj
src/Crow.Native/LibCrow.cs
src/GraphicObjects/GraphicObject.cs
src/Interface.cs

index 726778656e2a23065a5c2f3114e7f44ca368a6ba..19e78ad8f25513ad40153c46c65a6e63716a9c9b 100644 (file)
--- a/Crow.sln
+++ b/Crow.sln
@@ -35,6 +35,7 @@ Global
                {6CD55032-B8D6-4238-AA91-F9145E1217D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {6CD55032-B8D6-4238-AA91-F9145E1217D4}.Release|Any CPU.Build.0 = Release|Any CPU
                {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Release|Any CPU.Build.0 = Release|Any CPU
                {A37A7E14-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
index 53da377d283fc491c1f95962c0710f09de25b32f..279fc03e5adfcd41fe939eb5db0f3942c79e270d 100644 (file)
@@ -29,4 +29,4 @@ clean:
 
 .PHONY: run
 run:
-       -./${TARGET} ../build/Debug/testDrm.exe
+       -./${TARGET} ../build/Debug/Tests.exe
index e151c8a1a8b397921b52d30868b4d4be4e301f49..01d6f3f8c843ee0ca9a326dcc272a09333d8cc9a 100755 (executable)
Binary files a/MDEmbedTest/libcrow.so and b/MDEmbedTest/libcrow.so differ
index d48364e80189860406dc6daab900adbb53ac5ac4..0f9447a908e4b329cce701a7519153c7700655c2 100644 (file)
@@ -148,19 +148,20 @@ namespace Tests
 
                        //testFiles = new string [] { @"Interfaces/Unsorted/testFileDialog.crow" };
                        //testFiles = new string [] { @"Interfaces/Divers/colorPicker.crow" };
-                       testFiles = new string [] { @"Interfaces/Divers/welcome.crow" };
+                       //testFiles = new string [] { @"Interfaces/Divers/welcome.crow" };
+                       testFiles = new string [] { "#Tests.Interfaces.GraphicObject.0.crow" };
                        //testFiles = new string [] { @"#Tests.Interfaces.perfMsr.crow" };
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/GraphicObject", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Container", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Group", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Stack", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/TemplatedControl", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/TemplatedContainer", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/TemplatedGroup", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Splitter", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Wrapper", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Divers", "*.crow")).ToArray ();
-                       testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Unsorted", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/GraphicObject", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Container", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Group", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Stack", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/TemplatedControl", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/TemplatedContainer", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/TemplatedGroup", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Splitter", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Wrapper", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Divers", "*.crow")).ToArray ();
+//                     testFiles = testFiles.Concat (Directory.GetFiles (@"Interfaces/Unsorted", "*.crow")).ToArray ();
 
                        object tc = Color.AirForceBlueRaf;
                        Load (testFiles [idx]).DataSource = this;
index a578fa64ca1a87914d2a794c61af0ef5b3167df6..e1dd53754be9decacb51d88ee8650084b3e69ba4 100644 (file)
@@ -182,11 +182,11 @@ namespace Crow
                        if (ifaceControl.Count == 0)//create default orthogonal interface
                                addInterfaceControler (new InterfaceControler (
                                        new Rectangle (0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height)));
-                       ifaceControl [interfaceIdx].CrowInterface.AddWidget (g);
+                       ifaceControl [interfaceIdx].CrowInterface.AddChild (g);
                        return g;
                }
                public void DeleteWidget (GraphicObject g, int interfaceIdx = 0){
-                       ifaceControl [interfaceIdx].CrowInterface.DeleteWidget (g);
+                       ifaceControl [interfaceIdx].CrowInterface.RemoveChild (g);
                }
                public GraphicObject Load (string path, int interfaceIdx = 0){
                        if (ifaceControl.Count == 0)//create default orthogonal interface
@@ -203,7 +203,7 @@ namespace Crow
                        return null;
                }
                public void ClearInterface (int interfaceIdx = 0){
-                       ifaceControl [interfaceIdx].CrowInterface.ClearInterface ();
+                       ifaceControl [interfaceIdx].CrowInterface.ClearChildren ();
                }
                /// <summary>Override this method for your OpenGL rendering calls</summary>
                public virtual void OnRender(FrameEventArgs e)
index 869c389679632e247e350cb7a82f3126160b2be8..264ebd21e8e5faf1cac991c154aea820db1d1dfa 100644 (file)
@@ -162,7 +162,7 @@ namespace Crow
 
                        while (true) {
                                CrowInterface.Update ();
-                               Thread.Sleep (3);
+                               Thread.Sleep (1000);
                        }
                }
 
index 9eb845a19ae093a39e2a98585c49a5ec398a33ca..b6c705c50a928df4cb911be639dbe89ff5a1bed3 100644 (file)
@@ -85,9 +85,6 @@
     <None Include="Interfaces\tmpDirItem.goml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
-    <None Include="Interfaces\GraphicObject\0.crow">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
     <None Include="Interfaces\GraphicObject\1.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
     <EmbeddedResource Include="Interfaces\CheckBox2.imlt" />
     <EmbeddedResource Include="Interfaces\perfMsr.crow" />
     <EmbeddedResource Include="ui\showcase.crow" />
+    <EmbeddedResource Include="Interfaces\GraphicObject\0.crow">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Crow.csproj">
index 28994f02ce04c4d951a5bfeb8b180e973791af29..865c840025b703cf42b44ae7dd229b33d5b62b43 100644 (file)
@@ -60,6 +60,8 @@ namespace Crow.Native
                unsafe internal static extern byte crow_object_do_layout (crow_object_t* go, LayoutingType layout);
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                unsafe internal static extern byte crow_object_register_layouting (crow_object_t* go, LayoutingType layout);
+               [MethodImplAttribute(MethodImplOptions.InternalCall)]
+               unsafe internal static extern void crow_object_register_repaint (crow_object_t* go);
 
 
                [DllImport(lib, CallingConvention = CallingConvention.Cdecl)]
index 4b81ed28828551b9db402beb2f4acbe33120bd70..7422abedc792b0c78e9cea3b0b95cc77f089a834 100644 (file)
@@ -888,7 +888,7 @@ namespace Crow
                        if (Width.IsFit || Height.IsFit)
                                RegisterForLayouting (LayoutingType.Sizing);
                        else if (RegisteredLayoutings == LayoutingType.None)
-                               CurrentInterface.EnqueueForRepaint (this);
+                               LibCrow.crow_object_register_repaint (nativeHnd);
                }
                /// <summary> query an update of the content, a redraw </summary>
                [MethodImpl(MethodImplOptions.AggressiveInlining)]
@@ -896,7 +896,7 @@ namespace Crow
                {
                        IsDirty = true;
                        if (RegisteredLayoutings == LayoutingType.None)
-                               CurrentInterface.EnqueueForRepaint (this);
+                               LibCrow.crow_object_register_repaint (nativeHnd);
                }
                #endregion
 
@@ -912,7 +912,8 @@ namespace Crow
                }
 
                unsafe public virtual void RegisterForLayouting(LayoutingType layoutType){
-                       LibCrow.crow_object_register_layouting (this.nativeHnd, layoutType);
+                       lock (CurrentInterface.LayoutMutex)
+                               LibCrow.crow_object_register_layouting (this.nativeHnd, layoutType);
                }
 
                /// <summary> trigger dependant sizing component update </summary>
index 7d5eed1345c6b063a0998369f0304a81eab723aa..5c5815542261f988565f516e46f167407a161946 100644 (file)
@@ -382,6 +382,16 @@ namespace Crow
                }
                #endregion
 
+               public override void AddChild (GraphicObject g)
+               {
+                       lock(RenderMutex)
+                               base.AddChild (g);
+               }
+               public override void RemoveChild (GraphicObject child)
+               {
+                       lock(RenderMutex)
+                               base.RemoveChild (child);
+               }
 
                #region UPDATE Loops
                /// <summary>Enqueue Graphic object for Repaint, DrawingQueue is locked because