aboutsummaryrefslogtreecommitdiffstatsci
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/GraphicObjects/GraphicObject.cs3
-rw-r--r--src/GraphicObjects/PrivateContainer.cs6
-rw-r--r--src/Interface.cs20
-rw-r--r--src/Rectangles.cs102
4 files changed, 15 insertions, 116 deletions
diff --git a/src/GraphicObjects/GraphicObject.cs b/src/GraphicObjects/GraphicObject.cs
index 9c1a8cc4..e5313ea2 100644
--- a/src/GraphicObjects/GraphicObject.cs
+++ b/src/GraphicObjects/GraphicObject.cs
@@ -1084,9 +1084,6 @@ namespace Crow
/// of the widget </summary>
public virtual void Paint (ref Context ctx)
{
- if (!Visible)
- return;
-
//TODO:this test should not be necessary
if (Slot.Height < 0 || Slot.Width < 0)
return;
diff --git a/src/GraphicObjects/PrivateContainer.cs b/src/GraphicObjects/PrivateContainer.cs
index 0afefeb9..9c65e935 100644
--- a/src/GraphicObjects/PrivateContainer.cs
+++ b/src/GraphicObjects/PrivateContainer.cs
@@ -158,8 +158,10 @@ namespace Crow
gr.Clip ();
}
- if (child != null)
- child.Paint (ref gr);
+ if (child != null) {
+ if (child.Visible)
+ child.Paint (ref gr);
+ }
gr.Restore ();
}
protected override void UpdateCache (Context ctx)
diff --git a/src/Interface.cs b/src/Interface.cs
index b90f2ac9..0cff9b87 100644
--- a/src/Interface.cs
+++ b/src/Interface.cs
@@ -101,10 +101,10 @@ namespace Crow
// if (g.RegisteredLayoutings != LayoutingType.None)
// return;
ILayoutable l = g;
- while (l.Parent != null)
- l = l.Parent;
- if (!(l is Interface))
- return;
+// while (l.Parent != null)
+// l = l.Parent;
+// if (!(l is Interface))
+// return;
lock (DrawingQueue) {
if (g.IsQueueForRedraw)
@@ -412,15 +412,9 @@ namespace Crow
while (DrawingQueue.Count > 0) {
GraphicObject g = DrawingQueue.Dequeue ();
g.IsQueueForRedraw = false;
- try {
- if (g.Parent == null)
- continue;
- g.Parent.RegisterClip (g.LastPaintedSlot);
- if (g.getSlot () != g.LastPaintedSlot)
- g.Parent.RegisterClip (g.getSlot ());
- } catch (Exception ex) {
- Debug.WriteLine ("Error Register Clip: " + ex.ToString ());
- }
+ g.Parent.RegisterClip (g.LastPaintedSlot);
+ if (g.getSlot () != g.LastPaintedSlot)
+ g.Parent.RegisterClip (g.getSlot ());
}
}
#if MEASURE_TIME
diff --git a/src/Rectangles.cs b/src/Rectangles.cs
index 5168f3db..9f3c3337 100644
--- a/src/Rectangles.cs
+++ b/src/Rectangles.cs
@@ -35,7 +35,7 @@ namespace Crow
return false;
return true;
}
-
+
public bool intersect(Rectangle r)
{
foreach (Rectangle rInList in list)
@@ -43,102 +43,10 @@ namespace Crow
return true;
return false;
}
-
- public Rectangles intersectingRects(Rectangle r)
- {
- Rectangles tmp = new Rectangles();
-
- foreach (Rectangle rInList in list)
- if (rInList.Intersect(r))
- tmp.list.Add(rInList);//on bypass le test déjà fait a l'ajout intial du rect dans la liste
-
- return tmp;
- }
- public Rectangles SmallerContainedRects(Rectangle r)
- {
- Rectangles tmp = new Rectangles();
-
- foreach (Rectangle rInList in list)
- if (r.ContainsOrIsEqual(rInList) && rInList.Size < r.Size)
- tmp.list.Add(rInList);
-
- return tmp;
- }
- /// <summary>
- /// Return rectangles with size smaller than r.size
- /// </summary>
- public Rectangles SmallerRects(Rectangle r)
- {
- Rectangles tmp = new Rectangles();
-
- foreach (Rectangle rInList in list)
- if (rInList.Size < r.Size)
- tmp.list.Add(rInList);
-
- return tmp;
- }
- public Rectangles containedOrEqualRects(Rectangle r)
- {
- Rectangles tmp = new Rectangles();
-
- foreach (Rectangle rInList in list)
- if (r.ContainsOrIsEqual(rInList))// && rInList.Size <= r.Size)
- tmp.list.Add(rInList);
-
- return tmp;
- }
- public void Srcoll(GraphicObject w)
- {
- Scroller sw = w as Scroller;
- if (sw == null)
- return;
-
- List<Rectangle> newList = new List<Rectangle>();
-
- foreach (Rectangle rInList in list)
- {
- Rectangle r = rInList;
-
- if (sw.VerticalScrolling)
- r.Top -= (int)sw.ScrollY;
- if (sw.HorizontalScrolling)
- r.Left -= (int)sw.ScrollX;
-
- newList.Add(r);
- }
- list = newList;
- }
- public void Rebase(GraphicObject w)
- {
- Rectangle r = w.Parent.ContextCoordinates(w.Slot);
- List<Rectangle> newList = new List<Rectangle>();
-
- foreach (Rectangle rInList in list)
- {
- Rectangle rebasedR = rInList;
- rebasedR.TopLeft-= r.TopLeft;
-
- Scroller sw = w as Scroller;
- if (sw != null)
- {
- if (sw.VerticalScrolling) {
- rebasedR.Top -= (int)sw.ScrollY;
-// if (sw.scrollY < 0)
-// Debug.WriteLine ("..");
- }if (sw.HorizontalScrolling)
- rebasedR.Left -= (int)sw.ScrollX;
- }
-
- newList.Add(rebasedR);
- }
- list = newList;
- }
public void stroke(Context ctx, Color c)
{
foreach (Rectangle r in list)
- {
ctx.Rectangle(r);
- }
ctx.SetSourceColor(c);
@@ -153,17 +61,15 @@ namespace Crow
ctx.Rectangle(r);
ctx.ClipPreserve();
- ctx.Operator = Operator.Clear;
+ ctx.Operator = Operator.Clear;
ctx.Fill();
- ctx.Operator = Operator.Over;
+ ctx.Operator = Operator.Over;
}
public void clip(Context ctx)
{
foreach (Rectangle r in list)
- {
- ctx.Rectangle(r);
- }
+ ctx.Rectangle(r);
ctx.Clip();
}