public IEnumerable <CreatedMenuItem> Create(IMenuItemContext context) { const int MAX_TABS = 10; int index = 0; foreach (var tab in documentTabService.SortedTabs) { var header = GetHeader(index + 1, tab); var attr = new ExportMenuItemAttribute { Header = header }; var tabTmp = tab; var item = new MyMenuItem(ctx => documentTabService.ActiveTab = tabTmp, index == 0); yield return(new CreatedMenuItem(attr, item)); if (++index >= MAX_TABS) { break; } } var attr2 = new ExportMenuItemAttribute { Header = dnSpy_Resources.WindowsCommand }; var item2 = new MyMenuItem(ctx => ShowTabsDlg(), false); yield return(new CreatedMenuItem(attr2, item2)); }
protected CreatedMenuItem CreateHackyMenuItem(string text, Action <IMenuItemContext> action) { var attr = new ExportMenuItemAttribute() { Header = text }; return(new CreatedMenuItem(attr, new AbstractMenuCommand(action))); }
public IEnumerable <CreatedMenuItem> Create(IMenuItemContext context) { foreach (var theme in themeService.VisibleThemes) { var attr = new ExportMenuItemAttribute { Header = theme.GetMenuName() }; var tmp = theme; var item = new MyMenuItem(ctx => themeService.Theme = tmp, theme == themeService.Theme); yield return(new CreatedMenuItem(attr, item)); } }
public IEnumerable <CreatedMenuItem> Create(IMenuItemContext context) { var langs = cultureManager.AllLanguages.OrderBy(a => a, LanguageInfoComparer.Instance); foreach (var lang in langs) { var attr = new ExportMenuItemAttribute { Header = UIUtilities.EscapeMenuItemHeader(lang.UIName) }; yield return(new CreatedMenuItem(attr, new SwitchLanguageCommand(cultureManager, lang))); } }
public IEnumerable <CreatedMenuItem> Create(IMenuItemContext context) { for (int i = 0; i < subCmds.Length; i++) { var info = subCmds[i]; var attr = new ExportMenuItemAttribute { Header = info.Item2, Icon = DsImagesAttribute.MemoryWindow }; if (!string.IsNullOrEmpty(info.Item3)) { attr.InputGestureText = info.Item3; } yield return(new CreatedMenuItem(attr, info.Item1)); } }
IEnumerable <CreatedMenuItem> IMenuItemProvider.Create(IMenuItemContext context) { var ctx = CreateContext(context); if (ctx == null) { yield break; } if (ctx.Field is FlagsData) { var flagsData = (FlagsData)ctx.Field; var isEnum = new HashSet <ulong>(); foreach (var info in flagsData.FlagInfos) { if (info.IsEnumName) { isEnum.Add(info.Mask); } } foreach (var info in flagsData.FlagInfos) { if (info.IsEnumName) { continue; } var attr = new ExportMenuItemAttribute { Header = UIUtilities.EscapeMenuItemHeader(info.Name), }; yield return(new CreatedMenuItem(attr, new EditFlagsFieldCommand(hexBufferFileServiceFactory, info, !isEnum.Contains(info.Mask)))); } } else if (ctx.Field is EnumData) { var enumData = (EnumData)ctx.Field; foreach (var info in enumData.EnumFieldInfos) { var attr = new ExportMenuItemAttribute { Header = UIUtilities.EscapeMenuItemHeader(info.Name), }; yield return(new CreatedMenuItem(attr, new EditEnumFieldCommand(hexBufferFileServiceFactory, info))); } } else { Debug.Fail($"Unknown type: {ctx.Field.GetType()}"); } }
public IEnumerable <CreatedMenuItem> Create(IMenuItemContext context) { foreach (var theme in themeManager.AllThemesSorted) { if (!themeManager.Settings.ShowAllThemes && !themeManager.IsHighContrast && theme.IsHighContrast) { continue; } var attr = new ExportMenuItemAttribute { Header = GetThemeHeaderName(theme) }; var tmp = theme; var item = new MyMenuItem(ctx => themeManager.Theme = tmp, theme == themeManager.Theme); yield return(new CreatedMenuItem(attr, item)); } }
public IEnumerable <CreatedMenuItem> Create(IMenuItemContext context) { var dnHexBox = CreateContext(context); Debug.Assert(dnHexBox != null); if (dnHexBox == null) { yield break; } for (int i = 0; i < subMenus.Length; i++) { var info = subMenus[i]; var attr = new ExportMenuItemAttribute { Header = info.Item2 }; bool isChecked = info.Item1 == dnHexBox.AsciiEncoding; var item = new MyMenuItem(ctx => dnHexBox.AsciiEncoding = info.Item1, isChecked); yield return(new CreatedMenuItem(attr, item)); } }
public IEnumerable <CreatedMenuItem> Create(IMenuItemContext context) { var ctx = CreateContext(context); Debug.Assert(ctx != null); if (ctx == null) { yield break; } var hexView = ctx.HexView; foreach (var info in SettingsConstants.ValueFormatList) { var attr = new ExportMenuItemAttribute { Header = info.Value }; bool isChecked = info.Key == hexView.BufferLines.ValuesFormat; var item = new MyMenuItem(ctx2 => hexView.Options.SetOptionValue(DefaultHexViewOptions.HexValuesDisplayFormatId, info.Key), isChecked); yield return(new CreatedMenuItem(attr, item)); } }
public IEnumerable <CreatedMenuItem> Create(IMenuItemContext context) { var ctx = CreateContext(context); Debug.Assert(ctx != null); if (ctx == null) { yield break; } var hexView = ctx.HexView; for (int i = 0; i < subMenus.Length; i++) { var info = subMenus[i]; var attr = new ExportMenuItemAttribute { Header = info.Item2 }; bool isChecked = info.Item1 == hexView.Options.GetOptionValue(DefaultHexViewOptions.BytesPerLineId); var item = new MyMenuItem(ctx2 => hexView.Options.SetOptionValue(DefaultHexViewOptions.BytesPerLineId, info.Item1), isChecked); yield return(new CreatedMenuItem(attr, item)); } }
public IEnumerable <CreatedMenuItem> Create(IMenuItemContext context) { var ctx = CreateContext(context); Debug.Assert(ctx != null); if (ctx == null) { yield break; } for (int i = 0; i < subCmds.Length; i++) { var info = subCmds[i]; var attr = new ExportMenuItemAttribute { Header = info.Item2, Icon = "MemoryWindow" }; if (!string.IsNullOrEmpty(info.Item3)) { attr.InputGestureText = info.Item3; } yield return(new CreatedMenuItem(attr, info.Item1)); } }