示例#1
0
		public NotifyIconService([NotNull] IServiceProvider serviceProvider)
		{
			if (serviceProvider == null)
				throw new ArgumentNullException(nameof(serviceProvider));

			_serviceManager = new ServiceContainer(serviceProvider);
			_defaultCommandService = new DefaultCommandService("Janus.Application.ShowMainForm");
			_serviceManager.Publish(_defaultCommandService);

			_uiAsyncOperation = _serviceManager
				.GetRequiredService<IUIShell>()
				.CreateUIAsyncOperation();

			_uiAsyncOperation.Send(
				() =>
				{
					_notifyIcon = new NotifyIcon();
					_notifyIcon.DoubleClick += NotifyIconDefaultAction;
					_notifyIcon.BalloonTipClicked += NotifyIconDefaultAction;
					Ticker.Instance.DoubleClick += NotifyIconDefaultAction;
				});
		}
        public NotifyIconService([NotNull] IServiceProvider serviceProvider)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }

            _serviceManager        = new ServiceManager(serviceProvider);
            _defaultCommandService = new DefaultCommandService("Janus.Application.ShowMainForm");
            _serviceManager.Publish(_defaultCommandService);

            _uiAsyncOperation = _serviceManager
                                .GetRequiredService <IUIShell>()
                                .CreateUIAsyncOperation();

            _uiAsyncOperation.Send(
                () =>
            {
                _notifyIcon                    = new NotifyIcon();
                _notifyIcon.DoubleClick       += NotifyIconDefaultAction;
                _notifyIcon.BalloonTipClicked += NotifyIconDefaultAction;
                Ticker.Instance.DoubleClick   += NotifyIconDefaultAction;
            });
        }
示例#3
0
        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)));
            }
        }