tags 433491 +patch
thanks
The attached patch adds a "Show preferences" option to the context menu
for the tray icon. It appears to work correctly, but I'm not exactly an
expert on the mozilla codebase and I'd appreciate a test. I've not yet
removed the "hide icon" option, I'll wait until I've got a fuller patch
ready, but that's pretty easy to do.
Alan
#! /bin/sh /usr/share/dpatch/dpatch-run
## 21_prefs_context.dpatch by <[EMAIL PROTECTED]>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.
@DPATCH@
diff -urNad
mozilla-traybiff-1.2.3~/chrome/locale/cs-CZ/traybiff/traybiff.properties
mozilla-traybiff-1.2.3/chrome/locale/cs-CZ/traybiff/traybiff.properties
--- mozilla-traybiff-1.2.3~/chrome/locale/cs-CZ/traybiff/traybiff.properties
2007-07-18 01:06:41.000000000 +0100
+++ mozilla-traybiff-1.2.3/chrome/locale/cs-CZ/traybiff/traybiff.properties
2007-07-18 01:07:14.000000000 +0100
@@ -3,3 +3,4 @@
trayMenu_NewWindow=Nové okno
trayMenu_RestoreWindow=Obnov okno
trayMenu_HideWindow=Schovej okno
+trayMenu_ShowPref=Show Preferences
diff -urNad
mozilla-traybiff-1.2.3~/chrome/locale/de-DE/traybiff/traybiff.properties
mozilla-traybiff-1.2.3/chrome/locale/de-DE/traybiff/traybiff.properties
--- mozilla-traybiff-1.2.3~/chrome/locale/de-DE/traybiff/traybiff.properties
2007-07-18 01:06:41.000000000 +0100
+++ mozilla-traybiff-1.2.3/chrome/locale/de-DE/traybiff/traybiff.properties
2007-07-18 01:07:14.000000000 +0100
@@ -3,3 +3,4 @@
trayMenu_NewWindow=Neues Fenster
trayMenu_RestoreWindow=Fenster wieder herstellen
trayMenu_HideWindow=Fenster ausblenden
+trayMenu_ShowPref=Show Preferences
diff -urNad
mozilla-traybiff-1.2.3~/chrome/locale/en-US/traybiff/traybiff.properties
mozilla-traybiff-1.2.3/chrome/locale/en-US/traybiff/traybiff.properties
--- mozilla-traybiff-1.2.3~/chrome/locale/en-US/traybiff/traybiff.properties
2007-07-18 01:06:41.000000000 +0100
+++ mozilla-traybiff-1.2.3/chrome/locale/en-US/traybiff/traybiff.properties
2007-07-18 01:07:14.000000000 +0100
@@ -3,3 +3,4 @@
trayMenu_NewWindow=New Window
trayMenu_RestoreWindow=Restore Window
trayMenu_HideWindow=Hide Window
+trayMenu_ShowPref=Show Preferences
diff -urNad
mozilla-traybiff-1.2.3~/chrome/locale/es-ES/traybiff/traybiff.properties
mozilla-traybiff-1.2.3/chrome/locale/es-ES/traybiff/traybiff.properties
--- mozilla-traybiff-1.2.3~/chrome/locale/es-ES/traybiff/traybiff.properties
2007-07-18 01:06:41.000000000 +0100
+++ mozilla-traybiff-1.2.3/chrome/locale/es-ES/traybiff/traybiff.properties
2007-07-18 01:07:14.000000000 +0100
@@ -3,3 +3,4 @@
trayMenu_NewWindow=Abrir ventana
trayMenu_RestoreWindow=Restaurar ventana
trayMenu_HideWindow=Esconder ventana
+trayMenu_ShowPref=Show Preferences
diff -urNad
mozilla-traybiff-1.2.3~/chrome/locale/fr-FR/traybiff/traybiff.properties
mozilla-traybiff-1.2.3/chrome/locale/fr-FR/traybiff/traybiff.properties
--- mozilla-traybiff-1.2.3~/chrome/locale/fr-FR/traybiff/traybiff.properties
2007-07-18 01:06:41.000000000 +0100
+++ mozilla-traybiff-1.2.3/chrome/locale/fr-FR/traybiff/traybiff.properties
2007-07-18 01:07:14.000000000 +0100
@@ -3,3 +3,4 @@
trayMenu_NewWindow=Nouvelle fenêtre
trayMenu_RestoreWindow=Restaurer la fenêtre
trayMenu_HideWindow=Masquer la fenêtre
+trayMenu_ShowPref=Show Preferences
diff -urNad
mozilla-traybiff-1.2.3~/chrome/locale/he-IL/traybiff/traybiff.properties
mozilla-traybiff-1.2.3/chrome/locale/he-IL/traybiff/traybiff.properties
--- mozilla-traybiff-1.2.3~/chrome/locale/he-IL/traybiff/traybiff.properties
2007-07-18 01:06:41.000000000 +0100
+++ mozilla-traybiff-1.2.3/chrome/locale/he-IL/traybiff/traybiff.properties
2007-07-18 01:07:14.000000000 +0100
@@ -3,3 +3,4 @@
trayMenu_NewWindow=New Window
trayMenu_RestoreWindow=Restore Window
trayMenu_HideWindow=Hide Window
+trayMenu_ShowPref=Show Preferences
diff -urNad
mozilla-traybiff-1.2.3~/chrome/locale/it-IT/traybiff/traybiff.properties
mozilla-traybiff-1.2.3/chrome/locale/it-IT/traybiff/traybiff.properties
--- mozilla-traybiff-1.2.3~/chrome/locale/it-IT/traybiff/traybiff.properties
2007-07-18 01:06:41.000000000 +0100
+++ mozilla-traybiff-1.2.3/chrome/locale/it-IT/traybiff/traybiff.properties
2007-07-18 01:07:14.000000000 +0100
@@ -3,3 +3,4 @@
trayMenu_NewWindow=Nuova finestra
trayMenu_RestoreWindow=Ripristina la finestra
trayMenu_HideWindow=Nascondi la finestra
+trayMenu_ShowPref=Show Preferences
diff -urNad
mozilla-traybiff-1.2.3~/chrome/locale/ru-RU/traybiff/traybiff.properties
mozilla-traybiff-1.2.3/chrome/locale/ru-RU/traybiff/traybiff.properties
--- mozilla-traybiff-1.2.3~/chrome/locale/ru-RU/traybiff/traybiff.properties
2007-07-18 01:06:41.000000000 +0100
+++ mozilla-traybiff-1.2.3/chrome/locale/ru-RU/traybiff/traybiff.properties
2007-07-18 01:07:14.000000000 +0100
@@ -3,3 +3,4 @@
trayMenu_NewWindow=Ðовое окно
trayMenu_RestoreWindow=ÐоÑÑÑановиÑÑ Ð¾ÐºÐ½Ð¾
trayMenu_HideWindow=СпÑÑÑаÑÑ Ð¾ÐºÐ½Ð¾
+trayMenu_ShowPref=Show Preferences
diff -urNad
mozilla-traybiff-1.2.3~/components/nsMessengerFreeDesktopIntegration.cpp
mozilla-traybiff-1.2.3/components/nsMessengerFreeDesktopIntegration.cpp
--- mozilla-traybiff-1.2.3~/components/nsMessengerFreeDesktopIntegration.cpp
2007-07-18 01:06:41.000000000 +0100
+++ mozilla-traybiff-1.2.3/components/nsMessengerFreeDesktopIntegration.cpp
2007-07-18 01:09:10.000000000 +0100
@@ -939,6 +939,29 @@
// TODO: This should ultimately popup an informational message box.
}
+void nsMessengerFreeDesktopIntegration::OnActionShowPref()
+{
+ nsCOMPtr<nsIDOMWindowInternal> domWindow;
+
+ nsCOMPtr<nsIWindowMediator> mediator (
do_GetService(NS_WINDOWMEDIATOR_CONTRACTID) );
+ NS_ASSERTION(mediator, "no mediator");
+ mediator->GetMostRecentWindow(NS_LITERAL_STRING("mail:3pane").get(),
getter_AddRefs(domWindow));
+ if (domWindow)
+ {
+ nsIDOMWindow *newWindow;
+ nsresult rv;
+ rv =
domWindow->OpenDialog(NS_LITERAL_STRING("chrome://traybiff/content/settings.xul"),
+ NS_LITERAL_STRING("Preferences"),
+
NS_LITERAL_STRING("chrome,dialog,centerscreen,dependent"),
+ (nsISupports*)NULL,
+ &newWindow);
+
+ if (!NS_SUCCEEDED(rv)) {
+ printf("Failed to show prefs chrome!\n");
+ }
+ }
+}
+
void nsMessengerFreeDesktopIntegration::OnBiffChange()
{
if (mHasBiff)
@@ -1007,6 +1030,9 @@
menuItemHideWindow.Assign(NS_LITERAL_STRING("Hide window"));
nsXPIDLString menuItemHideIcon;
menuItemHideIcon.Assign(NS_LITERAL_STRING("Hide icon"));
+ nsXPIDLString menuItemShowPref;
+ menuItemShowPref.Assign(NS_LITERAL_STRING("Show preferences"));
+
// Retrieve menu item localizations from the string bundle, if possible
nsCOMPtr<nsIStringBundle> bundle;
@@ -1019,6 +1045,8 @@
bundle->GetStringFromName(NS_LITERAL_STRING("trayMenu_RestoreWindow").get(),
getter_Copies(menuItemRestoreWindow));
bundle->GetStringFromName(NS_LITERAL_STRING("trayMenu_HideWindow").get(),
getter_Copies(menuItemHideWindow));
bundle->GetStringFromName(NS_LITERAL_STRING("trayMenu_HideIcon").get(),
getter_Copies(menuItemHideIcon));
+
bundle->GetStringFromName(NS_LITERAL_STRING("trayMenu_ShowPref").get(),
getter_Copies(menuItemShowPref));
+
}
if (mHasBiff)
@@ -1044,6 +1072,9 @@
entry =
gtk_menu_item_new_with_label(NS_ConvertUTF16toUTF8(menuItemHideIcon).get());
g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(MenuHideIcon),
this);
gtk_menu_shell_append(GTK_MENU_SHELL(pTrayMenu), entry);
+ entry =
gtk_menu_item_new_with_label(NS_ConvertUTF16toUTF8(menuItemShowPref).get());
+ gtk_menu_shell_append(GTK_MENU_SHELL(pTrayMenu), entry);
+ g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(MenuShowPref),
this);
gtk_widget_show_all(pTrayMenu);
g_signal_connect(G_OBJECT(pTrayMenu), "selection-done",
G_CALLBACK(TrayIconPopupMenuSelectionDone), this);
@@ -1075,6 +1106,11 @@
reinterpret_cast<nsMessengerFreeDesktopIntegration*>(data)->OnActionHideIcon();
}
+void nsMessengerFreeDesktopIntegration::MenuShowPref(GtkMenuItem *menuItem,
void *data)
+{
+
reinterpret_cast<nsMessengerFreeDesktopIntegration*>(data)->OnActionShowPref();
+}
+
void nsMessengerFreeDesktopIntegration::MenuReadMail(GtkMenuItem *menuItem,
void *data)
{
reinterpret_cast<nsMessengerFreeDesktopIntegration*>(data)->OnActionReadMail();
diff -urNad
mozilla-traybiff-1.2.3~/components/nsMessengerFreeDesktopIntegration.h
mozilla-traybiff-1.2.3/components/nsMessengerFreeDesktopIntegration.h
--- mozilla-traybiff-1.2.3~/components/nsMessengerFreeDesktopIntegration.h
2007-07-18 01:06:41.000000000 +0100
+++ mozilla-traybiff-1.2.3/components/nsMessengerFreeDesktopIntegration.h
2007-07-18 01:07:14.000000000 +0100
@@ -130,6 +130,8 @@
void OnActionToggleWindow();
// Hide Icon chosen in popup menu.
void OnActionHideIcon();
+ // Show Preferences window
+ void OnActionShowPref();
// GTK+ signal handlers
private:
@@ -139,6 +141,7 @@
static void MenuReadMail(GtkMenuItem *menuItem, void *data);
static void MenuToggleWindow(GtkMenuItem *menuItem, void *data);
static void MenuHideIcon(GtkMenuItem *menuItem, void *data);
+ static void MenuShowPref(GtkMenuItem *menuItem, void *data);
// GTK+ tray icon-related members
private:
diff -urNad mozilla-traybiff-1.2.3~/install.rdf
mozilla-traybiff-1.2.3/install.rdf
--- mozilla-traybiff-1.2.3~/install.rdf 1970-01-01 01:00:00.000000000 +0100
+++ mozilla-traybiff-1.2.3/install.rdf 2007-07-18 01:07:14.000000000 +0100
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+ <Description about="urn:mozilla:install-manifest">
+ <em:id>{2e1b75f1-6b5a-4f1d-89b4-424f636e4fba}</em:id>
+ <em:version>1.2.3</em:version>
+ <em:targetApplication>
+ <Description>
+
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
+ <em:minVersion>2.0</em:minVersion>
+ <em:maxVersion>2.0.0.*</em:maxVersion>
+ </Description>
+ </em:targetApplication>
+ <em:name>New Mail Icon</em:name>
+ <em:description>Displays an icon in the system tray when new
mail arrives.</em:description>
+ <em:creator>Ilya Konstantinov</em:creator>
+ <em:homepageURL>http://moztraybiff.mozdev.org/</em:homepageURL>
+
<em:optionsURL>chrome://traybiff/content/settings.xul</em:optionsURL>
+
<em:updateURL>http://moztraybiff.mozdev.org/update.rdf</em:updateURL>
+ <em:type>2</em:type>
+
+ <em:file>
+ <Description
about="urn:mozilla:extension:file:tray-biff.jar">
+ <em:package>content/traybiff/</em:package>
+ <em:locale>locale/en-US/traybiff/</em:locale>
+ <em:locale>locale/he-IL/traybiff/</em:locale>
+ <em:locale>locale/fr-FR/traybiff/</em:locale>
+ <em:locale>locale/it-IT/traybiff/</em:locale>
+ <em:locale>locale/ca-AD/traybiff/</em:locale>
+ <em:locale>locale/de-DE/traybiff/</em:locale>
+ <em:locale>locale/es-ES/traybiff/</em:locale>
+ <em:locale>locale/cs-CZ/traybiff/</em:locale>
+ <em:locale>locale/ru-RU/traybiff/</em:locale>
+ </Description>
+ </em:file>
+ </Description>
+</RDF>
\ No newline at end of file