1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
From: Didier Roche <didrocks@ubuntu.com>
Date: Mon, 5 Jul 2010 13:15:27 +0200
Subject: Enable switching between the 2 interfaces
This enables switching between the 2 interfaces, even when the classic interface
is started.
---
.../Resources/core-ui-actions-layout.xml | 1 +
.../Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs | 9 +++++
.../Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs | 42 ++++++++++++++++++++--
3 files changed, 49 insertions(+), 3 deletions(-)
diff --git a/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml b/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
index 290d330..ac8502c 100644
--- a/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
+++ b/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
@@ -5,6 +5,7 @@
<placeholder name="NextArrowButton"/>
<placeholder name="SeekSlider"/>
<placeholder name="TrackInfoDisplay"/>
+ <placeholder name="ExtensionToolBarPlaceHolder"/>
<placeholder name="SourceActions">
<toolitem name="RefreshSmartPlaylist" action="RefreshSmartPlaylistAction"/>
</placeholder>
diff --git a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs
index 6fad319..9f16ba7 100644
--- a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs
+++ b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs
@@ -105,9 +105,18 @@ namespace Banshee.MeeGo
public void Hide ()
{
+ window_panel.Hide ();
if (embedded_panel != null) {
embedded_panel.Hide ();
}
}
+
+ public void Show ()
+ {
+ window_panel.Show ();
+ if (embedded_panel != null) {
+ embedded_panel.Show ();
+ }
+ }
}
}
diff --git a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs
index 5aae94e..d615b4e 100644
--- a/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs
+++ b/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs
@@ -26,6 +26,7 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+using Mono.Unix;
using System;
using Gtk;
using MeeGo.Panel;
@@ -38,6 +39,7 @@ using Banshee.Sources;
using Banshee.ServiceStack;
using Banshee.MediaEngine;
using Banshee.Gui;
+using Banshee.Gui.Widgets;
namespace Banshee.MeeGo
{
@@ -84,6 +86,7 @@ namespace Banshee.MeeGo
}
Initialize ();
+ AddSwitchToPrimaryInterface ();
ServiceManager.ServiceStarted -= OnServiceStarted;
@@ -100,12 +103,12 @@ namespace Banshee.MeeGo
panel = MeeGoPanel.Instance;
if (panel == null) {
- Log.Warning ("Netbook extension initialized without a panel");
+ Log.Information ("Netbook extension initialized with hidden panel");
+ //AddSwitchToPrimaryInterface ();
return;
- } else {
- elements_service.PrimaryWindow.Hide ();
}
+ elements_service.PrimaryWindow.Hide ();
panel.BuildContents ();
elements_service.PrimaryWindowClose = () => {
@@ -115,8 +118,30 @@ namespace Banshee.MeeGo
}
+ private void AddSwitchToPrimaryInterface ()
+ {
+ // Add switcher to primary interface:
+ var app_button = new Button (new Image () {
+ IconSize = (int)IconSize.LargeToolbar,
+ IconName = "media-player-banshee"
+ }) {
+ TooltipText = Catalog.GetString ("Show the Netbook interface")
+ };
+ app_button.Clicked += (o, e) => {
+ //ServiceManager.SourceManager.SetActiveSource (ServiceManager.SourceManager.MusicLibrary);
+ ServiceManager.Get<MeeGoService> ().PresentNetbookInterface ();
+ };
+ Toolbar header_toolbar;
+ InterfaceActionService action_service;
+ action_service = ServiceManager.Get<InterfaceActionService> ();
+ header_toolbar = (Toolbar)action_service.UIManager.GetWidget ("/HeaderToolbar");
+ app_button.ShowAll ();
+ action_service.PopulateToolbarPlaceholder (header_toolbar, "/HeaderToolbar/ExtensionToolBarPlaceHolder", app_button);
+ }
+
public void PresentPrimaryInterface ()
{
+ Log.Information ("Switch to traditional interface");
elements_service.PrimaryWindow.Maximize ();
elements_service.PrimaryWindow.Present ();
if (panel != null) {
@@ -124,6 +149,17 @@ namespace Banshee.MeeGo
}
}
+ public void PresentNetbookInterface ()
+ {
+ Log.Information ("Switch to Netbook interface");
+ if (panel == null) {
+ panel = new MeeGoPanel ();
+ Initialize ();
+ }
+ panel.Show ();
+ elements_service.PrimaryWindow.Hide ();
+ }
+
public void Dispose ()
{
if (panel != null) {
|