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

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

  ViewVC Help
Powered by ViewVC 1.1.22