]> O.S.I.I.S - jp/crow.git/commitdiff
dock window floating debug, other wips
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Thu, 13 Feb 2025 07:02:13 +0000 (08:02 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Thu, 13 Feb 2025 07:02:13 +0000 (08:02 +0100)
12 files changed:
Backends/CairoBackend/Crow.CairoBackend.csproj
Backends/CairoBackend/src/ImageBackend.cs
Backends/SkiaBackend/Crow.SkiaBackend.csproj
Backends/SkiaBackend/src/Surface.cs
Backends/VkvgBackend/Crow.VkvgBackend.csproj
Backends/VkvgBackend/src/DefaultBackend.cs
Crow/Default.style
Crow/Templates/DockWindow.template
Crow/src/Widgets/DockWindow.cs
Crow/src/styling/StyleReader.cs
Directory.Build.props
Samples/common/samples.style

index 3790837587d91e6f0ecfd9ceff6fe2283a1c5f8f..50563bd708f6a3cc0f851f9313ea3d35db329fb5 100644 (file)
@@ -3,7 +3,7 @@
   <PropertyGroup>
          <TargetFramework>netcoreapp3.1</TargetFramework>
 
-               <AssemblyVersion>1.1.0</AssemblyVersion>
+               <AssemblyVersion>1.2.0</AssemblyVersion>
                <PackageVersion>$(AssemblyVersion)-beta</PackageVersion>
 
                <Title>C.R.O.W Cairo Backend</Title>
index c8ff7f5e9a25e17ea15485bfef48f427dca1c10a..20a5c64ef2f01f111eeb7ff0d4a1f48e4184714c 100644 (file)
@@ -65,7 +65,7 @@ namespace Crow.CairoBackend
                {
                        IContext ctx = base.PrepareUIFrame (existingContext, clipping);
 
-                       //clear(ctx);
+                       clear(ctx);
 
                        for (int i = 0; i < clipping.NumRectangles; i++)
                                ctx.Rectangle (clipping.GetRectangle (i));
index b713fe9ff76a54b7071cd6330086879b24fbaa44..5601bf91a1377209cc7c268f82db8b08a8ce89fd 100644 (file)
@@ -13,7 +13,8 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.88.0-preview.155" />
+    <!--<PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.88.0-preview.155" />-->
+    <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="3.118.0-preview.1.2" />
     <PackageReference Include="Svg.Skia" Version="0.5.10" />
     <PackageReference Include="vke" Version="0.2.4-beta" />
     <!--<PackageReference Include="SkiaSharp" Version="        2.88.0-preview.155" />-->
index 843ae6bfeaa9f467dd234ec2dd37a550e19be4c0..52b9b52cf6b072744bc05fa317f634059e47a3ef 100644 (file)
@@ -54,7 +54,7 @@ namespace Crow.SkiaBackend
                internal vke.Image Img => img;
 
 
-               public void Flush() => skSurf.Flush ();
+               public void Flush() => skSurf.Canvas.Flush();
 
                public void Resize(int width, int height)
                {
index 13303e952063c565ac64d68a96df1ed349415f03..0f0e2fe6818d396df185312717a0614d05fc95c6 100644 (file)
@@ -15,7 +15,7 @@
 
   <ItemGroup>
     <PackageReference Include="vke" Version="0.2.0-beta" />
-    <PackageReference Include="vkvg.net" Version="0.7.0-beta" />
+    <PackageReference Include="vkvg.net" Version="0.8.0-beta" />
     <ProjectReference Include="..\..\Drawing2D\Drawing2D.csproj" />
   </ItemGroup>
 
index eeed4d0a34dbad2891be0c31d5d21fd781a1531e..41243a035d02bb57c174266cba814f9ac8d46d90 100644 (file)
@@ -61,8 +61,17 @@ namespace Crow.VkvgBackend
                        graphicQueue = new Queue (dev, VkQueueFlags.Graphics);
                        dev.Activate (enabledFeatures);
 
-                       vkvgDev = new Device (
-                               instance.Handle, phy.Handle, dev.VkDev.Handle, graphicQueue.qFamIndex, samples);
+                       DeviceCreateInfo info = new DeviceCreateInfo {
+                               samples = this.samples,
+                               deferredResolve = false,
+                               inst = instance.Handle,
+                               phy = phy.Handle,
+                               vkdev = dev.VkDev.Handle,
+                               qFamIdx = graphicQueue.qFamIndex,
+                               qIndex = 0
+                       }; 
+
+                       vkvgDev = new vkvg.Device (info);
 
                        surf = new Surface (vkvgDev, (int)width, (int)height);
                }
@@ -126,8 +135,16 @@ namespace Crow.VkvgBackend
 
                        cmdPool.SetName ("main CmdPool");
 
-                       vkvgDev = new Device (
-                               instance.Handle, phy.Handle, dev.VkDev.Handle, graphicQueue.qFamIndex, samples);
+                       DeviceCreateInfo info = new DeviceCreateInfo {
+                               samples = this.samples,
+                               deferredResolve = false,
+                               inst = instance.Handle,
+                               phy = phy.Handle,
+                               vkdev = dev.VkDev.Handle,
+                               qFamIdx = graphicQueue.qFamIndex,
+                               qIndex = 0
+                       }; 
+                       vkvgDev = new vkvg.Device (info);
                        vkvgDev.SetDpy (72,72);
 
                        createMainSurface ((uint)width, (uint)height);
index ff3d7bcb03f8ee8f1c06c2e03452f23b4d99191b..98c5276be0dfbcd556eb28a979eb19e76b23c697 100644 (file)
@@ -118,6 +118,7 @@ TextBox {
        Height = "Fit";
        //Text = "TextBox";
        Margin = "1";
+       BubbleEvents= "None";
 }
 Menu {
        Margin = "0";
index f54974fbf2c2dea1457c2119257e0700486ca2af..9e927b7fe85b52989ea3b21a3cf81a371fefc3b2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <Border Name="SizeHandle" BorderWidth="1" Foreground="Black" CornerRadius="{./CornerRadius}" StickyMouse="8" StickyMouseEnabled="{./IsFloating}"
                                Background="{./Background}">
-       <VerticalStack Spacing="0">
+       <VerticalStack Spacing="0" Name="MoveHandle">
                <HorizontalStack Visible="{./IsDocked}" Height="Fit" Margin="1" Background="vgradient|0:0.3,0.5,0.8,0.9|1:0.1,0.1,0.1,0.9">
                        <Label  Text="{./CurDir}" TextAlignment="Left" Width="Stretched"
                                         Foreground="White" />
index 620d31f32b54250ba113df097e4016b1bb4eb739..0fc8a8252da2d0b58e007d013ba3d844c753f0c4 100644 (file)
@@ -277,7 +277,10 @@ namespace Crow
                                } else
                                        throw new Exception ("docking error");
 
-                               IFace.AddWidget (this);
+                               if (floatingGroup is null)
+                                       IFace.AddWidget (this);
+                               else 
+                                       floatingGroup.AddChild(this);
 
                                Left = IFace.MousePosition.X - 10;
                                Top = IFace.MousePosition.Y - 10;
@@ -299,8 +302,13 @@ namespace Crow
                        Undock ();
                        return true;
                }
-               void dock () {
-                       IFace.RemoveWidget (this);
+               void unfloat () {
+                       if (Parent == IFace) {
+                               IFace.RemoveWidget (this);
+                       } else {
+                               floatingGroup = Parent as Group;
+                               floatingGroup.RemoveChild(this);
+                       }
 
                        undockingMousePosOrig = IFace.MousePosition;
                        //undockingMousePosOrig = lastMousePos;
@@ -312,7 +320,7 @@ namespace Crow
                }
                void Dock (DockWindow target) {
                        lock (IFace.UpdateMutex) {
-                               dock ();
+                               unfloat ();
 
                                if (target.LogicalParent is TabView tv) {
                                        tv.AddItem (this);
@@ -341,7 +349,7 @@ namespace Crow
                }
                void Dock (DockStack target){
                        lock (IFace.UpdateMutex) {
-                               dock ();
+                               unfloat ();
 
                                target.Dock (this);
                        }
index e0bc07b9495f1f881fd820955f6218cd28a85831..62162eef2d2db8cd151f1ad0f0a077101e58a306 100644 (file)
@@ -210,6 +210,8 @@ namespace Crow
                                                        token.Append (ReadChar ());
                                                        while (nextCharIsValidCharName)
                                                                token.Append (ReadChar ());
+                                               } else {
+                                                       throw new ParserException (line, column, $"Unexpected char ({ReadChar ()})", resId);
                                                }
                                                break;
                                        }
index d5e60c55ce0739e985a567d0bb59dbb56b115df8..eb7ad1da4f6e98a3d2a45448e90cd42d38c378b6 100644 (file)
@@ -6,7 +6,7 @@
                <Authors>Jean-Philippe Bruyère</Authors>
                <LangVersion>7.3</LangVersion>
 
-               <CrowVersion>1.3.0</CrowVersion>
+               <CrowVersion>1.3.1</CrowVersion>
                <CrowPackageVersion>$(CrowVersion)-beta</CrowPackageVersion>
 
                <!-- If you dont have a native libstb on your system, enable the managed version of stb here
index fe188ebd5e9aa02ffa3a626c9621b0d4fbedf26b..85012c13c3dc4612b15a5814744492ec8b819a30 100644 (file)
@@ -2,12 +2,12 @@ TestCst = "This is a constant test.";
 
 FpsLabel {
        Width = "30";
-       Font = "droid, 10";
+       Font = "mono, 10";
        Margin = "0";
        TextAlignment = "Center";
 }
 FpsDisp {
-       Font = "droid bold, 10";
+       Font = "mono bold, 10";
        Width = "60";
        Margin = "0";
        CornerRadius = "3";
@@ -36,11 +36,11 @@ CheckBox3 {
        Unchecked = "{Background=Jet}";
 }
 labPerf {
-       Font = "droid, 8";
+       Font = "mono, 8";
        Width = "50%";
 }
 labPerfVal{
-       Font = "droid, 8";
+       Font = "mono, 8";
        Width = "50%";
 }
 DbgLogViewer{
@@ -62,7 +62,14 @@ DockStack {
        //DragLeave="{Background=Transparent}";
        //EndDrag="{Background=Jet}";
 }
-
+SimpleDockWin {
+       Template= "#ui.dockwinsimple.itmp";
+       Background = "Yellow";
+       Width="200";
+       Height="200";
+       Movable="true";
+       CacheEnabled="false";
+}
 valignStyle {
        Template="#ui.enumSingleSVG.itmp";
        Checked="{Background=MediumSeaGreen}";