aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects
diff options
context:
space:
mode:
Diffstat (limited to 'src/GraphicObjects')
-rw-r--r--src/GraphicObjects/GraphicObject.cs2
-rw-r--r--src/GraphicObjects/Scroller.cs30
2 files changed, 26 insertions, 6 deletions
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));