3
* Copyright © 2010, 2011, 2012 Wojciech Kowalczyk
4
* The program is distributed under the terms of the GNU General Public License Version 3.
5
* See LICENCE for details.
10
using Glippy.Core.Api;
17
/// Status tray icon class.
19
public class Tray : ITray
24
private StatusIcon statusIcon;
32
/// Function which rebuilds menu.
34
private MenuFunc RebuildMenu;
39
public string Name { get; private set; }
42
/// Gets plugin description.
44
public string Description { get; private set; }
47
/// Creates new instance of Tray class.
51
this.Name = Catalog.GetString("Tray icon");
52
this.Description = Catalog.GetString("Notification area icon.");
56
/// Loads tray plugin.
58
/// <param name="menu">Menu reference.</param>
59
/// <param name="rebuildMenuFunc">Rebuild menu function.</param>
60
public void Load(Menu menu, MenuFunc rebuildMenuFunc)
63
this.RebuildMenu = rebuildMenuFunc;
64
this.statusIcon = new StatusIcon();
65
this.statusIcon.IconName = EnvironmentVariables.PanelIcon;
66
this.statusIcon.Activate += this.OnStatusIconActivated;
70
/// Unloads tray plugin.
74
this.statusIcon.Visible = false;
75
this.statusIcon = null;
79
/// Rebuilds and shows menu after icon activation.
81
/// <param name="sender">Sender</param>
82
/// <param name="args">Event arguments.</param>
83
private void OnStatusIconActivated(object sender, EventArgs args)
85
this.menu = this.RebuildMenu();
90
/// Handles Clipboard's ClipboardChanged event.
92
/// <param name="sender">Sender.</param>
93
/// <param name="args">Event arguments.</param>
94
public void OnClipboardChanged(object sender, ClipboardChangedArgs args)
99
/// Handles SettingChanged event.
101
/// <param name="sender">Sender.</param>
102
/// <param name="args">Event arguments.</param>
103
public void OnSettingChanged(object sender, SettingChangedArgs args)
107
public void OnMenuRebuilt(object sender, Gtk.Menu menu)