banshee r3798 - in trunk/banshee: . src/Backends/Banshee.Hal src/Clients/Nereid/Nereid src/Core/Banshee.ThickClient src/Core/Banshee.ThickClient/Banshee.Gui src/Core/Banshee.ThickClient/Banshee.Gui.Widgets src/Dap/Banshee.Dap.Mtp src/Extensions/Banshee.Daap src/Extensions/Banshee.NowPlaying src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying src/Libraries/Hyena.Gui/Hyena.Widgets



Author: abock
Date: Sat Apr 19 17:48:06 2008
New Revision: 3798
URL: http://svn.gnome.org/viewvc/banshee?rev=3798&view=rev

Log:
2008-04-19  Aaron Bockover  <abock gnome org>

    * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenControls.cs:
    First pass at adding fullscreen controls - it's by no means complete, and
    yes I know there are some bugs and missing items

    * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
    Show/hide the controls overlay window when necessary

    * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs:
    Started porting the overlay controls window from F-Spot

    * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs: Use F instead
    of F11 as the fullscreen accel

    * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs: Moved the widget
    construction to a protected function and added a default ctor

    * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/NextButton.cs: Added
    a small wrapper for creating the next action button

    * src/Clients/Nereid/Nereid/PlayerInterface.cs: Use the new NextButton



Added:
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/NextButton.cs
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenControls.cs
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs
Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Backends/Banshee.Hal/Banshee.Hal.mdp
   trunk/banshee/src/Clients/Nereid/Nereid/PlayerInterface.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp
   trunk/banshee/src/Core/Banshee.ThickClient/Makefile.am
   trunk/banshee/src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp.mdp
   trunk/banshee/src/Dap/Banshee.Dap.Mtp/Makefile.am
   trunk/banshee/src/Extensions/Banshee.Daap/Banshee.Daap.mdp
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.mdp
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Makefile.am
   trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs

Modified: trunk/banshee/src/Backends/Banshee.Hal/Banshee.Hal.mdp
==============================================================================
--- trunk/banshee/src/Backends/Banshee.Hal/Banshee.Hal.mdp	(original)
+++ trunk/banshee/src/Backends/Banshee.Hal/Banshee.Hal.mdp	Sat Apr 19 17:48:06 2008
@@ -19,6 +19,7 @@
     <File name="Banshee.HalBackend/DiskDevice.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.HalBackend/Volume.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.HalBackend/DiscVolume.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.HalBackend/DeviceMediaCapabilities.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="True" refto="Banshee.Core" />

Modified: trunk/banshee/src/Clients/Nereid/Nereid/PlayerInterface.cs
==============================================================================
--- trunk/banshee/src/Clients/Nereid/Nereid/PlayerInterface.cs	(original)
+++ trunk/banshee/src/Clients/Nereid/Nereid/PlayerInterface.cs	Sat Apr 19 17:48:06 2008
@@ -147,9 +147,7 @@
             
             primary_vbox.PackStart (toolbar_alignment, false, false, 0);
             
-            Widget button = ActionService.PlaybackActions["NextAction"].CreateToolItem ();
-            Menu menu = ActionService.PlaybackActions.ShuffleActions.CreateMenu ();
-            MenuButton next_button = new MenuButton (button, menu, true);
+            Widget next_button = new NextButton (ActionService);
             next_button.Show ();
             ActionService.PopulateToolbarPlaceholder (header_toolbar, "/HeaderToolbar/NextArrowButton", next_button);
             

Added: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/NextButton.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/NextButton.cs	Sat Apr 19 17:48:06 2008
@@ -0,0 +1,46 @@
+// 
+// NextButton.cs
+//
+// Authors:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2008 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;
+
+using Banshee.Gui;
+using Hyena.Widgets;
+
+namespace Banshee.Gui.Widgets
+{
+    public class NextButton : MenuButton
+    {
+        public NextButton (InterfaceActionService actionService)
+        {
+            Widget button = actionService.PlaybackActions["NextAction"].CreateToolItem ();
+            Menu menu = actionService.PlaybackActions.ShuffleActions.CreateMenu ();
+            Construct (button, menu, true);
+        }
+    }
+}

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs	Sat Apr 19 17:48:06 2008
@@ -70,7 +70,7 @@
 
             AddImportant (new ToggleActionEntry [] {
                 new ToggleActionEntry ("FullScreenAction", "gtk-fullscreen",
-                    Catalog.GetString ("_Fullscreen"), "F11",
+                    Catalog.GetString ("_Fullscreen"), "F",
                     Catalog.GetString ("Toggle Fullscreen Mode"), OnFullScreen, false),
             });
 

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp	Sat Apr 19 17:48:06 2008
@@ -98,6 +98,7 @@
     <File name="Banshee.Gui/PersistentPaneController.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Collection.Gui/ColumnCellPositiveInt.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Gui.Widgets/MainMenu.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Gui.Widgets/NextButton.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="False" refto="Hyena.Gui" />

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Makefile.am
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Makefile.am	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Makefile.am	Sat Apr 19 17:48:06 2008
@@ -43,6 +43,7 @@
 	Banshee.Gui.Widgets/ConnectedSeekSlider.cs \
 	Banshee.Gui.Widgets/ConnectedVolumeButton.cs \
 	Banshee.Gui.Widgets/MainMenu.cs \
+	Banshee.Gui.Widgets/NextButton.cs \
 	Banshee.Gui.Widgets/PlaylistMenuItem.cs \
 	Banshee.Gui.Widgets/RepeatActionButton.cs \
 	Banshee.Gui.Widgets/TrackInfoDisplay.cs \

Modified: trunk/banshee/src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp.mdp
==============================================================================
--- trunk/banshee/src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp.mdp	(original)
+++ trunk/banshee/src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp.mdp	Sat Apr 19 17:48:06 2008
@@ -10,6 +10,7 @@
   <Contents>
     <File name="Banshee.Dap.Mtp/MtpSource.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Dap.Mtp.addin.xml" subtype="Code" buildaction="EmbedAsResource" />
+    <File name="Banshee.Dap.Mtp/MtpTrackInfo.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="True" refto="Banshee.Core" />

Modified: trunk/banshee/src/Dap/Banshee.Dap.Mtp/Makefile.am
==============================================================================
--- trunk/banshee/src/Dap/Banshee.Dap.Mtp/Makefile.am	(original)
+++ trunk/banshee/src/Dap/Banshee.Dap.Mtp/Makefile.am	Sat Apr 19 17:48:06 2008
@@ -3,7 +3,7 @@
 LINK = $(REF_DAP_MTP)
 INSTALL_DIR = $(EXTENSIONS_INSTALL_DIR)
 
-SOURCES = \
+SOURCES =  \
 	Banshee.Dap.Mtp/MtpSource.cs \
 	Banshee.Dap.Mtp/MtpTrackInfo.cs
 

Modified: trunk/banshee/src/Extensions/Banshee.Daap/Banshee.Daap.mdp
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.Daap/Banshee.Daap.mdp	(original)
+++ trunk/banshee/src/Extensions/Banshee.Daap/Banshee.Daap.mdp	Sat Apr 19 17:48:06 2008
@@ -49,4 +49,4 @@
     <AsmRefVar />
     <ProjectRefVar />
   </MonoDevelop.Autotools.MakefileInfo>
-</Project>
+</Project>
\ No newline at end of file

Modified: trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.mdp
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.mdp	(original)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.mdp	Sat Apr 19 17:48:06 2008
@@ -16,6 +16,8 @@
     <File name="Banshee.NowPlaying/FullscreenWindow.cs" subtype="Code" buildaction="Compile" />
     <File name="Resources/ActiveSourceUI.xml" subtype="Code" buildaction="EmbedAsResource" />
     <File name="Banshee.NowPlaying/XOverlayVideoDisplay.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.NowPlaying/OverlayWindow.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.NowPlaying/FullscreenControls.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="True" refto="Banshee.Core" />

Added: trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenControls.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenControls.cs	Sat Apr 19 17:48:06 2008
@@ -0,0 +1,68 @@
+// 
+// FullscreenControls.cs
+//
+// Authors:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2008 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;
+
+using Banshee.ServiceStack;
+using Banshee.Gui;
+using Banshee.Gui.Widgets;
+
+namespace Banshee.NowPlaying
+{
+    public class FullscreenControls : OverlayWindow
+    {
+        private InterfaceActionService action_service;
+        
+        public FullscreenControls (Window toplevel) : base (toplevel)
+        {
+            action_service = ServiceManager.Get<InterfaceActionService> ();
+            BorderWidth = 2;
+            BuildInterface ();
+        }
+        
+        private void BuildInterface ()
+        {
+            HBox box = new HBox ();
+            
+            box.PackStart (action_service.PlaybackActions["PreviousAction"].CreateToolItem ());
+            box.PackStart (action_service.PlaybackActions["PlayPauseAction"].CreateToolItem ());
+            box.PackStart (new NextButton (action_service), false, false, 0);
+            box.PackStart (new ConnectedSeekSlider (), false, false, 10);
+            box.PackStart (new ConnectedVolumeButton (), false, false, 0);
+            
+            Button exit = new Button (Stock.LeaveFullscreen);
+            exit.Relief = ReliefStyle.None;
+            exit.Clicked += delegate { TransientFor.Hide (); };
+            box.PackStart (exit, false, false, 0);
+            
+            Add (box);
+            box.ShowAll ();
+        }
+    }
+}

Modified: trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs	(original)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs	Sat Apr 19 17:48:06 2008
@@ -36,6 +36,7 @@
     public class FullscreenWindow : Window
     {
         private Gtk.Window parent;
+        private FullscreenControls controls;
         
         public FullscreenWindow (Window parent) : base (parent.Title)
         {
@@ -83,6 +84,10 @@
         protected override void OnHidden ()
         {
             base.OnHidden ();
+            if (controls != null) {
+                controls.Destroy ();
+                controls = null;
+            }
             parent.RemoveNotification ("is-active", ParentActiveNotification);
         }
         
@@ -116,6 +121,26 @@
             return base.OnKeyPressEvent (evnt);
         }
         
+#region Control Window
+
+        private void ShowControls ()
+        {
+            if (controls == null) {
+                controls = new FullscreenControls (this);
+            }
+            
+            controls.Show ();
+        }
+        
+        private void HideControls ()
+        {
+            if (controls != null) {
+                controls.Hide ();
+            }
+        }
+
+#endregion
+        
 #region Mouse Cursor Polish
 
         private const int CursorUpdatePositionDelay = 500;   // How long (ms) before the cursor position is updated
@@ -134,6 +159,7 @@
                 if (Math.Abs (hide_cursor_x - evnt.X) > CursorShowMovementThreshold || 
                     Math.Abs (hide_cursor_y - evnt.Y) > CursorShowMovementThreshold) {
                     ShowCursor ();
+                    ShowControls ();
                 } else {
                     if (cursor_update_position_timeout_id > 0) {
                         GLib.Source.Remove (cursor_update_position_timeout_id);
@@ -142,7 +168,7 @@
                     cursor_update_position_timeout_id = GLib.Timeout.Add (CursorUpdatePositionDelay, 
                         OnCursorUpdatePositionTimeout);
                 }        
-            } else {
+            } else if (controls.CanHide) {
                 if (hide_cursor_timeout_id > 0) {
                     GLib.Source.Remove (hide_cursor_timeout_id);
                 }
@@ -163,6 +189,7 @@
         private bool OnHideCursorTimeout ()
         {
             HideCursor ();
+            HideControls ();
             hide_cursor_timeout_id = 0;
             return false;
         }

Added: trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs	Sat Apr 19 17:48:06 2008
@@ -0,0 +1,142 @@
+// 
+// OverlayWindow.cs
+//
+// Authors:
+//   Aaron Bockover <abockover novell com>
+//   Larry Ewing <lewing novell com>
+//
+// Copyright (C) 2008 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.NowPlaying
+{
+    public class OverlayWindow : Window
+    {
+        private Window toplevel;
+        
+        private double x_align = 0.5;
+        private double y_align = 0.90;
+        
+        public OverlayWindow (Window toplevel) : base (WindowType.Popup)
+        {
+            this.toplevel = toplevel;
+            
+            Decorated = false;
+            DestroyWithParent = true;
+            AllowGrow = true;
+            KeepAbove = true;
+            TransientFor = toplevel;
+            
+            toplevel.ConfigureEvent += OnToplevelConfigureEvent;
+            toplevel.SizeAllocated += OnToplevelSizeAllocated;
+        }
+        
+        private bool can_hide;
+        public bool CanHide {
+            get { return can_hide; }
+        }
+        
+        protected override void OnRealized ()
+        {
+            // composited = CompositeUtils.IsComposited (Screen) && CompositeUtils.SetRgbaColormap (this);
+            // AppPaintable = composited;
+            
+            Events |= (Gdk.EventMask.EnterNotifyMask | 
+                Gdk.EventMask.LeaveNotifyMask |
+                Gdk.EventMask.PointerMotionMask);
+
+            base.OnRealized ();
+            
+            // ShapeWindow ();
+            Relocate ();
+        }
+
+        protected override void OnMapped ()
+        {
+            base.OnMapped ();
+            Relocate ();
+        }
+        
+        protected override bool OnEnterNotifyEvent (Gdk.EventCrossing evnt)
+        {
+            can_hide = false;
+            return base.OnEnterNotifyEvent (evnt);
+        }
+
+        protected override bool OnLeaveNotifyEvent (Gdk.EventCrossing evnt)
+        {
+            can_hide = true;
+            return base.OnLeaveNotifyEvent (evnt);
+        }
+        
+        protected override bool OnConfigureEvent (Gdk.EventConfigure evnt)
+        {
+            return base.OnConfigureEvent (evnt);
+        }
+        
+        protected override void OnSizeAllocated (Gdk.Rectangle allocation)
+        {
+            base.OnSizeAllocated (allocation);
+            Relocate ();
+            // ShapeWindow ();
+            QueueDraw ();
+        }
+        
+        private void OnToplevelConfigureEvent (object o, ConfigureEventArgs args)
+        {
+            Relocate ();
+        }
+        
+        private void OnToplevelSizeAllocated (object o, SizeAllocatedArgs args)
+        {
+            Relocate ();
+        }
+        
+        private void Relocate ()
+        {
+            if (!IsRealized || !toplevel.IsRealized) {
+                return;
+            }
+            
+            int x, y;
+            
+            toplevel.GdkWindow.GetOrigin (out x, out y);
+            
+            int x_origin = x;
+            int y_origin = y;
+            
+            x += (int)(toplevel.Allocation.Width * x_align);
+            y += (int)(toplevel.Allocation.Height * y_align);
+            
+            x -= (int)(Allocation.Width * 0.5);
+            y -= (int)(Allocation.Height * 0.5);
+            
+            x = Math.Max (0, Math.Min (x, x_origin + toplevel.Allocation.Width - Allocation.Width));
+            y = Math.Max (0, Math.Min (y, y_origin + toplevel.Allocation.Height - Allocation.Height));
+            
+            Move (x, y);
+        }
+    }
+}

Modified: trunk/banshee/src/Extensions/Banshee.NowPlaying/Makefile.am
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.NowPlaying/Makefile.am	(original)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Makefile.am	Sat Apr 19 17:48:06 2008
@@ -4,9 +4,11 @@
 INSTALL_DIR = $(EXTENSIONS_INSTALL_DIR)
 
 SOURCES =  \
+	Banshee.NowPlaying/FullscreenControls.cs \
 	Banshee.NowPlaying/FullscreenWindow.cs \
 	Banshee.NowPlaying/NowPlayingInterface.cs \
 	Banshee.NowPlaying/NowPlayingSource.cs \
+	Banshee.NowPlaying/OverlayWindow.cs \
 	Banshee.NowPlaying/VideoDisplay.cs \
 	Banshee.NowPlaying/XOverlayVideoDisplay.cs
 

Modified: trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs
==============================================================================
--- trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs	(original)
+++ trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs	Sat Apr 19 17:48:06 2008
@@ -41,8 +41,17 @@
         private Menu menu;
         private Widget size_widget;
         
+        public MenuButton ()
+        {
+        }
+        
         public MenuButton (Widget buttonWidget, Menu menu, bool showArrow)
         {
+            Construct (buttonWidget, menu, showArrow);
+        }
+        
+        protected void Construct (Widget buttonWidget, Menu menu, bool showArrow)
+        {
             WidgetFlags |= WidgetFlags.NoWindow;
             
             button_widget = buttonWidget;



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