From d6e894025ca1d21e85da60c39ccf9ed4229a6bba Mon Sep 17 00:00:00 2001 From: jpbruyere Date: Fri, 12 Feb 2016 15:41:56 +0100 Subject: debug scrolling in new Clipping system --- src/GraphicObjects/GraphicObject.cs | 2 +- src/GraphicObjects/Scroller.cs | 30 +++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/GraphicObjects/GraphicObject.cs b/src/GraphicObjects/GraphicObject.cs index 7cb4a723..24fd852a 100644 --- a/src/GraphicObjects/GraphicObject.cs +++ b/src/GraphicObjects/GraphicObject.cs @@ -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); diff --git a/src/GraphicObjects/Scroller.cs b/src/GraphicObjects/Scroller.cs index 599f951f..e27eedff 100644 --- a/src/GraphicObjects/Scroller.cs +++ b/src/GraphicObjects/Scroller.cs @@ -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)); -- cgit v1.3.1-4-g156e