/[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 813 by william, Tue Apr 15 14:58:01 2014 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            const string DockPanelConfig = "RVAScratchPad-DockPanel.conf";
21            private SettingSubscriber SettingsSubscriber = null;
22          private bool m_bSaveLayout = true;          private bool m_bSaveLayout = true;
23          PluginLoader loader = null;          PluginLoader loader = null;
24          IConfigPlugin ConfigPlugin = null;          IConfigPlugin ConfigPlugin = null;
# Line 24  namespace RomCheater.RVAScratchPad Line 27  namespace RomCheater.RVAScratchPad
27          IUserControlPlugin ScratchPadPlugin = null;          IUserControlPlugin ScratchPadPlugin = null;
28    
29          private DeserializeDockContent m_deserializeDockContent;          private DeserializeDockContent m_deserializeDockContent;
30          private FloatingLogWindow m_LogWindow = new FloatingLogWindow();          //private FloatingLogWindow m_LogWindow = new FloatingLogWindow();
31          private FloatingWebBrowser m_wb = new FloatingWebBrowser();          //private FloatingWebBrowser m_wb = new FloatingWebBrowser();
32    
33            //public IWebBrowserProvider WebBrowserProvider
34            //{
35            //    get { return new WebBrowserProvider(m_wb); }
36            //}
37          #region LogWriterSupport          #region LogWriterSupport
38          static LogWriter _LoggerInstance;          static LogWriter _LoggerInstance;
39          static LogWriter LoggerInstance          static LogWriter LoggerInstance
# Line 40  namespace RomCheater.RVAScratchPad Line 47  namespace RomCheater.RVAScratchPad
47          public Form1(bool no_console_redirect)          public Form1(bool no_console_redirect)
48          {          {
49              InitializeComponent();              InitializeComponent();
50                SettingsSubscriber = new SettingSubscriber();
51                SettingsSubscriber.AddSubscriber(this, RomCheater.Properties.Settings.Default);              
52              load_loggerflags();              load_loggerflags();
53              //SetupDocks();              SetupDocks();
54              LoggerInstance = m_LogWindow.Logwriter;              //LoggerInstance = m_LogWindow.Logwriter;
55                LoggerInstance = new LogWriter(!no_console_redirect);
56              LoggerInstance.CreateNewLog(false);              LoggerInstance.CreateNewLog(false);
57              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);
58              load_plugins();              load_plugins();
59              if (no_console_redirect)              if (no_console_redirect)
60                  LoggerInstance.RedirectConsoleOutput = false;                            LoggerInstance.RedirectConsoleOutput = false;          
61          }          }
62          private void load_loggerflags()          private void load_loggerflags()
63          {          {
64              logger.SetLoggingFlags(Logging.Properties.Settings.Default.LoggingFlags);              //logger.SetLoggingFlags(Logging.Properties.Settings.Default.LoggingFlags);
65  #if FORCE_ALL_LOGGING_FLAGS  #if FORCE_ALL_LOGGING_FLAGS
66              logger.SetLoggingFlags(loggerflags.ALL);              //logger.SetLoggingFlags(loggerflags.ALL);
67  #endif  #endif
68          }          }
69          private void load_plugins() { load_plugins(false); }          private void load_plugins() { load_plugins(false); }
# Line 62  namespace RomCheater.RVAScratchPad Line 72  namespace RomCheater.RVAScratchPad
72          {          {
73              loader = new PluginLoader();              loader = new PluginLoader();
74              loader.LoadPlugins(silent);              loader.LoadPlugins(silent);
75              var config = PluginCollection.GetPluginByName(PluginNames.GenericConfig);  
76                var LastConfigPlugin = SettingsSubscriber.GetValue("LastConfigPlugin").ToString();
77                if (LastConfigPlugin != null)
78                {
79                    ConfigPlugin = loader.GetConfigPlugin(LastConfigPlugin.ToString());
80                }
81                else
82                {
83                    var config = PluginCollection.GetPluginByName(PluginNames.GenericConfig);
84                    ConfigPlugin = loader.GetPluginByGuid<IConfigPlugin>(config.ID.ToString());
85                }
86    
87                // update the Config plugin's reference to the webbrowswer
88                //ConfigPlugin.WebBrowserProvider = this.WebBrowserProvider;
89    
90                SettingsSubscriber.SetValue("LastConfigPlugin", ConfigPlugin.ToString());
91    
92              var scratchpad = PluginCollection.GetPluginByName(PluginNames.ScratchPadPlugin);              var scratchpad = PluginCollection.GetPluginByName(PluginNames.ScratchPadPlugin);
93              var rvacalc = PluginCollection.GetPluginByName(PluginNames.RVACalculatorPlugin);              var rvacalc = PluginCollection.GetPluginByName(PluginNames.RVACalculatorPlugin);
             ConfigPlugin = loader.GetPluginByGuid<IConfigPlugin>(config.ID.ToString());  
94              ScratchPadPlugin = loader.GetPluginByGuid<IUserControlPlugin>(scratchpad.ID.ToString());              ScratchPadPlugin = loader.GetPluginByGuid<IUserControlPlugin>(scratchpad.ID.ToString());
95              RVACalcPlugin = loader.GetPluginByGuid<IUserControlPlugin>(rvacalc.ID.ToString());              RVACalcPlugin = loader.GetPluginByGuid<IUserControlPlugin>(rvacalc.ID.ToString());
96    
97                // update config of each plugin
98                ScratchPadPlugin.SetAcceptedConfig(ConfigPlugin);
99                RVACalcPlugin.SetAcceptedConfig(ConfigPlugin);
100          }          }
101    
102    
103    
104          #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);  
         //}  
105          private IDockContent GetContentFromPersistString(string persistString)          private IDockContent GetContentFromPersistString(string persistString)
106          {          {
107              if (persistString == typeof(FloatingLogWindow).ToString()) { return m_LogWindow; }              //if (persistString == typeof(FloatingLogWindow).ToString()) { return m_LogWindow; }
108              if (persistString == typeof(FloatingWebBrowser).ToString()) { return m_wb; }              //if (persistString == typeof(FloatingWebBrowser).ToString()) { return m_wb; }
109              else { return null; }              if (RVACalcPlugin != null) { if (persistString == RVACalcPlugin.IDockContentTypeName) { return RVACalcPlugin.DockContent; } }
110                if (ScratchPadPlugin != null) { if (persistString == ScratchPadPlugin.IDockContentTypeName) { return ScratchPadPlugin.DockContent; } }
111                return null;
112          }          }
113          public void SetupDocks()          public void SetupDocks()
114          {          {
115              m_LogWindow = new FloatingLogWindow();              //m_LogWindow = new FloatingLogWindow();
116              m_wb = new FloatingWebBrowser();              //m_LogWindow.CloseButton = false;
117                //m_LogWindow.CloseButtonVisible = false;
118    
119                //m_wb = new FloatingWebBrowser();
120                //m_wb.CloseButton = false;
121                //m_wb.CloseButtonVisible = false;
122    
123                if (RVACalcPlugin != null)
124                {
125                    RVACalcPlugin.DockHandler.CloseButton = false;
126                    RVACalcPlugin.DockHandler.CloseButtonVisible = false;
127                    RVACalcPlugin.DockHandler.AllowEndUserDocking = false;
128                }
129                if (ScratchPadPlugin != null)
130                {
131                    ScratchPadPlugin.DockHandler.CloseButton = false;
132                    ScratchPadPlugin.DockHandler.CloseButtonVisible = false;
133                    ScratchPadPlugin.DockHandler.AllowEndUserDocking = false;
134                }
135    
136              m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);              m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);
137          }          }
138          #region SetupDockWindowHandler support          #region SetupDockWindowHandler support
139          public void SetupDockWindowHandler()          public void SetupDockWindowHandler()
140          {          {
141              SetupLogWindowHandler();              //SetupLogWindowHandler();
142              SetupWebBrowserWindowHandler();              //SetupWebBrowserWindowHandler();
143              SetupPluginWindowHandlers();              SetupPluginWindowHandlers();
144          }          }
145          private void SetupPluginWindowHandlers()          private void SetupPluginWindowHandlers()
146          {          {
147              //if (RVACalcPlugin != null)              if (RVACalcPlugin != null)
148              //{              {
149                                    RVACalcPlugin.DockHandler.CloseButton = false;
150              //}                  RVACalcPlugin.DockHandler.CloseButtonVisible = false;
151              //if (ScratchPadPlugin != null)                  RVACalcPlugin.DockHandler.AllowEndUserDocking = false;
152              //{                  RVACalcPlugin.Activate();
153              //}              }
154          }              if (ScratchPadPlugin != null)
155          private void SetupLogWindowHandler()              {
156          {                  ScratchPadPlugin.DockHandler.CloseButton = false;
157              if (m_LogWindow == null) return;                  ScratchPadPlugin.DockHandler.CloseButtonVisible = false;
158              //m_LogWindow.Shown += new EventHandler(AddDockToWindowList);                  ScratchPadPlugin.DockHandler.AllowEndUserDocking = false;
159              //m_LogWindow.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);                  ScratchPadPlugin.Activate();
160              m_LogWindow.Activate();              }
         }  
         private void SetupWebBrowserWindowHandler()  
         {  
             if (m_wb == null) return;  
             //m_wb.Shown += new EventHandler(AddDockToWindowList);  
             //m_wb.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);  
             m_wb.Activate();  
161          }          }
162            //private void SetupLogWindowHandler()
163            //{
164            //    //if (m_LogWindow == null) return;
165            //    ////m_LogWindow.Shown += new EventHandler(AddDockToWindowList);
166            //    ////m_LogWindow.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);
167            //    //m_LogWindow.Activate();
168            //}
169            //private void SetupWebBrowserWindowHandler()
170            //{
171            //    //if (m_wb == null) return;
172            //    ////m_wb.Shown += new EventHandler(AddDockToWindowList);
173            //    ////m_wb.FormClosed += new FormClosedEventHandler(RemoveDockFromWindowList);
174            //    //m_wb.Activate();
175            //}
176          #endregion          #endregion
177          public void ShowDocks()          public void ShowDocks()
178          {          {
179              ShowLogWindow();              //ShowLogWindow();
180              SetupLogWindowHandler();              //SetupLogWindowHandler();
181              ShowWebBrowser();              //ShowWebBrowser();
182              SetupWebBrowserWindowHandler();              //SetupWebBrowserWindowHandler();
183              ShowPluginWindows();              ShowPluginWindows();
184              SetupPluginWindowHandlers();              SetupPluginWindowHandlers();
185    
186                if (RVACalcPlugin != null)
187                    RVACalcPlugin.Activate();
188          }          }
189          public void ShowLogWindow()          public void ShowLogWindow()
190          {          {
191              if (m_LogWindow == null || m_LogWindow.IsDisposed) { m_LogWindow = new FloatingLogWindow(); }              //if (m_LogWindow == null || m_LogWindow.IsDisposed) { m_LogWindow = new FloatingLogWindow(); }
192              LoggerInstance = m_LogWindow.Logwriter;              //if (LoggerInstance == null)
193              LoggerInstance.CreateNewLog(false);              //{
194              m_LogWindow.CloseButton = false;              //    LoggerInstance = m_LogWindow.Logwriter;
195              m_LogWindow.CloseButtonVisible = false;              //    LoggerInstance.CreateNewLog(false);
196              m_LogWindow.Show(dockPanel, DockState.DockBottom);              //}
197                ////m_LogWindow.AllowEndUserDocking = true;
198                ////m_LogWindow.CloseButton = false;
199                ////m_LogWindow.CloseButtonVisible = false;
200                //m_LogWindow.Show(dockPanel, DockState.DockBottom);
201          }          }
202    
203    
204          public void ShowWebBrowser()          public void ShowWebBrowser()
205          {          {
206              //load_plugins_silent();              ////load_plugins_silent();
207              m_wb = new FloatingWebBrowser();              //m_wb = new FloatingWebBrowser();
208              m_wb.CloseButton = false;              ////m_wb.AllowEndUserDocking = true;
209              m_wb.CloseButtonVisible = false;              ////m_wb.CloseButton = false;
210              m_wb.Show(dockPanel);              ////m_wb.CloseButtonVisible = false;
211                //m_wb.Show(dockPanel, DockState.Document);
212          }          }
213          public void ShowPluginWindows()          public void ShowPluginWindows()
214          {          {
215              // RVA Calc              if (RVACalcPlugin != null)
216              RVACalcPlugin.Show(dockPanel);              {
217              // ScratchPad                  // RVA Calc                
218              ScratchPadPlugin.Show(dockPanel);                  RVACalcPlugin.DockHandler.CloseButton = false;
219                    RVACalcPlugin.DockHandler.CloseButtonVisible = false;
220                    RVACalcPlugin.DockHandler.AllowEndUserDocking = false;
221                    RVACalcPlugin.Show(dockPanel, DockState.DockLeft);
222                }
223                if (ScratchPadPlugin != null)
224                {
225                    // ScratchPad                
226                    ScratchPadPlugin.DockHandler.CloseButton = false;
227                    ScratchPadPlugin.DockHandler.CloseButtonVisible = false;
228                    ScratchPadPlugin.DockHandler.AllowEndUserDocking = false;
229                    ScratchPadPlugin.Show(dockPanel, DockState.Document);
230                }
231          }          }
232          #endregion          #endregion
233    
234          private void Form1_FormClosing(object sender, FormClosingEventArgs e)          private void Form1_FormClosing(object sender, FormClosingEventArgs e)
235          {          {
236              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");              SettingsSubscriber.SaveSettings();
237                string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), DockPanelConfig);
238              if (m_bSaveLayout)              if (m_bSaveLayout)
239                  dockPanel.SaveAsXml(configFile);                  dockPanel.SaveAsXml(configFile);
240              else if (File.Exists(configFile))              else if (File.Exists(configFile))
# Line 194  namespace RomCheater.RVAScratchPad Line 248  namespace RomCheater.RVAScratchPad
248    
249          private void Form1_Shown(object sender, EventArgs e)          private void Form1_Shown(object sender, EventArgs e)
250          {          {
251              //dockPanel.SuspendLayout(true);              ////dockPanel.SuspendLayout(true);
252              //ShowDocks();              ////ShowDocks();
253              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RVAScratchPad-DockPanel.config");              string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), DockPanelConfig);
254              if (File.Exists(configFile))              if (File.Exists(configFile))
255              {              {
256                  try                  try
# Line 219  namespace RomCheater.RVAScratchPad Line 273  namespace RomCheater.RVAScratchPad
273                  ShowDocks();                  ShowDocks();
274              }              }
275    
276              //dockPanel.ResumeLayout(true, true);              if (RVACalcPlugin != null)
277                    RVACalcPlugin.Activate();
278                ////dockPanel.ResumeLayout(true, true);
279          }          }
280    
281          private void mnuItemExit_Click(object sender, EventArgs e)          private void mnuItemExit_Click(object sender, EventArgs e)
282          {          {
283              this.Close();              this.Close();
284          }          }
285    
286            private void Form1_Load(object sender, EventArgs e) { }
287      }      }
288  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.22