--- trunk/RomCheater/RomCheaterConfigDialog.cs 2012/05/09 16:35:07 64 +++ trunk/RomCheater/RomCheaterConfigDialog.cs 2012/05/09 19:41:06 86 @@ -7,21 +7,74 @@ using System.Linq; using System.Text; using System.Windows.Forms; using RomCheater.Logging; +using RomCheater.PluginFramework.Core; +using RomCheater.PluginFramework.Interfaces; namespace RomCheater { public partial class RomCheaterConfigDialog : Form { + private PluginLoader loader = null; public RomCheaterConfigDialog() { InitializeComponent(); } + public RomCheaterConfigDialog(PluginLoader loader) : this() + { + this.loader = loader; + } private void RomCheaterConfigDialog_Load(object sender, EventArgs e) { logger.Info.WriteLine("Loading user settings..."); load_loggerflags(); + setup_plugin_entries(); logger.Info.WriteLine("Loaded user settings."); } + + private void setup_plugin_entries() + { + foreach (IConfigPlugin c in loader.LoadedConfigPlugins) { comboConfigPlugins.Items.Add(string.Format("{0} [{1}]",c.Name, c.Id.ToString())); } + foreach (IInputPlugin c in loader.LoadedInputPlugins) { comboInputPlugins.Items.Add(string.Format("{0} [{1}]", c.Name, c.Id.ToString())); } + foreach (IWindowPlugin c in loader.LoadedWindowPlugins) { comboWindowPlugins.Items.Add(string.Format("{0} [{1}]", c.Name, c.Id.ToString())); } + if (loader.LoadedConfigPlugins.Count == 0) { comboConfigPlugins.Items.Add(string.Format("{0} [{1}]", "None", new Guid().ToString())); } + if (loader.LoadedInputPlugins.Count == 0) { comboInputPlugins.Items.Add(string.Format("{0} [{1}]", "None", new Guid().ToString())); } + if (loader.LoadedWindowPlugins.Count == 0) { comboWindowPlugins.Items.Add(string.Format("{0} [{1}]", "None", new Guid().ToString())); } + + comboConfigPlugins.SelectedIndex = 0; + comboInputPlugins.SelectedIndex = 0; + comboWindowPlugins.SelectedIndex = 0; + + // select each plugin base on the last plugin + foreach (string item in comboConfigPlugins.Items) + { + if (item == RomCheater.Properties.Settings.Default.LastConfigPlugin) + { + logger.Debug.WriteLine(" loading LastConfigPlugin: {0}", RomCheater.Properties.Settings.Default.LastConfigPlugin); + comboConfigPlugins.SelectedIndex = comboConfigPlugins.Items.IndexOf(item); + break; + } + } + foreach (string item in comboInputPlugins.Items) + { + if (item == RomCheater.Properties.Settings.Default.LastInputPlugin) + { + logger.Debug.WriteLine(" loading LastInputPlugin: {0}", RomCheater.Properties.Settings.Default.LastInputPlugin); + comboInputPlugins.SelectedIndex = comboInputPlugins.Items.IndexOf(item); + break; + } + } + foreach (string item in comboWindowPlugins.Items) + { + if (item == RomCheater.Properties.Settings.Default.LastWindowPlugin) + { + logger.Debug.WriteLine(" loading LastWindowPlugin: {0}", RomCheater.Properties.Settings.Default.LastWindowPlugin); + comboWindowPlugins.SelectedIndex = comboWindowPlugins.Items.IndexOf(item); + break; + } + } + + } + private void load_loggerflags() { logger.Debug.WriteLine("Loading logger flags..."); @@ -62,14 +115,25 @@ namespace RomCheater private void btnCancel_Click(object sender, EventArgs e) { this.Close(); + object c; } private void SaveSettings() { SaveLoggingFlags(); + SaveSelectedPlugins(); RomCheater.Properties.Settings.Default.Save(); Logging.Properties.Settings.Default.Save(); logger.Info.WriteLine("Saved user settings."); } + private void SaveSelectedPlugins() + { + logger.Debug.WriteLine(" Setting LastConfigPlugin to {0}", comboConfigPlugins.Items[comboConfigPlugins.SelectedIndex].ToString()); + RomCheater.Properties.Settings.Default.LastConfigPlugin = comboConfigPlugins.Items[comboConfigPlugins.SelectedIndex].ToString(); + logger.Debug.WriteLine(" Setting LastInputPlugin to {0}", comboInputPlugins.Items[comboConfigPlugins.SelectedIndex].ToString()); + RomCheater.Properties.Settings.Default.LastInputPlugin = comboInputPlugins.Items[comboConfigPlugins.SelectedIndex].ToString(); + logger.Debug.WriteLine(" Setting LastWindowPlugin to {0}", comboWindowPlugins.Items[comboConfigPlugins.SelectedIndex].ToString()); + RomCheater.Properties.Settings.Default.LastWindowPlugin = comboWindowPlugins.Items[comboConfigPlugins.SelectedIndex].ToString(); + } private void SaveLoggingFlags() { logger.Debug.WriteLine("Saving Logger flags..."); |