public LaunchProgress(Window ownerWnd, MetaGameType gameType, IEnumerable<MetaAddon> addOns)
        {
            Owner = ownerWnd;
            InitializeComponent();

            Loaded += (sender, args) =>
            {
                Activate();
                var ctx = new LaunchProgressViewModel(gameType, addOns);
                ctx.Dispatcher = Dispatcher;
                DataContext = ctx;
                ctx.OnRequestClose += (snd, evt) =>
                {
                    InstallSuccessfull = true;
                    OK_Click(snd, evt);
                };
            };
        }
        public LaunchProgressViewModel(MetaGameType gameType, IEnumerable<MetaAddon> addOns)
        {
            this.gameType = gameType;
            this.addOns = addOns;

            UpperProgressValue = UpperProgressLimit = 0;
            LowerProgressValue = LowerProgressLimit = 0;

            if (TorrentUpdater.CurrentState() != TorrentState.Seeding && TorrentUpdater.CurrentState() != TorrentState.Stopped)
            {
                UpperProgressValue = 0;
                UpperProgressLimit = 100;
                Closeable = true;

                TorrentUpdater.StatusCallbacks += TorrentStatusUpdate;
            }
            else
                GetInstallersMeta();
        }