[longomatch] Fix redraws in general for widgets resizes



commit 0a4fe87f3f29501d449d94c877a05c90bb18941c
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date:   Mon Oct 13 19:10:48 2014 +0200

    Fix redraws in general for widgets resizes

 LongoMatch.Drawing/Canvas.cs                       |    8 ++++++++
 .../CanvasObjects/PlayersTaggerObject.cs           |   15 +++++++++++++++
 2 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/LongoMatch.Drawing/Canvas.cs b/LongoMatch.Drawing/Canvas.cs
index 3591055..6d7a99b 100644
--- a/LongoMatch.Drawing/Canvas.cs
+++ b/LongoMatch.Drawing/Canvas.cs
@@ -40,6 +40,7 @@ namespace LongoMatch.Drawing
                        tk = Config.DrawingToolkit;
                        Objects = new List<ICanvasObject> ();
                        widget.DrawEvent += Draw;
+                       widget.SizeChangedEvent += HandleSizeChangedEvent;
                        scaleX = 1;
                        scaleY = 1;
                        translation = new Point (0, 0);
@@ -107,6 +108,13 @@ namespace LongoMatch.Drawing
                        widget.ReDraw (area);
                }
 
+               void HandleSizeChangedEvent ()
+               {
+                       foreach (CanvasObject to in Objects) {
+                               to.ResetDrawArea ();
+                       }
+               }
+
                public virtual void Draw (IContext context, Area area)
                {
                        List<CanvasObject> highlighted = new List<CanvasObject> ();
diff --git a/LongoMatch.Drawing/CanvasObjects/PlayersTaggerObject.cs 
b/LongoMatch.Drawing/CanvasObjects/PlayersTaggerObject.cs
index 9faaa6a..b52e110 100644
--- a/LongoMatch.Drawing/CanvasObjects/PlayersTaggerObject.cs
+++ b/LongoMatch.Drawing/CanvasObjects/PlayersTaggerObject.cs
@@ -330,6 +330,21 @@ namespace LongoMatch.Drawing.CanvasObjects
                        Update ();
                }
 
+               public override void ResetDrawArea ()
+               {
+                       base.ResetDrawArea ();
+                       foreach (CanvasObject co in homePlayers) {
+                               co.ResetDrawArea ();
+                       }
+                       foreach (CanvasObject co in awayPlayers) {
+                               co.ResetDrawArea ();
+                       }
+                       subPlayers.ResetDrawArea ();
+                       subInjury.ResetDrawArea ();
+                       homeButton.ResetDrawArea ();
+                       awayButton.ResetDrawArea ();
+               }
+
                void UpdateLineup ()
                {
                        List<Player> homeFieldL, awayFieldL, homeBenchL, awayBenchL;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]