public ContextMenu(Stetic.Wrapper.Widget wrapper, Gtk.Widget context) { MenuItem item; editable = wrapper; widget = wrapper.Wrapped; if (widget == context) { item = LabelItem(widget); item.Sensitive = false; Add(item); } item = new MenuItem(Catalog.GetString("_Select")); item.Activated += DoSelect; Add(item); ClassDescriptor klass = wrapper.ClassDescriptor; if (klass != null) { foreach (ItemDescriptor id in klass.ContextMenu) { CommandDescriptor cmd = (CommandDescriptor)id; if (!cmd.VisibleFor(widget)) { continue; } item = new MenuItem(cmd.Label); if (cmd.Enabled(widget, context)) { Gtk.Widget wdup = widget, cdup = context; // FIXME bxc 75689 item.Activated += delegate(object o, EventArgs args) { cmd.Run(wdup, cdup); }; } else { item.Sensitive = false; } Add(item); } } BuildContextMenu(wrapper.ParentWrapper, widget == context, context); }