Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        protected CreatedMenuItem CreateHackyMenuItem(string text, Action <IMenuItemContext> action)
        {
            var attr = new ExportMenuItemAttribute()
            {
                Header = text
            };

            return(new CreatedMenuItem(attr, new AbstractMenuCommand(action)));
        }
Exemplo n.º 3
0
 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));
     }
 }
Exemplo n.º 4
0
        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)));
            }
        }
Exemplo n.º 5
0
 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));
     }
 }
Exemplo n.º 6
0
        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()}");
            }
        }
Exemplo n.º 7
0
 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));
     }
 }
Exemplo n.º 8
0
        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));
            }
        }
Exemplo n.º 9
0
        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));
            }
        }
Exemplo n.º 10
0
        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));
            }
        }
Exemplo n.º 11
0
        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));
            }
        }