public TemplatesMenu(Gtk.Widget widget, Gtk.Menu menu, Wrappers.Node grp, bool recursive, WrapperFilter filter) { d_menu = menu; d_filter = filter; d_recursive = recursive; d_map = new Dictionary <Wrappers.Wrapper, MenuInfo>(); d_group = grp; d_map[grp] = new MenuInfo(null, d_menu); d_widget = widget; if (d_widget != null) { d_menuProperty = d_widget.GetType().GetProperty("Menu"); } Traverse(grp, d_menu); if (d_menuProperty != null) { grp.ChildRemoved += delegate { if (d_menu.Children.Length == 0) { d_menuProperty.SetValue(d_widget, null, null); grp.ChildAdded += HideShowMenu; } }; if (d_menu.Children.Length > 0) { d_menuProperty.SetValue(d_widget, d_menu, null); } else { grp.ChildAdded += HideShowMenu; } } }
public TemplatesMenu(Gtk.Widget widget, Wrappers.Node grp, bool recursive, WrapperFilter filter) : this(widget, new Gtk.Menu(), grp, recursive, filter) { }