[banshee] [Banshee.Moblin] Stubbed out a Moblin extension
- From: Aaron Bockover <abock src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [banshee] [Banshee.Moblin] Stubbed out a Moblin extension
- Date: Thu, 8 Oct 2009 22:16:39 +0000 (UTC)
commit c63299ed08e86b09197072c9ec97190602a5022e
Author: Aaron Bockover <abockover novell com>
Date: Thu Oct 8 18:20:34 2009 -0400
[Banshee.Moblin] Stubbed out a Moblin extension
Nothing really functional here yet. Moving things over from
Cubano. First goal is to write the media panel that integrates
into the main Moblin toolbar. Pass --enable-moblin to see
stuff, but there's really nothing to see yet. Stubs.
build/build.environment.mk | 1 +
build/m4/banshee/moblin.m4 | 11 ++
configure.ac | 5 +
.../Banshee.Moblin/Banshee.Moblin.addin.xml | 23 ++++
.../Banshee.Moblin/Banshee.Moblin.csproj | 96 ++++++++++++++++
.../Banshee.Moblin/MediaPanelContents.cs | 38 +++++++
.../Banshee.Moblin/Banshee.Moblin/MoblinService.cs | 116 ++++++++++++++++++++
src/Extensions/Banshee.Moblin/Makefile.am | 21 ++++
.../Banshee.Moblin/Mutter/PanelClient.cs | 106 ++++++++++++++++++
src/Extensions/Banshee.Moblin/Mutter/PanelGtk.cs | 65 +++++++++++
src/Extensions/Makefile.am | 1 +
11 files changed, 483 insertions(+), 0 deletions(-)
---
diff --git a/build/build.environment.mk b/build/build.environment.mk
index 6bce1c1..76df206 100644
--- a/build/build.environment.mk
+++ b/build/build.environment.mk
@@ -125,6 +125,7 @@ REF_EXTENSION_DAAP = $(LINK_BANSHEE_THICKCLIENT_DEPS) $(LINK_ICSHARP_ZIP_LIB) $(
REF_EXTENSION_FILESYSTEMQUEUE = $(LINK_BANSHEE_THICKCLIENT_DEPS)
REF_EXTENSION_INTERNETRADIO = $(LINK_BANSHEE_THICKCLIENT_DEPS)
REF_EXTENSION_MINIMODE = $(LINK_BANSHEE_THICKCLIENT_DEPS)
+REF_EXTENSION_MOBLIN = $(LINK_BANSHEE_THICKCLIENT_DEPS)
REF_EXTENSION_MULTIMEDIAKEYS = $(LINK_BANSHEE_SERVICES_DEPS)
REF_EXTENSION_NOTIFICATIONAREA = $(LINK_BANSHEE_THICKCLIENT_DEPS)
REF_EXTENSION_PLAYER_MIGRATION = $(LINK_BANSHEE_SERVICES_DEPS)
diff --git a/build/m4/banshee/moblin.m4 b/build/m4/banshee/moblin.m4
new file mode 100644
index 0000000..c6ee398
--- /dev/null
+++ b/build/m4/banshee/moblin.m4
@@ -0,0 +1,11 @@
+AC_DEFUN([BANSHEE_CHECK_MOBLIN],
+[
+ AC_ARG_ENABLE(moblin, AC_HELP_STRING([--enable-moblin], [Enable Moblin integration]), , enable_moblin="no")
+
+ if test "x$enable_moblin" = "xyes"; then
+ AM_CONDITIONAL(HAVE_MOBLIN, true)
+ else
+ AM_CONDITIONAL(HAVE_MOBLIN, false)
+ fi
+])
+
diff --git a/configure.ac b/configure.ac
index 7458282..7c291a2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -141,6 +141,9 @@ BANSHEE_CHECK_REMOTE_AUDIO
dnl MonoTorrent support (optional)
BANSHEE_CHECK_TORRENT
+dnl Moblin integration (optional)
+BANSHEE_CHECK_MOBLIN
+
dnl i18n
SHAMROCK_CONFIGURE_I18N($PACKAGE)
@@ -275,6 +278,7 @@ src/Extensions/Banshee.FileSystemQueue/Makefile
src/Extensions/Banshee.InternetRadio/Makefile
src/Extensions/Banshee.Lastfm/Makefile
src/Extensions/Banshee.MiniMode/Makefile
+src/Extensions/Banshee.Moblin/Makefile
src/Extensions/Banshee.MultimediaKeys/Makefile
src/Extensions/Banshee.NotificationArea/Makefile
src/Extensions/Banshee.NowPlaying/Makefile
@@ -321,6 +325,7 @@ ${PACKAGE}-${VERSION}
DAAP Support: ${enable_daap}
Podcast Support: ${enable_podcast}
Boo Scripting: ${enable_boo}
+ Moblin Support: ${enable_moblin}
Build/Development:
Unit Tests: ${do_tests} (requires nunit >= ${NUNIT_REQUIRED})
diff --git a/src/Extensions/Banshee.Moblin/Banshee.Moblin.addin.xml b/src/Extensions/Banshee.Moblin/Banshee.Moblin.addin.xml
new file mode 100644
index 0000000..57f48d3
--- /dev/null
+++ b/src/Extensions/Banshee.Moblin/Banshee.Moblin.addin.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Addin
+ id="Banshee.Moblin"
+ version="1.0"
+ compatVersion="1.0"
+ copyright="© 2009 Novell Inc. Licensed under the MIT X11 license."
+ name="Moblin Support"
+ category="User Interface"
+ description="Provides Moblin integration, including a custom media panel."
+ author="Aaron Bockover"
+ url="http://banshee-project.org/"
+ defaultEnabled="true">
+
+ <Dependencies>
+ <Addin id="Banshee.Services" version="1.0"/>
+ <Addin id="Banshee.ThickClient" version="1.0"/>
+ </Dependencies>
+
+ <Extension path="/Banshee/ServiceManager/Service">
+ <Service class="Banshee.Moblin.MoblinService"/>
+ </Extension>
+
+</Addin>
diff --git a/src/Extensions/Banshee.Moblin/Banshee.Moblin.csproj b/src/Extensions/Banshee.Moblin/Banshee.Moblin.csproj
new file mode 100644
index 0000000..1fda05d
--- /dev/null
+++ b/src/Extensions/Banshee.Moblin/Banshee.Moblin.csproj
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.50727</ProductVersion>
+ <ProjectGuid>{74B2E4CC-2701-4C8B-A11D-6E4443F4B21B}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <UseParentDirectoryAsNamespace>true</UseParentDirectoryAsNamespace>
+ <AssemblyName>Banshee.Moblin</AssemblyName>
+ <SchemaVersion>2.0</SchemaVersion>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <SourceAnalysisOverrideSettingsFile>C:\Documents and Settings\Administrator\Application Data\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis</SourceAnalysisOverrideSettingsFile>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\..\bin</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
+ <RootNamespace>Banshee.Moblin</RootNamespace>
+ <AssemblyOriginatorKeyFile>.</AssemblyOriginatorKeyFile>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <CustomCommands>
+ <CustomCommands>
+ <Command type="Build" command="make" workingdir="${SolutionDir}" />
+ <Command type="Execute" command="make run" workingdir="${SolutionDir}" />
+ </CustomCommands>
+ </CustomCommands>
+ <OutputPath>bin\Debug</OutputPath>
+ <WarningLevel>4</WarningLevel>
+ <Optimize>false</Optimize>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Windows|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x86</PlatformTarget>
+ <OutputPath>bin\Windows</OutputPath>
+ <WarningLevel>4</WarningLevel>
+ <Optimize>false</Optimize>
+ </PropertyGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\Core\Banshee.Core\Banshee.Core.csproj">
+ <Project>{2ADB831A-A050-47D0-B6B9-9C19D60233BB}</Project>
+ <Name>Banshee.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Core\Banshee.Services\Banshee.Services.csproj">
+ <Project>{B28354F0-BA87-44E8-989F-B864A3C7C09F}</Project>
+ <Name>Banshee.Services</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Core\Banshee.ThickClient\Banshee.ThickClient.csproj">
+ <Project>{AC839523-7BDF-4AB6-8115-E17921B96EC6}</Project>
+ <Name>Banshee.ThickClient</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Libraries\Hyena\Hyena.csproj">
+ <Project>{95374549-9553-4C1E-9D89-667755F90E12}</Project>
+ <Name>Hyena</Name>
+ </ProjectReference>
+ <Reference Include="glib-sharp" />
+ <Reference Include="Mono.Posix" />
+ <Reference Include="MonoPosixHelper" />
+ <Reference Include="NDesk.DBus" />
+ <Reference Include="NDesk.DBus.GLib" />
+ <Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ </ItemGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="Banshee.Moblin.addin.xml">
+ <LogicalName>Banshee.Moblin.addin.xml</LogicalName>
+ </EmbeddedResource>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <ProjectExtensions>
+ <MonoDevelop>
+ <Properties>
+ <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="true" RelativeMakefileName="./Makefile.am">
+ <BuildFilesVar Sync="true" Name="SOURCES" />
+ <DeployFilesVar />
+ <ResourcesVar Sync="true" Name="RESOURCES" />
+ <OthersVar />
+ <GacRefVar />
+ <AsmRefVar />
+ <ProjectRefVar />
+ </MonoDevelop.Autotools.MakefileInfo>
+ </Properties>
+ </MonoDevelop>
+ </ProjectExtensions>
+ <ItemGroup>
+ <Compile Include="Banshee.Moblin\MoblinService.cs" />
+ <Compile Include="Banshee.Moblin\MediaPanelContents.cs" />
+ <Compile Include="Mutter\PanelClient.cs" />
+ <Compile Include="Mutter\PanelGtk.cs" />
+ </ItemGroup>
+</Project>
diff --git a/src/Extensions/Banshee.Moblin/Banshee.Moblin/MediaPanelContents.cs b/src/Extensions/Banshee.Moblin/Banshee.Moblin/MediaPanelContents.cs
new file mode 100644
index 0000000..5791a75
--- /dev/null
+++ b/src/Extensions/Banshee.Moblin/Banshee.Moblin/MediaPanelContents.cs
@@ -0,0 +1,38 @@
+//
+// MediaPanelContents.cs
+//
+// Author:
+// Aaron Bockover <abockover novell com>
+//
+// Copyright 2009 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using Gtk;
+
+namespace Banshee.Moblin
+{
+ public class MediaPanelContents : Table
+ {
+ public MediaPanelContents () : base (1, 1, false)
+ {
+ }
+ }
+}
diff --git a/src/Extensions/Banshee.Moblin/Banshee.Moblin/MoblinService.cs b/src/Extensions/Banshee.Moblin/Banshee.Moblin/MoblinService.cs
new file mode 100644
index 0000000..a8226bb
--- /dev/null
+++ b/src/Extensions/Banshee.Moblin/Banshee.Moblin/MoblinService.cs
@@ -0,0 +1,116 @@
+//
+// MoblinService.cs
+//
+// Authors:
+// Aaron Bockover <abockover novell com>
+//
+// Copyright 2009 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+using Banshee.ServiceStack;
+using Banshee.Gui;
+
+namespace Banshee.Moblin
+{
+ public class MoblinService : IExtensionService
+ {
+ private GtkElementsService elements_service;
+ private InterfaceActionService interface_action_service;
+
+ private Gtk.Widget media_panel_window;
+
+ public MoblinService ()
+ {
+ }
+
+ void IExtensionService.Initialize ()
+ {
+ elements_service = ServiceManager.Get<GtkElementsService> ();
+ interface_action_service = ServiceManager.Get<InterfaceActionService> ();
+
+ if (!ServiceStartup ()) {
+ ServiceManager.ServiceStarted += OnServiceStarted;
+ }
+ }
+
+ private void OnServiceStarted (ServiceStartedArgs args)
+ {
+ if (args.Service is Banshee.Gui.InterfaceActionService) {
+ interface_action_service = (InterfaceActionService)args.Service;
+ } else if (args.Service is GtkElementsService) {
+ elements_service = (GtkElementsService)args.Service;
+ }
+
+ ServiceStartup ();
+ }
+
+ private bool ServiceStartup ()
+ {
+ if (elements_service == null || interface_action_service == null) {
+ return false;
+ }
+
+ Initialize ();
+
+ ServiceManager.ServiceStarted -= OnServiceStarted;
+
+ return true;
+ }
+
+ private void Initialize ()
+ {
+ BuildPanel ();
+ }
+
+ public void Dispose ()
+ {
+ if (media_panel_window != null) {
+ media_panel_window.Hide ();
+ media_panel_window.Destroy ();
+ media_panel_window = null;
+ }
+
+ interface_action_service = null;
+ elements_service = null;
+ }
+
+#region Media Panel
+
+ private void BuildPanel ()
+ {
+ var window = new Gtk.Window ("Moblin Media Panel");
+ window.SetDefaultSize (990, 460);
+ window.WindowPosition = Gtk.WindowPosition.Center;
+ window.Add (new MediaPanelContents ());
+ window.ShowAll ();
+ media_panel_window = window;
+ }
+
+#endregion
+
+ string IService.ServiceName {
+ get { return "MoblinService"; }
+ }
+ }
+}
diff --git a/src/Extensions/Banshee.Moblin/Makefile.am b/src/Extensions/Banshee.Moblin/Makefile.am
new file mode 100644
index 0000000..e518198
--- /dev/null
+++ b/src/Extensions/Banshee.Moblin/Makefile.am
@@ -0,0 +1,21 @@
+ASSEMBLY = Banshee.Moblin
+TARGET = library
+LINK = $(REF_EXTENSION_MOBLIN)
+INSTALL_DIR = $(EXTENSIONS_INSTALL_DIR)
+
+SOURCES = \
+ Banshee.Moblin/MediaPanelContents.cs \
+ Banshee.Moblin/MoblinService.cs \
+ Mutter/PanelClient.cs \
+ Mutter/PanelGtk.cs
+
+RESOURCES = Banshee.Moblin.addin.xml
+
+if HAVE_MOBLIN
+include $(top_srcdir)/build/build.mk
+module_SCRIPTS += Banshee.Moblin.dll.config
+else
+EXTRA_DIST = $(SOURCES) $(RESOURCES)
+endif
+
+EXTRA_DIST += Banshee.Moblin.dll.config
diff --git a/src/Extensions/Banshee.Moblin/Mutter/PanelClient.cs b/src/Extensions/Banshee.Moblin/Mutter/PanelClient.cs
new file mode 100644
index 0000000..e6b4838
--- /dev/null
+++ b/src/Extensions/Banshee.Moblin/Mutter/PanelClient.cs
@@ -0,0 +1,106 @@
+//
+// PanelClient.cs
+//
+// Author:
+// Aaron Bockover <abockover novell com>
+//
+// Copyright 2009 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace Mutter
+{
+ public class PanelClient : GLib.Object
+ {
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern IntPtr mpl_panel_client_get_type ();
+
+ public static new GLib.GType GType {
+ get { return new GLib.GType (mpl_panel_client_get_type ()); }
+ }
+
+ protected PanelClient () : base (IntPtr.Zero)
+ {
+ CreateNativeObject (new string [0], new GLib.Value [0]);
+ }
+
+ public PanelClient (IntPtr raw) : base (raw)
+ {
+ }
+
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern void mpl_panel_client_request_show (IntPtr panel);
+
+ public void RequestShow ()
+ {
+ mpl_panel_client_request_show (Handle);
+ }
+
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern void mpl_panel_client_request_hide (IntPtr panel);
+
+ public void RequestHide ()
+ {
+ mpl_panel_client_request_hide (Handle);
+ }
+
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern void mpl_panel_client_request_focus (IntPtr panel);
+
+ public void RequestFocus ()
+ {
+ mpl_panel_client_request_focus (Handle);
+ }
+
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern void mpl_panel_client_set_height_request (IntPtr panel, uint height);
+
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern uint mpl_panel_client_get_height_request (IntPtr panel);
+
+ public uint HeightRequest {
+ get { return mpl_panel_client_get_height_request (Handle); }
+ set { mpl_panel_client_set_height_request (Handle, value); }
+ }
+
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern void mpl_panel_client_request_button_style (IntPtr panel, string style);
+
+ public string ButtonStyleRequest {
+ set { mpl_panel_client_request_button_style (Handle, value); }
+ }
+
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern void mpl_panel_client_request_tooltip (IntPtr panel, string tooltip);
+
+ public string TooltipRequest {
+ set { mpl_panel_client_request_tooltip (Handle, value); }
+ }
+
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern uint mpl_panel_client_get_xid (IntPtr panel);
+
+ public uint Xid {
+ get { return mpl_panel_client_get_xid (Handle); }
+ }
+ }
+}
diff --git a/src/Extensions/Banshee.Moblin/Mutter/PanelGtk.cs b/src/Extensions/Banshee.Moblin/Mutter/PanelGtk.cs
new file mode 100644
index 0000000..6e003ab
--- /dev/null
+++ b/src/Extensions/Banshee.Moblin/Mutter/PanelGtk.cs
@@ -0,0 +1,65 @@
+//
+// PanelGtk.cs
+//
+// Author:
+// Aaron Bockover <abockover novell com>
+//
+// Copyright 2009 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Runtime.InteropServices;
+
+using Gtk;
+
+namespace Mutter
+{
+ public class PanelGtk : PanelClient
+ {
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern IntPtr mpl_panel_gtk_get_type ();
+
+ public static new GLib.GType GType {
+ get { return new GLib.GType (mpl_panel_gtk_get_type ()); }
+ }
+
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern IntPtr mpl_panel_gtk_new (string name, string tooltip, string stylesheet,
+ string button_style, bool with_toolbar_service);
+
+ public PanelGtk (string name, string tooltip, string stylesheet,
+ string button_style, bool with_toolbar_service) : base (IntPtr.Zero)
+ {
+ Raw = mpl_panel_gtk_new (name, tooltip, stylesheet, button_style, with_toolbar_service);
+ }
+
+ public PanelGtk (IntPtr raw) : base (raw)
+ {
+ }
+
+ [DllImport ("libmoblin-panel-gtk")]
+ private static extern IntPtr mpl_panel_gtk_get_window (IntPtr panel);
+
+ // FIXME: can probably cache this
+ public Container Window {
+ get { return new Container (mpl_panel_gtk_get_window (Handle)); }
+ }
+ }
+}
diff --git a/src/Extensions/Makefile.am b/src/Extensions/Makefile.am
index caef9f9..c1792ac 100644
--- a/src/Extensions/Makefile.am
+++ b/src/Extensions/Makefile.am
@@ -9,6 +9,7 @@ SUBDIRS = \
Banshee.InternetRadio \
Banshee.Lastfm \
Banshee.MiniMode \
+ Banshee.Moblin \
Banshee.MultimediaKeys \
Banshee.NotificationArea \
Banshee.NowPlaying \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]