Exemplo n.º 1
0
 /// <summary>
 /// Activates the selected mod on middle click
 /// </summary>
 private void ListViewItem_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     if (e.ChangedButton == System.Windows.Input.MouseButton.Middle && e.ButtonState == System.Windows.Input.MouseButtonState.Released)
     {
         if ((sender as ListViewItem) != null)
         {
             InstalledModViewModel viewModel = (sender as ListViewItem).DataContext as InstalledModViewModel;
             ViewModel.ToggleActivateMod(viewModel.InstallInfo.ModID);
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Re-orders active mods after Drag/Drop has been "dropped"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lstMods_Drop(object sender, DragEventArgs e)
        {
            try
            {
                ListViewItem targetItem = GetListViewItemFromObject(e.OriginalSource);

                if (targetItem == null)
                {
                    return;
                }

                Point  mousePos   = e.GetPosition(targetItem);
                double halfHeight = targetItem.ActualHeight / 2.0;

                InstalledModViewModel target      = targetItem.DataContext as InstalledModViewModel;
                InstalledModViewModel droppedData = e.Data.GetData(typeof(InstalledModViewModel)) as InstalledModViewModel;

                int removedIdx = lstMods.Items.IndexOf(droppedData);
                int targetIdx  = lstMods.Items.IndexOf(target);

                if (mousePos.Y >= halfHeight && removedIdx > targetIdx && (targetIdx + 1) < lstMods.Items.Count)
                {
                    targetIdx++;
                }
                else if (mousePos.Y < halfHeight && removedIdx < targetIdx && (targetIdx - 1) >= 0)
                {
                    targetIdx--;
                }

                if (targetIdx == removedIdx)
                {
                    return; // no movement needed
                }

                int delta = targetIdx - removedIdx;

                ViewModel.ReorderProfileItem(droppedData, delta);
            }
            catch (System.Exception ex)
            {
                Logger.Warn("Failed to drag/drop mods");
                Logger.Error(ex);
            }
            finally
            {
                IsDragging = false;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Opens the configure mod window for selected mod (if mod is active)
        /// </summary>
        private void ListViewItem_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            if ((sender as ListViewItem) != null)
            {
                InstalledModViewModel viewModel = (sender as ListViewItem).DataContext as InstalledModViewModel;

                if (viewModel.IsActive)
                {
                    ViewModel.ShowConfigureModWindow(viewModel);
                }
                else
                {
                    Sys.Message(new WMessage("Mod is not active. Only activated mods can be configured.", true));
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Opens the configure mod window for selected mod (if mod is active)
        /// </summary>
        private void ListViewItem_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            if ((sender as ListViewItem) != null)
            {
                InstalledModViewModel viewModel = (sender as ListViewItem).DataContext as InstalledModViewModel;

                if (viewModel.IsActive)
                {
                    ViewModel.ShowConfigureModWindow(viewModel);
                }
                else
                {
                    Sys.Message(new WMessage(ResourceHelper.Get(StringKey.ModNotActiveOnlyActivatedModsCanBeConfigured), true));
                }
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Updates the border thickness of a ListViewItem during the drag and drop
        /// to show visual indicator of where the dragged item will be dropped
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UpdateDragDropIndicatorLine(object sender, DragEventArgs e)
        {
            ListViewItem item = GetListViewItemFromObject(sender);

            if (item == null)
            {
                return;
            }

            Point  mousePos   = e.GetPosition(item);
            double halfHeight = item.ActualHeight / 2.0;


            InstalledModViewModel dataToDrop = e.Data.GetData(typeof(InstalledModViewModel)) as InstalledModViewModel;
            InstalledModViewModel hoverOver  = (item.DataContext as InstalledModViewModel);

            // check if dragging over self - don't show border in this case
            int removedIdx = lstMods.Items.IndexOf(dataToDrop);
            int targetIdx  = lstMods.Items.IndexOf(hoverOver);

            if (mousePos.Y >= halfHeight && removedIdx > targetIdx && (targetIdx + 1) < lstMods.Items.Count)
            {
                targetIdx++;
            }
            else if (mousePos.Y < halfHeight && removedIdx < targetIdx && (targetIdx - 1) >= 0)
            {
                targetIdx--;
            }

            if (dataToDrop == hoverOver || targetIdx == removedIdx)
            {
                hoverOver.BorderThickness = new Thickness(0);
                return;
            }


            if (mousePos.Y < halfHeight)
            {
                hoverOver.BorderThickness = new Thickness(0, 2, 0, 0);
            }
            else
            {
                hoverOver.BorderThickness = new Thickness(0, 0, 0, 2);
            }
        }
Exemplo n.º 6
0
        private void btnUninstall_Click(object sender, RoutedEventArgs e)
        {
            if (!IsModSelected())
            {
                return;
            }

            InstalledModViewModel selected = (lstMods.SelectedItem as InstalledModViewModel);

            MessageDialogWindow messageDialog = new MessageDialogWindow("Uninstall Warning", $"Are you sure you want to delete {selected.Name}?", MessageBoxButton.YesNo, MessageBoxImage.Warning);

            messageDialog.ShowDialog();

            if (messageDialog.ViewModel.Result == MessageBoxResult.Yes)
            {
                ViewModel.UninstallMod(selected);
            }
        }
Exemplo n.º 7
0
        private void btnUninstall_Click(object sender, RoutedEventArgs e)
        {
            if (!IsModSelected())
            {
                return;
            }

            InstalledModViewModel selected = (lstMods.SelectedItem as InstalledModViewModel);

            MessageDialogWindow messageDialog = new MessageDialogWindow(ResourceHelper.Get(StringKey.UninstallWarning), $"{ResourceHelper.Get(StringKey.AreYouSureYouWantToDelete)} {selected.Name}?", MessageBoxButton.YesNo, MessageBoxImage.Warning);

            messageDialog.ShowDialog();

            if (messageDialog.ViewModel.Result == MessageBoxResult.Yes)
            {
                ViewModel.UninstallMod(selected);
            }
        }