[banshee] Port the MeeGo extension to Gtk# 3



commit ba760d67236523000942469527ec4ed4ffadde28
Author: Bertrand Lorentz <bertrand lorentz gmail com>
Date:   Sat Oct 19 17:30:07 2013 +0200

    Port the MeeGo extension to Gtk# 3
    
    This is just a straight port to get the extension to build again.
    
    There are some visual glitches when running on a standard GNOME 3
    system, and various other issues. I'll address these issues in later
    commits, along with some more structural changes.

 .../Banshee.MeeGo/MediaPanelContents.cs            |   27 +++-----------
 .../Banshee.MeeGo/Banshee.MeeGo/MeeGoHeaderBox.cs  |   24 +++++--------
 .../Banshee.MeeGo/Banshee.MeeGo/MeeGoTheme.cs      |   10 +++---
 .../Banshee.MeeGo/Banshee.MeeGo/SearchEntry.cs     |    5 +--
 .../Banshee.MeeGo/MeeGo.Panel/PanelClient.cs       |   36 ++++++++++----------
 5 files changed, 39 insertions(+), 63 deletions(-)
---
diff --git a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs 
b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs
index e67bc7e..c0d8947 100644
--- a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs
+++ b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs
@@ -205,42 +205,27 @@ namespace Banshee.MeeGo
 
 #region Background Rendering
 
-        protected override void OnParentSet (Widget previous)
-        {
-            base.OnParentSet (previous);
-
-            if (Parent != null) {
-                Parent.ModifyBg (StateType.Normal, Style.White);
-            }
-        }
-
-        protected override bool OnExposeEvent (Gdk.EventExpose evnt)
+        protected override bool OnDrawn (Cairo.Context cr)
         {
             if (!Visible || !IsMapped) {
                 return true;
             }
 
-            RenderBackground (evnt.Window, evnt.Region);
-            foreach (var child in Children) {
-                PropagateExpose (child, evnt);
-            }
+            RenderBackground (cr);
+            base.OnDrawn (cr);
 
             return true;
         }
 
-        private void RenderBackground (Gdk.Window window, Gdk.Region region)
+        private void RenderBackground (Cairo.Context cr)
         {
-            var cr = Gdk.CairoHelper.Create (window);
-
             var grad = new Cairo.LinearGradient (0, 0, 0, Allocation.Height);
             grad.AddColorStop (0, CairoExtensions.RgbToColor (0xffffff));
             grad.AddColorStop (1, CairoExtensions.RgbToColor (0xc3c3c3));
-            cr.Pattern = grad;
+            cr.SetSource (grad);
             cr.Rectangle (0, 0, Allocation.Width, Allocation.Height);
             cr.Fill ();
-            grad.Destroy ();
-
-            CairoExtensions.DisposeContext (cr);
+            grad.Dispose ();
         }
 
 #endregion
diff --git a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoHeaderBox.cs 
b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoHeaderBox.cs
index 80bf61d..d92dc66 100644
--- a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoHeaderBox.cs
+++ b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoHeaderBox.cs
@@ -97,24 +97,20 @@ namespace Banshee.MeeGo
             }
         }
 
-        protected override bool OnExposeEvent (Gdk.EventExpose evnt)
+        protected override bool OnDrawn (Cairo.Context cr)
         {
             if (!Visible || !IsMapped) {
                 return true;
             }
 
-            RenderBackground (evnt.Window, evnt.Region);
-            foreach (var child in Children) {
-                PropagateExpose (child, evnt);
-            }
+            RenderBackground (cr);
+            base.OnDrawn (cr);
 
             return true;
         }
 
-        private void RenderBackground (Gdk.Window window, Gdk.Region region)
+        private void RenderBackground (Cairo.Context cr)
         {
-            var cr = Gdk.CairoHelper.Create (window);
-
             // Box background
             CairoExtensions.RoundedRectangle (cr,
                 Allocation.X,
@@ -122,7 +118,7 @@ namespace Banshee.MeeGo
                 Allocation.Width,
                 Allocation.Height,
                 3);
-            cr.Color = CairoExtensions.RgbToColor (0xf9f9f9);
+            cr.SetSourceColor (CairoExtensions.RgbToColor (0xf9f9f9));
             cr.Fill ();
 
             // Box border
@@ -133,7 +129,7 @@ namespace Banshee.MeeGo
                 Allocation.Width - 1,
                 Allocation.Height - 1,
                 3);
-            cr.Color = CairoExtensions.RgbToColor (0x8f8f8f);
+            cr.SetSourceColor (CairoExtensions.RgbToColor (0x8f8f8f));
             cr.Stroke ();
 
             // Box header background
@@ -143,7 +139,7 @@ namespace Banshee.MeeGo
                 Allocation.Width - 6,
                 header.Allocation.Height + 3,
                 2, CairoCorners.TopLeft | CairoCorners.TopRight);
-            cr.Color = CairoExtensions.RgbToColor (0xd7d9d6);
+            cr.SetSourceColor (CairoExtensions.RgbToColor (0xd7d9d6));
             cr.Fill ();
 
             // Highlight children
@@ -161,12 +157,12 @@ namespace Banshee.MeeGo
                         widget.Allocation.Y - Spacing + 2,
                         Allocation.Width - 6,
                         widget.Allocation.Height + Spacing + 2);
-                    cr.Color = CairoExtensions.RgbToColor (0xf6f6f6);
+                    cr.SetSourceColor (CairoExtensions.RgbToColor (0xf6f6f6));
                     cr.Fill ();
                 }
 
                 cr.LineWidth = 1;
-                cr.Color = CairoExtensions.RgbToColor (0x8f8f8f);
+                cr.SetSourceColor (CairoExtensions.RgbToColor (0x8f8f8f));
 
                 if ((flags & HighlightFlags.TopLine) != 0) {
                     cr.MoveTo (
@@ -188,8 +184,6 @@ namespace Banshee.MeeGo
                     cr.Stroke ();
                 }
             }
-
-            CairoExtensions.DisposeContext (cr);
         }
     }
 }
diff --git a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoTheme.cs 
b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoTheme.cs
index 231ad0c..9646a54 100644
--- a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoTheme.cs
+++ b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoTheme.cs
@@ -86,7 +86,7 @@ namespace Banshee.MeeGo
                 return;
             }
 
-            cr.Color = TextMidColor;
+            cr.SetSourceColor (TextMidColor);
             cr.LineWidth = 1.0;
             cr.Antialias = Cairo.Antialias.None;
 
@@ -113,14 +113,14 @@ namespace Banshee.MeeGo
             grad.AddColorStop (0.66, CairoExtensions.RgbToColor (0xeeecec));
             grad.AddColorStop (1, CairoExtensions.RgbToColor (0xe1dfdf));
 
-            cr.Pattern = grad;
+            cr.SetSource (grad);
             CairoExtensions.RoundedRectangle (cr, alloc.X, alloc.Y, alloc.Width, alloc.Height, 
Context.Radius, corners);
             cr.Fill ();
 
-            cr.Color = CairoExtensions.RgbToColor (0x919191);
+            cr.SetSourceColor (CairoExtensions.RgbToColor (0x919191));
             cr.Rectangle (alloc.X, alloc.Bottom, alloc.Width, BorderWidth);
             cr.Fill ();
-            grad.Destroy ();
+            grad.Dispose ();
         }
 
         public override void DrawRowSelection (Cairo.Context cr, int x, int y, int width, int height,
@@ -143,7 +143,7 @@ namespace Banshee.MeeGo
                 filled, false, color, corners, true);
 
             if (stroked) {
-                cr.Color = color;
+                cr.SetSourceColor (color);
                 cr.LineWidth = 1.0;
                 cr.Antialias = Cairo.Antialias.None;
 
diff --git a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/SearchEntry.cs 
b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/SearchEntry.cs
index 33459d2..b402a61 100644
--- a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/SearchEntry.cs
+++ b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/SearchEntry.cs
@@ -119,10 +119,7 @@ namespace Banshee.MeeGo
 
             Query = String.IsNullOrEmpty (query) ? String.Empty : query + ":";
 
-            Editable editable = InnerEntry as Editable;
-            if (editable != null) {
-                editable.Position = Query.Length;
-            }
+            Position = Query.Length;
         }
 
         public bool SearchSensitive {
diff --git a/src/Extensions/Banshee.MeeGo/MeeGo.Panel/PanelClient.cs 
b/src/Extensions/Banshee.MeeGo/MeeGo.Panel/PanelClient.cs
index b9d780d..4b1bfd2 100644
--- a/src/Extensions/Banshee.MeeGo/MeeGo.Panel/PanelClient.cs
+++ b/src/Extensions/Banshee.MeeGo/MeeGo.Panel/PanelClient.cs
@@ -154,56 +154,56 @@ namespace MeeGo.Panel
         
         [GLib.Signal ("unload")]
         public event EventHandler UnloadEvent {
-            add { GLib.Signal.Lookup (this, "unload").AddDelegate (value); }
-            remove { GLib.Signal.Lookup (this, "unload").RemoveDelegate (value); }
+            add { AddSignalHandler ("unload", value); }
+            remove { RemoveSignalHandler ("unload", value); }
         }
 
         [GLib.Signal ("set-size")]
         public event SetSizeHandler SetSizeEvent {
-            add { GLib.Signal.Lookup (this, "set-size", typeof (SetSizeArgs)).AddDelegate (value); }
-            remove { GLib.Signal.Lookup (this, "set-size", typeof (SetSizeArgs)).RemoveDelegate (value); }
+            add { AddSignalHandler ("set-size", value); }
+            remove { RemoveSignalHandler ("set-size", value); }
         }
 
         [GLib.Signal ("set-position")]
         public event SetPositionHandler SetPositionEvent {
-            add { GLib.Signal.Lookup (this, "set-position", typeof (SetPositionArgs)).AddDelegate (value); }
-            remove { GLib.Signal.Lookup (this, "set-position", typeof (SetPositionArgs)).RemoveDelegate 
(value); }
+            add { AddSignalHandler ("set-position", value); }
+            remove { RemoveSignalHandler ("set-position", value); }
         }
 
         [GLib.Signal ("show-begin")]
         public event EventHandler ShowBeginEvent {
-            add { GLib.Signal.Lookup (this, "show-begin").AddDelegate (value); }
-            remove { GLib.Signal.Lookup (this, "show-begin").RemoveDelegate (value); }
+            add { AddSignalHandler ("show-begin", value); }
+            remove { RemoveSignalHandler ("show-begin", value); }
         }
 
         [GLib.Signal ("show-end")]
         public event EventHandler ShowEndEvent {
-            add { GLib.Signal.Lookup (this, "show-end").AddDelegate (value); }
-            remove { GLib.Signal.Lookup (this, "show-end").RemoveDelegate (value); }
+            add { AddSignalHandler ("show-end", value); }
+            remove { RemoveSignalHandler ("show-end", value); }
         }
 
         [GLib.Signal ("show")]
         public event EventHandler ShowEvent {
-            add { GLib.Signal.Lookup (this, "show").AddDelegate (value); }
-            remove { GLib.Signal.Lookup (this, "show").RemoveDelegate (value); }
+            add { AddSignalHandler ("show", value); }
+            remove { RemoveSignalHandler ("show", value); }
         }
 
         [GLib.Signal ("hide-begin")]
         public event EventHandler HideBeginEvent {
-            add { GLib.Signal.Lookup (this, "hide-begin").AddDelegate (value); }
-            remove { GLib.Signal.Lookup (this, "hide-begin").RemoveDelegate (value); }
+            add { AddSignalHandler ("hide-begin", value); }
+            remove { RemoveSignalHandler ("hide-begin", value); }
         }
 
         [GLib.Signal ("hide-end")]
         public event EventHandler HideEndEvent {
-            add { GLib.Signal.Lookup (this, "hide-end").AddDelegate (value); }
-            remove { GLib.Signal.Lookup (this, "hide-end").RemoveDelegate (value); }
+            add { AddSignalHandler ("hide-end", value); }
+            remove { RemoveSignalHandler ("hide-end", value); }
         }
 
         [GLib.Signal ("hide")]
         public event EventHandler HideEvent {
-            add { GLib.Signal.Lookup (this, "hide").AddDelegate (value); }
-            remove { GLib.Signal.Lookup (this, "hide").RemoveDelegate (value); }
+            add { AddSignalHandler ("hide", value); }
+            remove { RemoveSignalHandler ("hide", value); }
         }
     }
 }


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