113 lines
3.6 KiB
C#
113 lines
3.6 KiB
C#
/*
|
|
Copyright 2020 Katy Coe - http://www.djkaty.com - https://github.com/djkaty
|
|
|
|
All rights reserved.
|
|
*/
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
using System.Text;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using System.Windows.Documents;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Shapes;
|
|
|
|
namespace Il2CppInspector.GUI
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for PluginManagerDialog.xaml
|
|
/// </summary>
|
|
public partial class PluginManagerDialog : Window
|
|
{
|
|
public PluginManagerDialog() {
|
|
InitializeComponent();
|
|
DataContext = PluginManager.AsInstance;
|
|
|
|
// Set default re-order button state
|
|
lstPlugins_SelectionChanged(null, null);
|
|
}
|
|
|
|
private void okButton_Click(object sender, RoutedEventArgs e) {
|
|
DialogResult = true;
|
|
}
|
|
|
|
// Reload list of plugins and reset settings
|
|
private void refreshButton_Click(object sender, RoutedEventArgs e) {
|
|
PluginManager.Reload();
|
|
}
|
|
|
|
// Open configuration for specific plugin
|
|
private void btnConfig_Click(object sender, RoutedEventArgs e) {
|
|
var plugin = (ManagedPlugin) ((Button) sender).DataContext;
|
|
|
|
var configDlg = new PluginConfigurationDialog(plugin.Plugin);
|
|
configDlg.Owner = this;
|
|
configDlg.ShowDialog();
|
|
}
|
|
|
|
// Re-ordering controls
|
|
private void lstPlugins_SelectionChanged(object sender, SelectionChangedEventArgs e) {
|
|
var index = lstPlugins.SelectedIndex;
|
|
|
|
btnTop.IsEnabled = btnUp.IsEnabled = index > 0;
|
|
btnBottom.IsEnabled = btnDown.IsEnabled = index > -1 && index < lstPlugins.Items.Count - 1;
|
|
}
|
|
|
|
private void btnUp_Click(object sender, RoutedEventArgs e) {
|
|
var plugins = PluginManager.AsInstance.ManagedPlugins;
|
|
|
|
var index = lstPlugins.SelectedIndex;
|
|
var item = (ManagedPlugin) lstPlugins.SelectedItem;
|
|
|
|
plugins.Remove(item);
|
|
plugins.Insert(index - 1, item);
|
|
lstPlugins.SelectedIndex = index - 1;
|
|
}
|
|
|
|
private void btnDown_Click(object sender, RoutedEventArgs e) {
|
|
var plugins = PluginManager.AsInstance.ManagedPlugins;
|
|
|
|
var index = lstPlugins.SelectedIndex;
|
|
var item = (ManagedPlugin) lstPlugins.SelectedItem;
|
|
|
|
plugins.Remove(item);
|
|
plugins.Insert(index + 1, item);
|
|
lstPlugins.SelectedIndex = index + 1;
|
|
}
|
|
|
|
private void btnTop_Click(object sender, RoutedEventArgs e) {
|
|
var plugins = PluginManager.AsInstance.ManagedPlugins;
|
|
|
|
var index = lstPlugins.SelectedIndex;
|
|
var item = (ManagedPlugin) lstPlugins.SelectedItem;
|
|
|
|
plugins.Remove(item);
|
|
plugins.Insert(0, item);
|
|
lstPlugins.SelectedIndex = 0;
|
|
}
|
|
|
|
private void btnBottom_Click(object sender, RoutedEventArgs e) {
|
|
var plugins = PluginManager.AsInstance.ManagedPlugins;
|
|
|
|
var index = lstPlugins.SelectedIndex;
|
|
var item = (ManagedPlugin) lstPlugins.SelectedItem;
|
|
|
|
plugins.Remove(item);
|
|
plugins.Add(item);
|
|
lstPlugins.SelectedIndex = plugins.Count - 1;
|
|
}
|
|
|
|
/// Get plugins button
|
|
private void getPluginsButton_Click(object sender, RoutedEventArgs e) {
|
|
Process.Start(new ProcessStartInfo { FileName = @"https://github.com/djkaty/Il2CppInspectorPlugins", UseShellExecute = true });
|
|
}
|
|
|
|
}
|
|
}
|