Exemple #1
0
 private void InitComposition()
 {
     _compositor                = ElementCompositionPreview.GetElementVisual(this).Compositor;
     _refreshBtnVisual          = RefreshBtn.GetVisual();
     _titleContentVisual        = TitleGridContent.GetVisual();
     _titleBarPlaceholderVisual = TitleBarBackgroundPlaceholder.GetVisual();
 }
Exemple #2
0
 private void InitComposition()
 {
     _compositor       = ElementCompositionPreview.GetElementVisual(this).Compositor;
     _drawerVisual     = DrawerControl.GetVisual();
     _drawerMaskVisual = DrawerMaskBorder.GetVisual();
     _titleGridVisual  = TitleGrid.GetVisual();
     _refreshBtnVisual = RefreshBtn.GetVisual();
     _titleStackVisual = TitleStack.GetVisual();
 }
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == (Keys.D | Keys.Control))
            {
                RefreshBtn.PerformClick();
                return(true);
            }

            if (keyData == (Keys.L | Keys.Control))
            {
                _RangeSelector.BtnLoad.PerformClick();
                return(true);
            }

            return(base.ProcessCmdKey(ref msg, keyData));
        }
Exemple #4
0
 private void ChangeSearchBarVisibilityAndFocus()
 {
     SearchTextBox.Visibility = SearchTextBox.Visibility == Visibility.Visible ? Visibility.Hidden : Visibility.Visible;
     if (SearchTextBox.Visibility == Visibility.Visible)
     {
         ProcessWindowManager.Instance.ForceFocus();
         ProcessWindowManager.Instance.BringOurWindowForward();
         SearchTextBox.Focus();
     }
     else
     {
         SearchTextBox.Text = "";
         RefreshBtn.Focus();
         SearchTextBox.Visibility = Visibility.Hidden;
         ProcessWindowManager.Instance.ReleaseFocus();
         ProcessWindowManager.Instance.BringWindowForward();
     }
 }
Exemple #5
0
        public ProjectsTabControl()
        {
            ViewModel = WpfFactory.CreateViewModel <ProjectsTabControlModel>();
            ViewModel.OnAssetsUpdate += () =>
            {
                Dispatcher.Invoke(() =>
                {
                    RenderFiles(ViewModel.SelectedProject);
                });
            };

            InitializeComponent();

            this.WhenActivated(d =>
            {
                RefreshBtn
                .Events()
                .Click
                .Select(e => Unit.Default)
                .InvokeCommand(ViewModel.RefreshCommand)
                .DisposeWith(d);

                AddProjectBtn
                .Events()
                .Click
                .Select(e => Unit.Default)
                .InvokeCommand(ViewModel.AddProjectCommand)
                .DisposeWith(d);

                StageBtn
                .Events()
                .Click
                .Select(e => Unit.Default)
                .InvokeCommand(ViewModel.StageCommand)
                .DisposeWith(d);

                PackageBtn
                .Events()
                .Click
                .Select(e => Unit.Default)
                .InvokeCommand(ViewModel.PackageCommand)
                .DisposeWith(d);

                CopyModBtn
                .Events()
                .Click
                .Select(e => Unit.Default)
                .InvokeCommand(ViewModel.CopyModCommand)
                .DisposeWith(d);

                LaunchGameBtn
                .Events()
                .Click
                .Select(e => Unit.Default)
                .InvokeCommand(ViewModel.StartGameCommand)
                .DisposeWith(d);

                DevExpressBtn
                .Events()
                .Click
                .Select(e => Unit.Default)
                .InvokeCommand(ViewModel.DevExpressCommand)
                .DisposeWith(d);

                /*GameVersionSelectorCombo
                 *  .Events()
                 *  .SelectionChanged
                 *  .Select(e => e.Source as ComboBox)
                 *  .Select(c => c.SelectedIndex)
                 *  .InvokeCommand(ViewModel.SetGameVersionCommand)
                 *  .DisposeWith(d);*/

                /*ViewModel
                 *  .WhenAnyValue(vm => vm.SelectedGame)
                 *  .Select(gameVersion => (int)gameVersion)
                 *  .BindTo(this, v => v.GameVersionSelectorCombo.SelectedIndex)
                 *  .DisposeWith(d);*/

                ProjectsList
                .Events()
                .SelectionChanged
                .Select(e => ((ListItem <Guid, string>?)ProjectsList.SelectedItem)?.Key)
                .WhereNotNull()
                .BindTo(ViewModel, vm => vm.SelectedProject)
                .DisposeWith(d);

                ViewModel
                .WhenAnyValue(vm => vm.SelectedProject)
                .WhereNotNull()
                .Where(v => v != Guid.Empty)
                .Subscribe(RenderFiles)
                .DisposeWith(d);

                ViewModel
                .WhenAnyValue(vm => vm.ProjectList)
                .Select(list => list
                        .ToList()
                        .Select(project => new ListItem <Guid, string>(project.Id, project.Name)))
                .Subscribe(items => {
                    ProjectsList.Dispatcher.InvokeAsync(() => {
                        ProjectsList.ItemsSource = items;

                        if (items.Any() && ViewModel.SelectedProject == Guid.Empty)
                        {
                            ProjectsList.SelectedIndex = 0;
                        }
                    });
                })
                .DisposeWith(d);

                TreeViewAddContextBtn
                .Events()
                .Click
                .Select(e => Unit.Default)
                .InvokeCommand(ViewModel.AddProjectFilesCommand)
                .DisposeWith(d);

                TreeViewDeleteContextBtn
                .Events()
                .Click
                .Select(e =>
                {
                    var selectedItems = FilesTreeView.SelectedItems
                                        .Cast <FileTreeViewNode>()
                                        .ToList();

                    return(selectedItems
                           .Select(item => item.FileId)
                           .ToList() as IReadOnlyCollection <Guid>);
                })
                .InvokeCommand(ViewModel.DeleteAssetsCommand)
                .DisposeWith(d);

                ListBoxDeleteContextBtn
                .Events()
                .Click
                .Select(e => Unit.Default)
                .InvokeCommand(ViewModel.DeleteProjectCommand)
                .DisposeWith(d);

                ListBoxEditContextBtn
                .Events()
                .Click
                .Select(e => Unit.Default)
                .InvokeCommand(ViewModel.EditProjectCommand)
                .DisposeWith(d);
            });

            FilesTreeView.SelectedItemChanged += FilesTreeView_SelectedItemChanged;
            FilesTreeView.Focusable            = true;
        }
Exemple #6
0
        public InstallModsTabControl()
        {
            ViewModel = WpfFactory.CreateViewModel <InstallModsTabControlModel>();

            InitializeComponent();

            this.WhenActivated(d => {
                RefreshBtn
                .Events()
                .Click
                .Select(_ => Unit.Default)
                .InvokeCommand(ViewModel !.RefreshCommand)
                .DisposeWith(d);

                ClearModsBtn
                .Events()
                .Click
                .Select(_ => Unit.Default)
                .InvokeCommand(ViewModel !.ClearModsCommand)
                .DisposeWith(d);

                OpenFolderBtn
                .Events()
                .Click
                .Select(_ => Unit.Default)
                .InvokeCommand(ViewModel !.OpenModsFolderCommand)
                .DisposeWith(d);

                ViewModel
                .WhenAnyValue(vm => vm.SecondsTillRefresh)
                .ObserveOn(Dispatcher)
                .Select(seconds => seconds > 0 ? $"Refresh ({seconds})" : "Refresh")
                .BindTo(this, v => v.RefreshBtn.Header)
                .DisposeWith(d);

                ViewModel
                .WhenAnyValue(vm => vm.SecondsTillRefresh)
                .ObserveOn(Dispatcher)
                .Select(seconds => seconds == 0)
                .BindTo(this, v => v.RefreshBtn.IsEnabled)
                .DisposeWith(d);

                ViewModel
                .WhenAnyValue(vm => vm.ModList)
                .ObserveOn(Dispatcher)
                .Subscribe(mods => {
                    var modSegments = mods
                                      .Select(mod => {
                        var modSegment = WpfFactory.CreateControl <ModSegmentControl>();
                        modSegment.SetModDetails(mod);
                        ViewModel.ModsCleared += modSegment.UpdateState;

                        return(modSegment);
                    });

                    ModListPanel.Dispatcher.Invoke(() =>
                    {
                        ModListPanel.Children.Clear();

                        foreach (var modSegment in modSegments)
                        {
                            ModListPanel.Children.Add(modSegment);
                        }
                    });
                })
                .DisposeWith(d);
            });
        }
Exemple #7
0
 private void CloningTool_Load(object sender, EventArgs e)
 {
     RefreshBtn.PerformClick();
     ItemNumRd.Checked = true;
 }