banshee r3034 - in trunk/banshee: . src/Core/Banshee.Core src/Core/Banshee.ThickClient src/Core/Banshee.ThickClient/Banshee.Sources.Gui src/Core/Hyena src/Core/Hyena.Gui/Hyena.Gui src/Extensions src/Extensions/Banshee.MultimediaKeys



Author: abock
Date: Sun Jan 27 00:34:20 2008
New Revision: 3034
URL: http://svn.gnome.org/viewvc/banshee?rev=3034&view=rev

Log:
2008-01-26  Aaron Bockover  <abockover novell com>

    * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CellEditEntry.cs:
    * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
    Classes pulled out of SourceView.cs, changed from public to internal
    since they are meaningless outside of SourceView

    * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Minor
    reorg, audit public API

    * src/Core/Hyena.Gui/Hyena.Gui/GtkUtilities.cs: Added ColorBlend method
    from the old Banshee.Base.Utilities class to blend two Gdk.Colors



Added:
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CellEditEntry.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs
Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Banshee.Core/Banshee.Core.mdp
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp
   trunk/banshee/src/Core/Banshee.ThickClient/Makefile.am
   trunk/banshee/src/Core/Hyena.Gui/Hyena.Gui/GtkUtilities.cs
   trunk/banshee/src/Core/Hyena/Hyena.mdp
   trunk/banshee/src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys.mdp
   trunk/banshee/src/Extensions/Extensions.mds

Modified: trunk/banshee/src/Core/Banshee.Core/Banshee.Core.mdp
==============================================================================
--- trunk/banshee/src/Core/Banshee.Core/Banshee.Core.mdp	(original)
+++ trunk/banshee/src/Core/Banshee.Core/Banshee.Core.mdp	Sun Jan 27 00:34:20 2008
@@ -56,6 +56,7 @@
     <File name="Banshee.Base/Localization.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Configuration/XmlConfigurationClient.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Base/CoverArtSpec.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Base/RateLimiter.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="False" refto="Hyena" />

Added: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CellEditEntry.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CellEditEntry.cs	Sun Jan 27 00:34:20 2008
@@ -0,0 +1,62 @@
+//
+// CellEdit.cs
+//
+// Author:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2005-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.Sources.Gui
+{
+    internal class EditedEventArgs : EventArgs
+    {
+        public TreePath path;
+        public string text;
+    }
+    
+    internal delegate void EditedEventHandler (object o, EditedEventArgs args);
+    
+    internal class CellEditEntry : Entry, CellEditable
+    {
+        public string path;
+    
+        public CellEditEntry () : base ()
+        {
+            MaxLength = 256;
+        }
+        
+        protected CellEditEntry (System.IntPtr ptr) : base (ptr)
+        {
+        }
+        
+        protected override bool OnFocusOutEvent (Gdk.EventFocus focus)
+        {
+            FinishEditing ();
+            RemoveWidget ();
+            return base.OnFocusOutEvent (focus);
+        }
+    }
+}

Added: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs	Sun Jan 27 00:34:20 2008
@@ -0,0 +1,219 @@
+//
+// SourceRowRenderer.cs
+//
+// Author:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2005-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 Gdk;
+using Pango;
+
+namespace Banshee.Sources.Gui
+{
+    internal class SourceRowRenderer : CellRendererText
+    {
+        public bool Selected = false;
+        public bool Italicized = false;
+        public Source source;
+        public SourceView view;
+
+        public SourceRowRenderer()
+        {
+        }
+        
+        protected SourceRowRenderer(System.IntPtr ptr) : base(ptr)
+        {
+        
+        }
+        
+        private StateType RendererStateToWidgetState(CellRendererState flags)
+        {
+            StateType state = StateType.Normal;
+            if((CellRendererState.Selected & flags).Equals(
+                CellRendererState.Selected))
+                state = StateType.Selected;
+            return state;
+        }
+        
+        public override void GetSize(Widget widget, ref Gdk.Rectangle cell_area,
+            out int x_offset, out int y_offset, out int width, out int height)
+        {        
+               int text_x, text_y, text_w, text_h;
+   
+               base.GetSize(widget, ref cell_area, out text_x, out text_y, 
+                   out text_w, out text_h);
+                
+            x_offset = 0;
+            y_offset = 0;
+            width = text_w;
+            height = text_h + 5;
+        }
+        
+        protected override void Render(Gdk.Drawable drawable, 
+            Widget widget, Gdk.Rectangle background_area, 
+            Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, 
+            CellRendererState flags)
+        {
+            int titleLayoutWidth, titleLayoutHeight;
+            int countLayoutWidth, countLayoutHeight;
+            int maxTitleLayoutWidth;
+            
+            if(source == null) {
+                return;
+            }
+            
+            bool hideCounts = source.Count <= 0;
+            
+            StateType state = RendererStateToWidgetState(flags);
+            Pixbuf icon = null;
+            
+            if(source == null) {
+                return;
+            }
+
+            icon = source.Properties.Get<Gdk.Pixbuf>("IconPixbuf");
+            if(icon == null) {
+                Type icon_type = source.Properties.GetType("IconName");
+                
+                if(icon_type == typeof(string)) {
+                    icon = Banshee.Gui.IconThemeUtils.LoadIcon(22, source.Properties.GetString("IconName"));
+                } else if(icon_type == typeof(string [])) {
+                    icon = Banshee.Gui.IconThemeUtils.LoadIcon(22, source.Properties.GetStringList("IconName"));
+                }
+                
+                if(icon == null) {
+                    icon = Banshee.Gui.IconThemeUtils.LoadIcon(22, "image-missing");
+                }
+                
+                if(icon != null) {
+                    source.Properties.Set<Gdk.Pixbuf>("IconPixbuf", icon);
+                }
+            }
+            
+            Pango.Layout titleLayout = new Pango.Layout(widget.PangoContext);
+            Pango.Layout countLayout = new Pango.Layout(widget.PangoContext);
+            
+            FontDescription fd = widget.PangoContext.FontDescription.Copy();
+            fd.Weight = Selected ? Pango.Weight.Bold : Pango.Weight.Normal;
+            if(Italicized/* || source.HasEmphasis*/) {
+                fd.Style = Pango.Style.Italic;
+                hideCounts = true;
+            }
+
+            titleLayout.FontDescription = fd;
+            countLayout.FontDescription = fd;
+            
+            titleLayout.SetMarkup("...");
+            titleLayout.GetPixelSize(out titleLayoutWidth, out titleLayoutHeight);
+            int ellipsisSize = titleLayoutWidth;
+            
+            string titleText = source.Name;
+            titleLayout.SetMarkup(GLib.Markup.EscapeText(titleText));
+            countLayout.SetMarkup("<span size=\"small\">(" + source.Count + ")</span>");
+            
+            titleLayout.GetPixelSize(out titleLayoutWidth, out titleLayoutHeight);
+            countLayout.GetPixelSize(out countLayoutWidth, out countLayoutHeight);
+            
+            maxTitleLayoutWidth = cell_area.Width - (icon == null ? 0 : icon.Width) - countLayoutWidth - 10;
+            
+            if(titleLayoutWidth > maxTitleLayoutWidth) {
+                float ratio = (float)(maxTitleLayoutWidth - ellipsisSize) / (float)titleLayoutWidth;
+                int characters = (int)(ratio * (float)titleText.Length);
+                do {
+                    if(characters > 0) {
+                        titleLayout.SetMarkup(GLib.Markup.EscapeText(
+                            titleText.Substring(0, characters--)).Trim() + "...");
+                        titleLayout.GetPixelSize(out titleLayoutWidth, out titleLayoutHeight);
+                    } else {
+                        hideCounts = true;
+                        titleLayout.SetMarkup(GLib.Markup.EscapeText(titleText.Trim()));
+                        break;
+                    }
+                } while (titleLayoutWidth > maxTitleLayoutWidth);
+            }
+            
+            Gdk.GC mainGC = widget.Style.TextGC(state);
+
+            if(icon != null) {
+                drawable.DrawPixbuf(mainGC, icon, 0, 0, 
+                    cell_area.X + 0, 
+                    cell_area.Y + ((cell_area.Height - icon.Height) / 2),
+                    icon.Width, icon.Height,
+                    RgbDither.None, 0, 0);
+            }
+            
+            drawable.DrawLayout(mainGC, 
+                cell_area.X + (icon == null ? 0 : icon.Width) + 6, 
+                cell_area.Y + ((cell_area.Height - titleLayoutHeight) / 2) + 1, 
+                titleLayout);
+            
+            if(hideCounts) {
+                return;
+            }
+                
+            Gdk.GC modGC = widget.Style.TextGC(state);
+            if(!state.Equals(StateType.Selected)) {
+                modGC = new Gdk.GC(drawable);
+                modGC.Copy(widget.Style.TextGC(state));
+                Gdk.Color fgcolor = widget.Style.Foreground(state);
+                Gdk.Color bgcolor = widget.Style.Background(state);
+                modGC.RgbFgColor = Hyena.Gui.GtkUtilities.ColorBlend(fgcolor, bgcolor);
+                modGC.RgbBgColor = fgcolor;
+            } 
+            
+            drawable.DrawLayout(modGC,
+                (cell_area.X + cell_area.Width) - countLayoutWidth - 2,
+                cell_area.Y + ((cell_area.Height - countLayoutHeight) / 2) + 1,
+                countLayout);
+        }
+        
+        public override CellEditable StartEditing(Gdk.Event evnt , Widget widget, 
+            string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, 
+            CellRendererState flags)
+        {
+            CellEditEntry text = new CellEditEntry();
+            text.EditingDone += OnEditDone;
+            text.Text = source.Name;
+            text.path = path;
+            text.Show();
+            
+            view.EditingRow = true;
+            
+            return text;
+        }
+        
+        private void OnEditDone(object o, EventArgs args)
+        {
+            CellEditEntry edit = (CellEditEntry)o;
+            if(view == null) {
+                return;
+            }
+            
+            view.EditingRow = false;
+            view.UpdateRow(new TreePath(edit.path), edit.Text);
+        }
+    }
+}

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs	Sun Jan 27 00:34:20 2008
@@ -4,7 +4,7 @@
 // Author:
 //   Aaron Bockover <abockover novell com>
 //
-// Copyright (C) 2007 Novell, Inc.
+// Copyright (C) 2005-2008 Novell, Inc.
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
@@ -27,12 +27,10 @@
 //
 
 using System;
-using System.Collections;
 using System.Collections.Generic;
 using Mono.Unix;
 using Gtk;
 using Gdk;
-using Pango;
 
 using Banshee.ServiceStack;
 using Banshee.Sources;
@@ -43,35 +41,6 @@
 
 namespace Banshee.Sources.Gui
 {
-    public class CellEdit : Entry, CellEditable
-    {
-        public string path;
-    
-        public CellEdit() : base()
-        {
-            MaxLength = 256;
-        }
-        
-        protected CellEdit(System.IntPtr ptr) : base(ptr)
-        {
-        }
-        
-        protected override bool OnFocusOutEvent(Gdk.EventFocus focus)
-        {
-            FinishEditing();
-            RemoveWidget();
-            return base.OnFocusOutEvent(focus);
-        }
-    }
-    
-    public class EditedEventArgs : EventArgs
-    {
-        public TreePath path;
-        public string text;
-    }
-    
-    public delegate void EditedEventHandler(object o, EditedEventArgs args);
-
     public class SourceView : TreeView
     {
         //private Source newPlaylistSource = new PlaylistSource(-1);
@@ -640,198 +609,11 @@
                 return store.GetValue(iter, 0) as Source;
             }
         }
-        
-        public void ThreadedQueueDraw()
-        {
-            Gtk.Application.Invoke(delegate {
-                QueueDraw();
-            });
-        }
-        
-        public bool EditingRow = false;
-    }
-
-    public class SourceRowRenderer : CellRendererText
-    {
-        public bool Selected = false;
-        public bool Italicized = false;
-        public Source source;
-        public SourceView view;
-
-        public SourceRowRenderer()
-        {
-        }
-        
-        protected SourceRowRenderer(System.IntPtr ptr) : base(ptr)
-        {
-        
-        }
-        
-        private StateType RendererStateToWidgetState(CellRendererState flags)
-        {
-            StateType state = StateType.Normal;
-            if((CellRendererState.Selected & flags).Equals(
-                CellRendererState.Selected))
-                state = StateType.Selected;
-            return state;
-        }
-        
-        public override void GetSize(Widget widget, ref Gdk.Rectangle cell_area,
-            out int x_offset, out int y_offset, out int width, out int height)
-        {        
-               int text_x, text_y, text_w, text_h;
-   
-               base.GetSize(widget, ref cell_area, out text_x, out text_y, 
-                   out text_w, out text_h);
-                
-            x_offset = 0;
-            y_offset = 0;
-            width = text_w;
-            height = text_h + 5;
-        }
-        
-        protected override void Render(Gdk.Drawable drawable, 
-            Widget widget, Gdk.Rectangle background_area, 
-            Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, 
-            CellRendererState flags)
-        {
-            int titleLayoutWidth, titleLayoutHeight;
-            int countLayoutWidth, countLayoutHeight;
-            int maxTitleLayoutWidth;
-            
-            if(source == null) {
-                return;
-            }
-            
-            bool hideCounts = source.Count <= 0;
-            
-            StateType state = RendererStateToWidgetState(flags);
-            Pixbuf icon = null;
-            
-            if(source == null) {
-                return;
-            }
-
-            icon = source.Properties.Get<Gdk.Pixbuf>("IconPixbuf");
-            if(icon == null) {
-                Type icon_type = source.Properties.GetType("IconName");
-                
-                if(icon_type == typeof(string)) {
-                    icon = Banshee.Gui.IconThemeUtils.LoadIcon(22, source.Properties.GetString("IconName"));
-                } else if(icon_type == typeof(string [])) {
-                    icon = Banshee.Gui.IconThemeUtils.LoadIcon(22, source.Properties.GetStringList("IconName"));
-                }
-                
-                if(icon == null) {
-                    icon = Banshee.Gui.IconThemeUtils.LoadIcon(22, "image-missing");
-                }
-                
-                if(icon != null) {
-                    source.Properties.Set<Gdk.Pixbuf>("IconPixbuf", icon);
-                }
-            }
-            
-            Pango.Layout titleLayout = new Pango.Layout(widget.PangoContext);
-            Pango.Layout countLayout = new Pango.Layout(widget.PangoContext);
-            
-            FontDescription fd = widget.PangoContext.FontDescription.Copy();
-            fd.Weight = Selected ? Pango.Weight.Bold : Pango.Weight.Normal;
-            if(Italicized/* || source.HasEmphasis*/) {
-                fd.Style = Pango.Style.Italic;
-                hideCounts = true;
-            }
 
-            titleLayout.FontDescription = fd;
-            countLayout.FontDescription = fd;
-            
-            titleLayout.SetMarkup("...");
-            titleLayout.GetPixelSize(out titleLayoutWidth, out titleLayoutHeight);
-            int ellipsisSize = titleLayoutWidth;
-            
-            string titleText = source.Name;
-            titleLayout.SetMarkup(GLib.Markup.EscapeText(titleText));
-            countLayout.SetMarkup("<span size=\"small\">(" + source.Count + ")</span>");
-            
-            titleLayout.GetPixelSize(out titleLayoutWidth, out titleLayoutHeight);
-            countLayout.GetPixelSize(out countLayoutWidth, out countLayoutHeight);
-            
-            maxTitleLayoutWidth = cell_area.Width - (icon == null ? 0 : icon.Width) - countLayoutWidth - 10;
-            
-            if(titleLayoutWidth > maxTitleLayoutWidth) {
-                float ratio = (float)(maxTitleLayoutWidth - ellipsisSize) / (float)titleLayoutWidth;
-                int characters = (int)(ratio * (float)titleText.Length);
-                do {
-                    if(characters > 0) {
-                        titleLayout.SetMarkup(GLib.Markup.EscapeText(
-                            titleText.Substring(0, characters--)).Trim() + "...");
-                        titleLayout.GetPixelSize(out titleLayoutWidth, out titleLayoutHeight);
-                    } else {
-                        hideCounts = true;
-                        titleLayout.SetMarkup(GLib.Markup.EscapeText(titleText.Trim()));
-                        break;
-                    }
-                } while (titleLayoutWidth > maxTitleLayoutWidth);
-            }
-            
-            Gdk.GC mainGC = widget.Style.TextGC(state);
-
-            if(icon != null) {
-                drawable.DrawPixbuf(mainGC, icon, 0, 0, 
-                    cell_area.X + 0, 
-                    cell_area.Y + ((cell_area.Height - icon.Height) / 2),
-                    icon.Width, icon.Height,
-                    RgbDither.None, 0, 0);
-            }
-            
-            drawable.DrawLayout(mainGC, 
-                cell_area.X + (icon == null ? 0 : icon.Width) + 6, 
-                cell_area.Y + ((cell_area.Height - titleLayoutHeight) / 2) + 1, 
-                titleLayout);
-            
-            if(hideCounts) {
-                return;
-            }
-                
-            Gdk.GC modGC = widget.Style.TextGC(state);
-            if(!state.Equals(StateType.Selected)) {
-                modGC = new Gdk.GC(drawable);
-                modGC.Copy(widget.Style.TextGC(state));
-                Gdk.Color fgcolor = widget.Style.Foreground(state);
-                Gdk.Color bgcolor = widget.Style.Background(state);
-                //modGC.RgbFgColor = Utilities.ColorBlend(fgcolor, bgcolor);
-                modGC.RgbBgColor = fgcolor;
-            } 
-            
-            drawable.DrawLayout(modGC,
-                (cell_area.X + cell_area.Width) - countLayoutWidth - 2,
-                cell_area.Y + ((cell_area.Height - countLayoutHeight) / 2) + 1,
-                countLayout);
-        }
-        
-        public override CellEditable StartEditing(Gdk.Event evnt , Widget widget, 
-            string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, 
-            CellRendererState flags)
-        {
-            CellEdit text = new CellEdit();
-            text.EditingDone += OnEditDone;
-            text.Text = source.Name;
-            text.path = path;
-            text.Show();
-            
-            view.EditingRow = true;
-            
-            return text;
-        }
-        
-        private void OnEditDone(object o, EventArgs args)
-        {
-            CellEdit edit = o as CellEdit;
-            if(view == null) {
-                return;
-            }
-            
-            view.EditingRow = false;
-            view.UpdateRow(new TreePath(edit.path), edit.Text);
+        private bool editing_row = false;
+        public bool EditingRow {
+            get { return editing_row; }
+            set { editing_row = value; }
         }
     }
 }

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	Sun Jan 27 00:34:20 2008
@@ -60,7 +60,6 @@
     <File name="Banshee.Collection.Gui/ColumnCellDuration.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Gui.Dialogs/TrackEditor.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Collection.Gui/ArtworkRenderer.cs" subtype="Code" buildaction="Compile" />
-    <File name="Banshee.Gui/ViewActions.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Gui/TrackActions.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Gui.Widgets/ArtworkPopup.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.AudioProfiles.Gui/ProfileComboBox.cs" subtype="Code" buildaction="Compile" />
@@ -72,6 +71,13 @@
     <File name="Banshee.Gui/BansheeActionGroup.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Gui/IHasSourceView.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Gui/SourceActions.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Equalizer.Gui/EqualizerBandScale.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Equalizer.Gui/EqualizerLevelsBox.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Equalizer.Gui/EqualizerPresetComboBox.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Equalizer.Gui/EqualizerView.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Equalizer.Gui/EqualizerWindow.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Sources.Gui/CellEditEntry.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Sources.Gui/SourceRowRenderer.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="False" refto="Hyena.Gui" />
@@ -97,4 +103,4 @@
     <AsmRefVar />
     <ProjectRefVar />
   </MonoDevelop.Autotools.MakefileInfo>
-</Project>
\ No newline at end of file
+</Project>

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	Sun Jan 27 00:34:20 2008
@@ -59,6 +59,8 @@
 	Banshee.Library.Gui/FileImportSource.cs \
 	Banshee.Library.Gui/FolderImportSource.cs \
 	Banshee.Library.Gui/ImportDialog.cs \
+	Banshee.Sources.Gui/CellEditEntry.cs \
+	Banshee.Sources.Gui/SourceRowRenderer.cs \
 	Banshee.Sources.Gui/SourceView.cs
 
 RESOURCES =  \

Modified: trunk/banshee/src/Core/Hyena.Gui/Hyena.Gui/GtkUtilities.cs
==============================================================================
--- trunk/banshee/src/Core/Hyena.Gui/Hyena.Gui/GtkUtilities.cs	(original)
+++ trunk/banshee/src/Core/Hyena.Gui/Hyena.Gui/GtkUtilities.cs	Sun Jan 27 00:34:20 2008
@@ -59,5 +59,38 @@
             
             return true;
         }
+        
+        public static Gdk.Color ColorBlend (Gdk.Color a, Gdk.Color b)
+        {
+            // at some point, might be nice to allow any blend?
+            double blend = 0.5;
+
+            if (blend < 0.0 || blend > 1.0) {
+                throw new ApplicationException ("blend < 0.0 || blend > 1.0");
+            }
+            
+            double blendRatio = 1.0 - blend;
+
+            int aR = a.Red >> 8;
+            int aG = a.Green >> 8;
+            int aB = a.Blue >> 8;
+
+            int bR = b.Red >> 8;
+            int bG = b.Green >> 8;
+            int bB = b.Blue >> 8;
+
+            double mR = aR + bR;
+            double mG = aG + bG;
+            double mB = aB + bB;
+
+            double blR = mR * blendRatio;
+            double blG = mG * blendRatio;
+            double blB = mB * blendRatio;
+
+            Gdk.Color color = new Gdk.Color ((byte)blR, (byte)blG, (byte)blB);
+            Gdk.Colormap.System.AllocColor (ref color, true, true);
+            return color;
+        }
+
     }
 }

Modified: trunk/banshee/src/Core/Hyena/Hyena.mdp
==============================================================================
--- trunk/banshee/src/Core/Hyena/Hyena.mdp	(original)
+++ trunk/banshee/src/Core/Hyena/Hyena.mdp	Sun Jan 27 00:34:20 2008
@@ -8,7 +8,6 @@
     </Configuration>
   </Configurations>
   <Contents>
-    <File name="Timer.cs" subtype="Code" buildaction="Compile" />
     <File name="Hyena.Data/ICareAboutView.cs" subtype="Code" buildaction="Compile" />
     <File name="Hyena.Data/IFilterable.cs" subtype="Code" buildaction="Compile" />
     <File name="Hyena.Data/IListModel.cs" subtype="Code" buildaction="Compile" />
@@ -48,6 +47,14 @@
     <File name="Hyena.Data.Sqlite/ICacheableDatabaseModel.cs" subtype="Code" buildaction="Compile" />
     <File name="Hyena.Data/ModelCache.cs" subtype="Code" buildaction="Compile" />
     <File name="Hyena.Data.Sqlite/SqliteModelCache.cs" subtype="Code" buildaction="Compile" />
+    <File name="Hyena.Data.Query/DateQueryValue.cs" subtype="Code" buildaction="Compile" />
+    <File name="Hyena.Data.Query/FileSizeQueryValue.cs" subtype="Code" buildaction="Compile" />
+    <File name="Hyena.Data.Query/IntegerQueryValue.cs" subtype="Code" buildaction="Compile" />
+    <File name="Hyena.Data.Query/QueryOperator.cs" subtype="Code" buildaction="Compile" />
+    <File name="Hyena.Data.Query/QueryValue.cs" subtype="Code" buildaction="Compile" />
+    <File name="Hyena.Data.Query/StringQueryValue.cs" subtype="Code" buildaction="Compile" />
+    <File name="Hyena/Timer.cs" subtype="Code" buildaction="Compile" />
+    <File name="Hyena/Utilities.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

Modified: trunk/banshee/src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys.mdp
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys.mdp	(original)
+++ trunk/banshee/src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys.mdp	Sun Jan 27 00:34:20 2008
@@ -24,4 +24,4 @@
     <AsmRefVar />
     <ProjectRefVar />
   </MonoDevelop.Autotools.MakefileInfo>
-</Project>
+</Project>
\ No newline at end of file

Modified: trunk/banshee/src/Extensions/Extensions.mds
==============================================================================
--- trunk/banshee/src/Extensions/Extensions.mds	(original)
+++ trunk/banshee/src/Extensions/Extensions.mds	Sun Jan 27 00:34:20 2008
@@ -12,4 +12,4 @@
     <Entry filename="Banshee.NotificationArea/Banshee.NotificationArea.mdp" />
     <Entry filename="Banshee.MultimediaKeys/Banshee.MultimediaKeys.mdp" />
   </Entries>
-</Combine>
+</Combine>
\ No newline at end of file



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