]> O.S.I.I.S - jp/crow.git/commitdiff
Merge branch 'ScrollingWithNewClipping' into NewClipping
authorjpbruyere <jp.bruyere@hotmail.com>
Fri, 12 Feb 2016 16:35:02 +0000 (17:35 +0100)
committerjpbruyere <jp.bruyere@hotmail.com>
Fri, 12 Feb 2016 16:35:02 +0000 (17:35 +0100)
1  2 
Tests/Interfaces/clip4.crow
src/GraphicObjects/Scroller.cs
src/OpenTKGameWindow.cs

index c38e95ac14d1c34af2a1f031fdaaa5aec6827c72,eb16a88b5d9303bbd182ff0590eb459e2d8f95f2..6d85a7e14c879fa9ad1f3ad1fd6391b217e6bf4d
@@@ -1,7 -1,33 +1,35 @@@
  <?xml version="1.0"?>
- <Border Fit="true" Margin="50" Background="DimGray" CornerRadius="20">
-       <Label Margin="50" Text="fpsklhlkjh" Background="BlueCrayola"/> 
 -<Scroller CacheEnabled="false" VerticalScrolling="true" Height="100" Width="300" Background="DimGray" Margin="20">
++<Border Fit="true" BorderWidth="2">
++<Scroller CornerRadius="2" CacheEnabled="false" VerticalScrolling="true" Height="200" Width="300" Background="DimGray" Margin="2">
+       <VerticalStack Margin="10" VerticalAlignment="Top" Fit="true" Background="vgradient|0:BlueCrayola|1:Black">
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 1"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 2"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 3"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 4"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 5"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 6"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 7"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 8"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 9"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 10"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 11"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 12"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 13"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 14"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 15"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 16"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 17"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 18"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 19"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 20"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 21"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 22"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 23"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 24"/>
 -               <Label Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 25"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 1"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 2"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 3"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 4"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 5"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 6"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 7"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 8"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 9"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 10"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 11"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 12"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 13"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 14"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 15"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 16"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 17"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 18"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 19"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 20"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 21"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 22"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 23"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 24"/>
++               <Label MouseEnter="{Background=Gray}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 25"/>
+       </VerticalStack>
+ </Scroller>
 +</Border>
  <!--<VerticalStack Fit="true" Margin="50" Background="LimeGreen" CacheEnabled="false"
                HorizontalAlignment="Right" VerticalAlignment="Bottom"
                MouseEnter="{Background=Gray}"
index 599f951fddc40dddc8b691b5248ce0220ecfc146,e27eedff146a52755f55fa6e1c2ad2e2f9ed7b21..1924aac0dd40bf84a12982659b51d5dd00da6031
@@@ -187,7 -192,22 +192,41 @@@ namespace Cro
                {
                        return base.ScreenCoordinates (r) - new Point((int)ScrollX,(int)ScrollY);
                }
 -              public override void Paint (ref Context ctx)
+ //            protected override void onDraw (Context gr)
+ //            {
+ //                    gr.Save ();
+ //                    //gr.ResetClip ();
+ //
+ //                    base.onDraw (gr);
+ //                    gr.Restore ();
+ //            }
 -                      ctx.Save ();
 -                      //ctx.ResetClip ();
 -                      ctx.Translate (-ScrollX, -ScrollY);
 -                      base.Paint (ref ctx);
 -                      ctx.Restore ();
++              protected override void onDraw (Context gr)
+               {
++                      Rectangle rBack = new Rectangle (Slot.Size);
++
++                      Background.SetAsSource (gr, rBack);
++                      CairoHelpers.CairoRectangle(gr,rBack, CornerRadius);
++                      gr.Fill ();
++
++                      gr.Save ();
++                      //clip to scrolled client zone
++                      CairoHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);//+ new Point((int)ScrollX,(int)ScrollY)
++                      gr.Clip ();
++
++                      gr.Translate (-ScrollX, -ScrollY);
++                      if (child != null)
++                              child.Paint (ref gr);
++                      gr.Restore ();
+               }
 +
++//            public override void Paint (ref Context ctx)
++//            {
++//                    ctx.Save ();
++//                    //ctx.ResetClip ();
++//                    ctx.Translate (-ScrollX, -ScrollY);
++//                    base.Paint (ref ctx);
++//                    ctx.Restore ();
++//            }
  //            public override void registerClipRect ()
  //            {
  //                    HostContainer.redrawClip.AddRectangle (base.ScreenCoordinates(Slot));
index c46a07f7efe56d1926faa995e9f2f236719ea73e,c46a07f7efe56d1926faa995e9f2f236719ea73e..00035390f5aa84079cf0ed9f98e45fe803a4b0e6
@@@ -307,9 -307,9 +307,9 @@@ namespace Cro
                                                        ctx.Restore ();
                                                }
  
--//                                            #if DEBUG_CLIP_RECTANGLE
--//                                            clipping.stroke (ctx, Color.Red.AdjustAlpha(0.5));
--//                                            #endif
++                                              #if DEBUG_CLIP_RECTANGLE
++                                              clipping.stroke (ctx, Color.Red.AdjustAlpha(0.5));
++                                              #endif
  
                                                clipping.Reset ();
                                        }