public Shell(IRegionManager regionManager, IDriveDetector driveDetector)
        {
            _driveDetector = driveDetector;

            InitializeComponent();

            if (regionManager != null)
            {
                SetRegionManager(regionManager, LeftWindowCommandsRegion, RegionNames.LeftWindowCommandsRegion);
                SetRegionManager(regionManager, RightWindowCommandsRegion, RegionNames.RightWindowCommandsRegion);
                SetRegionManager(regionManager, FlyoutsRegion, RegionNames.FlyoutsRegion);
            }

            Loaded += (sender, args) =>
            {
                var hWnd = new WindowInteropHelper(this).Handle;

                _driveDetector.RegisterUsbDeviceNotification(hWnd);

                var source = HwndSource.FromHwnd(hWnd);
                source?.AddHook(WindowsMessageHandler);
            };

            Unloaded += (sender, args) =>
            {
                _driveDetector.UnregisterUsbDeviceNotification();
            };
        }
        public ConfiguratorViewModel(IApplicationLogger logger, IEventAggregator events, IApplicationCommands commands,
                                     ITemplateManager templateManager, IDriveDetector driveDetector, IMessageDisplayService messageService,
                                     ElementViewModelFactory elementFactory, IConfiguratorService configurator, IVariableStore variables)
        {
            _logger          = logger;
            _templateManager = templateManager;
            _driveDetector   = driveDetector;
            _messageService  = messageService;
            _elementFactory  = elementFactory;
            _configurator    = configurator;
            _variables       = variables;

            Title = "Configurator";

            events.GetEvent <TemplateSelectedEvent>().Subscribe(OnTemplateSelected);
            events.GetEvent <ScanDrivesCompletedEvent>().Subscribe(OnScanDrivesCompleted);

            ImportCommand = new DelegateCommand(OnImport, () => true);
            commands.ImportCommand.RegisterCommand(ImportCommand);

            PrevPageCommand = new DelegateCommand <PageViewModel>(OnPrevPage, CanPrevPage);
            NextPageCommand = new DelegateCommand <PageViewModel>(OnNextPage, page => true);
            RescanCommand   = new DelegateCommand(OnScanDrives, () => !IsScanning);

            RescanCommand.Execute();
        }
예제 #3
0
        /// <summary>
        /// Initializes the <see cref="BDHeroGUI.Components.DiscMenu"/> for use.
        /// </summary>
        /// <param name="observable">
        /// Windows Forms control (typically a <see cref="Form"/>) to listen for <see cref="Form.WndProc"/> events on.
        /// </param>
        /// <param name="detector">
        /// Drive detector.
        /// </param>
        /// <exception cref="InvalidOperationException">Thrown if this method is called more than once.</exception>
        public void Initialize(IWndProcObservable observable, IDriveDetector detector)
        {
            if (_isInitialized)
            {
                throw new InvalidOperationException("DiscMenu has already been initialized");
            }

            observable.WndProcMessage += WndProc;

            _detector = detector;
            _detector.DeviceArrived += OnDeviceArrived;
            _detector.DeviceRemoved += OnDeviceRemoved;

            DropDownOpened += OnDropDownOpened;
            DropDownClosed += OnDropDownClosed;

            Refresh();

            _isInitialized = true;
        }
예제 #4
0
        public FormMain(log4net.ILog logger, IDirectoryLocator directoryLocator, PluginLoader pluginLoader, IController controller, Updater updater, IDriveDetector driveDetector)
        {
            InitializeComponent();

            Load += OnLoad;

            _logger = logger;
            _directoryLocator = directoryLocator;
            _pluginLoader = pluginLoader;
            _controller = controller;
            _updater = updater;
            _driveDetector = driveDetector;

            _progressBarToolTip = new ToolTip();
            _progressBarToolTip.SetToolTip(progressBar, null);

            _taskbarItem = new WindowsTaskbarItemFactory().GetInstance(Handle);

            progressBar.UseCustomColors = true;
            progressBar.GenerateText = percentComplete => string.Format("{0}: {1:0.00}%", _state, percentComplete);

            playlistListView.ItemSelectionChanged += PlaylistListViewOnItemSelectionChanged;
            playlistListView.ShowAllChanged += PlaylistListViewOnShowAllChanged;
            playlistListView.PlaylistReconfigured += PlaylistListViewOnPlaylistReconfigured;

            tracksPanel.PlaylistReconfigured += TracksPanelOnPlaylistReconfigured;

            mediaPanel.SelectedMediaChanged += MediaPanelOnSelectedMediaChanged;
            mediaPanel.Search = ShowMetadataSearchWindow;

            _updater.IsPortable = _directoryLocator.IsPortable;

            var updateObserver = new FormMainUpdateObserver(this, checkForUpdatesToolStripMenuItem, null);
            updateObserver.BeforeInstallUpdate += update => DisableUpdates();
            var currentVersion = AppUtils.AppVersion;
            _updateHelper = new UpdateHelper(_updater, currentVersion);
            _updateHelper.RegisterObserver(updateObserver);
            SystemEvents.SessionEnded += (sender, args) => DisableUpdates();

            FormClosing += OnFormClosing;
        }
예제 #5
0
파일: FormMain.cs 프로젝트: rafntor/bdhero
        public FormMain(ILog logger, LogInitializer logInitializer, IDirectoryLocator directoryLocator, IPreferenceManager preferenceManager,
                        PluginLoader pluginLoader, IPluginRepository pluginRepository, IController controller,
                        IDriveDetector driveDetector, ITaskbarItemFactory taskbarItemFactory, IWindowMenuFactory windowMenuFactory,
                        INetworkStatusMonitor networkStatusMonitor, UpdateClient updateClient, AppConfig appConfig)
        {
            InitializeComponent();

            Load        += OnLoad;
            FormClosing += OnFormClosing;

            _logger               = logger;
            _logInitializer       = logInitializer;
            _directoryLocator     = directoryLocator;
            _preferenceManager    = preferenceManager;
            _pluginLoader         = pluginLoader;
            _pluginRepository     = pluginRepository;
            _controller           = controller;
            _driveDetector        = driveDetector;
            _taskbarItem          = taskbarItemFactory.GetInstance(Handle);
            _windowMenuFactory    = windowMenuFactory;
            _networkStatusMonitor = networkStatusMonitor;
            _updateClient         = updateClient;
            _appConfig            = appConfig;

            progressBar.UseCustomColors = true;
            progressBar.GenerateText    = percentComplete => string.Format("{0}: {1:0.00}%", _state, percentComplete);

            var recentFiles = _preferenceManager.Preferences.RecentFiles;

            if (recentFiles.RememberRecentFiles && recentFiles.RecentBDROMPaths.Any())
            {
                textBoxInput.Text = recentFiles.RecentBDROMPaths.First();
            }

            toolsToolStripMenuItem.Visible      = false;
            debugToolStripMenuItem.Visible      = _appConfig.IsDebugMode;
            updateToolStripMenuItem.Visible     = false;
            toolStripStatusLabelOffline.Visible = false;
        }
예제 #6
0
        /// <summary>
        /// Initializes the <see href="BDHeroGUI.Components.DiscMenu"/> for use.
        /// </summary>
        /// <param name="form">
        /// Windows Forms control (typically a <see href="Form"/>) to listen for <see href="Form.WndProc"/> events on.
        /// </param>
        /// <param name="detector">
        /// Drive detector.
        /// </param>
        /// <exception cref="InvalidOperationException">Thrown if this method is called more than once.</exception>
        public void Initialize(Form form, IDriveDetector detector)
        {
            if (_isInitialized)
            {
                throw new InvalidOperationException("DiscMenu has already been initialized");
            }

            var hook = new WndProcHook(form);

            hook.WndProcMessage += WndProc;

            _detector = detector;
            _detector.DeviceArrived += OnDeviceArrived;
            _detector.DeviceRemoved += OnDeviceRemoved;

            DropDownOpened += OnDropDownOpened;
            DropDownClosed += OnDropDownClosed;

            Refresh();

            _isInitialized = true;
        }
예제 #7
0
파일: FormMain.cs 프로젝트: hessonsu/bdhero
        public FormMain(ILog logger, IDirectoryLocator directoryLocator, IPreferenceManager preferenceManager,
                        PluginLoader pluginLoader, IPluginRepository pluginRepository, IController controller,
                        IDriveDetector driveDetector, ITaskbarItemFactory taskbarItemFactory,
                        INetworkStatusMonitor networkStatusMonitor, Updater updater)
        {
            InitializeComponent();

            Load += OnLoad;

            _logger               = logger;
            _directoryLocator     = directoryLocator;
            _preferenceManager    = preferenceManager;
            _pluginLoader         = pluginLoader;
            _pluginRepository     = pluginRepository;
            _controller           = controller;
            _driveDetector        = driveDetector;
            _taskbarItem          = taskbarItemFactory.GetInstance(Handle);
            _networkStatusMonitor = networkStatusMonitor;

            _updater            = updater;
            _updater.IsPortable = _directoryLocator.IsPortable;
            _updateHelper       = new UpdateHelper(_updater, AppUtils.AppVersion)
            {
                AllowDownload = false
            };

            _progressBarToolTip = new ToolTip();
            _progressBarToolTip.SetToolTip(progressBar, null);

            progressBar.UseCustomColors = true;
            progressBar.GenerateText    = percentComplete => string.Format("{0}: {1:0.00}%", _state, percentComplete);

            playlistListView.ItemSelectionChanged += PlaylistListViewOnItemSelectionChanged;
            playlistListView.ShowAllChanged       += PlaylistListViewOnShowAllChanged;
            playlistListView.PlaylistReconfigured += PlaylistListViewOnPlaylistReconfigured;

            tracksPanel.PlaylistReconfigured += TracksPanelOnPlaylistReconfigured;

            mediaPanel.SelectedMediaChanged += MediaPanelOnSelectedMediaChanged;
            mediaPanel.Search = ShowMetadataSearchWindow;

            var updateObserver = new FormMainUpdateObserver(this,
                                                            checkForUpdatesToolStripMenuItem,
                                                            updateToolStripMenuItem,
                                                            downloadUpdateToolStripMenuItem);

            updateObserver.BeforeInstallUpdate += update => DisableUpdates();
            SystemEvents.SessionEnded          += (sender, args) => DisableUpdates();
            _updateHelper.RegisterObserver(updateObserver);

            FormClosing += OnFormClosing;

            var recentFiles = _preferenceManager.Preferences.RecentFiles;

            if (recentFiles.RememberRecentFiles && recentFiles.RecentBDROMPaths.Any())
            {
                textBoxInput.Text = recentFiles.RecentBDROMPaths.First();
            }

            InitSystemMenu();
        }
 public SimplePanelProcessingManager(Form1 handle,IDriveDetector DriveDetector,ISettingsRepository SettingsRepository)
 {
     this.handle = handle;
     this.DriveDetector=DriveDetector;
     this.SettingsRepository = SettingsRepository;
 }
예제 #9
0
파일: FormMain.cs 프로젝트: JGTM2016/bdhero
        public FormMain(ILog logger, IDirectoryLocator directoryLocator, IPreferenceManager preferenceManager,
                        PluginLoader pluginLoader, IPluginRepository pluginRepository, IController controller,
                        IDriveDetector driveDetector, ITaskbarItemFactory taskbarItemFactory,
                        INetworkStatusMonitor networkStatusMonitor, Updater updater)
        {
            InitializeComponent();

            Load += OnLoad;

            _logger = logger;
            _directoryLocator = directoryLocator;
            _preferenceManager = preferenceManager;
            _pluginLoader = pluginLoader;
            _pluginRepository = pluginRepository;
            _controller = controller;
            _driveDetector = driveDetector;
            _taskbarItem = taskbarItemFactory.GetInstance(Handle);
            _networkStatusMonitor = networkStatusMonitor;

            _updater = updater;
            _updater.IsPortable = _directoryLocator.IsPortable;
            _updateHelper = new UpdateHelper(_updater, AppUtils.AppVersion) { AllowDownload = false };

            _progressBarToolTip = new ToolTip();
            _progressBarToolTip.SetToolTip(progressBar, null);

            progressBar.UseCustomColors = true;
            progressBar.GenerateText = percentComplete => string.Format("{0}: {1:0.00}%", _state, percentComplete);

            playlistListView.ItemSelectionChanged += PlaylistListViewOnItemSelectionChanged;
            playlistListView.ShowAllChanged += PlaylistListViewOnShowAllChanged;
            playlistListView.PlaylistReconfigured += PlaylistListViewOnPlaylistReconfigured;

            tracksPanel.PlaylistReconfigured += TracksPanelOnPlaylistReconfigured;

            mediaPanel.SelectedMediaChanged += MediaPanelOnSelectedMediaChanged;
            mediaPanel.Search = ShowMetadataSearchWindow;

            var updateObserver = new FormMainUpdateObserver(this,
                                                            checkForUpdatesToolStripMenuItem,
                                                            updateToolStripMenuItem,
                                                            downloadUpdateToolStripMenuItem);
            updateObserver.BeforeInstallUpdate += update => DisableUpdates();
            SystemEvents.SessionEnded += (sender, args) => DisableUpdates();
            _updateHelper.RegisterObserver(updateObserver);

            FormClosing += OnFormClosing;

            var recentFiles = _preferenceManager.Preferences.RecentFiles;
            if (recentFiles.RememberRecentFiles && recentFiles.RecentBDROMPaths.Any())
            {
                textBoxInput.Text = recentFiles.RecentBDROMPaths.First();
            }

            InitSystemMenu();
        }
예제 #10
0
        /// <summary>
        /// Initializes the <see cref="BDHeroGUI.Components.DiscMenu"/> for use.
        /// </summary>
        /// <param name="observable">
        /// Windows Forms control (typically a <see cref="Form"/>) to listen for <see cref="Form.WndProc"/> events on.
        /// </param>
        /// <param name="detector">
        /// Drive detector.
        /// </param>
        /// <exception cref="InvalidOperationException">Thrown if this method is called more than once.</exception>
        public void Initialize(IWndProcObservable observable, IDriveDetector detector)
        {
            if (_isInitialized)
            {
                throw new InvalidOperationException("DiscMenu has already been initialized");
            }

            observable.WndProcMessage += WndProc;

            _detector = detector;
            _detector.DeviceArrived += OnDeviceArrived;
            _detector.DeviceRemoved += OnDeviceRemoved;

            DropDownOpened += OnDropDownOpened;
            DropDownClosed += OnDropDownClosed;

            Refresh();

            _isInitialized = true;
        }