[Pkg-mozext-commits] [firetray] 192/399: set main status icon from Gtk theme (and add search path)

David Prévot taffit at alioth.debian.org
Tue Oct 29 18:23:41 UTC 2013


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch dfsg-clean
in repository firetray.

commit 8ac08dab9e990ad54bb6862e66a4681aa224457f
Author: foudfou <foudil.newbie+git at gmail.com>
Date:   Mon Mar 5 13:58:08 2012 +0100

    set main status icon from Gtk theme (and add search path)
---
 src/chrome/skin/firefox22.png                      |  Bin 0 -> 1625 bytes
 .../linux/icons/hicolor/22x22/apps/firefox.png     |    1 +
 .../linux/icons/hicolor/22x22/apps/thunderbird.png |    1 +
 .../linux/icons/hicolor/32x32/apps/firefox.png     |    1 +
 .../linux/icons/hicolor/32x32/apps/thunderbird.png |    1 +
 src/chrome/skin/thunderbird22.png                  |  Bin 0 -> 1652 bytes
 src/modules/ctypes/linux/gtk.jsm                   |    7 +++
 src/modules/linux/FiretrayStatusIcon.jsm           |   57 ++++++++++++++------
 8 files changed, 51 insertions(+), 17 deletions(-)

diff --git a/src/chrome/skin/firefox22.png b/src/chrome/skin/firefox22.png
new file mode 100644
index 0000000..20e6cab
Binary files /dev/null and b/src/chrome/skin/firefox22.png differ
diff --git a/src/chrome/skin/linux/icons/hicolor/22x22/apps/firefox.png b/src/chrome/skin/linux/icons/hicolor/22x22/apps/firefox.png
new file mode 120000
index 0000000..b9b2b27
--- /dev/null
+++ b/src/chrome/skin/linux/icons/hicolor/22x22/apps/firefox.png
@@ -0,0 +1 @@
+../../../../../firefox22.png
\ No newline at end of file
diff --git a/src/chrome/skin/linux/icons/hicolor/22x22/apps/thunderbird.png b/src/chrome/skin/linux/icons/hicolor/22x22/apps/thunderbird.png
new file mode 120000
index 0000000..465aa92
--- /dev/null
+++ b/src/chrome/skin/linux/icons/hicolor/22x22/apps/thunderbird.png
@@ -0,0 +1 @@
+../../../../../thunderbird22.png
\ No newline at end of file
diff --git a/src/chrome/skin/linux/icons/hicolor/32x32/apps/firefox.png b/src/chrome/skin/linux/icons/hicolor/32x32/apps/firefox.png
new file mode 120000
index 0000000..c914b8d
--- /dev/null
+++ b/src/chrome/skin/linux/icons/hicolor/32x32/apps/firefox.png
@@ -0,0 +1 @@
+../../../../../firefox32.png
\ No newline at end of file
diff --git a/src/chrome/skin/linux/icons/hicolor/32x32/apps/thunderbird.png b/src/chrome/skin/linux/icons/hicolor/32x32/apps/thunderbird.png
new file mode 120000
index 0000000..a407d6b
--- /dev/null
+++ b/src/chrome/skin/linux/icons/hicolor/32x32/apps/thunderbird.png
@@ -0,0 +1 @@
+../../../../../thunderbird32.png
\ No newline at end of file
diff --git a/src/chrome/skin/thunderbird22.png b/src/chrome/skin/thunderbird22.png
new file mode 100644
index 0000000..5d4ac82
Binary files /dev/null and b/src/chrome/skin/thunderbird22.png differ
diff --git a/src/modules/ctypes/linux/gtk.jsm b/src/modules/ctypes/linux/gtk.jsm
index c71bafd..c55afdf 100644
--- a/src/modules/ctypes/linux/gtk.jsm
+++ b/src/modules/ctypes/linux/gtk.jsm
@@ -42,6 +42,7 @@ function gtk_defines(lib) {
     { "parent": this.GtkWidget.ptr }
   ]);
 
+  this.GtkIconTheme = ctypes.StructType("GtkIconTheme");
   this.GtkMenu = ctypes.StructType("GtkMenu");
   // use ctypes.cast(menu, LibGtkStatusIcon.GtkMenuShell.ptr);
   this.GtkMenuShell = ctypes.StructType("GtkMenuShell");
@@ -72,8 +73,14 @@ function gtk_defines(lib) {
     ctypes.default_abi, gobject.gboolean,
     [this.GtkWidget.ptr, gdk.GdkEventWindowState.ptr, gobject.gpointer]).ptr;
 
+  lib.lazy_bind("gtk_icon_theme_get_default", this.GtkIconTheme.ptr);
+  lib.lazy_bind("gtk_icon_theme_get_for_screen", this.GtkIconTheme.ptr, gdk.GdkScreen.ptr);
+  lib.lazy_bind("gtk_icon_theme_append_search_path", ctypes.void_t, this.GtkIconTheme.ptr, gobject.gchar.ptr);
+  lib.lazy_bind("gtk_icon_theme_prepend_search_path", ctypes.void_t, this.GtkIconTheme.ptr, gobject.gchar.ptr);
+
   lib.lazy_bind("gtk_status_icon_new", this.GtkStatusIcon.ptr);
   lib.lazy_bind("gtk_status_icon_set_from_file", ctypes.void_t, this.GtkStatusIcon.ptr, ctypes.char.ptr);
+  lib.lazy_bind("gtk_status_icon_set_from_icon_name", ctypes.void_t, this.GtkStatusIcon.ptr, gobject.gchar.ptr);
   lib.lazy_bind("gtk_status_icon_set_tooltip_text", ctypes.void_t, this.GtkStatusIcon.ptr, ctypes.char.ptr);
   lib.lazy_bind("gtk_status_icon_set_visible", ctypes.void_t, this.GtkStatusIcon.ptr, gobject.gboolean);
   lib.lazy_bind("gtk_menu_new", this.GtkMenu.ptr);
diff --git a/src/modules/linux/FiretrayStatusIcon.jsm b/src/modules/linux/FiretrayStatusIcon.jsm
index d3a7a1a..3889558 100644
--- a/src/modules/linux/FiretrayStatusIcon.jsm
+++ b/src/modules/linux/FiretrayStatusIcon.jsm
@@ -29,6 +29,13 @@ firetray.StatusIcon = {
 
   init: function() {
     try {
+      this.GTK_THEME_ICON_PATH = firetray.Utils.chromeToPath(
+        "chrome://firetray/skin/linux/icons");
+      LOG(this.GTK_THEME_ICON_PATH);
+      let gtkIconTheme = gtk.gtk_icon_theme_get_default();
+      LOG("gtkIconTheme="+gtkIconTheme);
+      gtk.gtk_icon_theme_append_search_path(gtkIconTheme, this.GTK_THEME_ICON_PATH);
+
       // init tray icon, some variables
       this.trayIcon  = gtk.gtk_status_icon_new();
     } catch (x) {
@@ -101,30 +108,46 @@ firetray.StatusIcon = {
     default:
 	    ERROR("SCROLL UNKNOWN");
     }
-  }
+  },
 
-}; // firetray.StatusIcon
+  setIconImageFromFile: function(filename) {
+    if (!firetray.StatusIcon.trayIcon)
+      return false;
+    LOG(filename);
 
+    try {
+      gtk.gtk_status_icon_set_from_file(firetray.StatusIcon.trayIcon,
+                                        filename);
+    } catch (x) {
+      ERROR(x);
+      return false;
+    }
+    return true;
+  },
 
-firetray.Handler.setIconImage = function(filename) {
-  if (!firetray.StatusIcon.trayIcon)
-    return false;
-  LOG(filename);
+  setIconImageFromName: function(iconName) {
+    if (!firetray.StatusIcon.trayIcon)
+      return false;
+    LOG(iconName);
 
-  try {
-    gtk.gtk_status_icon_set_from_file(firetray.StatusIcon.trayIcon,
-                                      filename);
-  } catch (x) {
-    ERROR(x);
-    return false;
+    try {
+      gtk.gtk_status_icon_set_from_icon_name(firetray.StatusIcon.trayIcon, iconName); // "mail-message-new", "thunderbird");
+    } catch (x) {
+      ERROR(x);
+      return false;
+    }
+    return true;
   }
-  return true;
-};
+
+}; // firetray.StatusIcon
+
+
+firetray.Handler.setIconImage = firetray.StatusIcon.setIconImageFromFile;
 
 firetray.Handler.setIconImageDefault = function() {
-  if (!this.FILENAME_DEFAULT)
-    throw "Default application icon filename not set";
-  this.setIconImage(this.FILENAME_DEFAULT);
+  if (!this.appNameOriginal)
+    throw "Default application name not set";
+  firetray.StatusIcon.setIconImageFromName(this.appNameOriginal.toLowerCase());
 };
 
 // GTK bug: Gdk-CRITICAL **: IA__gdk_window_get_root_coords: assertion `GDK_IS_WINDOW (window)' failed

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firetray.git



More information about the Pkg-mozext-commits mailing list