From 484a2f6ff43a518b7d894c7373f3f8023af05d34 Mon Sep 17 00:00:00 2001 From: Alan McGovern Date: Mon, 13 Apr 2009 14:41:52 +0000 Subject: [PATCH] * Monsoon/MainWindow.cs: * Monsoon/PreferencesDialog.cs: Switch from Egg.TrayIcon to Gtk.StatusIcon svn path=/trunk/monsoon/; revision=131594 --- Monsoon/ChangeLog | 6 ++++ Monsoon/MainWindow.cs | 56 +++++++++++++----------------------- Monsoon/PreferencesDialog.cs | 6 ++-- 3 files changed, 29 insertions(+), 39 deletions(-) diff --git a/Monsoon/ChangeLog b/Monsoon/ChangeLog index 117bc98..1e4d9ee 100644 --- a/Monsoon/ChangeLog +++ b/Monsoon/ChangeLog @@ -1,3 +1,9 @@ +2009-04-13 Alan McGovern + + * MainWindow.cs: + * PreferencesDialog.cs: Switch from Egg.TrayIcon to + Gtk.StatusIcon + 2009-04-13 Alan McGovern * MainWindow.cs: diff --git a/Monsoon/MainWindow.cs b/Monsoon/MainWindow.cs index 37812f6..c90b4ef 100644 --- a/Monsoon/MainWindow.cs +++ b/Monsoon/MainWindow.cs @@ -83,7 +83,7 @@ public partial class MainWindow: Gtk.Window private Menu trayMenu; //private ImageMenuItem quitItem; - private Egg.TrayIcon trayIcon; + private Gtk.StatusIcon trayIcon; private RssManagerController rssManagerController; @@ -310,13 +310,12 @@ void InitNatStatus () }); } - public Egg.TrayIcon TrayIcon { + public Gtk.StatusIcon TrayIcon { get { return trayIcon; } } private void BuildTray() { - EventBox eventBox = new EventBox (); trayMenu = new Menu (); ImageMenuItem quitItem = new ImageMenuItem (_("Quit")); @@ -352,48 +351,28 @@ private void BuildTray() trayMenu.Append (notifications); trayMenu.Append (new SeparatorMenuItem()); trayMenu.Append (quitItem); - - eventBox.Add (new Image (Stock.GoDown, IconSize.Menu)); - eventBox.ButtonPressEvent += OnTrayClicked; - trayIcon = new Egg.TrayIcon (Defines.ApplicationName); - trayIcon.Icon = new Image (Stock.Network, IconSize.Menu).Pixbuf; - trayIcon.Add (eventBox); - - Tooltips trayTip = new Tooltips(); - - trayIcon.EnterNotifyEvent += Event.Wrap ((EnterNotifyEventHandler) delegate { - trayTip.SetTip(trayIcon, "Monsoon - D: " + ByteConverter.ConvertSpeed(torrentController.Engine.TotalDownloadSpeed) + - " U: " + ByteConverter.ConvertSpeed(torrentController.Engine.TotalUploadSpeed), null); - }); - - if (Preferences.EnableTray) - trayIcon.ShowAll (); - } - - private void OnTrayClicked(object sender, ButtonPressEventArgs args) - { - Gdk.EventButton eventButton = args.Event; - - if(eventButton.Button == 1){ + + Gdk.Pixbuf image = Stetic.IconLoader.LoadIcon (this, Stock.GoDown, IconSize.SmallToolbar, 16); + trayIcon = new Gtk.StatusIcon (image); + TrayIcon.Activate += delegate { if (Visible) { int x, y; GetPosition (out x, out y); interfaceSettings.WindowXPos = x; interfaceSettings.WindowYPos = y; - Hide(); } else { - Show(); Move (interfaceSettings.WindowXPos, interfaceSettings.WindowYPos); } - } - - if(eventButton.Button == 3){ - // show context menu + Visible = !Visible; + }; + TrayIcon.PopupMenu += delegate { trayMenu.ShowAll (); - trayMenu.Popup(); - } + trayMenu.Popup (); + }; + TrayIcon.Tooltip = Defines.ApplicationName; + ShowAll (); } - + private void LoadAllSettings () { try @@ -614,7 +593,7 @@ void HandleStateChanged(object sender, StateChangedEventArgs args) try { Notifications.Notification notify = new Notifications.Notification (_("Download Complete"), manager.Torrent.Name, Stock.GoDown); if (Preferences.EnableTray) - notify.AttachToWidget (TrayIcon); + notify.Show (); notify.Urgency = Notifications.Urgency.Low; notify.Timeout = 5000; notify.Show (); @@ -840,6 +819,11 @@ private void updateStatusBar() statusUpButton.Text = string.Format("{0}{1}", limited, ByteConverter.ConvertSpeed (torrentController.Engine.TotalUploadSpeed)); + + TrayIcon.Tooltip = string.Format ("{0} - D: {1} U: {2}", + Defines.ApplicationName, + ByteConverter.ConvertSpeed(torrentController.Engine.TotalDownloadSpeed), + ByteConverter.ConvertSpeed(torrentController.Engine.TotalUploadSpeed)); } diff --git a/Monsoon/PreferencesDialog.cs b/Monsoon/PreferencesDialog.cs index 378411b..cdcdb1e 100644 --- a/Monsoon/PreferencesDialog.cs +++ b/Monsoon/PreferencesDialog.cs @@ -49,7 +49,7 @@ public partial class PreferencesDialog : Gtk.Dialog private LabelController labelController; private LabelTreeView labelTreeView; - private Egg.TrayIcon trayIcon; + private Gtk.StatusIcon trayIcon; //private IconEntry selectIcon; private string selectedIcon; private Button selectButton; @@ -151,11 +151,11 @@ private void OnEnableTrayToggled (object sender, EventArgs args) { prefSettings.EnableTray = enableTrayCheckButton.Active; if(!prefSettings.EnableTray){ - trayIcon.HideAll(); + trayIcon.Visible = false; prefSettings.QuitOnClose = prefSettings.EnableTray; minimizeTrayCheckButton.Active = prefSettings.EnableTray; } else { - trayIcon.ShowAll(); + trayIcon.Visible = true; } minimizeTrayCheckButton.Sensitive = prefSettings.EnableTray;