/[RomCheater]/trunk/RomCheater.RVAScratchPad/Form1.cs
ViewVC logotype

Diff of /trunk/RomCheater.RVAScratchPad/Form1.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 708 by william, Tue Jun 18 07:23:04 2013 UTC revision 724 by william, Tue Jun 18 20:22:08 2013 UTC
# Line 9  using RomCheater.Logging; Line 9  using RomCheater.Logging;
9  using RomCheater.Docking;  using RomCheater.Docking;
10  using WeifenLuo.WinFormsUI.Docking;  using WeifenLuo.WinFormsUI.Docking;
11  using System.IO;  using System.IO;
12    using RomCheater.PluginFramework.Core;
13    using RomCheater.Core;
14    using RomCheater.UserSettingsSupport;
15    
16  namespace RomCheater.RVAScratchPad  namespace RomCheater.RVAScratchPad
17  {  {
18      public partial class Form1 : Form      public partial class Form1 : Form
19      {      {
20            private SettingSubscriber SettingsSubscriber = null;
21          private bool m_bSaveLayout = true;          private bool m_bSaveLayout = true;
22            PluginLoader loader = null;
23            IConfigPlugin ConfigPlugin = null;
24    
25            IUserControlPlugin RVACalcPlugin = null;
26            IUserControlPlugin ScratchPadPlugin = null;
27    
28          private DeserializeDockContent m_deserializeDockContent;          private DeserializeDockContent m_deserializeDockContent;
29          private FloatingLogWindow m_LogWindow = new FloatingLogWindow();          private FloatingLogWindow m_LogWindow = new FloatingLogWindow();
30          private FloatingWebBrowser m_wb = new FloatingWebBrowser();          private FloatingWebBrowser m_wb = new FloatingWebBrowser();
# Line 32  namespace RomCheater.RVAScratchPad Line 42  namespace RomCheater.RVAScratchPad
42          public Form1(bool no_console_redirect)          public Form1(bool no_console_redirect)
43          {          {
44              InitializeComponent();              InitializeComponent();
45                SettingsSubscriber = new SettingSubscriber();
46                SettingsSubscriber.AddSubscriber(this, RomCheater.Properties.Settings.Default);              
47              load_loggerflags();              load_loggerflags();
48              //SetupDocks();              SetupDocks();
49              LoggerInstance = m_LogWindow.Logwriter;              LoggerInstance = m_LogWindow.Logwriter;
50              LoggerInstance.CreateNewLog(false);              LoggerInstance.CreateNewLog(false);
51              logger.ForceLog.Info.WriteLine("LoggingFlags = 0x{0:x4} ({1})", logger.GetLoggingFlags().Value, logger.GetLoggingFlags().Name);              logger.ForceLog.Info.WriteLine("LoggingFlags = 0x{0:x4} ({1})", logger.GetLoggingFlags().Value, logger.GetLoggingFlags().Name);
# Line 52  namespace RomCheater.RVAScratchPad Line 64  namespace RomCheater.RVAScratchPad
64          private void load_plugins_silent() { load_plugins(true); }          private void load_plugins_silent() { load_plugins(true); }
65          private void load_plugins(bool silent)          private void load_plugins(bool silent)
66          {          {
67                loader = new PluginLoader();
68                loader.LoadPlugins(silent);
69    
70                var LastConfigPlugin = SettingsSubscriber.GetValue("LastConfigPlugin").ToString();
71                if (LastConfigPlugin != null)
72                {
73                    ConfigPlugin = loader.GetConfigPlugin(LastConfigPlugin.ToString());
74                }
75                else
76                {
77                    var config = PluginCollection.GetPluginByName(PluginNames.GenericConfig);
78                    ConfigPlugin = loader.GetPluginByGuid<IConfigPlugin>(config.ID.ToString());
79                }
80    
81                SettingsSubscriber.SetValue("LastConfigPlugin", ConfigPlugin.ToString());
82    
83                var scratchpad = PluginCollection.GetPluginByName(PluginNames.ScratchPadPlugin);
84                var rvacalc = PluginCollection.GetPluginByName(PluginNames.RVACalculatorPlugin);            
85                ScratchPadPlugin = loader.GetPluginByGuid<IUserControlPlugin>(scratchpad.ID.ToString());
86                RVACalcPlugin = loader.GetPluginByGuid<IUserControlPlugin>(rvacalc.ID.ToString());
87          }          }
88    
89    
90    
91          #region Dock Support          #region Dock Support
         //void AddDockToWindowList(object sender, EventArgs e)  
         //{  
         //    DockContent dc;  
         //    TypeBinder.Bind(sender, out dc);  
         //    ToolStripMenuItem tsmi = new ToolStripMenuItem(dc.Text);  
         //    tsmi.Name = dc.Name;  
         //    tsmi.Tag = dc;  
         //    tsmi.Click += new EventHandler(tsmi_Click);  
         //    mnuWindows.DropDownItems.Add(tsmi);  
         //}  
         //void tsmi_Click(object sender, EventArgs e)  
         //{  
         //    ToolStripMenuItem tsmi;  
         //    TypeBinder.Bind(sender, out tsmi);  
         //    DockContent dc;  
         //    TypeBinder.Bind(tsmi.Tag, out dc);  
         //    dc.Activate();  
         //}  
         //void RemoveDockFromWindowList(object sender, FormClosedEventArgs e)  
         //{  
         //    DockContent dc;  
         //    TypeBinder.Bind(sender, out dc);  
         //    mnuWindows.DropDownItems.RemoveByKey(dc.Name);  
         //}  
92          private IDockContent GetContentFromPersistString(string persistString)          private IDockContent GetContentFromPersistString(string persistString)
93          {          {
94              if (persistString == typeof(FloatingLogWindow).ToString()) { return m_LogWindow; }              if (persistString == typeof(FloatingLogWindow).ToString()) { return m_LogWindow; }
95              if (persistString == typeof(FloatingWebBrowser).ToString()) { return m_wb; }              if (persistString == typeof(FloatingWebBrowser).ToString()) { return m_wb; }
96              else { return null; }              if (RVACalcPlugin != null) { if (persistString == RVACalcPlugin.IDockContentTypeName) { return RVACalcPlugin.DockContent; } }
97                if (ScratchPadPlugin != null) { if (persistString == ScratchPadPlugin.IDockContentTypeName) { return ScratchPadPlugin.DockContent; } }            
98                return null;
99          }          }
100          public void SetupDocks()          public void SetupDocks()
101          {          {
102              m_LogWindow = new FloatingLogWindow();              m_LogWindow = new FloatingLogWindow();
103                m_LogWindow.CloseButton = false;
104                m_LogWindow.CloseButtonVisible = false;
105    
106              m_wb = new FloatingWebBrowser();              m_wb = new FloatingWebBrowser();
107                m_wb.CloseButton = false;
108                m_wb.CloseButtonVisible = false;
109    
110                m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);
111          }          }
112          #region SetupDockWindowHandler support          #region SetupDockWindowHandler support
113          public void SetupDockWindowHandler()          public void SetupDockWindowHandler()
114          {          {
115              SetupLogWindowHandler();              SetupLogWindowHandler();
116              SetupWebBrowserWindowHandler();              SetupWebBrowserWindowHandler();
117                SetupPluginWindowHandlers();
118            }
119            private void SetupPluginWindowHandlers()
120            {
121                if (RVACalcPlugin != null)
122                {
123                    RVACalcPlugin.Activate();
124                }
125                if (ScratchPadPlugin != null)
126                {
127                    ScratchPadPlugin.Activate();
128                }
129          }          }
130          private void SetupLogWindowHandler()          private void SetupLogWindowHandler()
131          {          {
132              if (m_LogWindow == null) return;              if (m_LogWindow == null) return;
133              //m_LogWindow.Shown += new EventHandler(AddDockToWindowList);              //m_LogWindow.Shown += new EventHandler(AddDockToWindowList);
134              //m_LogWindow.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);              //m_LogWindow.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);
135              //m_LogWindow.Activate();              m_LogWindow.Activate();
136          }          }
137          private void SetupWebBrowserWindowHandler()          private void SetupWebBrowserWindowHandler()
138          {          {
139              if (m_wb == null) return;              if (m_wb == null) return;
140              //m_wb.Shown += new EventHandler(AddDockToWindowList);              //m_wb.Shown += new EventHandler(AddDockToWindowList);
141              //m_wb.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);              //m_wb.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);
142              //m_msv.Activate();              m_wb.Activate();
143          }          }
144          #endregion          #endregion
145          public void ShowDocks()          public void ShowDocks()
# Line 119  namespace RomCheater.RVAScratchPad Line 148  namespace RomCheater.RVAScratchPad
148              SetupLogWindowHandler();              SetupLogWindowHandler();
149              ShowWebBrowser();              ShowWebBrowser();
150              SetupWebBrowserWindowHandler();              SetupWebBrowserWindowHandler();
151                ShowPluginWindows();
152                SetupPluginWindowHandlers();
153    
154                if (RVACalcPlugin != null)
155                    RVACalcPlugin.Activate();
156          }          }
157          public void ShowLogWindow()          public void ShowLogWindow()
158          {          {
159              if (m_LogWindow == null || m_LogWindow.IsDisposed) { m_LogWindow = new FloatingLogWindow(); }              if (m_LogWindow == null || m_LogWindow.IsDisposed) { m_LogWindow = new FloatingLogWindow(); }
160              LoggerInstance = m_LogWindow.Logwriter;              LoggerInstance = m_LogWindow.Logwriter;
161              LoggerInstance.CreateNewLog(false);              LoggerInstance.CreateNewLog(false);
162                m_LogWindow.CloseButton = false;
163                m_LogWindow.CloseButtonVisible = false;
164              m_LogWindow.Show(dockPanel, DockState.DockBottom);              m_LogWindow.Show(dockPanel, DockState.DockBottom);
165          }          }
166    
# Line 133  namespace RomCheater.RVAScratchPad Line 169  namespace RomCheater.RVAScratchPad
169          {          {
170              //load_plugins_silent();              //load_plugins_silent();
171              m_wb = new FloatingWebBrowser();              m_wb = new FloatingWebBrowser();
172                m_wb.CloseButton = false;
173                m_wb.CloseButtonVisible = false;
174              m_wb.Show(dockPanel);              m_wb.Show(dockPanel);
175          }          }
176            public void ShowPluginWindows()
177            {
178                // RVA Calc
179                RVACalcPlugin.Show(dockPanel);
180                // ScratchPad
181                ScratchPadPlugin.Show(dockPanel);    
182            }
183          #endregion          #endregion
184    
185          private void Form1_FormClosing(object sender, FormClosingEventArgs e)          private void Form1_FormClosing(object sender, FormClosingEventArgs e)
186          {          {
187                SettingsSubscriber.SaveSettings();
188              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");
189              if (m_bSaveLayout)              if (m_bSaveLayout)
190                  dockPanel.SaveAsXml(configFile);                  dockPanel.SaveAsXml(configFile);
# Line 155  namespace RomCheater.RVAScratchPad Line 201  namespace RomCheater.RVAScratchPad
201          {          {
202              //dockPanel.SuspendLayout(true);              //dockPanel.SuspendLayout(true);
203              //ShowDocks();              //ShowDocks();
204              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "DockPanel.config");              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");
205              if (File.Exists(configFile))              if (File.Exists(configFile))
206              {              {
207                  try                  try
# Line 178  namespace RomCheater.RVAScratchPad Line 224  namespace RomCheater.RVAScratchPad
224                  ShowDocks();                  ShowDocks();
225              }              }
226    
227                if (RVACalcPlugin != null)
228                    RVACalcPlugin.Activate();
229              //dockPanel.ResumeLayout(true, true);              //dockPanel.ResumeLayout(true, true);
230          }          }
231    
232            private void mnuItemExit_Click(object sender, EventArgs e)
233            {
234                this.Close();
235            }
236    
237            private void Form1_Load(object sender, EventArgs e)
238            {
239                SettingsSubscriber.SaveSettings();
240            }
241      }      }
242  }  }

Legend:
Removed from v.708  
changed lines
  Added in v.724

  ViewVC Help
Powered by ViewVC 1.1.22