[banshee/gtk3] ThickClient: Lots of various small updates for GTK 3



commit 288a9eb60b74a3c42285c2f5525f5de167c2d238
Author: Bertrand Lorentz <bertrand lorentz gmail com>
Date:   Sat Jul 16 20:46:13 2011 +0200

    ThickClient: Lots of various small updates for GTK 3
    
    Also some updates in the Extensions, but it's not building yet.

 src/Clients/Muinshee/Muinshee/PlayerInterface.cs   |    3 ++-
 src/Clients/Nereid/Nereid/PlayerInterface.cs       |    3 ++-
 .../Banshee.Addins.Gui/AddinView.cs                |    2 +-
 .../Banshee.Collection.Gui/BaseTrackListView.cs    |    4 ++--
 .../Banshee.Collection.Gui/ColumnCellAlbum.cs      |    7 +++++--
 .../ColumnCellCreativeCommons.cs                   |    2 +-
 .../ColumnCellStatusIndicator.cs                   |    2 +-
 .../Banshee.Collection.Gui/ColumnCellTrack.cs      |    8 +++++---
 .../Banshee.Collection.Gui/CoverArtEditor.cs       |    6 +++---
 .../Banshee.Equalizer.Gui/EqualizerLevelsBox.cs    |    4 ++--
 .../Banshee.Equalizer.Gui/EqualizerWindow.cs       |    7 ++++---
 .../Banshee.Gui.Dialogs/AboutDialog.cs             |   10 ++++++----
 .../Banshee.Gui.Dialogs/BansheeDialog.cs           |   11 +++++------
 .../Banshee.Gui.Dialogs/OpenLocationDialog.cs      |    4 ++--
 .../Banshee.Gui.TrackEditor/LicenseEntry.cs        |    8 ++++----
 .../Banshee.Gui.TrackEditor/TextViewEntry.cs       |    6 ++----
 .../ProfileConfigurationDialog.cs                  |    3 +--
 .../Banshee.Preferences.Gui/NotebookPage.cs        |    2 +-
 .../PlaybackErrorQueryValueEntry.cs                |    4 ++--
 .../Banshee.Query.Gui/PlaylistQueryValueEntry.cs   |    4 ++--
 .../SmartPlaylistQueryValueEntry.cs                |    4 ++--
 .../Banshee.Sources.Gui/SourceView.cs              |   18 ++++++------------
 .../Banshee.Sources.Gui/SourceView_DragAndDrop.cs  |    6 ++----
 .../Banshee.Dap.Gui/DapPropertiesDialog.cs         |    4 ++--
 .../Banshee.Dap.Gui/DapPropertiesDisplay.cs        |   14 ++++----------
 .../Banshee.Audiobook/AudiobookLibrarySource.cs    |    4 ++--
 .../Banshee.Daap/Banshee.Daap/DaapLoginDialog.cs   |    6 +++---
 .../Banshee.Daap/Banshee.Daap/OpenRemoteServer.cs  |    4 ++--
 .../Banshee.InternetArchive/DetailsView.cs         |    2 +-
 .../Banshee.InternetArchive/HeaderFilters.cs       |    5 +++--
 .../Banshee.InternetRadio/StationEditor.cs         |    9 ++++-----
 .../Banshee.LastfmStreaming/StationEditor.cs       |    6 +++---
 .../ItunesPlayerImportDialogs.cs                   |   14 +++++++-------
 .../Banshee.Podcasting.Gui/ColumnCellPodcast.cs    |    7 +++++--
 .../ColumnCellPodcastStatusIndicator.cs            |    2 +-
 .../Dialog/PodcastFeedPropertiesDialog.cs          |   10 +++-------
 .../Dialog/PodcastPropertiesDialog.cs              |    5 ++---
 .../Dialog/PodcastSubscribeDialog.cs               |    6 +++---
 38 files changed, 108 insertions(+), 118 deletions(-)
---
diff --git a/src/Clients/Muinshee/Muinshee/PlayerInterface.cs b/src/Clients/Muinshee/Muinshee/PlayerInterface.cs
index 0b49fcd..ba6bc08 100644
--- a/src/Clients/Muinshee/Muinshee/PlayerInterface.cs
+++ b/src/Clients/Muinshee/Muinshee/PlayerInterface.cs
@@ -234,7 +234,8 @@ namespace Muinshee
         {
             base.ConnectEvents ();
             ServiceManager.SourceManager.SourceUpdated += OnSourceUpdated;
-            header_toolbar.ExposeEvent += OnToolbarExposeEvent;
+            // FIXME: confirm that this is not needed anymore
+            //header_toolbar.ExposeEvent += OnToolbarExposeEvent;
         }
 
 #endregion
diff --git a/src/Clients/Nereid/Nereid/PlayerInterface.cs b/src/Clients/Nereid/Nereid/PlayerInterface.cs
index 03055c1..dd7aebf 100644
--- a/src/Clients/Nereid/Nereid/PlayerInterface.cs
+++ b/src/Clients/Nereid/Nereid/PlayerInterface.cs
@@ -436,7 +436,8 @@ namespace Nereid
             };
 
             if (!PlatformDetection.IsMeeGo) {
-                header_toolbar.ExposeEvent += OnToolbarExposeEvent;
+                // FIXME: confirm that this is not needed anymore
+                /*header_toolbar.ExposeEvent += OnToolbarExposeEvent;
             }
         }
 
diff --git a/src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs b/src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs
index 47d7ef0..7709971 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs
@@ -47,7 +47,7 @@ namespace Banshee.Addins.Gui
             var hbox = new HBox () { Spacing = 6 };
 
             var filter_label = new Label (Catalog.GetString ("Show:"));
-            var filter_combo = ComboBox.NewText ();
+            var filter_combo = new ComboBoxText ();
             filter_combo.AppendText (Catalog.GetString ("All"));
             filter_combo.AppendText (Catalog.GetString ("Enabled"));
             filter_combo.AppendText (Catalog.GetString ("Not Enabled"));
diff --git a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BaseTrackListView.cs b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BaseTrackListView.cs
index b3b041d..93557ac 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BaseTrackListView.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BaseTrackListView.cs
@@ -69,7 +69,7 @@ namespace Banshee.Collection.Gui
                 int x, y;
                 GetPointer (out x, out y);
                 bool inside_list = (x >= 0 && y >= 0) && (x < Allocation.Width && y < Allocation.Height);
-                if (inside_list && a.DragResult == DragResult.NoTarget) {
+                if (inside_list && a.Result == DragResult.NoTarget) {
                     PlaylistSource playlist = ServiceManager.SourceManager.ActiveSource as PlaylistSource;
                     if (playlist != null && !IsReorderable) {
                         Hyena.Log.Information (
@@ -211,7 +211,7 @@ namespace Banshee.Collection.Gui
                         sb.Append ("\r\n");
                     }
                     byte [] data = System.Text.Encoding.UTF8.GetBytes (sb.ToString ());
-                    selection_data.Set (context.Targets[0], 8, data, data.Length);
+                    selection_data.Set (context.ListTargets ()[0], 8, data, data.Length);
                 }
             }
         }
diff --git a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs
index bbae65e..89063fb 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs
@@ -74,7 +74,7 @@ namespace Banshee.Collection.Gui
             return new ColumnCellAlbumAccessible (BoundObject, this, parent);
         }
 
-        public override void Render (CellContext context, StateType state, double cellWidth, double cellHeight)
+        public override void Render (CellContext context, StateFlags state, double cellWidth, double cellHeight)
         {
             if (BoundObject == null) {
                 return;
@@ -104,7 +104,10 @@ namespace Banshee.Collection.Gui
                 image_render_size, image_render_size, !is_default, context.Theme.Context.Radius);
 
             int fl_width = 0, fl_height = 0, sl_width = 0, sl_height = 0;
-            Cairo.Color text_color = context.Theme.Colors.GetWidgetColor (GtkColorClass.Text, state);
+            context.Widget.StyleContext.Save ();
+            context.Widget.StyleContext.AddClass ("entry");
+            Cairo.Color text_color = CairoExtensions.GdkRGBAToCairoColor (context.Widget.StyleContext.GetColor (StateFlags.Selected));
+            context.Widget.StyleContext.Restore ();
             text_color.A = 0.75;
 
             Pango.Layout layout = context.Layout;
diff --git a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellCreativeCommons.cs b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellCreativeCommons.cs
index 62665ca..ce10661 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellCreativeCommons.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellCreativeCommons.cs
@@ -56,7 +56,7 @@ namespace Banshee.Collection.Gui
             LoadPixbufs ();
         }
 
-        public override void Render (CellContext context, StateType state, double cellWidth, double cellHeight)
+        public override void Render (CellContext context, StateFlags state, double cellWidth, double cellHeight)
         {
             context.Context.Translate (0, 0.5);
             int draw_x = 0;
diff --git a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellStatusIndicator.cs b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellStatusIndicator.cs
index d667a65..5d37690 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellStatusIndicator.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellStatusIndicator.cs
@@ -229,7 +229,7 @@ namespace Banshee.Collection.Gui
             LoadPixbufs ();
         }
 
-        public override void Render (CellContext context, StateType state, double cellWidth, double cellHeight)
+        public override void Render (CellContext context, StateFlags state, double cellWidth, double cellHeight)
         {
             TrackInfo track = BoundTrack;
             if (track == null) {
diff --git a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs
index b39e27f..c358ed3 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs
@@ -54,7 +54,7 @@ namespace Banshee.Collection.Gui
             }
         }
 
-        public override void Render (CellContext context, StateType state, double cellWidth, double cellHeight)
+        public override void Render (CellContext context, StateFlags state, double cellWidth, double cellHeight)
         {
             if (BoundObject == null) {
                 return;
@@ -78,8 +78,10 @@ namespace Banshee.Collection.Gui
             context.Layout.GetPixelSize (out text_width, out text_height);
 
             context.Context.MoveTo (4, ((int)cellHeight - text_height) / 2);
-            Cairo.Color color = context.Theme.Colors.GetWidgetColor (
-                context.TextAsForeground ? GtkColorClass.Foreground : GtkColorClass.Text, state);
+            context.Widget.StyleContext.Save ();
+            context.Widget.StyleContext.AddClass ("entry");
+            Cairo.Color color = CairoExtensions.GdkRGBAToCairoColor (context.Widget.StyleContext.GetColor (StateFlags.Selected));
+            context.Widget.StyleContext.Restore ();
             color.A = (!context.Opaque) ? 0.3 : 1.0;
             context.Context.Color = color;
 
diff --git a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CoverArtEditor.cs b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CoverArtEditor.cs
index 538e66b..24ed18c 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CoverArtEditor.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CoverArtEditor.cs
@@ -56,7 +56,7 @@ namespace Banshee.Collection.Gui
         public static Widget For (Widget widget, Func<int, int, bool> is_sensitive, Func<TrackInfo> get_track, System.Action on_updated)
         {
             return new EditorBox (widget) {
-                IsSensitive = is_sensitive,
+                IsBoxSensitive = is_sensitive,
                 GetTrack = get_track,
                 OnUpdated = on_updated
             };
@@ -64,7 +64,7 @@ namespace Banshee.Collection.Gui
 
         private class EditorBox : EventBox
         {
-            public Func<int, int, bool> IsSensitive;
+            public Func<int, int, bool> IsBoxSensitive;
             public Func<TrackInfo> GetTrack;
             public System.Action OnUpdated;
 
@@ -74,7 +74,7 @@ namespace Banshee.Collection.Gui
                 VisibleWindow = false;
 
                 ButtonPressEvent += (o, a) => {
-                    if (a.Event.Button == 3 && IsSensitive ((int)a.Event.X, (int)a.Event.Y)) {
+                    if (a.Event.Button == 3 && IsBoxSensitive ((int)a.Event.X, (int)a.Event.Y)) {
                         var menu = new Menu ();
 
                         var choose = new MenuItem (Catalog.GetString ("Choose New Cover Art..."));
diff --git a/src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerLevelsBox.cs b/src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerLevelsBox.cs
index acd1a23..f3113cb 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerLevelsBox.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerLevelsBox.cs
@@ -61,8 +61,8 @@ namespace Banshee.Equalizer.Gui
             Label label = new Label ();
             label.Xalign = 1.0f;
             label.Markup = String.Format ("<small>{0}</small>", GLib.Markup.EscapeText (value));
-            label.ModifyFg (StateType.Normal, Hyena.Gui.GtkUtilities.ColorBlend (
-                Style.Foreground (StateType.Normal), Style.Background (StateType.Normal)));
+            label.OverrideColor (StateFlags.Normal, Hyena.Gui.GtkUtilities.ColorBlend (
+                StyleContext.GetColor (StateFlags.Normal), StyleContext.GetBackgroundColor (StateFlags.Normal)));
             label.Show ();
             return label;
         }
diff --git a/src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerWindow.cs b/src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerWindow.cs
index 9675b0f..91ed4a9 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerWindow.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerWindow.cs
@@ -133,10 +133,11 @@ namespace Banshee.Equalizer.Gui
             base.OnDestroyed ();
         }
 
-        protected override bool OnExposeEvent (Gdk.EventExpose evnt)
+        protected override bool OnDrawn (Cairo.Context cr)
         {
-            GdkWindow.DrawRectangle (Style.BackgroundGC (StateType.Active), true, header_box.Allocation);
-            return base.OnExposeEvent (evnt);
+            // FIXME: Check that this is not needed, background should already be painted
+            //GdkWindow.DrawRectangle (Style.BackgroundGC (StateType.Active), true, header_box.Allocation);
+            return base.OnDrawn (cr);
         }
 
         private void OnNewPreset (object o, EventArgs args)
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs
index d363352..4d62dcc 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs
@@ -79,10 +79,6 @@ namespace Banshee.Gui.Dialogs
                 translation_credits.Append ("\n");
             }
 
-            SetUrlHook (delegate (Gtk.AboutDialog dialog, string link) {
-                Banshee.Web.Browser.Open (link);
-            });
-
             // TODO: We should really use ProgramName in the future rather
             // than plain Name, since it's been depreciated. We can't do that
             // yet though since it breaks stuff for other people.
@@ -111,6 +107,12 @@ namespace Banshee.Gui.Dialogs
             WrapLicense = true;
             Response += OnResponse;
         }
+
+        protected override bool OnActivateLink (string uri)
+        {
+            return Banshee.Web.Browser.Open (uri);
+        }
+
     }
 }
 
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/BansheeDialog.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/BansheeDialog.cs
index d21d74e..2ec158c 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/BansheeDialog.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/BansheeDialog.cs
@@ -65,18 +65,17 @@ namespace Banshee.Gui.Dialogs
             //     inner_vbox   5 => total = 12
             //     ActionArea   5 => total = 12
             BorderWidth = 5;
-            base.VBox.BorderWidth = 0;
+            ContentArea.BorderWidth = 0;
 
             // This spacing is 2 b/c the inner_vbox and ActionArea should be
             // 12 apart, and they already have BorderWidth 5 each
-            base.VBox.Spacing = 2;
+            ContentArea.Spacing = 2;
 
             inner_vbox = new VBox () { Spacing = 12, BorderWidth = 5, Visible = true };
-            base.VBox.PackStart (inner_vbox, true, true, 0);
+            ContentArea.PackStart (inner_vbox, true, true, 0);
 
             Visible = false;
-            HasSeparator = false;
-
+            
             if (parent == null) {
                 GtkElementsService service = ServiceManager.Get<GtkElementsService> ();
                 if (service != null) {
@@ -95,7 +94,7 @@ namespace Banshee.Gui.Dialogs
             AddAccelGroup (accel_group);
         }
 
-        public new VBox VBox { get { return inner_vbox; } }
+        public VBox VBox { get { return inner_vbox; } }
 
         public new ResponseType Run ()
         {
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/OpenLocationDialog.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/OpenLocationDialog.cs
index b808ee5..30a5733 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/OpenLocationDialog.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/OpenLocationDialog.cs
@@ -38,7 +38,7 @@ namespace Banshee.Gui.Dialogs
 {
     public class OpenLocationDialog : BansheeDialog
     {
-        private ComboBoxEntry address_entry;
+        private ComboBoxText address_entry;
 
         private List<string> history = new List<string>();
 
@@ -48,7 +48,7 @@ namespace Banshee.Gui.Dialogs
                 Spacing = 6
             };
 
-            address_entry = ComboBoxEntry.NewText();
+            address_entry = ComboBoxText.NewWithEntry ();
             address_entry.Entry.Activated += (o, e) => Respond (ResponseType.Ok);
 
             var browse_button = new Button(Catalog.GetString("Browse..."));
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/LicenseEntry.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/LicenseEntry.cs
index 29149aa..3ac8d4f 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/LicenseEntry.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/LicenseEntry.cs
@@ -37,7 +37,7 @@ using Banshee.Collection.Database;
 
 namespace Banshee.Gui.TrackEditor
 {
-    public class LicenseEntry : ComboBoxEntry, ICanUndo, IEditorField
+    public class LicenseEntry : ComboBox, ICanUndo, IEditorField
     {
         private ListStore license_model;
         private EditorEditableUndoAdapter<Entry> undo_adapter = new EditorEditableUndoAdapter<Entry> ();
@@ -46,14 +46,14 @@ namespace Banshee.Gui.TrackEditor
         {
             license_model = new ListStore (typeof (string));
             Model = license_model;
-            TextColumn = 0;
+            EntryTextColumn = 0;
 
             EntryCompletion c = new EntryCompletion ();
             c.Model = license_model;
-            c.TextColumn = TextColumn;
+            c.TextColumn = EntryTextColumn;
             c.PopupCompletion = true;
             c.InlineCompletion = true;
-            //c.InlineSelection = true; // requires 2.12
+            c.InlineSelection = true;
             c.PopupSingleMatch = false;
             Entry.Completion = c;
 
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TextViewEntry.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TextViewEntry.cs
index 7e95f37..87713d8 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TextViewEntry.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TextViewEntry.cs
@@ -60,16 +60,14 @@ namespace Banshee.Gui.TrackEditor
             entry.AcceptsTab = false;
             entry.Show ();
             entry.Buffer.Changed += OnChanged;
-
-            entry.SizeRequested += OnTextViewSizeRequested;
         }
 
-        private void OnTextViewSizeRequested (object o, SizeRequestedArgs args)
+        protected override void OnGetPreferredHeight (out int minimum_height, out int natural_height)
         {
             Pango.FontMetrics metrics = PangoContext.GetMetrics (entry.Style.FontDescription, PangoContext.Language);
             int line_height = ((int)(metrics.Ascent + metrics.Descent) + 512) >> 10; // PANGO_PIXELS(d)
             metrics.Dispose ();
-            HeightRequest = (line_height + 2) * 2;
+            minimum_height = natural_height = (line_height + 2) * 2;
         }
 
         public void DisconnectUndo ()
diff --git a/src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileConfigurationDialog.cs b/src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileConfigurationDialog.cs
index 53bb31c..7aa56ed 100644
--- a/src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileConfigurationDialog.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileConfigurationDialog.cs
@@ -80,7 +80,6 @@ namespace Banshee.MediaProfiles.Gui
         {
             this.profile = profile;
 
-            HasSeparator = false;
             BorderWidth = 5;
 
             AccelGroup accel_group = new AccelGroup();
@@ -158,7 +157,7 @@ namespace Banshee.MediaProfiles.Gui
                 box.PackStart(scroll, false, false, 0);
             }
 
-            VBox.PackStart(box, false, false, 0);
+            ContentArea.PackStart(box, false, false, 0);
 
             SetSizeRequest(350, -1);
 
diff --git a/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/NotebookPage.cs b/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/NotebookPage.cs
index 7b89d76..bd5b14d 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/NotebookPage.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/NotebookPage.cs
@@ -114,7 +114,7 @@ namespace Banshee.Preferences.Gui
                 frame.LabelWidget = label;
                 frame.LabelXalign = 0.0f;
                 frame.LabelYalign = 0.5f;
-                frame.Shadow = ShadowType.None;
+                frame.ShadowType = ShadowType.None;
                 frame.Show ();
                 PackStart (frame, false, false, 0);
             }
diff --git a/src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaybackErrorQueryValueEntry.cs b/src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaybackErrorQueryValueEntry.cs
index 2fc5bde..631f51c 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaybackErrorQueryValueEntry.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaybackErrorQueryValueEntry.cs
@@ -40,7 +40,7 @@ namespace Banshee.Query.Gui
 {
     public class PlaybackErrorQueryValueEntry : QueryValueEntry
     {
-        protected ComboBox combo;
+        protected ComboBoxText combo;
         protected PlaybackErrorQueryValue query_value;
         protected Dictionary<int, int> combo_error_id_map = new Dictionary<int, int> ();
 
@@ -55,7 +55,7 @@ namespace Banshee.Query.Gui
                     Remove (combo);
                 }
 
-                combo = ComboBox.NewText();
+                combo = new ComboBoxText ();
                 combo.WidthRequest = DefaultWidth;
 
                 Add (combo);
diff --git a/src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaylistQueryValueEntry.cs b/src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaylistQueryValueEntry.cs
index ff9b229..8d5c482 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaylistQueryValueEntry.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaylistQueryValueEntry.cs
@@ -43,14 +43,14 @@ namespace Banshee.Query.Gui
 {
     public class PlaylistQueryValueEntry : QueryValueEntry
     {
-        protected ComboBox combo;
+        protected ComboBoxText combo;
         protected PlaylistQueryValue query_value;
         protected Dictionary<int, int> playlist_id_combo_map = new Dictionary<int, int> ();
         protected Dictionary<int, int> combo_playlist_id_map = new Dictionary<int, int> ();
 
         public PlaylistQueryValueEntry () : base ()
         {
-            combo = ComboBox.NewText();
+            combo = new ComboBoxText ();
             combo.WidthRequest = DefaultWidth;
 
             int count = 0;
diff --git a/src/Core/Banshee.ThickClient/Banshee.Query.Gui/SmartPlaylistQueryValueEntry.cs b/src/Core/Banshee.ThickClient/Banshee.Query.Gui/SmartPlaylistQueryValueEntry.cs
index 86e7493..f37ba7c 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Query.Gui/SmartPlaylistQueryValueEntry.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Query.Gui/SmartPlaylistQueryValueEntry.cs
@@ -44,14 +44,14 @@ namespace Banshee.Query.Gui
 {
     public class SmartPlaylistQueryValueEntry : QueryValueEntry
     {
-        protected ComboBox combo;
+        protected ComboBoxText combo;
         protected SmartPlaylistQueryValue query_value;
         protected Dictionary<int, int> playlist_id_combo_map = new Dictionary<int, int> ();
         protected Dictionary<int, int> combo_playlist_id_map = new Dictionary<int, int> ();
 
         public SmartPlaylistQueryValueEntry () : base ()
         {
-            combo = ComboBox.NewText();
+            combo = new ComboBoxText ();
             combo.WidthRequest = DefaultWidth;
 
             int count = 0;
diff --git a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs
index a91d056..4915dbc 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs
@@ -319,7 +319,7 @@ namespace Banshee.Sources.Gui
             return true;
         }
 
-        protected override bool OnExposeEvent (Gdk.EventExpose evnt)
+        protected override bool OnDrawn (Cairo.Context cr)
         {
             if (need_resort) {
                 need_resort = false;
@@ -338,18 +338,12 @@ namespace Banshee.Sources.Gui
                 QueueDraw ();
             }
 
-            try {
-                cr = Gdk.CairoHelper.Create (evnt.Window);
-                base.OnExposeEvent (evnt);
-                if (Hyena.PlatformDetection.IsMeeGo) {
-                    theme.DrawFrameBorder (cr, new Gdk.Rectangle (0, 0,
-                        Allocation.Width, Allocation.Height));
-                }
-                return true;
-            } finally {
-                CairoExtensions.DisposeContext (cr);
-                cr = null;
+            base.OnDrawn (cr);
+            if (Hyena.PlatformDetection.IsMeeGo) {
+                theme.DrawFrameBorder (cr, new Gdk.Rectangle (0, 0,
+                    Allocation.Width, Allocation.Height));
             }
+            return true;
         }
 
         private bool IncrementPathForKeyPress (Gdk.EventKey press, TreePath path)
diff --git a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs
index a5a9a31..82eb91e 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs
@@ -63,7 +63,6 @@ namespace Banshee.Sources.Gui
         private bool new_playlist_visible = false;
 
         private Source final_drag_source = null;
-        private uint final_drag_start_time = 0;
 
         private void ConfigureDragAndDrop ()
         {
@@ -181,7 +180,6 @@ namespace Banshee.Sources.Gui
                 final_drag_source = store.GetSource (path);
             }
 
-            final_drag_start_time = context.StartTime;
             HideNewPlaylistRow ();
             SetDragDestRow (null, TreeViewDropPosition.Before);
         }
@@ -203,7 +201,7 @@ namespace Banshee.Sources.Gui
             Gtk.SelectionData data, uint info, uint time)
         {
             try {
-                if (final_drag_start_time != context.StartTime || final_drag_source == null) {
+                if (final_drag_source == null) {
                     Gtk.Drag.Finish (context, false, false, time);
                     return;
                 }
@@ -255,7 +253,7 @@ namespace Banshee.Sources.Gui
             switch ((DragDropTargetType)info) {
                 case DragDropTargetType.Source:
                     new DragDropList<Source> (ServiceManager.SourceManager.ActiveSource,
-                        selectionData, context.Targets[0]);
+                        selectionData, context.ListTargets ()[0]);
                     break;
                 default:
                     return;
diff --git a/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDialog.cs b/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDialog.cs
index d439faa..bf55589 100644
--- a/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDialog.cs
+++ b/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDialog.cs
@@ -54,7 +54,7 @@ namespace Banshee.Dap
             // Translators: {0} is the name assigned to a Digital Audio Player by its owner
             String.Format(Catalog.GetString("{0} Properties"), source.Name),
             null,
-            DialogFlags.Modal | DialogFlags.NoSeparator,
+            DialogFlags.Modal,
             Stock.Close,
             ResponseType.Close)
         {
@@ -126,7 +126,7 @@ namespace Banshee.Dap
             Resizable = false;
             iconbox.PackStart(box, true, true, 0);
             iconbox.ShowAll();
-            VBox.Add(iconbox);
+            ContentArea.Add(iconbox);
         }
 
         public void RunDialog ()
diff --git a/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs b/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs
index 039f432..2925977 100644
--- a/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs
+++ b/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs
@@ -78,19 +78,13 @@ namespace Banshee.Dap.Gui
             theme = new GtkTheme (this);
         }
 
-        protected override bool OnExposeEvent (Gdk.EventExpose evnt)
+        protected override bool OnDrawn (Cairo.Context cr)
         {
-            Cairo.Context cr = Gdk.CairoHelper.Create (evnt.Window);
-
-            try {
-                DrawFrame (cr, evnt.Area);
-                return base.OnExposeEvent (evnt);
-            } finally {
-                CairoExtensions.DisposeContext (cr);
-            }
+            DrawFrame (cr);
+            return base.OnDrawn (cr);
         }
 
-        private void DrawFrame (Cairo.Context cr, Gdk.Rectangle clip)
+        private void DrawFrame (Cairo.Context cr)
         {
             Gdk.Rectangle rect = new Gdk.Rectangle (Allocation.X, Allocation.Y,
                 Allocation.Width, Allocation.Height);
diff --git a/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookLibrarySource.cs b/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookLibrarySource.cs
index 0868504..110a778 100644
--- a/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookLibrarySource.cs
+++ b/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookLibrarySource.cs
@@ -111,11 +111,11 @@ namespace Banshee.Audiobook
             var title_label = new Gtk.Label () { Markup = String.Format ("<b>{0}</b>", GLib.Markup.EscapeText (this.Name)) };
             var b = new Gtk.Button (title_label) { Relief = Gtk.ReliefStyle.None };
             b.Clicked += delegate { SwitchToGridView (); };
-            title_switcher.PackStart (b);
+            title_switcher.PackStart (b, true, true, 0);
 
             title_switcher.ShowAll ();
             book_label = new Gtk.Label () { Visible = false };
-            title_switcher.PackStart (book_label);
+            title_switcher.PackStart (book_label, true, true, 0);
             Properties.Set<Gtk.Widget> ("Nereid.SourceContents.TitleWidget", title_switcher);
 
             TracksAdded += (o, a) => {
diff --git a/src/Extensions/Banshee.Daap/Banshee.Daap/DaapLoginDialog.cs b/src/Extensions/Banshee.Daap/Banshee.Daap/DaapLoginDialog.cs
index 87e7fd6..9e0de6e 100644
--- a/src/Extensions/Banshee.Daap/Banshee.Daap/DaapLoginDialog.cs
+++ b/src/Extensions/Banshee.Daap/Banshee.Daap/DaapLoginDialog.cs
@@ -46,7 +46,7 @@ namespace Banshee.Daap
         public DaapLoginDialog(string shareName, bool showUsername) :  base(
             Catalog.GetString("Login to Music Share"),
             null,
-            DialogFlags.Modal | DialogFlags.NoSeparator,
+            DialogFlags.Modal,
             Stock.Cancel,
             ResponseType.Close)
         {
@@ -61,7 +61,7 @@ namespace Banshee.Daap
         private void BuildWindow()
         {
             BorderWidth = 5;
-            VBox.Spacing = 12;
+            ContentArea.Spacing = 12;
             ActionArea.Layout = Gtk.ButtonBoxStyle.End;
 
             HBox box = new HBox();
@@ -124,7 +124,7 @@ namespace Banshee.Daap
             AddButton(Catalog.GetString("Login"), ResponseType.Ok, true);
 
             box.ShowAll();
-            VBox.Add(box);
+            ContentArea.Add(box);
         }
 
         private void AddButton(string stock_id, Gtk.ResponseType response, bool is_default)
diff --git a/src/Extensions/Banshee.Daap/Banshee.Daap/OpenRemoteServer.cs b/src/Extensions/Banshee.Daap/Banshee.Daap/OpenRemoteServer.cs
index c78644a..5975134 100644
--- a/src/Extensions/Banshee.Daap/Banshee.Daap/OpenRemoteServer.cs
+++ b/src/Extensions/Banshee.Daap/Banshee.Daap/OpenRemoteServer.cs
@@ -39,7 +39,7 @@ namespace Banshee.Daap
 {
     public class OpenRemoteServer : BansheeDialog
     {
-        private ComboBoxEntry address_entry;
+        private ComboBoxText address_entry;
         private SpinButton port_entry;
         private List<string> history = new List<string>();
 
@@ -55,7 +55,7 @@ namespace Banshee.Daap
             box.Spacing = 12;
             VBox.PackStart (box, false, false, 0);
 
-            address_entry = ComboBoxEntry.NewText ();
+            address_entry = ComboBoxText.NewWithEntry ();
             address_entry.Entry.Activated += OnEntryActivated;
             address_entry.Entry.WidthChars = 30;
             address_entry.Show ();
diff --git a/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/DetailsView.cs b/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/DetailsView.cs
index 59fdd27..a31df91 100644
--- a/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/DetailsView.cs
+++ b/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/DetailsView.cs
@@ -483,7 +483,7 @@ namespace Banshee.InternetArchive
             file_list.ColumnController = file_columns;
             file_list.SetModel (files_model);
 
-            var format_list = ComboBox.NewText ();
+            var format_list = new ComboBoxText ();
             format_list.RowSeparatorFunc = (model, iter) => {
                 return (string)model.GetValue (iter, 0) == "---";
             };
diff --git a/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HeaderFilters.cs b/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HeaderFilters.cs
index cb99ade..7048370 100644
--- a/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HeaderFilters.cs
+++ b/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HeaderFilters.cs
@@ -41,7 +41,8 @@ namespace Banshee.InternetArchive
     {
         private SearchSource source;
 
-        private ComboBox sort_combo, media_type_combo;
+        private ComboBoxText sort_combo;
+        private ComboBox media_type_combo;
         private TreeStore media_type_store;
         private Banshee.Widgets.SearchEntry search_entry;
         private Button search_button;
@@ -154,7 +155,7 @@ namespace Banshee.InternetArchive
 
         private void BuildSortCombo ()
         {
-            var combo = sort_combo = ComboBox.NewText ();
+            var combo = sort_combo = new ComboBoxText ();
 
             foreach (var sort in sorts) {
                 combo.AppendText (sort.Name);
diff --git a/src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/StationEditor.cs b/src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/StationEditor.cs
index 137d5ed..dedb2f5 100644
--- a/src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/StationEditor.cs
+++ b/src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/StationEditor.cs
@@ -44,7 +44,7 @@ namespace Banshee.InternetRadio
         private Entry description_entry;
         private Entry stream_entry;
         private Entry creator_entry;
-        private ComboBoxEntry genre_entry;
+        private ComboBoxText genre_entry;
         private RatingEntry rating_entry;
         private Alignment error_container;
         private Label error;
@@ -68,11 +68,10 @@ namespace Banshee.InternetRadio
                 : Catalog.GetString ("Edit radio station");
 
             BorderWidth = 6;
-            HasSeparator = false;
             DefaultResponse = ResponseType.Ok;
             Modal = true;
 
-            VBox.Spacing = 6;
+            ContentArea.Spacing = 6;
 
             HBox split_box = new HBox ();
             split_box.Spacing = 12;
@@ -103,7 +102,7 @@ namespace Banshee.InternetRadio
             table.RowSpacing = 6;
             table.ColumnSpacing = 6;
 
-            genre_entry = ComboBoxEntry.NewText ();
+            genre_entry = ComboBoxText.NewWithEntry ();
 
             foreach (string genre in ServiceManager.DbConnection.QueryEnumerable<string> ("SELECT DISTINCT Genre FROM CoreTracks ORDER BY Genre")) {
                 if (!String.IsNullOrEmpty (genre)) {
@@ -138,7 +137,7 @@ namespace Banshee.InternetRadio
             split_box.PackStart (main_box, true, true, 0);
             split_box.Show ();
 
-            VBox.PackStart (split_box, true, true, 0);
+            ContentArea.PackStart (split_box, true, true, 0);
 
             Button cancel_button = new Button (Stock.Cancel);
             cancel_button.CanDefault = false;
diff --git a/src/Extensions/Banshee.LastfmStreaming/Banshee.LastfmStreaming/StationEditor.cs b/src/Extensions/Banshee.LastfmStreaming/Banshee.LastfmStreaming/StationEditor.cs
index 31894d4..d0b535a 100644
--- a/src/Extensions/Banshee.LastfmStreaming/Banshee.LastfmStreaming/StationEditor.cs
+++ b/src/Extensions/Banshee.LastfmStreaming/Banshee.LastfmStreaming/StationEditor.cs
@@ -48,7 +48,7 @@ namespace Banshee.LastfmStreaming.Radio
         private LastfmSource lastfm;
         private StationSource source;
 
-        private Gtk.ComboBox type_combo;
+        private Gtk.ComboBoxText type_combo;
         private Gtk.Entry arg_entry;
         private Gtk.Label arg_label;
 
@@ -96,7 +96,7 @@ namespace Banshee.LastfmStreaming.Radio
                     Xalign = 0.0f
                 }, 0, 1, 1, 2, AttachOptions.Fill, AttachOptions.Shrink, 0, 0);
 
-            table.Attach (type_combo = ComboBox.NewText (),
+            table.Attach (type_combo = new ComboBoxText (),
                 1, 2, 0, 1, AttachOptions.Fill | AttachOptions.Expand, AttachOptions.Shrink, 0, 0);
 
             table.Attach (arg_entry = new Entry (),
@@ -106,7 +106,7 @@ namespace Banshee.LastfmStreaming.Radio
             VBox.Spacing = 12;
             VBox.ShowAll ();
 
-            type_combo.RemoveText (0);
+            type_combo.Remove (0);
             int active_type = 0;
             int i = 0;
             foreach (StationType type in StationType.Types) {
diff --git a/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/ItunesPlayerImportDialogs.cs b/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/ItunesPlayerImportDialogs.cs
index 1aaf514..18dece8 100644
--- a/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/ItunesPlayerImportDialogs.cs
+++ b/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/ItunesPlayerImportDialogs.cs
@@ -67,8 +67,8 @@ namespace Banshee.PlayerMigration
 
             Title = Catalog.GetString ("iTunes Importer");
             Resizable = false;
-            VBox.BorderWidth = 8;
-            VBox.Spacing = 8;
+            ContentArea.BorderWidth = 8;
+            ContentArea.Spacing = 8;
 
             Button cancel_button = new Button (Stock.Cancel);
             cancel_button.Clicked += delegate { Respond (ResponseType.Cancel); };
@@ -99,7 +99,7 @@ namespace Banshee.PlayerMigration
 
             PackCheckboxes (vbox);
 
-            VBox.ShowAll ();
+            ContentArea.ShowAll ();
         }
 
         protected virtual void PackCheckboxes (VBox vbox)
@@ -123,12 +123,12 @@ namespace Banshee.PlayerMigration
                 hbox.PackStart (label1, false, false, 0);
                 Button browse_button = new Button (hbox);
                 browse_button.Clicked += OnBrowseButtonClicked;
-                VBox.PackStart (browse_button, false, false, 0);
+                ContentArea.PackStart (browse_button, false, false, 0);
 
                 ratings.Sensitive = stats.Sensitive = playlists.Sensitive = import_button.Sensitive = false;
             }
 
-            VBox.PackStart (vbox, false, false, 0);
+            ContentArea.PackStart (vbox, false, false, 0);
         }
 
         private void OnBrowseButtonClicked (object o, EventArgs args)
@@ -207,11 +207,11 @@ namespace Banshee.PlayerMigration
             chooser.ShowAll ();
             vbox.PackStart (chooser, true, true, 0);
 
-            VBox.PackStart (vbox, true, true, 0);
+            ContentArea.PackStart (vbox, true, true, 0);
 
             DefaultResponse = ResponseType.Cancel;
 
-            VBox.ShowAll ();
+            ContentArea.ShowAll ();
         }
     }
 }
diff --git a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcast.cs b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcast.cs
index f81266f..9ee1828 100644
--- a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcast.cs
+++ b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcast.cs
@@ -60,7 +60,7 @@ namespace Banshee.Podcasting.Gui
             artwork_manager = ServiceManager.Get<ArtworkManager> ();
         }
 
-        public override void Render (CellContext context, StateType state, double cellWidth, double cellHeight)
+        public override void Render (CellContext context, StateFlags state, double cellWidth, double cellHeight)
         {
             if (BoundObject == null) {
                 return;
@@ -90,7 +90,10 @@ namespace Banshee.Podcasting.Gui
                 image_render_size, image_render_size, !is_default, context.Theme.Context.Radius);
 
             int fl_width = 0, fl_height = 0, sl_width = 0, sl_height = 0;
-            Cairo.Color text_color = context.Theme.Colors.GetWidgetColor (GtkColorClass.Text, state);
+            context.Widget.StyleContext.Save ();
+            context.Widget.StyleContext.AddClass ("entry");
+            Cairo.Color text_color = CairoExtensions.GdkRGBAToCairoColor (context.Widget.StyleContext.GetColor (state));
+            context.Widget.StyleContext.Restore ();
             text_color.A = 0.75;
 
             Pango.Layout layout = context.Layout;
diff --git a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcastStatusIndicator.cs b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcastStatusIndicator.cs
index 77c1832..587cb49 100644
--- a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcastStatusIndicator.cs
+++ b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcastStatusIndicator.cs
@@ -85,7 +85,7 @@ namespace Banshee.Podcasting.Gui
             return i;
         }
 
-        public override void Render (CellContext context, StateType state, double cellWidth, double cellHeight)
+        public override void Render (CellContext context, StateFlags state, double cellWidth, double cellHeight)
         {
             PodcastTrackInfo podcast = PodcastTrackInfo.From (BoundTrack);
             if (podcast != null) {
diff --git a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastFeedPropertiesDialog.cs b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastFeedPropertiesDialog.cs
index f16345d..f5bac17 100644
--- a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastFeedPropertiesDialog.cs
+++ b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastFeedPropertiesDialog.cs
@@ -54,8 +54,6 @@ namespace Banshee.Podcasting.Gui
 
         CheckButton subscribed_check, download_check, archive_check;
 
-        private VBox main_box;
-
         public PodcastFeedPropertiesDialog (PodcastSource source, Feed feed)
         {
             this.source = source;
@@ -63,7 +61,6 @@ namespace Banshee.Podcasting.Gui
             fake_track.Feed = feed;
 
             Title = feed.Title;
-            HasSeparator = false;
             BorderWidth = 12;
             WidthRequest = 525;
             //IconThemeUtils.SetWindowIcon (this);
@@ -91,8 +88,7 @@ namespace Banshee.Podcasting.Gui
 
         private void BuildWindow()
         {
-            VBox.Spacing = 12;
-            main_box = VBox;
+            ContentArea.Spacing = 12;
 
             var save_button = new Button ("gtk-save") { CanDefault = true };
 
@@ -162,7 +158,7 @@ namespace Banshee.Podcasting.Gui
             });
             header_box.PackStart (table, true, true, 0);
 
-            main_box.PackStart (header_box, false, false, 0);
+            ContentArea.PackStart (header_box, false, false, 0);
 
             Add (Catalog.GetString ("Subscription Options"), subscribed_check, download_check, archive_check);
 
@@ -204,7 +200,7 @@ namespace Banshee.Podcasting.Gui
                 vbox.PackStart (align, filled, filled, 0);
             }
 
-            main_box.PackStart (vbox, filled, filled, 0);
+            ContentArea.PackStart (vbox, filled, filled, 0);
         }
 
         private void OnResponse (object sender, ResponseArgs args)
diff --git a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastPropertiesDialog.cs b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastPropertiesDialog.cs
index 823b7be..191f0e0 100644
--- a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastPropertiesDialog.cs
+++ b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastPropertiesDialog.cs
@@ -60,8 +60,7 @@ namespace Banshee.Podcasting.Gui
         private void BuildWindow()
         {
             BorderWidth = 6;
-            VBox.Spacing = 12;
-            HasSeparator = false;
+            ContentArea.Spacing = 12;
 
             HBox content_box = new HBox();
             content_box.BorderWidth = 6;
@@ -179,7 +178,7 @@ namespace Banshee.Podcasting.Gui
             ActionArea.Layout = ButtonBoxStyle.End;
 
             content_box.ShowAll ();
-            VBox.Add (content_box);
+            ContentArea.Add (content_box);
 
             Response += OnResponse;
         }
diff --git a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastSubscribeDialog.cs b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastSubscribeDialog.cs
index fe50871..a1d72f7 100644
--- a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastSubscribeDialog.cs
+++ b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastSubscribeDialog.cs
@@ -61,7 +61,7 @@ namespace Banshee.Podcasting.Gui
             get { return archive_check.Active ? 1 : 0; }
         }
 
-        public PodcastSubscribeDialog () : base (Catalog.GetString("Subscribe"), null, DialogFlags.Modal | DialogFlags.NoSeparator)
+        public PodcastSubscribeDialog () : base (Catalog.GetString("Subscribe"), null, DialogFlags.Modal)
         {
             accelGroup = new Gtk.AccelGroup();
             AddAccelGroup (accelGroup);
@@ -73,7 +73,7 @@ namespace Banshee.Podcasting.Gui
             DefaultWidth = 475;
 
             BorderWidth = 6;
-            VBox.Spacing = 12;
+            ContentArea.Spacing = 12;
             ActionArea.Layout = Gtk.ButtonBoxStyle.End;
 
             HBox box = new HBox();
@@ -147,7 +147,7 @@ namespace Banshee.Podcasting.Gui
             AddButton (Catalog.GetString ("Subscribe"), ResponseType.Ok, true);
 
             box.ShowAll ();
-            VBox.Add (box);
+            ContentArea.Add (box);
         }
 
         private void AddButton (string stock_id, Gtk.ResponseType response, bool is_default)



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