21
using System.Reflection;
29
public class MainMenu : Gtk.Menu
31
31
static MainMenu instance;
35
instance = new MainMenu ();
38
public static MainMenu Instance
40
get { return instance; }
33
public static MainMenu Instance {
36
instance = new MainMenu ();
45
40
int mainMenuX, mainMenuY;
54
// Preferences menu item
55
item = new ImageMenuItem ("_Preferences");
56
(item as ImageMenuItem).Image = new Image (Stock.Preferences, IconSize.Menu);
58
item.CanFocus = false;
59
item.Sensitive = false;
61
// Refresh catalog menu item
62
item = new ImageMenuItem ("_Refresh Catalog");
63
(item as ImageMenuItem).Image = new Image (Stock.Refresh, IconSize.Menu);
65
item.Activated += OnMainMenuRefreshCatalogClicked;
68
// menu.Add (new SeparatorMenuItem ());
71
item = new ImageMenuItem (Catalog.GetString ("_About Do"));
46
item = new ImageMenuItem (Catalog.GetString ("_About Do"));
72
47
(item as ImageMenuItem).Image = new Image (Stock.About, IconSize.Menu);
74
49
item.CanFocus = false;
75
50
item.Activated += OnMainMenuAboutClicked;
78
item = new ImageMenuItem (Catalog.GetString ("_Open Plugins Folder"));
79
(item as ImageMenuItem).Image = new Image (Stock.Open, IconSize.Menu);
52
// Preferences menu item
53
item = new ImageMenuItem (Catalog.GetString ("_Preferences"));
54
(item as ImageMenuItem).Image = new Image (Stock.Preferences, IconSize.Menu);
81
56
item.CanFocus = false;
82
item.Activated += OnMainMenuOpenPluginFolderClicked;
57
item.Activated += OnMainMenuPreferencesClicked;
85
60
item = new ImageMenuItem (Catalog.GetString ("_Quit"));
86
61
(item as ImageMenuItem).Image = new Image (Stock.Quit, IconSize.Menu);
88
63
item.Activated += OnMainMenuQuitClicked;
93
public AboutDialog AboutDialog
98
68
protected void OnMainMenuQuitClicked (object o, EventArgs args)
100
70
Do.Controller.Vanish ();
101
71
Application.Quit ();
104
protected void OnMainMenuRefreshCatalogClicked (object o, EventArgs args)
108
protected void OnMainMenuOpenPluginFolderClicked (object o, EventArgs args)
110
Do.Controller.Vanish ();
111
Util.Environment.Open (Paths.UserPlugins);
74
protected void OnMainMenuPreferencesClicked (object o, EventArgs args)
76
Do.Controller.ShowPreferences ();
114
79
protected void OnMainMenuAboutClicked (object o, EventArgs args)
120
Do.Controller.Vanish ();
122
authors = new string[] {
123
"Chris Halse Rogers <chalserogers@gmail.com>",
124
"David Siegel <djsiegel@gmail.com>",
125
"DR Colkitt <douglas.colkitt@gmail.com>",
134
about = new AboutDialog ();
135
about.Name = "GNOME Do";
138
AssemblyName name = Assembly.GetEntryAssembly ().GetName ();
139
about.Version = String.Format ("{0}.{1}.{2}.{3}",
143
name.Version.Revision);
145
about.Version = Catalog.GetString ("Unknown");
148
logos = new string[] {
149
"/usr/share/icons/gnome/scalable/actions/search.svg",
153
foreach (string l in logos) {
154
if (!System.IO.File.Exists (l)) continue;
158
about.Logo = UI.IconProvider.PixbufFromIconName (logo, 140);
159
about.Copyright = "Copyright \xa9 2008 GNOME Do Developers";
160
about.Comments = "Do things as quickly as possible\n" +
161
"(but no quicker) with your files, bookmarks,\n" +
162
"applications, music, contacts, and more!";
163
about.Website = "http://do.davebsd.com/";
164
about.WebsiteLabel = "Visit Homepage";
165
about.Authors = authors;
166
about.IconName = "gnome-run";
168
if (null != about.Screen.RgbaColormap) {
169
Gtk.Widget.DefaultColormap = about.Screen.RgbaColormap;
81
Do.Controller.ShowAbout ();
177
84
public void PopupAtPosition (int x, int y)
181
menu.Popup (null, null, PositionMainMenu, 3, Gtk.Global.CurrentEventTime);
88
Popup (null, null, PositionMainMenu, 3, Gtk.Global.CurrentEventTime);
184
91
private void PositionMainMenu (Menu menu, out int x, out int y, out bool push_in)