[Pkg-mozext-commits] [firetray] 271/399: display IM icon when IM enabled
David Prévot
taffit at alioth.debian.org
Tue Oct 29 18:23:57 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 ceba669bcd14b402693e91a53f8b21c40708a912
Author: foudfou <foudil.newbie+git at gmail.com>
Date: Sat Aug 4 16:29:44 2012 +0200
display IM icon when IM enabled
---
README.md | 2 +-
.../icons/gnome/22x22/status/user-available.png | 1 +
.../linux/icons/gnome/22x22/status/user-away.png | 1 +
.../linux/icons/gnome/22x22/status/user-busy.png | 1 +
.../icons/gnome/22x22/status/user-offline.png | 1 +
src/chrome/skin/pidgin-tray-available.png | Bin 0 -> 1050 bytes
src/chrome/skin/pidgin-tray-away.png | Bin 0 -> 1066 bytes
src/chrome/skin/pidgin-tray-busy.png | Bin 0 -> 1052 bytes
src/chrome/skin/pidgin-tray-offline.png | Bin 0 -> 1115 bytes
src/modules/FiretrayInstantMessaging.jsm | 5 ++
src/modules/FiretrayMessaging.jsm | 2 -
src/modules/ctypes/linux/gio.jsm | 1 +
src/modules/linux/FiretrayIMStatusIcon.jsm | 65 ++++++++++++++++++++
src/modules/linux/FiretrayStatusIcon.jsm | 1 +
14 files changed, 77 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 2a543cf..400f9b4 100644
--- a/README.md
+++ b/README.md
@@ -89,4 +89,4 @@ Acknowledgment
[Nils Maier](https://addons.mozilla.org/fr/firefox/addon/minimizetotray-revived/
"MinToTrayR addon page").
* kind support from Neil Deaking, Bobby Holley
-
+* default icons borrowed from Mozilla and Pidgin
diff --git a/src/chrome/skin/linux/icons/gnome/22x22/status/user-available.png b/src/chrome/skin/linux/icons/gnome/22x22/status/user-available.png
new file mode 120000
index 0000000..3329bf8
--- /dev/null
+++ b/src/chrome/skin/linux/icons/gnome/22x22/status/user-available.png
@@ -0,0 +1 @@
+../../../../../pidgin-tray-available.png
\ No newline at end of file
diff --git a/src/chrome/skin/linux/icons/gnome/22x22/status/user-away.png b/src/chrome/skin/linux/icons/gnome/22x22/status/user-away.png
new file mode 120000
index 0000000..5580cb1
--- /dev/null
+++ b/src/chrome/skin/linux/icons/gnome/22x22/status/user-away.png
@@ -0,0 +1 @@
+../../../../../pidgin-tray-away.png
\ No newline at end of file
diff --git a/src/chrome/skin/linux/icons/gnome/22x22/status/user-busy.png b/src/chrome/skin/linux/icons/gnome/22x22/status/user-busy.png
new file mode 120000
index 0000000..84c85ee
--- /dev/null
+++ b/src/chrome/skin/linux/icons/gnome/22x22/status/user-busy.png
@@ -0,0 +1 @@
+../../../../../pidgin-tray-busy.png
\ No newline at end of file
diff --git a/src/chrome/skin/linux/icons/gnome/22x22/status/user-offline.png b/src/chrome/skin/linux/icons/gnome/22x22/status/user-offline.png
new file mode 120000
index 0000000..5df30b0
--- /dev/null
+++ b/src/chrome/skin/linux/icons/gnome/22x22/status/user-offline.png
@@ -0,0 +1 @@
+../../../../../pidgin-tray-offline.png
\ No newline at end of file
diff --git a/src/chrome/skin/pidgin-tray-available.png b/src/chrome/skin/pidgin-tray-available.png
new file mode 100644
index 0000000..ce085bb
Binary files /dev/null and b/src/chrome/skin/pidgin-tray-available.png differ
diff --git a/src/chrome/skin/pidgin-tray-away.png b/src/chrome/skin/pidgin-tray-away.png
new file mode 100644
index 0000000..ab8b077
Binary files /dev/null and b/src/chrome/skin/pidgin-tray-away.png differ
diff --git a/src/chrome/skin/pidgin-tray-busy.png b/src/chrome/skin/pidgin-tray-busy.png
new file mode 100644
index 0000000..aa8982b
Binary files /dev/null and b/src/chrome/skin/pidgin-tray-busy.png differ
diff --git a/src/chrome/skin/pidgin-tray-offline.png b/src/chrome/skin/pidgin-tray-offline.png
new file mode 100644
index 0000000..dd22b27
Binary files /dev/null and b/src/chrome/skin/pidgin-tray-offline.png differ
diff --git a/src/modules/FiretrayInstantMessaging.jsm b/src/modules/FiretrayInstantMessaging.jsm
index c485850..1870569 100644
--- a/src/modules/FiretrayInstantMessaging.jsm
+++ b/src/modules/FiretrayInstantMessaging.jsm
@@ -7,6 +7,7 @@ const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://firetray/commons.js");
+Cu.import("resource://firetray/linux/FiretrayIMStatusIcon.jsm");
firetray.InstantMessaging = {
initialized: false,
@@ -26,6 +27,8 @@ firetray.InstantMessaging = {
"visited-status-resolution"
]);
+ firetray.IMStatusIcon.init();
+
this.initialized = true;
},
@@ -33,6 +36,8 @@ firetray.InstantMessaging = {
if (!this.initialized) return;
F.LOG("Disabling InstantMessaging");
+ firetray.IMStatusIcon.shutdown();
+
firetray.Utils.removeAllObservers(firetray.InstantMessaging);
this.initialized = false;
diff --git a/src/modules/FiretrayMessaging.jsm b/src/modules/FiretrayMessaging.jsm
index 6ffda93..61e98d5 100644
--- a/src/modules/FiretrayMessaging.jsm
+++ b/src/modules/FiretrayMessaging.jsm
@@ -54,10 +54,8 @@ firetray.Messaging = {
F.LOG("Disabling Messaging");
firetray.InstantMessaging.shutdown();
- F.LOG("HI THERE");
MailServices.mailSession.RemoveFolderListener(this.mailSessionListener);
- firetray.Handler.setIconImageDefault();
firetray.Utils.removeAllObservers(firetray.Messaging);
diff --git a/src/modules/ctypes/linux/gio.jsm b/src/modules/ctypes/linux/gio.jsm
index f61f47e..c41aca7 100644
--- a/src/modules/ctypes/linux/gio.jsm
+++ b/src/modules/ctypes/linux/gio.jsm
@@ -16,6 +16,7 @@ function gio_defines(lib) {
this.GIcon = ctypes.StructType("GIcon");
this.GThemedIcon = ctypes.StructType("GThemedIcon");
+ lib.lazy_bind("g_themed_icon_new", this.GIcon.ptr, ctypes.char.ptr);
lib.lazy_bind("g_themed_icon_new_from_names", this.GIcon.ptr, ctypes.char.ptr.ptr, ctypes.int);
}
diff --git a/src/modules/linux/FiretrayIMStatusIcon.jsm b/src/modules/linux/FiretrayIMStatusIcon.jsm
new file mode 100644
index 0000000..14f5af4
--- /dev/null
+++ b/src/modules/linux/FiretrayIMStatusIcon.jsm
@@ -0,0 +1,65 @@
+/* -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+
+var EXPORTED_SYMBOLS = [ "firetray" ];
+
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+const Cu = Components.utils;
+
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+Cu.import("resource://gre/modules/ctypes.jsm");
+Cu.import("resource://firetray/ctypes/linux/gobject.jsm");
+Cu.import("resource://firetray/ctypes/linux/gio.jsm");
+Cu.import("resource://firetray/ctypes/linux/gtk.jsm");
+Cu.import("resource://firetray/commons.js");
+
+if ("undefined" == typeof(firetray.Handler))
+ F.ERROR("This module MUST be imported from/after FiretrayHandler !");
+
+
+firetray.IMStatusIcon = {
+ GTK_THEME_ICON_PATH: null,
+
+ initialized: false,
+ trayIcon: null,
+ themedIcons: {
+ "user-available": null,
+ "user-away": null,
+ "user-busy": null,
+ "user-offline": null
+ },
+
+ init: function() {
+ if (!firetray.Handler.inMailApp) throw "IMStatusIcon for mail app only";
+ if (!firetray.GtkIcons.initialized) throw "GtkIcons should have been initialized by StatusIcon";
+
+ this.trayIcon = gtk.gtk_status_icon_new();
+ this.loadThemedIcons();
+ this.setIconImageFromGIcon(this.themedIcons["user-offline"]);
+
+ this.initialized = true;
+ return true;
+ },
+
+ shutdown: function() {
+ gtk.gtk_status_icon_set_visible(this.trayIcon, false);
+ // FIXME: tryCloseLibs should be done by Handler only, submodules should
+ // just pass the imported ctypes modules to it
+ // firetray.Utils.tryCloseLibs([gobject, gio, gtk]);
+ this.initialized = false;
+ },
+
+ loadThemedIcons: function() {
+ for (let name in this.themedIcons)
+ this.themedIcons[name] = gio.g_themed_icon_new(name);
+ },
+
+ setIconImageFromGIcon: function(gicon) {
+ if (!firetray.IMStatusIcon.trayIcon || !gicon)
+ F.ERROR("Icon missing");
+ F.LOG(gicon);
+ gtk.gtk_status_icon_set_from_gicon(firetray.IMStatusIcon.trayIcon, gicon);
+ }
+
+}; // firetray.IMStatusIcon
diff --git a/src/modules/linux/FiretrayStatusIcon.jsm b/src/modules/linux/FiretrayStatusIcon.jsm
index 4a7d9db..d38362f 100644
--- a/src/modules/linux/FiretrayStatusIcon.jsm
+++ b/src/modules/linux/FiretrayStatusIcon.jsm
@@ -61,6 +61,7 @@ firetray.StatusIcon = {
shutdown: function() {
F.LOG("Disabling StatusIcon");
firetray.PopupMenu.shutdown();
+ // FIXME: should destroy/hide icon here
firetray.GtkIcons.shutdown();
firetray.Utils.tryCloseLibs([cairo, gobject, gdk, gio, gtk, pango, pangocairo]);
this.initialized = false;
--
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