Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hutchinson <m.j.hutchinson@gmail.com>2011-10-27 15:32:45 +0400
committerMichael Hutchinson <m.j.hutchinson@gmail.com>2011-10-27 15:32:45 +0400
commit1068044073baf0bf228a5b0b3b0de24e43969eb6 (patch)
tree78d2ef31f96805c80b986e1c8a4cfa430239b195 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui
parente650551e3020705465c044b2cfcdaaf5fa06018f (diff)
[Ide] Allow branding the app icons
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs41
1 files changed, 32 insertions, 9 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
index 4c3ed90c63..8b74bb229e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
@@ -211,15 +211,7 @@ namespace MonoDevelop.Ide.Gui
DeleteEvent += new Gtk.DeleteEventHandler (OnClosing);
- if (Gtk.IconTheme.Default.HasIcon ("monodevelop"))
- Gtk.Window.DefaultIconName = "monodevelop";
- else
- this.IconList = new Gdk.Pixbuf[] {
- ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.MonoDevelop, Gtk.IconSize.Menu),
- ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.MonoDevelop, Gtk.IconSize.Button),
- ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.MonoDevelop, Gtk.IconSize.Dnd),
- ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.MonoDevelop, Gtk.IconSize.Dialog)
- };
+ SetAppIcons ();
//this.WindowPosition = Gtk.WindowPosition.None;
@@ -228,6 +220,37 @@ namespace MonoDevelop.Ide.Gui
IdeApp.CommandService.SetRootWindow (this);
}
+
+ void SetAppIcons ()
+ {
+ //first try to get the icon from the GTK icon theme
+ var appIconName = BrandingService.GetString ("ApplicationIconId")
+ ?? BrandingService.ApplicationName.ToLower ();
+ if (Gtk.IconTheme.Default.HasIcon (appIconName)) {
+ Gtk.Window.DefaultIconName = appIconName;
+ return;
+ }
+
+ //branded icons
+ var iconsEl = BrandingService.GetElement ("ApplicationIcons");
+ if (iconsEl != null) {
+ try {
+ this.IconList = iconsEl.Elements ("Icon")
+ .Select (el => new Gdk.Pixbuf (BrandingService.GetFile ((string)el))).ToArray ();
+ return;
+ } catch (Exception ex) {
+ LoggingService.LogError ("Could not load app icons", ex);
+ }
+ }
+
+ //built-ins
+ this.IconList = new Gdk.Pixbuf[] {
+ ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.MonoDevelop, Gtk.IconSize.Menu),
+ ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.MonoDevelop, Gtk.IconSize.Button),
+ ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.MonoDevelop, Gtk.IconSize.Dnd),
+ ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.MonoDevelop, Gtk.IconSize.Dialog)
+ };
+ }
void onDragDataRec (object o, Gtk.DragDataReceivedArgs args)
{