private void ConfirmGameDetection(IGameDefault g, Border border) { border.Dispatcher.BeginInvoke((Action)(() => { (_gameDefaults as IList <IGameDefault>).Remove(g); if (_gameDefaults.Count() > 0) { var parentStkPanel = border.Parent as StackPanel; Border newBorder = new Border() { Style = mainGrid.TryFindResource("GameDetectionBorderStyle") as Style, Child = new Button() { Style = mainGrid.TryFindResource("GameAdditionButtonTemplate") as Style } }; if (parentStkPanel.Children.Count < Defined.MAX_GAME_DETECTORS_IN_COLUMN) { parentStkPanel.Children.Add(newBorder); } else { StackPanel newStkPanel = new StackPanel() { Style = mainGrid.TryFindResource("GameDetectorsStackPanelStyle") as Style }; newStkPanel.Children.Add(newBorder); gameDetectorsParent.Children.Add(newStkPanel); } } EMM_GameDetector currDetectorControl = new EMM_GameDetector(g); _gameSeachers.Add(new GameSearcher(g, currDetectorControl, _games)); currDetectorControl.Searcher = _gameSeachers.LastOrDefault(); currDetectorControl.Searcher.StartSearch(); border.Child = currDetectorControl; border.Background = Defined.Colors.AlternateBackground; if (_gameSeachers.Count == 1) { thumbnail.Visibility = Visibility.Visible; } }), DispatcherPriority.Background); }
public GameSearcher(IGameDefault def, EMM_GameDetector control, List <Game> games) { GameDefault = def; GuiControl = control; ConfirmedGames = games; }