public SmilesToolbarGenerator( IServiceProvider provider, string menuName, SmilesToolbar toolbar) { if (provider == null) { throw new ArgumentNullException("provider"); } if (menuName == null) { throw new ArgumentNullException("menuName"); } if (toolbar == null) { throw new ArgumentNullException("toolbar"); } _serviceProvider = provider; _toolbar = toolbar; _menuName = menuName; _menuService = _serviceProvider.GetRequiredService <IMenuService>(); _commandHandlerService = _serviceProvider.GetRequiredService <ICommandHandlerService>(); _styleImageManager = _serviceProvider.GetRequiredService <IStyleImageManager>(); UpdateMenu(); _menuChangedSubscription = _menuService .MenuChanged .Where(changedMenuName => _menuName == changedMenuName) .Subscribe(changedMenuName => UpdateMenu()); _toolbar.ButtonClick += ToolbarButtonClick; }
/// <summary> /// Попытаться получить картику, в случае если картинка найдена не будет /// вернуть специальную картинку, показывающую, что искомая картинка не найдена. /// </summary> public static Image TryGetImage( [NotNull] this IStyleImageManager styleImageManager, [NotNull] string name, StyleImageType imageType) { if (styleImageManager == null) { throw new ArgumentNullException("styleImageManager"); } if (name == null) { throw new ArgumentNullException("name"); } return(styleImageManager.GetImage(name, imageType)); //ToDo: сппециальная картинка для отсутствующих картинок }
/// <summary> /// Добавить картинку с указанным типом в <see cref="ImageList"/>. /// </summary> /// <returns>Индекс добавлененой картинки или -1 если картинка не найдена.</returns> public static int AppendImage( this IStyleImageManager styleImageManager, [Localizable(false)] string name, StyleImageType imageType, ImageList imageList) { if (styleImageManager == null) { throw new ArgumentNullException("styleImageManager"); } var img = styleImageManager.GetImage(name, imageType); if (img == null) { return(-1); } imageList.Images.Add(img); return(imageList.Images.Count - 1); }
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))); } }