[longomatch] Replace LoadIcon calls by a helper function. This helper function has a fallback for missing icons a



commit 9f5f25918d2b3ca70f2729d3806aaeef3b7d98ff
Author: Julien Moutte <julien fluendo com>
Date:   Mon Sep 1 20:12:43 2014 +0200

    Replace LoadIcon calls by a helper function. This helper function has a fallback for missing icons and 
can be used later on to improve icon loading wrt to cross platform support, scaling, etc...

 LongoMatch.GUI.Helpers/MessagesHelpers.cs          |    6 +-
 LongoMatch.GUI.Helpers/Misc.cs                     |  102 +++++++++++++++-----
 LongoMatch.GUI/Gui/Component/CodingWidget.cs       |   12 +-
 LongoMatch.GUI/Gui/Component/DashboardWidget.cs    |   13 ++-
 .../Gui/Component/PlaysSelectionWidget.cs          |   13 ++-
 LongoMatch.GUI/Gui/Component/TeamTemplateEditor.cs |    6 +-
 LongoMatch.GUI/Gui/Component/TeamsComboBox.cs      |    2 +-
 LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs        |    8 +-
 LongoMatch.GUI/Gui/Panel/PanelHeader.cs            |    4 +-
 LongoMatch.GUI/Gui/Panel/SportsTemplatesPanel.cs   |   24 +++---
 LongoMatch.GUI/Gui/Panel/TeamsTemplatesPanel.cs    |   18 ++--
 LongoMatch.GUI/Gui/Panel/WelcomePanel.cs           |    4 +-
 .../gtk-gui/LongoMatch.Gui.Panel.PanelHeader.cs    |   29 ++----
 LongoMatch.GUI/gtk-gui/gui.stetic                  |   10 +-
 14 files changed, 151 insertions(+), 100 deletions(-)
---
diff --git a/LongoMatch.GUI.Helpers/MessagesHelpers.cs b/LongoMatch.GUI.Helpers/MessagesHelpers.cs
index 8452752..d9b3e09 100644
--- a/LongoMatch.GUI.Helpers/MessagesHelpers.cs
+++ b/LongoMatch.GUI.Helpers/MessagesHelpers.cs
@@ -52,7 +52,7 @@ namespace LongoMatch.Gui.Helpers
                                                             MessageType.Question, ButtonsType.YesNo,
                                                             question);
                                
-                       md.Icon =  Misc.LoadIcon(md, "longomatch", IconSize.Button);
+                       md.Icon =  Misc.LoadIcon("longomatch", IconSize.Button, 0);
                        md.Title = title;
                        var res = md.Run();
                        md.Destroy();
@@ -73,7 +73,7 @@ namespace LongoMatch.Gui.Helpers
                                                             type,
                                                             ButtonsType.Ok,
                                                             errorMessage);
-                       md.Icon = Misc.LoadIcon(md, "longomatch", Gtk.IconSize.Dialog);
+                       md.Icon = Misc.LoadIcon("longomatch", Gtk.IconSize.Dialog, 0);
                        ret = md.Run();
                        md.Destroy();
                        return ret;
@@ -95,7 +95,7 @@ namespace LongoMatch.Gui.Helpers
             dialog.AddButton (Catalog.GetString("Add"), ResponseType.Ok);
                        dialog.VBox.PackStart (label, false, false, 0);
                        dialog.VBox.PackStart (entry, true, true, 0);
-                       dialog.Icon = Misc.LoadIcon (parent, "longomatch", Gtk.IconSize.Dialog);
+                       dialog.Icon = Misc.LoadIcon ("longomatch", Gtk.IconSize.Dialog, 0);
                        dialog.ShowAll ();
                        if (dialog.Run () == (int) ResponseType.Ok) {
                                ret = entry.Text;
diff --git a/LongoMatch.GUI.Helpers/Misc.cs b/LongoMatch.GUI.Helpers/Misc.cs
index a9c8c5c..205c93b 100644
--- a/LongoMatch.GUI.Helpers/Misc.cs
+++ b/LongoMatch.GUI.Helpers/Misc.cs
@@ -17,6 +17,7 @@
 // 
 using System;
 using System.Linq;
+using System.Collections;
 using System.IO;
 using Gtk;
 using Gdk;
@@ -35,6 +36,8 @@ namespace LongoMatch.Gui.Helpers
        public class Misc
        {
                public static string lastFilename;
+
+               public static Hashtable missingIcons = new Hashtable ();
                
                public static FileFilter GetFileFilter() {
                        FileFilter filter = new FileFilter();
@@ -167,35 +170,86 @@ namespace LongoMatch.Gui.Helpers
                        qualityBox.Active = active;
                        return qualityStore;
                }
-               
-               public static Gdk.Pixbuf LoadIcon (Gtk.Widget widget, string name, Gtk.IconSize size)
+
+               /// <summary>
+               /// Loads the missing icon for a given Gtk.IconSize.
+               /// </summary>
+               /// <returns>The missing icon. This function uses a cache internally.</returns>
+               /// <param name="size">Size as a Gtk.IconSize.</param>
+               public static Gdk.Pixbuf LoadMissingIcon (Gtk.IconSize size)
+               {
+                       int sz, sy;
+                       global::Gtk.Icon.SizeLookup (size, out  sz, out  sy);
+                       return LoadMissingIcon (sz);
+               }
+
+               /// <summary>
+               /// Loads the missing icon for a given size in pixels.
+               /// </summary>
+               /// <returns>The missing icon. This function uses a cache internally.</returns>
+               /// <param name="sz">Size in pixels.</param>
+               public static Gdk.Pixbuf LoadMissingIcon (int sz)
+               {
+                       if (!missingIcons.ContainsKey (sz)) {
+                               Gdk.Pixmap pmap = new Gdk.Pixmap (Gdk.Screen.Default.RootWindow, sz, sz);
+                               Gdk.GC gc = new Gdk.GC (pmap);
+                               gc.RgbFgColor = new Gdk.Color (255, 255, 255);
+                               pmap.DrawRectangle (gc, true, 0, 0, sz, sz);
+                               gc.RgbFgColor = new Gdk.Color (0, 0, 0);
+                               pmap.DrawRectangle (gc, false, 0, 0, (sz - 1), (sz - 1));
+                               gc.SetLineAttributes (3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, 
Gdk.JoinStyle.Round);
+                               gc.RgbFgColor = new Gdk.Color (255, 0, 0);
+                               pmap.DrawLine (gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz 
/ 4)));
+                               pmap.DrawLine (gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz 
/ 4)));
+                               missingIcons[sz] = Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 0, 
sz, sz);
+                       }
+                       return (Gdk.Pixbuf) missingIcons [sz];
+               }
+
+               /// <summary>
+               /// Loads the icon for a given name and size.
+               /// </summary>
+               /// <returns>The icon as a Gdk.Pixbuf or missing image icon if not found.</returns>
+               /// <param name="name">Icon Name.</param>
+               /// <param name="size">Icon Size in pixels.</param>
+               /// <param name="flags">Lookup Flags like ForceSVG.</param>
+               public static Gdk.Pixbuf LoadIcon (string name, int size, IconLookupFlags flags)
+               {
+                       try {
+                         return IconTheme.Default.LoadIcon (name, size, flags);
+                       } catch (System.Exception) {
+                               return LoadMissingIcon (size);
+                       }
+               }
+
+               /// <summary>
+               /// Loads the icon for a given name and size.
+               /// </summary>
+               /// <returns>The icon as a Gdk.Pixbuf or missing image icon if not found.</returns>
+               /// <param name="name">Icon Name.</param>
+               /// <param name="size">Icon Size as a Gtk.IconSize.</param>
+               /// <param name="flags">Lookup Flags like ForceSVG.</param>
+               public static Gdk.Pixbuf LoadIcon (string name, Gtk.IconSize size, IconLookupFlags flags)
+               {
+                       int sz, sy;
+                       global::Gtk.Icon.SizeLookup (size, out  sz, out  sy);
+                       return LoadIcon (name, sz, flags);
+               }
+
+               /// <summary>
+               /// Loads the stock icon for a given name and size.
+               /// </summary>
+               /// <returns>The stock icon.</returns>
+               /// <param name="widget">Widget to get the icon for. Themes can modify the stock icon for a 
specific widget.</param>
+               /// <param name="name">Name.</param>
+               /// <param name="size">Size as Gtk.IconSize.</param>
+               public static Gdk.Pixbuf LoadStockIcon (Gtk.Widget widget, string name, Gtk.IconSize size)
                {
                        Gdk.Pixbuf res = widget.RenderIcon (name, size, null);
                        if ((res != null)) {
                                return res;
                        } else {
-                               int sz;
-                               int sy;
-                               global::Gtk.Icon.SizeLookup (size, out  sz, out  sy);
-                               try {
-                                       return Gtk.IconTheme.Default.LoadIcon (name, sz, 0);
-                               } catch (System.Exception) {
-                                       if ((name != "gtk-missing-image")) {
-                                               return LoadIcon (widget, "gtk-missing-image", size);
-                                       } else {
-                                               Gdk.Pixmap pmap = new Gdk.Pixmap 
(Gdk.Screen.Default.RootWindow, sz, sz);
-                                               Gdk.GC gc = new Gdk.GC (pmap);
-                                               gc.RgbFgColor = new Gdk.Color (255, 255, 255);
-                                               pmap.DrawRectangle (gc, true, 0, 0, sz, sz);
-                                               gc.RgbFgColor = new Gdk.Color (0, 0, 0);
-                                               pmap.DrawRectangle (gc, false, 0, 0, (sz - 1), (sz - 1));
-                                               gc.SetLineAttributes (3, Gdk.LineStyle.Solid, 
Gdk.CapStyle.Round, Gdk.JoinStyle.Round);
-                                               gc.RgbFgColor = new Gdk.Color (255, 0, 0);
-                                               pmap.DrawLine (gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), 
((sz - 1) - (sz / 4)));
-                                               pmap.DrawLine (gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), 
((sz - 1) - (sz / 4)));
-                                               return Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 
0, sz, sz);
-                                       }
-                               }
+                               return LoadMissingIcon (size);
                        }
                }
                
diff --git a/LongoMatch.GUI/Gui/Component/CodingWidget.cs b/LongoMatch.GUI/Gui/Component/CodingWidget.cs
index ab93a30..e49a827 100644
--- a/LongoMatch.GUI/Gui/Component/CodingWidget.cs
+++ b/LongoMatch.GUI/Gui/Component/CodingWidget.cs
@@ -135,12 +135,12 @@ namespace LongoMatch.Gui.Component
                        int s = StyleConf.NotebookTabIconSize;
                        IconLookupFlags f = IconLookupFlags.ForceSvg;
  
-                       timelineIco = IconTheme.Default.LoadIcon ("longomatch-tab-timeline", s, f);
-                       timelineActiveIco = IconTheme.Default.LoadIcon ("longomatch-tab-active-timeline", s, 
f);
-                       dashboardIco = IconTheme.Default.LoadIcon ("longomatch-tab-dashboard", s, f);
-                       dashboardActiveIco = IconTheme.Default.LoadIcon ("longomatch-tab-active-dashboard", 
s, f);
-                       posIco = IconTheme.Default.LoadIcon ("longomatch-tab-position", s, f);
-                       posAtiveIco = IconTheme.Default.LoadIcon ("longomatch-tab-active-position", s, f);
+                       timelineIco = Helpers.Misc.LoadIcon ("longomatch-tab-timeline", s, f);
+                       timelineActiveIco = Helpers.Misc.LoadIcon ("longomatch-tab-active-timeline", s, f);
+                       dashboardIco = Helpers.Misc.LoadIcon ("longomatch-tab-dashboard", s, f);
+                       dashboardActiveIco = Helpers.Misc.LoadIcon ("longomatch-tab-active-dashboard", s, f);
+                       posIco = Helpers.Misc.LoadIcon ("longomatch-tab-position", s, f);
+                       posAtiveIco = Helpers.Misc.LoadIcon ("longomatch-tab-active-position", s, f);
                }
 
                void SetTabProps (Widget widget, bool active)
diff --git a/LongoMatch.GUI/Gui/Component/DashboardWidget.cs b/LongoMatch.GUI/Gui/Component/DashboardWidget.cs
index d7f34b7..aa7cb7d 100644
--- a/LongoMatch.GUI/Gui/Component/DashboardWidget.cs
+++ b/LongoMatch.GUI/Gui/Component/DashboardWidget.cs
@@ -26,6 +26,7 @@ using LongoMatch.Handlers;
 using LongoMatch.Store;
 using LongoMatch.Store.Templates;
 using LongoMatch.Gui;
+using Helpers = LongoMatch.Gui.Helpers;
 using LongoMatch.Drawing.Widgets;
 using LongoMatch.Drawing.Cairo;
 using Mono.Unix;
@@ -150,11 +151,11 @@ namespace LongoMatch.Gui.Component
                                hbuttonbox2.Visible = tagMode == TagMode.Edit && internalButtons;
                                editbutton.Active = value == TagMode.Edit;
                                if (value == TagMode.Edit) {
-                                       editimage.Pixbuf = IconTheme.Default.LoadIcon 
("longomatch-dash-edit_active",
-                                                                                      22, 
IconLookupFlags.ForceSvg);
+                                       editimage.Pixbuf = Helpers.Misc.LoadIcon 
("longomatch-dash-edit_active",
+                                                                         22, IconLookupFlags.ForceSvg);
                                } else {
-                                       editimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-dash-edit",
-                                                                                      22, 
IconLookupFlags.ForceSvg);
+                                       editimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-dash-edit",
+                                                                         22, IconLookupFlags.ForceSvg);
                                }
                                ignoreChanges = false;
                        }
@@ -212,8 +213,8 @@ namespace LongoMatch.Gui.Component
                        toolbar.Orientation = Orientation.Vertical;
                        toolbar.ToolbarStyle = ToolbarStyle.Icons;
                        
-                       editimage = new Gtk.Image (IconTheme.Default.LoadIcon ("longomatch-dash-edit_active",
-                                                                              22, IconLookupFlags.ForceSvg));
+                       editimage = new Gtk.Image (Helpers.Misc.LoadIcon ("longomatch-dash-edit_active",
+                                                                 22, IconLookupFlags.ForceSvg));
                        editbutton = new ToggleToolButton ();
                        editbutton.IconWidget = editimage;
                        editbutton.Active = true;
diff --git a/LongoMatch.GUI/Gui/Component/PlaysSelectionWidget.cs 
b/LongoMatch.GUI/Gui/Component/PlaysSelectionWidget.cs
index bfcbf5a..8ad7e28 100644
--- a/LongoMatch.GUI/Gui/Component/PlaysSelectionWidget.cs
+++ b/LongoMatch.GUI/Gui/Component/PlaysSelectionWidget.cs
@@ -24,6 +24,7 @@ using LongoMatch.Common;
 using LongoMatch.Handlers;
 using LongoMatch.Interfaces;
 using LongoMatch.Store;
+using Helpers = LongoMatch.Gui.Helpers;
 using Gdk;
 
 namespace LongoMatch.Gui.Component
@@ -107,12 +108,12 @@ namespace LongoMatch.Gui.Component
                        int s = StyleConf.NotebookTabIconSize;
                        IconLookupFlags f = IconLookupFlags.ForceSvg;
  
-                       listIco = IconTheme.Default.LoadIcon ("longomatch-tab-dashboard", s, f);
-                       listActiveIco = IconTheme.Default.LoadIcon ("longomatch-tab-active-dashboard", s, f);
-                       filtersIco = IconTheme.Default.LoadIcon ("longomatch-tab-filter", s, f);
-                       filtersActiveIco = IconTheme.Default.LoadIcon ("longomatch-tab-active-filter", s, f);
-                       playlistIco = IconTheme.Default.LoadIcon ("longomatch-tab-playlist", s, f);
-                       playlistActiveIco = IconTheme.Default.LoadIcon ("longomatch-tab-active-playlist", s, 
f);
+                       listIco = Helpers.Misc.LoadIcon ("longomatch-tab-dashboard", s, f);
+                       listActiveIco = Helpers.Misc.LoadIcon ("longomatch-tab-active-dashboard", s, f);
+                       filtersIco = Helpers.Misc.LoadIcon ("longomatch-tab-filter", s, f);
+                       filtersActiveIco = Helpers.Misc.LoadIcon ("longomatch-tab-active-filter", s, f);
+                       playlistIco = Helpers.Misc.LoadIcon ("longomatch-tab-playlist", s, f);
+                       playlistActiveIco = Helpers.Misc.LoadIcon ("longomatch-tab-active-playlist", s, f);
                }
 
                void SetTabProps (Widget widget, bool active)
diff --git a/LongoMatch.GUI/Gui/Component/TeamTemplateEditor.cs 
b/LongoMatch.GUI/Gui/Component/TeamTemplateEditor.cs
index e0b385f..da99c6f 100644
--- a/LongoMatch.GUI/Gui/Component/TeamTemplateEditor.cs
+++ b/LongoMatch.GUI/Gui/Component/TeamTemplateEditor.cs
@@ -80,7 +80,7 @@ namespace LongoMatch.Gui.Component
                                if (template.Shield != null) {
                                        shieldimage.Pixbuf = template.Shield.Value;
                                } else {
-                                       shieldimage.Pixbuf = IconTheme.Default.LoadIcon (Constants.LOGO_ICON,
+                                       shieldimage.Pixbuf = Helpers.Misc.LoadIcon (Constants.LOGO_ICON,
                                                                                         
Constants.MAX_SHIELD_ICON_SIZE,
                                                                                         
IconLookupFlags.ForceSvg);
                                }
@@ -225,7 +225,7 @@ namespace LongoMatch.Gui.Component
                        nationalityentry.Text = "";
                        bdaydatepicker.Date = new DateTime ();
                        mailentry.Text = "";
-                       playerimage.Pixbuf = playerimage.Pixbuf = IconTheme.Default.LoadIcon 
("longomatch-player-pic", 45, IconLookupFlags.ForceSvg);
+                       playerimage.Pixbuf = playerimage.Pixbuf = Helpers.Misc.LoadIcon 
("longomatch-player-pic", 45, IconLookupFlags.ForceSvg);
 
                        ignoreChanges = false;
                }
@@ -249,7 +249,7 @@ namespace LongoMatch.Gui.Component
                                playerImage = p.Photo.Value;
                        } else {
                                //playerImage = Stetic.IconLoader.LoadIcon (this, "stock_person", 
IconSize.Dialog);
-                               playerImage = IconTheme.Default.LoadIcon ("longomatch-player-pic", 45, 
IconLookupFlags.ForceSvg);
+                               playerImage = Helpers.Misc.LoadIcon ("longomatch-player-pic", 45, 
IconLookupFlags.ForceSvg);
                        }
                        return playerImage;
                }
diff --git a/LongoMatch.GUI/Gui/Component/TeamsComboBox.cs b/LongoMatch.GUI/Gui/Component/TeamsComboBox.cs
index 3e0288f..6da1d73 100644
--- a/LongoMatch.GUI/Gui/Component/TeamsComboBox.cs
+++ b/LongoMatch.GUI/Gui/Component/TeamsComboBox.cs
@@ -59,7 +59,7 @@ namespace LongoMatch.Gui.Component
                                int size = StyleConf.NewTeamsIconSize;
 
                                if (t.Shield == null) {
-                                       shield = IconTheme.Default.LoadIcon (Constants.LOGO_ICON, size,
+                                       shield = Helpers.Misc.LoadIcon (Constants.LOGO_ICON, size,
                                                                             IconLookupFlags.ForceSvg);
                                } else {
                                        shield = t.Shield.Scale (size, size).Value;
diff --git a/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs b/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs
index a0817b8..e65c5cb 100644
--- a/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs
+++ b/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs
@@ -121,10 +121,10 @@ namespace LongoMatch.Gui.Panel
                        int s = StyleConf.ProjectTypeIconSize;
                        IconLookupFlags f = IconLookupFlags.ForceSvg;
  
-                       fileimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-video-file", s, f);
-                       captureimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-video-device", s, f);
-                       fakeimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-video-device-fake", s, f);
-                       ipimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-video-device-ip", s, f);
+                       fileimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-video-file", s, f);
+                       captureimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-video-device", s, f);
+                       fakeimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-video-device-fake", s, f);
+                       ipimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-video-device-ip", s, f);
 
                        filebutton.Clicked += HandleProjectTypeSet;
                        capturebutton.Clicked += HandleProjectTypeSet;
diff --git a/LongoMatch.GUI/Gui/Panel/PanelHeader.cs b/LongoMatch.GUI/Gui/Panel/PanelHeader.cs
index 367c017..a4f4c68 100644
--- a/LongoMatch.GUI/Gui/Panel/PanelHeader.cs
+++ b/LongoMatch.GUI/Gui/Panel/PanelHeader.cs
@@ -41,7 +41,9 @@ namespace LongoMatch.Gui.Panel
                                        BackClicked (this, null);
                                }
                        };
-                       logoimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch", StyleConf.HeaderHeight - 
10,
+                       logoimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch", 45,
+                                                                      IconLookupFlags.ForceSvg);
+                       backrectbuttonimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-back", 40,
                                                                       IconLookupFlags.ForceSvg);
                        headerhbox.HeightRequest = StyleConf.HeaderHeight;
                }
diff --git a/LongoMatch.GUI/Gui/Panel/SportsTemplatesPanel.cs 
b/LongoMatch.GUI/Gui/Panel/SportsTemplatesPanel.cs
index 5a7dc31..9c7039c 100644
--- a/LongoMatch.GUI/Gui/Panel/SportsTemplatesPanel.cs
+++ b/LongoMatch.GUI/Gui/Panel/SportsTemplatesPanel.cs
@@ -54,17 +54,17 @@ namespace LongoMatch.Gui.Panel
                                        BackEvent();
                        };
 
-                       templateimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-template-header", 54, 
IconLookupFlags.ForceSvg);
-                       categoryheaderimage.Pixbuf = IconTheme.Default.LoadIcon 
("longomatch-category-header", 47, IconLookupFlags.ForceSvg);
-                       newtemplateimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-template-add", 36, 
IconLookupFlags.ForceSvg);
-                       deletetemplateimage.Pixbuf = IconTheme.Default.LoadIcon 
("longomatch-template-delete", 36, IconLookupFlags.ForceSvg);
-                       savetemplateimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-template-save", 
36, IconLookupFlags.ForceSvg);
-                       addcategoryimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-tag-category", 36, 
IconLookupFlags.ForceSvg);
-                       addtagimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-tag-tag", 36, 
IconLookupFlags.ForceSvg);
-                       scoreimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-tag-score", 36, 
IconLookupFlags.ForceSvg);
-                       cardimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-tag-card", 36, 
IconLookupFlags.ForceSvg);
-                       timerimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-tag-timer", 36, 
IconLookupFlags.ForceSvg);
-                       vseparatorimage.Pixbuf = IconTheme.Default.LoadIcon ("vertical-separator", 54, 
IconLookupFlags.ForceSvg);
+                       templateimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-template-header", 54, 
IconLookupFlags.ForceSvg);
+                       categoryheaderimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-category-header", 47, 
IconLookupFlags.ForceSvg);
+                       newtemplateimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-template-add", 36, 
IconLookupFlags.ForceSvg);
+                       deletetemplateimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-template-delete", 36, 
IconLookupFlags.ForceSvg);
+                       savetemplateimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-template-save", 36, 
IconLookupFlags.ForceSvg);
+                       addcategoryimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-tag-category", 36, 
IconLookupFlags.ForceSvg);
+                       addtagimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-tag-tag", 36, 
IconLookupFlags.ForceSvg);
+                       scoreimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-tag-score", 36, 
IconLookupFlags.ForceSvg);
+                       cardimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-tag-card", 36, 
IconLookupFlags.ForceSvg);
+                       timerimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-tag-timer", 36, 
IconLookupFlags.ForceSvg);
+                       vseparatorimage.Pixbuf = Helpers.Misc.LoadIcon ("vertical-separator", 54, 
IconLookupFlags.ForceSvg);
 
                        // Connect buttons from the bar
                        newtemplatebutton.Entered += HandleEnterTemplateButton;
@@ -134,7 +134,7 @@ namespace LongoMatch.Gui.Panel
                                if (template.Image != null)
                                        img = template.Image.Value;
                                else
-                                       img = IconTheme.Default.LoadIcon ("longomatch", 20, 
IconLookupFlags.ForceSvg);
+                                       img = Helpers.Misc.LoadIcon ("longomatch", 20, 
IconLookupFlags.ForceSvg);
                                        
                                iter = templates.AppendValues (img, template.Name);
                                if (first || template.Name == templateName) {
diff --git a/LongoMatch.GUI/Gui/Panel/TeamsTemplatesPanel.cs b/LongoMatch.GUI/Gui/Panel/TeamsTemplatesPanel.cs
index 31124aa..52d66b5 100644
--- a/LongoMatch.GUI/Gui/Panel/TeamsTemplatesPanel.cs
+++ b/LongoMatch.GUI/Gui/Panel/TeamsTemplatesPanel.cs
@@ -50,14 +50,14 @@ namespace LongoMatch.Gui.Panel
                {
                        this.Build ();
                        provider = Config.TeamTemplatesProvider;
-                       teamimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-team-header", 45, 
IconLookupFlags.ForceSvg);
-                       playerheaderimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-player-header", 
45, IconLookupFlags.ForceSvg);
-                       newteamimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-team-add", 34, 
IconLookupFlags.ForceSvg);
-                       deleteteamimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-team-delete", 34, 
IconLookupFlags.ForceSvg);
-                       saveteamimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-team-save", 34, 
IconLookupFlags.ForceSvg);
-                       newplayerimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-player-add", 34, 
IconLookupFlags.ForceSvg);
-                       deleteplayerimage.Pixbuf = IconTheme.Default.LoadIcon ("longomatch-player-delete", 
34, IconLookupFlags.ForceSvg);
-                       vseparatorimage.Pixbuf = IconTheme.Default.LoadIcon ("vertical-separator", 34, 
IconLookupFlags.ForceSvg);
+                       teamimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-team-header", 45, 
IconLookupFlags.ForceSvg);
+                       playerheaderimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-player-header", 45, 
IconLookupFlags.ForceSvg);
+                       newteamimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-team-add", 34, 
IconLookupFlags.ForceSvg);
+                       deleteteamimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-team-delete", 34, 
IconLookupFlags.ForceSvg);
+                       saveteamimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-team-save", 34, 
IconLookupFlags.ForceSvg);
+                       newplayerimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-player-add", 34, 
IconLookupFlags.ForceSvg);
+                       deleteplayerimage.Pixbuf = Helpers.Misc.LoadIcon ("longomatch-player-delete", 34, 
IconLookupFlags.ForceSvg);
+                       vseparatorimage.Pixbuf = Helpers.Misc.LoadIcon ("vertical-separator", 34, 
IconLookupFlags.ForceSvg);
 
                        newteambutton.Entered += HandleEnterTeamButton;
                        newteambutton.Left += HandleLeftTeamButton;
@@ -127,7 +127,7 @@ namespace LongoMatch.Gui.Panel
                                if (template.Shield != null) {
                                        img = template.Shield.Scale (StyleConf.TeamsShieldIconSize, 
StyleConf.TeamsShieldIconSize).Value;
                                } else {
-                                       img = IconTheme.Default.LoadIcon (Constants.LOGO_ICON,
+                                       img = Helpers.Misc.LoadIcon (Constants.LOGO_ICON,
                                                                          StyleConf.TeamsShieldIconSize,
                                                                          IconLookupFlags.ForceSvg);
                                }
diff --git a/LongoMatch.GUI/Gui/Panel/WelcomePanel.cs b/LongoMatch.GUI/Gui/Panel/WelcomePanel.cs
index e4a776b..a6be675 100644
--- a/LongoMatch.GUI/Gui/Panel/WelcomePanel.cs
+++ b/LongoMatch.GUI/Gui/Panel/WelcomePanel.cs
@@ -104,7 +104,7 @@ namespace LongoMatch.Gui.Panel
                        int padding;
 
                        Gtk.Image prefImage = new Gtk.Image (
-                               IconTheme.Default.LoadIcon ("longomatch-preferences",
+                               Helpers.Misc.LoadIcon ("longomatch-preferences",
                                                    StyleConf.WelcomeIconSize, 0));
                        preferencesbutton.Add (prefImage);
                        preferencesbutton.WidthRequest = StyleConf.WelcomeIconSize;
@@ -141,7 +141,7 @@ namespace LongoMatch.Gui.Panel
                        Label label;
                        
                        image = new Gtk.Image (
-                               IconTheme.Default.LoadIcon (b.name, StyleConf.WelcomeIconImageSize, 0));
+                               Helpers.Misc.LoadIcon (b.name, StyleConf.WelcomeIconImageSize, 0));
 
                        button = new Button ();
                        button.Clicked += (sender, e) => (b.func());
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.PanelHeader.cs 
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.PanelHeader.cs
index 2254ee0..e8f0f98 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.PanelHeader.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Panel.PanelHeader.cs
@@ -10,6 +10,7 @@ namespace LongoMatch.Gui.Panel
                private global::Gtk.Label titlelabel;
                private global::Gtk.Button applyroundedbutton;
                private global::Gtk.Button backrectbutton;
+               private global::Gtk.Image backrectbuttonimage;
 
                protected virtual void Build ()
                {
@@ -77,28 +78,18 @@ namespace LongoMatch.Gui.Panel
                        this.backrectbutton.HeightRequest = 40;
                        this.backrectbutton.CanFocus = true;
                        this.backrectbutton.Name = "backrectbutton";
-                       this.backrectbutton.UseUnderline = true;
                        this.backrectbutton.BorderWidth = ((uint)(10));
                        // Container child backrectbutton.Gtk.Container+ContainerChild
-                       global::Gtk.Alignment w12 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
-                       // Container child GtkAlignment.Gtk.Container+ContainerChild
-                       global::Gtk.HBox w13 = new global::Gtk.HBox ();
-                       w13.Spacing = 2;
-                       // Container child GtkHBox.Gtk.Container+ContainerChild
-                       global::Gtk.Image w14 = new global::Gtk.Image ();
-                       w14.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "longomatch-back", 
global::Gtk.IconSize.Dialog);
-                       w13.Add (w14);
-                       // Container child GtkHBox.Gtk.Container+ContainerChild
-                       global::Gtk.Label w16 = new global::Gtk.Label ();
-                       w13.Add (w16);
-                       w12.Add (w13);
-                       this.backrectbutton.Add (w12);
+                       this.backrectbuttonimage = new global::Gtk.Image ();
+                       this.backrectbuttonimage.Name = "backrectbuttonimage";
+                       this.backrectbutton.Add (this.backrectbuttonimage);
+                       this.backrectbutton.Label = null;
                        this.headerhbox.Add (this.backrectbutton);
-                       global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.headerhbox 
[this.backrectbutton]));
-                       w20.PackType = ((global::Gtk.PackType)(1));
-                       w20.Position = 3;
-                       w20.Expand = false;
-                       w20.Fill = false;
+                       global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.headerhbox 
[this.backrectbutton]));
+                       w13.PackType = ((global::Gtk.PackType)(1));
+                       w13.Position = 3;
+                       w13.Expand = false;
+                       w13.Fill = false;
                        this.headereventbox.Add (this.headerhbox);
                        this.Add (this.headereventbox);
                        if ((this.Child != null)) {
diff --git a/LongoMatch.GUI/gtk-gui/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index 279638e..856601b 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -10374,11 +10374,13 @@ You can continue with the current capture, cancel it or save your project.
                 <property name="WidthRequest">80</property>
                 <property name="HeightRequest">40</property>
                 <property name="CanFocus">True</property>
-                <property name="Type">TextAndIcon</property>
-                <property name="Icon">stock:longomatch-back Dialog</property>
-                <property name="Label" translatable="yes" />
-                <property name="UseUnderline">True</property>
+                <property name="Type">Custom</property>
                 <property name="BorderWidth">10</property>
+                <child>
+                  <widget class="Gtk.Image" id="backrectbuttonimage">
+                    <property name="MemberName" />
+                  </widget>
+                </child>
               </widget>
               <packing>
                 <property name="PackType">End</property>


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