/[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 709 by william, Tue Jun 18 07:24:44 2013 UTC revision 727 by william, Wed Jun 19 01:37:36 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();
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 32  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.CreateNewLog(false);              LoggerInstance.CreateNewLog(false);
55              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 68  namespace RomCheater.RVAScratchPad
68          private void load_plugins_silent() { load_plugins(true); }          private void load_plugins_silent() { load_plugins(true); }
69          private void load_plugins(bool silent)          private void load_plugins(bool silent)
70          {          {
71                loader = new PluginLoader();
72                loader.LoadPlugins(silent);
73    
74                var LastConfigPlugin = SettingsSubscriber.GetValue("LastConfigPlugin").ToString();
75                if (LastConfigPlugin != null)
76                {
77                    ConfigPlugin = loader.GetConfigPlugin(LastConfigPlugin.ToString());
78                }
79                else
80                {
81                    var config = PluginCollection.GetPluginByName(PluginNames.GenericConfig);
82                    ConfigPlugin = loader.GetPluginByGuid<IConfigPlugin>(config.ID.ToString());
83                }
84    
85                // update the Config plugin's reference to the webbrowswer
86                ConfigPlugin.WebBrowserProvider = this.WebBrowserProvider;
87    
88                SettingsSubscriber.SetValue("LastConfigPlugin", ConfigPlugin.ToString());
89    
90                var scratchpad = PluginCollection.GetPluginByName(PluginNames.ScratchPadPlugin);
91                var rvacalc = PluginCollection.GetPluginByName(PluginNames.RVACalculatorPlugin);            
92                ScratchPadPlugin = loader.GetPluginByGuid<IUserControlPlugin>(scratchpad.ID.ToString());
93                RVACalcPlugin = loader.GetPluginByGuid<IUserControlPlugin>(rvacalc.ID.ToString());
94    
95                // update config of each plugin
96                ScratchPadPlugin.SetAcceptedConfig(ConfigPlugin);
97                RVACalcPlugin.SetAcceptedConfig(ConfigPlugin);
98          }          }
99    
100    
101    
102          #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);  
         //}  
103          private IDockContent GetContentFromPersistString(string persistString)          private IDockContent GetContentFromPersistString(string persistString)
104          {          {
105              if (persistString == typeof(FloatingLogWindow).ToString()) { return m_LogWindow; }              if (persistString == typeof(FloatingLogWindow).ToString()) { return m_LogWindow; }
106              if (persistString == typeof(FloatingWebBrowser).ToString()) { return m_wb; }              if (persistString == typeof(FloatingWebBrowser).ToString()) { return m_wb; }
107              else { return null; }              if (RVACalcPlugin != null) { if (persistString == RVACalcPlugin.IDockContentTypeName) { return RVACalcPlugin.DockContent; } }
108                if (ScratchPadPlugin != null) { if (persistString == ScratchPadPlugin.IDockContentTypeName) { return ScratchPadPlugin.DockContent; } }            
109                return null;
110          }          }
111          public void SetupDocks()          public void SetupDocks()
112          {          {
113              m_LogWindow = new FloatingLogWindow();              m_LogWindow = new FloatingLogWindow();
114                //m_LogWindow.CloseButton = false;
115                //m_LogWindow.CloseButtonVisible = false;
116    
117              m_wb = new FloatingWebBrowser();              m_wb = new FloatingWebBrowser();
118                //m_wb.CloseButton = false;
119                //m_wb.CloseButtonVisible = false;
120    
121                m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);
122          }          }
123          #region SetupDockWindowHandler support          #region SetupDockWindowHandler support
124          public void SetupDockWindowHandler()          public void SetupDockWindowHandler()
125          {          {
126              SetupLogWindowHandler();              SetupLogWindowHandler();
127              SetupWebBrowserWindowHandler();              SetupWebBrowserWindowHandler();
128                SetupPluginWindowHandlers();
129            }
130            private void SetupPluginWindowHandlers()
131            {
132                if (RVACalcPlugin != null)
133                {
134                    RVACalcPlugin.Activate();
135                }
136                if (ScratchPadPlugin != null)
137                {
138                    ScratchPadPlugin.Activate();
139                }
140          }          }
141          private void SetupLogWindowHandler()          private void SetupLogWindowHandler()
142          {          {
143              if (m_LogWindow == null) return;              if (m_LogWindow == null) return;
144              //m_LogWindow.Shown += new EventHandler(AddDockToWindowList);              //m_LogWindow.Shown += new EventHandler(AddDockToWindowList);
145              //m_LogWindow.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);              //m_LogWindow.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);
146              //m_LogWindow.Activate();              m_LogWindow.Activate();
147          }          }
148          private void SetupWebBrowserWindowHandler()          private void SetupWebBrowserWindowHandler()
149          {          {
150              if (m_wb == null) return;              if (m_wb == null) return;
151              //m_wb.Shown += new EventHandler(AddDockToWindowList);              //m_wb.Shown += new EventHandler(AddDockToWindowList);
152              //m_wb.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);              //m_wb.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);
153              //m_msv.Activate();              m_wb.Activate();
154          }          }
155          #endregion          #endregion
156          public void ShowDocks()          public void ShowDocks()
# Line 119  namespace RomCheater.RVAScratchPad Line 159  namespace RomCheater.RVAScratchPad
159              SetupLogWindowHandler();              SetupLogWindowHandler();
160              ShowWebBrowser();              ShowWebBrowser();
161              SetupWebBrowserWindowHandler();              SetupWebBrowserWindowHandler();
162                ShowPluginWindows();
163                SetupPluginWindowHandlers();
164    
165                if (RVACalcPlugin != null)
166                    RVACalcPlugin.Activate();
167          }          }
168          public void ShowLogWindow()          public void ShowLogWindow()
169          {          {
170              if (m_LogWindow == null || m_LogWindow.IsDisposed) { m_LogWindow = new FloatingLogWindow(); }              if (m_LogWindow == null || m_LogWindow.IsDisposed) { m_LogWindow = new FloatingLogWindow(); }
171              LoggerInstance = m_LogWindow.Logwriter;              if (LoggerInstance == null)
172              LoggerInstance.CreateNewLog(false);              {
173              m_LogWindow.CloseButton = false;                  LoggerInstance = m_LogWindow.Logwriter;
174              m_LogWindow.CloseButtonVisible = false;                  LoggerInstance.CreateNewLog(false);
175                }
176                //m_LogWindow.AllowEndUserDocking = true;
177                //m_LogWindow.CloseButton = false;
178                //m_LogWindow.CloseButtonVisible = false;
179              m_LogWindow.Show(dockPanel, DockState.DockBottom);              m_LogWindow.Show(dockPanel, DockState.DockBottom);
180          }          }
181    
# Line 135  namespace RomCheater.RVAScratchPad Line 184  namespace RomCheater.RVAScratchPad
184          {          {
185              //load_plugins_silent();              //load_plugins_silent();
186              m_wb = new FloatingWebBrowser();              m_wb = new FloatingWebBrowser();
187              m_wb.CloseButton = false;              //m_wb.AllowEndUserDocking = true;
188              m_wb.CloseButtonVisible = false;              //m_wb.CloseButton = false;
189              m_wb.Show(dockPanel);              //m_wb.CloseButtonVisible = false;
190                m_wb.Show(dockPanel, DockState.Document);
191            }
192            public void ShowPluginWindows()
193            {
194                if (RVACalcPlugin != null)
195                {
196                    // RVA Calc                
197                    //RVACalcPlugin.DockHandler.CloseButton = false;                
198                    //RVACalcPlugin.DockHandler.CloseButtonVisible = false;
199                    //RVACalcPlugin.DockHandler.AllowEndUserDocking = true;
200                    RVACalcPlugin.Show(dockPanel);
201                }
202                if (ScratchPadPlugin != null)
203                {
204                    // ScratchPad                
205                    //ScratchPadPlugin.DockHandler.CloseButton = false;
206                    //ScratchPadPlugin.DockHandler.CloseButtonVisible = false;
207                    //ScratchPadPlugin.DockHandler.AllowEndUserDocking = true;
208                    ScratchPadPlugin.Show(dockPanel, DockState.Document);
209                }
210          }          }
211          #endregion          #endregion
212    
213          private void Form1_FormClosing(object sender, FormClosingEventArgs e)          private void Form1_FormClosing(object sender, FormClosingEventArgs e)
214          {          {
215                SettingsSubscriber.SaveSettings();
216              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");
217              if (m_bSaveLayout)              if (m_bSaveLayout)
218                  dockPanel.SaveAsXml(configFile);                  dockPanel.SaveAsXml(configFile);
# Line 159  namespace RomCheater.RVAScratchPad Line 229  namespace RomCheater.RVAScratchPad
229          {          {
230              //dockPanel.SuspendLayout(true);              //dockPanel.SuspendLayout(true);
231              //ShowDocks();              //ShowDocks();
232              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "DockPanel.config");              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");
233              if (File.Exists(configFile))              if (File.Exists(configFile))
234              {              {
235                  try                  try
# Line 182  namespace RomCheater.RVAScratchPad Line 252  namespace RomCheater.RVAScratchPad
252                  ShowDocks();                  ShowDocks();
253              }              }
254    
255                if (RVACalcPlugin != null)
256                    RVACalcPlugin.Activate();
257              //dockPanel.ResumeLayout(true, true);              //dockPanel.ResumeLayout(true, true);
258          }          }
259    
260            private void mnuItemExit_Click(object sender, EventArgs e)
261            {
262                this.Close();
263            }
264    
265            private void Form1_Load(object sender, EventArgs e) { }
266      }      }
267  }  }

Legend:
Removed from v.709  
changed lines
  Added in v.727

  ViewVC Help
Powered by ViewVC 1.1.22