3
using System.Reflection;
4
using System.Collections;
7
namespace Stetic.Editor
9
public class IconSelectorMenu: Gtk.Menu
13
public event IconEventHandler IconSelected;
15
public IconSelectorMenu (IProject project)
17
this.project = project;
19
// Stock icon selector
20
IconSelectorMenuItem selStock = new IconSelectorMenuItem (new StockIconSelectorItem ());
21
selStock.IconSelected += OnStockSelected;
22
Insert (selStock, -1);
24
// Project icon selector
25
if (project != null && project.IconFactory.Icons.Count > 0) {
26
IconSelectorMenuItem selProject = new IconSelectorMenuItem (new ProjectIconSelectorItem (project));
27
selProject.IconSelected += OnStockSelected;
28
Insert (selProject, -1);
31
Insert (new Gtk.SeparatorMenuItem (), -1);
33
Gtk.MenuItem it = new Gtk.MenuItem (Catalog.GetString ("More..."));
34
it.Activated += OnSetStockActionType;
38
void OnStockSelected (object s, IconEventArgs args)
40
if (IconSelected != null)
41
IconSelected (this, args);
44
void OnSetStockActionType (object ob, EventArgs args)
46
Stetic.Editor.SelectIconDialog dialog = new Stetic.Editor.SelectIconDialog (null, project);
49
if (dialog.Run () != (int) Gtk.ResponseType.Ok)
51
if (IconSelected != null)
52
IconSelected (this, new IconEventArgs (dialog.Icon));