]> O.S.I.I.S - jp/crow.git/commitdiff
debug scrolling in new Clipping system
authorjpbruyere <jp.bruyere@hotmail.com>
Fri, 12 Feb 2016 14:41:56 +0000 (15:41 +0100)
committerjpbruyere <jp.bruyere@hotmail.com>
Fri, 12 Feb 2016 14:41:56 +0000 (15:41 +0100)
Tests/Interfaces/clip4.crow
src/GraphicObjects/GraphicObject.cs
src/GraphicObjects/Scroller.cs

index c38e95ac14d1c34af2a1f031fdaaa5aec6827c72..eb16a88b5d9303bbd182ff0590eb459e2d8f95f2 100755 (executable)
@@ -1,7 +1,33 @@
 <?xml version="1.0"?>
-<Border Fit="true" Margin="50" Background="DimGray" CornerRadius="20">
-       <Label Margin="50" Text="fpsklhlkjh" Background="BlueCrayola"/> 
-</Border>
+<Scroller CacheEnabled="false" VerticalScrolling="true" Height="100" Width="300" Background="DimGray" Margin="20">
+       <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"/>
+       </VerticalStack>
+</Scroller>
 <!--<VerticalStack Fit="true" Margin="50" Background="LimeGreen" CacheEnabled="false"
                HorizontalAlignment="Right" VerticalAlignment="Bottom"
                MouseEnter="{Background=Gray}"
index 7cb4a723bb8f235d488bee2df1a9d83435b94e9a..24fd852abbfc9f414d29e25b0710f86118935f4b 100644 (file)
@@ -471,7 +471,7 @@ namespace Crow
                public virtual bool Contains(GraphicObject goToFind){
                        return false;
                }
-               public void RegisterClip(Rectangle clip){                       
+               public virtual void RegisterClip(Rectangle clip){                       
                        if (CacheEnabled && bmp != null)
                                Clipping.AddRectangle (clip + ClientRectangle.Position);
                        Parent.RegisterClip (clip + Slot.Position + ClientRectangle.Position);
index 599f951fddc40dddc8b691b5248ce0220ecfc146..e27eedff146a52755f55fa6e1c2ad2e2f9ed7b21 100644 (file)
@@ -100,6 +100,11 @@ namespace Crow
             : base(){}
 
                #region GraphicObject Overrides
+               [XmlAttributeAttribute()][DefaultValue(false)]
+               public override bool CacheEnabled {
+                       get { return base.CacheEnabled; }
+                       set { base.CacheEnabled = value; }
+               }
                void OnChildLayoutChanges (object sender, LayoutingEventArgs arg)
                {
                        int maxScroll = MaximumScroll;
@@ -177,17 +182,32 @@ namespace Crow
                        savedMousePos.Y += e.YDelta;
                        base.onMouseMove (sender, new MouseMoveEventArgs(savedMousePos.X,savedMousePos.Y,e.XDelta,e.YDelta));
                }
-               #endregion
-
-               public override Rectangle ContextCoordinates (Rectangle r)
+               public override void RegisterClip (Rectangle clip)
                {
-                       return base.ContextCoordinates (r) - new Point((int)ScrollX,(int)ScrollY);
+                       base.RegisterClip (clip - new Point((int)ScrollX,(int)ScrollY));
                }
+               #endregion
+
                public override Rectangle ScreenCoordinates (Rectangle r)
                {
                        return base.ScreenCoordinates (r) - new Point((int)ScrollX,(int)ScrollY);
                }
-
+//             protected override void onDraw (Context gr)
+//             {
+//                     gr.Save ();
+//                     //gr.ResetClip ();
+//
+//                     base.onDraw (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));