public MenuGroupViewModel(string name, TargetMenuType targetMenu, TargetMainMenuItemType targetMenuItem) { Name = name; TargetMenu = targetMenu; TargetMenuItem = targetMenuItem; MenuItems = new MenuItemViewModelCollection(); }
private static ToolStripItemDisplayStyle GetDisplayStyle( MenuItemDisplayStyle displayStyle, bool image, TargetMenuType menuType) { switch (displayStyle) { case MenuItemDisplayStyle.Default: return(menuType == TargetMenuType.Toolbar ? image ? ToolStripItemDisplayStyle.Image : ToolStripItemDisplayStyle.Text : ToolStripItemDisplayStyle.ImageAndText); case MenuItemDisplayStyle.Text: return(ToolStripItemDisplayStyle.Text); case MenuItemDisplayStyle.Image: return(ToolStripItemDisplayStyle.Image); case MenuItemDisplayStyle.TextAndImage: return(ToolStripItemDisplayStyle.ImageAndText); } throw new ApplicationException(); }
private Image GetImage(string name, TargetMenuType menuType) { return(name != null ? _styleImageManager.TryGetImage( name, (menuType == TargetMenuType.Menu || menuType == TargetMenuType.ContextMenu || _useSmallImages ? StyleImageType.Small : StyleImageType.Default)) : null); }
private void InitStripItem( ToolStripItem toolStripItem, IMenuItemWithTextAndImage menuItem, TargetMenuType menuType) { toolStripItem.Text = menuItem.Text; toolStripItem.ImageScaling = ToolStripItemImageScaling.None; toolStripItem.Image = GetImage(menuItem.Image, menuType); toolStripItem.DisplayStyle = GetDisplayStyle( menuItem.DisplayStyle, menuItem.Image != null, menuType); toolStripItem.Tag = menuItem; if (menuItem.Description != null) { toolStripItem.ToolTipText = menuItem.Description; } }
private ToolStripItem[] CreateStripItems(IEnumerable <IMenuGroup> groups, TargetMenuType menuType) { var context = new MenuGeneratorContext(menuType); foreach (var group in groups) { if (context.Result.Count > 0) { context.Result.Add(new ToolStripSeparator()); } foreach (var item in group.Items) { item.AcceptVisitor(this, context); } } return(context.Result.ToArray()); }
public StripMenuGenerator( [NotNull] IServiceProvider serviceProvider, [NotNull] ToolStrip toolStrip, [NotNull] string menuName, bool useSmallImages) { if (serviceProvider == null) { throw new ArgumentNullException("serviceProvider"); } if (menuName == null) { throw new ArgumentNullException("menuName"); } if (toolStrip == null) { throw new ArgumentNullException("toolStrip"); } _serviceProvider = serviceProvider; _toolStrip = toolStrip; _menuName = menuName; _useSmallImages = useSmallImages; if (toolStrip is ContextMenuStrip) { _menuType = TargetMenuType.ContextMenu; } else if (toolStrip is MenuStrip || toolStrip is ToolStripDropDownMenu) { _menuType = TargetMenuType.Menu; } else { _menuType = TargetMenuType.Toolbar; } _styleImageManager = _serviceProvider.GetRequiredService <IStyleImageManager>(); _menuService = _serviceProvider.GetRequiredService <IMenuService>(); _commandHandlerService = _serviceProvider.GetRequiredService <ICommandHandlerService>(); _defaultCommandService = _serviceProvider.GetService <IDefaultCommandService>(); _checkStateService = _serviceProvider.GetService <ICheckStateService>(); _uiAsyncOperation = _serviceProvider.GetRequiredService <IUIShell>().CreateUIAsyncOperation(); Init(); _disposables.Add( _menuService .MenuChanged .Where(changedMenuName => changedMenuName == _menuName) .Subscribe(arg => Init())); _disposables.Add( _commandHandlerService.SubscribeCommandStatusChanged(_serviceProvider, CommandStatusChanged)); if (_checkStateService != null) { _disposables.Add( _checkStateService.SubscribeCheckStateChanged(_serviceProvider, CheckStateChanged)); } if (_defaultCommandService != null) { _disposables.Add( _defaultCommandService.DefaultCommandChanged.Subscribe( arg => _uiAsyncOperation.Post(Init))); } }
private static ToolStripItem CreateStripButton(TargetMenuType menuType) { return(menuType == TargetMenuType.Toolbar ? new ToolStripButton() : (ToolStripItem) new ToolStripMenuItem()); }
public MenuGeneratorContext(TargetMenuType menuType) { _menuType = menuType; _result = new List <ToolStripItem>(); }