/[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 716 by william, Tue Jun 18 10:59:36 2013 UTC revision 728 by william, Wed Jun 19 14:18:50 2013 UTC
# Line 11  using WeifenLuo.WinFormsUI.Docking; Line 11  using WeifenLuo.WinFormsUI.Docking;
11  using System.IO;  using System.IO;
12  using RomCheater.PluginFramework.Core;  using RomCheater.PluginFramework.Core;
13  using RomCheater.Core;  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 bool m_bSaveLayout = true;          private SettingSubscriber SettingsSubscriber = null;
21            //private bool m_bSaveLayout = true;
22          PluginLoader loader = null;          PluginLoader loader = null;
23          IConfigPlugin ConfigPlugin = null;          IConfigPlugin ConfigPlugin = null;
24    
25          IUserControlPlugin RVACalcPlugin = null;          IUserControlPlugin RVACalcPlugin = null;
26          IUserControlPlugin ScratchPadPlugin = null;          //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();
31    
32            //public IWebBrowserProvider WebBrowserProvider
33            //{
34            //    get { return new WebBrowserProvider(m_wb); }
35            //}
36          #region LogWriterSupport          #region LogWriterSupport
37          static LogWriter _LoggerInstance;          static LogWriter _LoggerInstance;
38          static LogWriter LoggerInstance          static LogWriter LoggerInstance
# Line 40  namespace RomCheater.RVAScratchPad Line 46  namespace RomCheater.RVAScratchPad
46          public Form1(bool no_console_redirect)          public Form1(bool no_console_redirect)
47          {          {
48              InitializeComponent();              InitializeComponent();
49                SettingsSubscriber = new SettingSubscriber();
50                SettingsSubscriber.AddSubscriber(this, RomCheater.Properties.Settings.Default);              
51              load_loggerflags();              load_loggerflags();
52              //SetupDocks();              SetupDocks();
53              LoggerInstance = m_LogWindow.Logwriter;              //LoggerInstance = m_LogWindow.Logwriter;
54                LoggerInstance = new LogWriter(!no_console_redirect);
55              LoggerInstance.CreateNewLog(false);              LoggerInstance.CreateNewLog(false);
56              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);
57              load_plugins();              load_plugins();
# Line 62  namespace RomCheater.RVAScratchPad Line 71  namespace RomCheater.RVAScratchPad
71          {          {
72              loader = new PluginLoader();              loader = new PluginLoader();
73              loader.LoadPlugins(silent);              loader.LoadPlugins(silent);
74              var config = PluginCollection.GetPluginByName(PluginNames.GenericConfig);  
75              var scratchpad = PluginCollection.GetPluginByName(PluginNames.ScratchPadPlugin);              var LastConfigPlugin = SettingsSubscriber.GetValue("LastConfigPlugin").ToString();
76                if (LastConfigPlugin != null)
77                {
78                    ConfigPlugin = loader.GetConfigPlugin(LastConfigPlugin.ToString());
79                }
80                else
81                {
82                    var config = PluginCollection.GetPluginByName(PluginNames.GenericConfig);
83                    ConfigPlugin = loader.GetPluginByGuid<IConfigPlugin>(config.ID.ToString());
84                }
85    
86                //// update the Config plugin's reference to the webbrowswer
87                ////ConfigPlugin.WebBrowserProvider = this.WebBrowserProvider;
88    
89                SettingsSubscriber.SetValue("LastConfigPlugin", ConfigPlugin.ToString());
90    
91                //var scratchpad = PluginCollection.GetPluginByName(PluginNames.ScratchPadPlugin);
92              var rvacalc = PluginCollection.GetPluginByName(PluginNames.RVACalculatorPlugin);              var rvacalc = PluginCollection.GetPluginByName(PluginNames.RVACalculatorPlugin);
93              ConfigPlugin = loader.GetPluginByGuid<IConfigPlugin>(config.ID.ToString());              //ScratchPadPlugin = loader.GetPluginByGuid<IUserControlPlugin>(scratchpad.ID.ToString());
             ScratchPadPlugin = loader.GetPluginByGuid<IUserControlPlugin>(scratchpad.ID.ToString());  
94              RVACalcPlugin = loader.GetPluginByGuid<IUserControlPlugin>(rvacalc.ID.ToString());              RVACalcPlugin = loader.GetPluginByGuid<IUserControlPlugin>(rvacalc.ID.ToString());
95    
96                // update config of each plugin
97                //ScratchPadPlugin.SetAcceptedConfig(ConfigPlugin);
98                RVACalcPlugin.SetAcceptedConfig(ConfigPlugin);
99          }          }
100    
101    
102    
103          #region Dock Support          #region Dock Support
104          //void AddDockToWindowList(object sender, EventArgs e)          //private IDockContent GetContentFromPersistString(string persistString)
         //{  
         //    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)  
105          //{          //{
106          //    DockContent dc;          //    if (persistString == typeof(FloatingLogWindow).ToString()) { return m_LogWindow; }
107          //    TypeBinder.Bind(sender, out dc);          //    if (persistString == typeof(FloatingWebBrowser).ToString()) { return m_wb; }
108          //    mnuWindows.DropDownItems.RemoveByKey(dc.Name);          //    if (RVACalcPlugin != null) { if (persistString == RVACalcPlugin.IDockContentTypeName) { return RVACalcPlugin.DockContent; } }
109            //    if (ScratchPadPlugin != null) { if (persistString == ScratchPadPlugin.IDockContentTypeName) { return ScratchPadPlugin.DockContent; } }
110            //    return null;
111          //}          //}
         private IDockContent GetContentFromPersistString(string persistString)  
         {  
             if (persistString == typeof(FloatingLogWindow).ToString()) { return m_LogWindow; }  
             if (persistString == typeof(FloatingWebBrowser).ToString()) { return m_wb; }  
             else { return null; }  
         }  
112          public void SetupDocks()          public void SetupDocks()
113          {          {
114              m_LogWindow = new FloatingLogWindow();              //m_LogWindow = new FloatingLogWindow();
115              m_wb = new FloatingWebBrowser();              //m_LogWindow.CloseButton = false;
116              m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);              //m_LogWindow.CloseButtonVisible = false;
117    
118                //m_wb = new FloatingWebBrowser();
119                //m_wb.CloseButton = false;
120                //m_wb.CloseButtonVisible = false;
121    
122                //m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);
123          }          }
124          #region SetupDockWindowHandler support          #region SetupDockWindowHandler support
125          public void SetupDockWindowHandler()          public void SetupDockWindowHandler()
126          {          {
127              SetupLogWindowHandler();              //SetupLogWindowHandler();
128              SetupWebBrowserWindowHandler();              //SetupWebBrowserWindowHandler();
129              SetupPluginWindowHandlers();              SetupPluginWindowHandlers();
130          }          }
131          private void SetupPluginWindowHandlers()          private void SetupPluginWindowHandlers()
132          {          {
133              //if (RVACalcPlugin != null)              if (RVACalcPlugin != null)
134              //{              {
135                                    RVACalcPlugin.Activate();
136              //}              }
137              //if (ScratchPadPlugin != null)              //if (ScratchPadPlugin != null)
138              //{              //{
139                //    ScratchPadPlugin.Activate();
140              //}              //}
141          }          }
142          private void SetupLogWindowHandler()          //private void SetupLogWindowHandler()
143          {          //{
144              if (m_LogWindow == null) return;          //    //if (m_LogWindow == null) return;
145              //m_LogWindow.Shown += new EventHandler(AddDockToWindowList);          //    ////m_LogWindow.Shown += new EventHandler(AddDockToWindowList);
146              //m_LogWindow.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);          //    ////m_LogWindow.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);
147              m_LogWindow.Activate();          //    //m_LogWindow.Activate();
148          }          //}
149          private void SetupWebBrowserWindowHandler()          //private void SetupWebBrowserWindowHandler()
150          {          //{
151              if (m_wb == null) return;          //    //if (m_wb == null) return;
152              //m_wb.Shown += new EventHandler(AddDockToWindowList);          //    ////m_wb.Shown += new EventHandler(AddDockToWindowList);
153              //m_wb.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);          //    ////m_wb.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);
154              m_wb.Activate();          //    //m_wb.Activate();
155          }          //}
156          #endregion          #endregion
157          public void ShowDocks()          public void ShowDocks()
158          {          {
159              ShowLogWindow();              //ShowLogWindow();
160              SetupLogWindowHandler();              //SetupLogWindowHandler();
161              ShowWebBrowser();              //ShowWebBrowser();
162              SetupWebBrowserWindowHandler();              //SetupWebBrowserWindowHandler();
163              ShowPluginWindows();              ShowPluginWindows();
164              SetupPluginWindowHandlers();              SetupPluginWindowHandlers();
165    
166                //if (RVACalcPlugin != null)
167                //    RVACalcPlugin.Activate();
168          }          }
169          public void ShowLogWindow()          public void ShowLogWindow()
170          {          {
171              if (m_LogWindow == null || m_LogWindow.IsDisposed) { m_LogWindow = new FloatingLogWindow(); }              //if (m_LogWindow == null || m_LogWindow.IsDisposed) { m_LogWindow = new FloatingLogWindow(); }
172              LoggerInstance = m_LogWindow.Logwriter;              //if (LoggerInstance == null)
173              LoggerInstance.CreateNewLog(false);              //{
174              m_LogWindow.CloseButton = false;              //    LoggerInstance = m_LogWindow.Logwriter;
175              m_LogWindow.CloseButtonVisible = false;              //    LoggerInstance.CreateNewLog(false);
176              m_LogWindow.Show(dockPanel, DockState.DockBottom);              //}
177                ////m_LogWindow.AllowEndUserDocking = true;
178                ////m_LogWindow.CloseButton = false;
179                ////m_LogWindow.CloseButtonVisible = false;
180                //m_LogWindow.Show(dockPanel, DockState.DockBottom);
181          }          }
182    
183    
184          public void ShowWebBrowser()          public void ShowWebBrowser()
185          {          {
186              //load_plugins_silent();              ////load_plugins_silent();
187              m_wb = new FloatingWebBrowser();              //m_wb = new FloatingWebBrowser();
188              m_wb.CloseButton = false;              ////m_wb.AllowEndUserDocking = true;
189              m_wb.CloseButtonVisible = false;              ////m_wb.CloseButton = false;
190              m_wb.Show(dockPanel);              ////m_wb.CloseButtonVisible = false;
191                //m_wb.Show(dockPanel, DockState.Document);
192          }          }
193          public void ShowPluginWindows()          public void ShowPluginWindows()
194          {          {
195              // RVA Calc              if (RVACalcPlugin != null)
196              RVACalcPlugin.Show(dockPanel);              {
197              // ScratchPad                  // RVA Calc                
198              ScratchPadPlugin.Show(dockPanel);                  RVACalcPlugin.DockHandler.CloseButton = false;
199                    RVACalcPlugin.DockHandler.CloseButtonVisible = false;
200                    RVACalcPlugin.DockHandler.AllowEndUserDocking = false;
201                    RVACalcPlugin.Show(dockPanel);
202                }
203                //if (ScratchPadPlugin != null)
204                //{
205                //    // ScratchPad                
206                //    //ScratchPadPlugin.DockHandler.CloseButton = false;
207                //    //ScratchPadPlugin.DockHandler.CloseButtonVisible = false;
208                //    //ScratchPadPlugin.DockHandler.AllowEndUserDocking = true;
209                //    ScratchPadPlugin.Show(dockPanel, DockState.Document);
210                //}
211          }          }
212          #endregion          #endregion
213    
214          private void Form1_FormClosing(object sender, FormClosingEventArgs e)          private void Form1_FormClosing(object sender, FormClosingEventArgs e)
215          {          {
216              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");              SettingsSubscriber.SaveSettings();
217              if (m_bSaveLayout)              //string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");
218                  dockPanel.SaveAsXml(configFile);              //if (m_bSaveLayout)
219              else if (File.Exists(configFile))              //    dockPanel.SaveAsXml(configFile);
220                  File.Delete(configFile);              //else if (File.Exists(configFile))
221                //    File.Delete(configFile);
222              // notify any docked windows of formclosing              // notify any docked windows of formclosing
223              foreach (var t in this.dockPanel.Contents)              foreach (var t in this.dockPanel.Contents)
224              {              {
# Line 194  namespace RomCheater.RVAScratchPad Line 228  namespace RomCheater.RVAScratchPad
228    
229          private void Form1_Shown(object sender, EventArgs e)          private void Form1_Shown(object sender, EventArgs e)
230          {          {
231              //dockPanel.SuspendLayout(true);              ////dockPanel.SuspendLayout(true);
232              //ShowDocks();              ////ShowDocks();
233              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");              //string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");
234              if (File.Exists(configFile))              //if (File.Exists(configFile))
235              {              //{
236                  try              //    try
237                  {              //    {
238                      dockPanel.LoadFromXml(configFile, m_deserializeDockContent);              //        dockPanel.LoadFromXml(configFile, m_deserializeDockContent);
239                      SetupDockWindowHandler();              //        SetupDockWindowHandler();
240                  }              //    }
241                  catch (Exception)              //    catch (Exception)
242                  {              //    {
243                      this.Controls.Remove(dockPanel);              //        this.Controls.Remove(dockPanel);
244                      dockPanel = new DockPanel();              //        dockPanel = new DockPanel();
245                      dockPanel.Dock = DockStyle.Fill;              //        dockPanel.Dock = DockStyle.Fill;
246                      dockPanel.DocumentStyle = DocumentStyle.DockingWindow;              //        dockPanel.DocumentStyle = DocumentStyle.DockingWindow;
247                      this.Controls.Add(dockPanel);              //        this.Controls.Add(dockPanel);
248                      ShowDocks();              //        ShowDocks();
249                  }              //    }
250              }              //}
251              else              //else
252              {              //{
253                  ShowDocks();              ShowDocks();
254              }              //}
255    
256              //dockPanel.ResumeLayout(true, true);              //if (RVACalcPlugin != null)
257                //    RVACalcPlugin.Activate();
258                ////dockPanel.ResumeLayout(true, true);
259          }          }
260    
261          private void mnuItemExit_Click(object sender, EventArgs e)          private void mnuItemExit_Click(object sender, EventArgs e)
262          {          {
263              this.Close();              this.Close();
264          }          }
265    
266            private void Form1_Load(object sender, EventArgs e) { }
267      }      }
268  }  }

Legend:
Removed from v.716  
changed lines
  Added in v.728

  ViewVC Help
Powered by ViewVC 1.1.22