[Pkg-mozext-commits] [firetray] 46/399: cleaning
David Prévot
taffit at alioth.debian.org
Tue Oct 29 18:23:11 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 a02129828c5790833b660dc1b881526e89beabf5
Author: foudfou <foudil.newbie+git at gmail.com>
Date: Tue Sep 20 10:43:02 2011 +0200
cleaning
---
src/modules/MoztHandler.jsm | 16 ---
src/modules/MoztIconLinux.jsm | 288 +++++++++++++++++++++++------------------
2 files changed, 163 insertions(+), 141 deletions(-)
diff --git a/src/modules/MoztHandler.jsm b/src/modules/MoztHandler.jsm
index e57afaf..c95f569 100644
--- a/src/modules/MoztHandler.jsm
+++ b/src/modules/MoztHandler.jsm
@@ -138,22 +138,6 @@ mozt.Handler = {
}, // showHideToTray
- popupMenu: function(icon, button, activateTime, menu) {
- LOG("MENU POPUP");
- LOG("ARGS="+icon+", "+button+", "+activateTime+", "+menu);
-
- try {
- // TODO: move to MoztIconLinux
- var gtkMenuPtr = ctypes.cast(menu, gtk.GtkMenu.ptr);
- var iconGpointer = ctypes.cast(icon, gobject.gpointer);
- gtk.gtk_menu_popup(
- gtkMenuPtr, null, null, gtk.gtk_status_icon_position_menu,
- iconGpointer, button, activateTime);
- } catch (x) {
- LOG(x);
- }
- },
-
quitApplication: function() {
try {
let appStartup = Cc['@mozilla.org/toolkit/app-startup;1']
diff --git a/src/modules/MoztIconLinux.jsm b/src/modules/MoztIconLinux.jsm
index e2237e3..c46ee19 100644
--- a/src/modules/MoztIconLinux.jsm
+++ b/src/modules/MoztIconLinux.jsm
@@ -34,9 +34,7 @@ mozt.IconLinux = {
MIN_FONT_SIZE: 4,
init: function() {
-
try {
-
// init tray icon, some variables
this.trayIcon = gtk.gtk_status_icon_new();
this.appName = Services.appinfo.name.toLowerCase();
@@ -44,45 +42,25 @@ mozt.IconLinux = {
"chrome://moztray/skin/" + this.appName + this.FILENAME_SUFFIX);
this.FILENAME_NEWMAIL = mozt.Utils.chromeToPath(
"chrome://moztray/skin/newmail.png");
+ } catch (x) {
+ ERROR(x);
+ return false;
+ }
+
+ this.setImageDefault();
- this.setImageDefault();
-
- // build icon popup menu
- this.menu = gtk.gtk_menu_new();
- // shouldn't need to convert to utf8 thank to js-ctypes
- var menuItemQuitLabel = mozt.Utils.strings.GetStringFromName("popupMenu.itemLabel.Quit");
- var menuItemQuit = gtk.gtk_image_menu_item_new_with_label(
- menuItemQuitLabel);
- var menuItemQuitIcon = gtk.gtk_image_new_from_stock(
- "gtk-quit", gtk.GTK_ICON_SIZE_MENU);
- gtk.gtk_image_menu_item_set_image(menuItemQuit, menuItemQuitIcon);
- var menuShell = ctypes.cast(this.menu, gtk.GtkMenuShell.ptr);
- gtk.gtk_menu_shell_append(menuShell, menuItemQuit);
-
- mozt_menuItemQuitActivateCb = gobject.GCallback_t(
- function(){mozt.Handler.quitApplication();});
- gobject.g_signal_connect(menuItemQuit, "activate",
- mozt_menuItemQuitActivateCb, null);
-
- var menuWidget = ctypes.cast(this.menu, gtk.GtkWidget.ptr);
- gtk.gtk_widget_show_all(menuWidget);
-
- // here we do use a function handler because we need the args passed to
- // it ! But we need to abandon 'this' in popupMenu()
- mozt_popupMenuCb =
- gtk.GCallbackMenuPopup_t(mozt.Handler.popupMenu);
- gobject.g_signal_connect(this.trayIcon, "popup-menu",
- mozt_popupMenuCb, this.menu);
-
- this.setTooltipDefault();
+ this._buildPopupMenu();
+ this.setTooltipDefault();
+
+ // attach popupMenu to trayIcon
+ try {
// watch out for binding problems ! here we prefer to keep 'this' in
// showHideToTray() and abandon the args.
mozt_iconActivateCb = gobject.GCallback_t(
function(){mozt.Handler.showHideToTray();});
gobject.g_signal_connect(this.trayIcon, "activate",
- mozt_iconActivateCb, null);
-
+ mozt_iconActivateCb, null);
} catch (x) {
ERROR(x);
return false;
@@ -92,10 +70,58 @@ mozt.IconLinux = {
},
shutdown: function() {
+ cairo.close();
+ // glib.close();
gobject.close();
gdk.close();
gtk.close();
- // glib.close();
+ pango.close();
+ },
+
+ _buildPopupMenu: function() {
+ this.menu = gtk.gtk_menu_new();
+ // shouldn't need to convert to utf8 thank to js-ctypes
+ var menuItemQuitLabel = mozt.Utils.strings.GetStringFromName("popupMenu.itemLabel.Quit");
+ var menuItemQuit = gtk.gtk_image_menu_item_new_with_label(
+ menuItemQuitLabel);
+ var menuItemQuitIcon = gtk.gtk_image_new_from_stock(
+ "gtk-quit", gtk.GTK_ICON_SIZE_MENU);
+ gtk.gtk_image_menu_item_set_image(menuItemQuit, menuItemQuitIcon);
+ var menuShell = ctypes.cast(this.menu, gtk.GtkMenuShell.ptr);
+ gtk.gtk_menu_shell_append(menuShell, menuItemQuit);
+
+ mozt_menuItemQuitActivateCb = gobject.GCallback_t(
+ function(){mozt.Handler.quitApplication();});
+ gobject.g_signal_connect(menuItemQuit, "activate",
+ mozt_menuItemQuitActivateCb, null);
+
+ var menuWidget = ctypes.cast(this.menu, gtk.GtkWidget.ptr);
+ gtk.gtk_widget_show_all(menuWidget);
+
+ /* NOTE: here we do use a function handler (instead of a function
+ * definition) because we need the args passed to it ! On the other hand
+ * we need to abandon 'this' in popupMenu() */
+ let that = this;
+ mozt_popupMenuCb =
+ gtk.GCallbackMenuPopup_t(that.popupMenu);
+ gobject.g_signal_connect(this.trayIcon, "popup-menu",
+ mozt_popupMenuCb, this.menu);
+ },
+
+ popupMenu: function(icon, button, activateTime, menu) {
+ LOG("MENU POPUP");
+ LOG("ARGS="+icon+", "+button+", "+activateTime+", "+menu);
+
+ try {
+ // TODO: move to MoztIconLinux
+ var gtkMenuPtr = ctypes.cast(menu, gtk.GtkMenu.ptr);
+ var iconGpointer = ctypes.cast(icon, gobject.gpointer);
+ gtk.gtk_menu_popup(
+ gtkMenuPtr, null, null, gtk.gtk_status_icon_position_menu,
+ iconGpointer, button, activateTime);
+ } catch (x) {
+ LOG(x);
+ }
},
setImage: function(filename) {
@@ -123,8 +149,14 @@ mozt.IconLinux = {
setTooltip: function(toolTipStr) {
if (!this.trayIcon)
return false;
- gtk.gtk_status_icon_set_tooltip_text(this.trayIcon,
- toolTipStr);
+
+ try {
+ gtk.gtk_status_icon_set_tooltip_text(this.trayIcon,
+ toolTipStr);
+ } catch (x) {
+ ERROR(x);
+ return false;
+ }
return true;
},
@@ -141,98 +173,104 @@ mozt.IconLinux = {
return false;
}
- // build background from image
- let specialIcon = gdk.gdk_pixbuf_new_from_file(this.FILENAME_NEWMAIL, null); // GError **error);
- let dest = gdk.gdk_pixbuf_copy(specialIcon);
- let w = gdk.gdk_pixbuf_get_width(specialIcon);
- let h = gdk.gdk_pixbuf_get_height(specialIcon);
-
- // prepare colors/alpha
- let colorMap = gdk.gdk_screen_get_system_colormap(gdk.gdk_screen_get_default());
- let visual = gdk.gdk_colormap_get_visual(colorMap);
- let visualDepth = gdk.gdk_visual_get_depth(visual);
- LOG("colorMap="+colorMap+" visual="+visual+" visualDepth="+visualDepth);
- let fore = new gdk.GdkColor;
- fore.pixel = fore.red = fore.green = fore.blue = 0;
- let alpha = new gdk.GdkColor;
- alpha.pixel = alpha.red = alpha.green = alpha.blue = 0xFFFF;
- if (!fore || !alpha)
- WARN("Undefined GdkColor fore or alpha");
- gdk.gdk_color_parse(color, fore.address());
- if(fore.red == alpha.red && fore.green == alpha.green && fore.blue == alpha.blue) {
- alpha.red=0; // make sure alpha is different from fore
- }
- gdk.gdk_colormap_alloc_color(colorMap, fore.address(), true, true);
- gdk.gdk_colormap_alloc_color(colorMap, alpha.address(), true, true);
-
- // build pixmap with rectangle
- let pm = gdk.gdk_pixmap_new(null, w, h, visualDepth);
- let pmDrawable = ctypes.cast(pm, gdk.GdkDrawable.ptr);
- let cr = gdk.gdk_cairo_create(pmDrawable);
- gdk.gdk_cairo_set_source_color(cr, alpha.address());
- cairo.cairo_rectangle(cr, 0, 0, w, h);
- cairo.cairo_set_source_rgb(cr, 1, 1, 1);
- cairo.cairo_fill(cr);
-
- // build text
- let scratch = gtk.gtk_window_new(gtk.GTK_WINDOW_TOPLEVEL);
- let layout = gtk.gtk_widget_create_pango_layout(scratch, null);
- gtk.gtk_widget_destroy(scratch);
- let fnt = pango.pango_font_description_from_string("Sans 18");
- pango.pango_font_description_set_weight(fnt,pango.PANGO_WEIGHT_SEMIBOLD);
- pango.pango_layout_set_spacing(layout,0);
- pango.pango_layout_set_font_description(layout, fnt);
- LOG("layout="+layout);
- LOG("text="+text);
- pango.pango_layout_set_text(layout, text,-1);
- let tw = new ctypes.int;
- let th = new ctypes.int;
- let sz;
- let border = 4;
- pango.pango_layout_get_pixel_size(layout, tw.address(), th.address());
- LOG("tw="+tw.value+" th="+th.value);
- // fit text to the icon by decreasing font size
- while ( tw.value > (w - border) || th.value > (h - border) ) {
- sz = pango.pango_font_description_get_size(fnt);
- if(sz < this.MIN_FONT_SIZE) {
- sz = this.MIN_FONT_SIZE;
- break;
+ try {
+ // build background from image
+ let specialIcon = gdk.gdk_pixbuf_new_from_file(this.FILENAME_NEWMAIL, null); // GError **error);
+ let dest = gdk.gdk_pixbuf_copy(specialIcon);
+ let w = gdk.gdk_pixbuf_get_width(specialIcon);
+ let h = gdk.gdk_pixbuf_get_height(specialIcon);
+
+ // prepare colors/alpha
+ let colorMap = gdk.gdk_screen_get_system_colormap(gdk.gdk_screen_get_default());
+ let visual = gdk.gdk_colormap_get_visual(colorMap);
+ let visualDepth = gdk.gdk_visual_get_depth(visual);
+ LOG("colorMap="+colorMap+" visual="+visual+" visualDepth="+visualDepth);
+ let fore = new gdk.GdkColor;
+ fore.pixel = fore.red = fore.green = fore.blue = 0;
+ let alpha = new gdk.GdkColor;
+ alpha.pixel = alpha.red = alpha.green = alpha.blue = 0xFFFF;
+ if (!fore || !alpha)
+ WARN("Undefined GdkColor fore or alpha");
+ gdk.gdk_color_parse(color, fore.address());
+ if(fore.red == alpha.red && fore.green == alpha.green && fore.blue == alpha.blue) {
+ alpha.red=0; // make sure alpha is different from fore
}
- sz -= pango.PANGO_SCALE;
- pango.pango_font_description_set_size(fnt,sz);
+ gdk.gdk_colormap_alloc_color(colorMap, fore.address(), true, true);
+ gdk.gdk_colormap_alloc_color(colorMap, alpha.address(), true, true);
+
+ // build pixmap with rectangle
+ let pm = gdk.gdk_pixmap_new(null, w, h, visualDepth);
+ let pmDrawable = ctypes.cast(pm, gdk.GdkDrawable.ptr);
+ let cr = gdk.gdk_cairo_create(pmDrawable);
+ gdk.gdk_cairo_set_source_color(cr, alpha.address());
+ cairo.cairo_rectangle(cr, 0, 0, w, h);
+ cairo.cairo_set_source_rgb(cr, 1, 1, 1);
+ cairo.cairo_fill(cr);
+
+ // build text
+ let scratch = gtk.gtk_window_new(gtk.GTK_WINDOW_TOPLEVEL);
+ let layout = gtk.gtk_widget_create_pango_layout(scratch, null);
+ gtk.gtk_widget_destroy(scratch);
+ let fnt = pango.pango_font_description_from_string("Sans 18");
+ pango.pango_font_description_set_weight(fnt,pango.PANGO_WEIGHT_SEMIBOLD);
+ pango.pango_layout_set_spacing(layout,0);
pango.pango_layout_set_font_description(layout, fnt);
+ LOG("layout="+layout);
+ LOG("text="+text);
+ pango.pango_layout_set_text(layout, text,-1);
+ let tw = new ctypes.int;
+ let th = new ctypes.int;
+ let sz;
+ let border = 4;
pango.pango_layout_get_pixel_size(layout, tw.address(), th.address());
+ LOG("tw="+tw.value+" th="+th.value);
+ // fit text to the icon by decreasing font size
+ while ( tw.value > (w - border) || th.value > (h - border) ) {
+ sz = pango.pango_font_description_get_size(fnt);
+ if(sz < this.MIN_FONT_SIZE) {
+ sz = this.MIN_FONT_SIZE;
+ break;
+ }
+ sz -= pango.PANGO_SCALE;
+ pango.pango_font_description_set_size(fnt,sz);
+ pango.pango_layout_set_font_description(layout, fnt);
+ pango.pango_layout_get_pixel_size(layout, tw.address(), th.address());
+ }
+ LOG("tw="+tw.value+" th="+th.value);
+ pango.pango_font_description_free(fnt);
+ // center text
+ let px = (w-tw.value)/2;
+ let py = (h-th.value)/2;
+
+ // draw text on pixmap
+ gdk.gdk_cairo_set_source_color(cr, fore.address());
+ cairo.cairo_move_to(cr, px, py);
+ pangocairo.pango_cairo_show_layout(cr, layout);
+ cairo.cairo_destroy(cr);
+ gobject.g_object_unref(layout);
+
+ let buf = gdk.gdk_pixbuf_get_from_drawable(null, pmDrawable, null, 0, 0, 0, 0, w, h);
+ gobject.g_object_unref(pm);
+ LOG("alpha="+alpha);
+ let alphaRed = gobject.guint16(alpha.red);
+ let alphaRed_guchar = ctypes.cast(alphaRed, gobject.guchar);
+ let alphaGreen = gobject.guint16(alpha.green);
+ let alphaGreen_guchar = ctypes.cast(alphaGreen, gobject.guchar);
+ let alphaBlue = gobject.guint16(alpha.blue);
+ let alphaBlue_guchar = ctypes.cast(alphaBlue, gobject.guchar);
+ let bufAlpha = gdk.gdk_pixbuf_add_alpha(buf, true, alphaRed_guchar, alphaGreen_guchar, alphaBlue_guchar);
+ gobject.g_object_unref(buf);
+
+ // merge the rendered text on top
+ gdk.gdk_pixbuf_composite(bufAlpha,dest,0,0,w,h,0,0,1,1,gdk.GDK_INTERP_NEAREST,255);
+ gobject.g_object_unref(bufAlpha);
+
+ gtk.gtk_status_icon_set_from_pixbuf(this.trayIcon, dest);
+ } catch (x) {
+ ERROR(x);
+ return false;
}
- LOG("tw="+tw.value+" th="+th.value);
- pango.pango_font_description_free(fnt);
- // center text
- let px = (w-tw.value)/2;
- let py = (h-th.value)/2;
-
- // draw text on pixmap
- gdk.gdk_cairo_set_source_color(cr, fore.address());
- cairo.cairo_move_to(cr, px, py);
- pangocairo.pango_cairo_show_layout(cr, layout);
- cairo.cairo_destroy(cr);
- gobject.g_object_unref(layout);
-
- let buf = gdk.gdk_pixbuf_get_from_drawable(null, pmDrawable, null, 0, 0, 0, 0, w, h);
- gobject.g_object_unref(pm);
- LOG("alpha="+alpha);
- let alphaRed = gobject.guint16(alpha.red);
- let alphaRed_guchar = ctypes.cast(alphaRed, gobject.guchar);
- let alphaGreen = gobject.guint16(alpha.green);
- let alphaGreen_guchar = ctypes.cast(alphaGreen, gobject.guchar);
- let alphaBlue = gobject.guint16(alpha.blue);
- let alphaBlue_guchar = ctypes.cast(alphaBlue, gobject.guchar);
- let bufAlpha = gdk.gdk_pixbuf_add_alpha(buf, true, alphaRed_guchar, alphaGreen_guchar, alphaBlue_guchar);
- gobject.g_object_unref(buf);
-
- // merge the rendered text on top
- gdk.gdk_pixbuf_composite(bufAlpha,dest,0,0,w,h,0,0,1,1,gdk.GDK_INTERP_NEAREST,255);
- gobject.g_object_unref(bufAlpha);
-
- gtk.gtk_status_icon_set_from_pixbuf(this.trayIcon, dest);
+
}
}; // mozt.IconLinux
--
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