Fixed C# a bit

This commit is contained in:
CreepyCrafter24 2019-11-29 22:55:54 +01:00
parent 194af87a8e
commit 6a19967c46
3 changed files with 299 additions and 296 deletions

View File

@ -38,7 +38,7 @@
this.cseditopen = new MetroFramework.Controls.MetroTile(); this.cseditopen = new MetroFramework.Controls.MetroTile();
this.csediterrorpanel = new MetroFramework.Controls.MetroPanel(); this.csediterrorpanel = new MetroFramework.Controls.MetroPanel();
this.csediterrors = new MetroFramework.Controls.MetroLabel(); this.csediterrors = new MetroFramework.Controls.MetroLabel();
this.cseditcode = new ICSharpCode.TextEditor.TextEditorControl(); this.cseditCode = new ICSharpCode.TextEditor.TextEditorControl();
this.htmltab = new MetroFramework.Controls.MetroTabPage(); this.htmltab = new MetroFramework.Controls.MetroTabPage();
this.htmlLoad = new MetroFramework.Controls.MetroTile(); this.htmlLoad = new MetroFramework.Controls.MetroTile();
this.htmlSep = new System.Windows.Forms.SplitContainer(); this.htmlSep = new System.Windows.Forms.SplitContainer();
@ -63,7 +63,6 @@
this.nmtext = new MetroFramework.Controls.MetroLabel(); this.nmtext = new MetroFramework.Controls.MetroLabel();
this.csSaveFileDialog = new System.Windows.Forms.SaveFileDialog(); this.csSaveFileDialog = new System.Windows.Forms.SaveFileDialog();
this.csOpenFileDialog = new System.Windows.Forms.OpenFileDialog(); this.csOpenFileDialog = new System.Windows.Forms.OpenFileDialog();
this.cseditexecutor = new System.ComponentModel.BackgroundWorker();
this.htmlOptionsMenu = new MetroFramework.Controls.MetroContextMenu(this.components); this.htmlOptionsMenu = new MetroFramework.Controls.MetroContextMenu(this.components);
this.hTMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.hTMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.hTMLStructureSetupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.hTMLStructureSetupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -169,7 +168,7 @@
this.cstab.Controls.Add(this.cseditsave); this.cstab.Controls.Add(this.cseditsave);
this.cstab.Controls.Add(this.cseditopen); this.cstab.Controls.Add(this.cseditopen);
this.cstab.Controls.Add(this.csediterrorpanel); this.cstab.Controls.Add(this.csediterrorpanel);
this.cstab.Controls.Add(this.cseditcode); this.cstab.Controls.Add(this.cseditCode);
this.cstab.HorizontalScrollbarBarColor = true; this.cstab.HorizontalScrollbarBarColor = true;
this.cstab.HorizontalScrollbarHighlightOnWheel = false; this.cstab.HorizontalScrollbarHighlightOnWheel = false;
this.cstab.HorizontalScrollbarSize = 10; this.cstab.HorizontalScrollbarSize = 10;
@ -261,21 +260,20 @@
// //
// cseditcode // cseditcode
// //
this.cseditcode.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) this.cseditCode.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.cseditcode.BackColor = System.Drawing.Color.White; this.cseditCode.BackColor = System.Drawing.Color.White;
this.cseditcode.ConvertTabsToSpaces = true; this.cseditCode.ConvertTabsToSpaces = true;
this.cseditcode.IsIconBarVisible = true; this.cseditCode.IsIconBarVisible = true;
this.cseditcode.LineViewerStyle = ICSharpCode.TextEditor.Document.LineViewerStyle.FullRow; this.cseditCode.LineViewerStyle = ICSharpCode.TextEditor.Document.LineViewerStyle.FullRow;
this.cseditcode.Location = new System.Drawing.Point(6, 47); this.cseditCode.Location = new System.Drawing.Point(6, 47);
this.cseditcode.Name = "cseditcode"; this.cseditCode.Name = "cseditcode";
this.cseditcode.Highlighting = "C#"; this.cseditCode.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.cseditcode.RightToLeft = System.Windows.Forms.RightToLeft.No; this.cseditCode.Size = new System.Drawing.Size(780, 291);
this.cseditcode.Size = new System.Drawing.Size(780, 291); this.cseditCode.TabIndex = 9;
this.cseditcode.TabIndex = 9; this.cseditCode.TabStop = false;
this.cseditcode.TabStop = false; this.cseditCode.Text = resources.GetString("cseditcode.Text");
this.cseditcode.Text = resources.GetString("cseditcode.Text");
// //
// htmltab // htmltab
// //
@ -470,7 +468,7 @@
this.pythontab.Name = "pythontab"; this.pythontab.Name = "pythontab";
this.pythontab.Size = new System.Drawing.Size(789, 391); this.pythontab.Size = new System.Drawing.Size(789, 391);
this.pythontab.TabIndex = 3; this.pythontab.TabIndex = 3;
this.pythontab.Text = "Python"; this.pythontab.Text = "IronPython";
this.pythontab.VerticalScrollbarBarColor = true; this.pythontab.VerticalScrollbarBarColor = true;
this.pythontab.VerticalScrollbarHighlightOnWheel = false; this.pythontab.VerticalScrollbarHighlightOnWheel = false;
this.pythontab.VerticalScrollbarSize = 10; this.pythontab.VerticalScrollbarSize = 10;
@ -488,7 +486,7 @@
this.pythonCode.Name = "pythonCode"; this.pythonCode.Name = "pythonCode";
this.pythonCode.Size = new System.Drawing.Size(783, 341); this.pythonCode.Size = new System.Drawing.Size(783, 341);
this.pythonCode.TabIndex = 11; this.pythonCode.TabIndex = 11;
this.pythonCode.Text = "import time\r\nprint(\"Hello world!\")\r\ntime.sleep(3)"; this.pythonCode.Text = "print(\"Hello world!\")";
// //
// pythonSave // pythonSave
// //
@ -583,11 +581,6 @@
this.csOpenFileDialog.DefaultExt = "dat"; this.csOpenFileDialog.DefaultExt = "dat";
this.csOpenFileDialog.Filter = "Data File|*.dat|Binary|*.exe"; this.csOpenFileDialog.Filter = "Data File|*.dat|Binary|*.exe";
// //
// cseditexecutor
//
this.cseditexecutor.DoWork += new System.ComponentModel.DoWorkEventHandler(this.cseditexecutor_DoWork);
this.cseditexecutor.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.cseditexecutor_RunWorkerCompleted);
//
// htmlOptionsMenu // htmlOptionsMenu
// //
this.htmlOptionsMenu.DropShadowEnabled = false; this.htmlOptionsMenu.DropShadowEnabled = false;
@ -1175,7 +1168,6 @@
private System.Windows.Forms.OpenFileDialog csOpenFileDialog; private System.Windows.Forms.OpenFileDialog csOpenFileDialog;
private MetroFramework.Controls.MetroTabPage htmltab; private MetroFramework.Controls.MetroTabPage htmltab;
private MetroFramework.Controls.MetroLabel infoPanel; private MetroFramework.Controls.MetroLabel infoPanel;
private System.ComponentModel.BackgroundWorker cseditexecutor;
private System.Windows.Forms.SplitContainer htmlSep; private System.Windows.Forms.SplitContainer htmlSep;
private System.Windows.Forms.WebBrowser htmldisplay; private System.Windows.Forms.WebBrowser htmldisplay;
private MetroFramework.Controls.MetroLabel htmltitle; private MetroFramework.Controls.MetroLabel htmltitle;
@ -1266,7 +1258,7 @@
private MetroFramework.Controls.MetroTile cseditopen; private MetroFramework.Controls.MetroTile cseditopen;
private MetroFramework.Controls.MetroPanel csediterrorpanel; private MetroFramework.Controls.MetroPanel csediterrorpanel;
private MetroFramework.Controls.MetroLabel csediterrors; private MetroFramework.Controls.MetroLabel csediterrors;
private ICSharpCode.TextEditor.TextEditorControl cseditcode; private ICSharpCode.TextEditor.TextEditorControl cseditCode;
private ICSharpCode.TextEditor.TextEditorControl htmlText; private ICSharpCode.TextEditor.TextEditorControl htmlText;
private ICSharpCode.TextEditor.TextEditorControl pythonCode; private ICSharpCode.TextEditor.TextEditorControl pythonCode;
} }

View File

@ -1,4 +1,5 @@
using ICSharpCode.Decompiler; using CC_Functions.Misc;
using ICSharpCode.Decompiler;
using ICSharpCode.Decompiler.CSharp; using ICSharpCode.Decompiler.CSharp;
using ICSharpCode.TextEditor.Document; using ICSharpCode.TextEditor.Document;
using IronPython.Hosting; using IronPython.Hosting;
@ -18,6 +19,7 @@ using System.Linq;
using System.Reflection; using System.Reflection;
using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization.Formatters.Binary;
using System.Text; using System.Text;
using System.Threading;
using System.Windows.Forms; using System.Windows.Forms;
#pragma warning disable IDE1006 #pragma warning disable IDE1006
@ -41,7 +43,7 @@ namespace cashew
InitializeComponent(); InitializeComponent();
metroControls = new IMetroControl[] { nmtext, languageTabControl, cstab, infotab, nightmodeToggle, cseditopen, cseditrun, cseditsave, csediterrorpanel, csediterrors, cseditref, infoPanel, htmltab, htmltitle, htmlOptionsTile, htmlOptionsMenu, htmlRefreshTile, htmlLoad, htmlSave, htmlLoadIndicator, htmlUpdateToggle, htmlLiveLabel, livehider, nightmodehide, pythontab, metroControls = new IMetroControl[] { nmtext, languageTabControl, cstab, infotab, nightmodeToggle, cseditopen, cseditrun, cseditsave, csediterrorpanel, csediterrors, cseditref, infoPanel, htmltab, htmltitle, htmlOptionsTile, htmlOptionsMenu, htmlRefreshTile, htmlLoad, htmlSave, htmlLoadIndicator, htmlUpdateToggle, htmlLiveLabel, livehider, nightmodehide, pythontab,
pythonSave, pythonRun, pythonOpen}; pythonSave, pythonRun, pythonOpen};
normalControls = new Control[] { htmlSep, htmldisplay, cseditcode, pythonCode, htmlText }; normalControls = new Control[] { htmlSep, htmldisplay, cseditCode, pythonCode, htmlText };
menuItems = new ToolStripMenuItem[] { hTMLToolStripMenuItem, javaScriptToolStripMenuItem, cSSToolStripMenuItem, pHPToolStripMenuItem, hTMLStructureSetupToolStripMenuItem, javaStructureSetupToolStripMenuItem, cSSStructureSetupToolStripMenuItem, pHPStructureSetupToolStripMenuItem, linkToolStripMenuItem, imageToolStripMenuItem, textToolStripMenuItem, tableToolStripMenuItem, menuItems = new ToolStripMenuItem[] { hTMLToolStripMenuItem, javaScriptToolStripMenuItem, cSSToolStripMenuItem, pHPToolStripMenuItem, hTMLStructureSetupToolStripMenuItem, javaStructureSetupToolStripMenuItem, cSSStructureSetupToolStripMenuItem, pHPStructureSetupToolStripMenuItem, linkToolStripMenuItem, imageToolStripMenuItem, textToolStripMenuItem, tableToolStripMenuItem,
listsToolStripMenuItem, functionToolStripMenuItem, textToolStripMenuItem1, alertBoxToolStripMenuItem, timeoutToolStripMenuItem, randomNumberToolStripMenuItem, cSSCustomizeTagToolStripMenuItem, cSSCustomTagPropertiesToolStripMenuItem, textToolStripMenuItem3, headingsToolStripMenuItem, boldbToolStripMenuItem, underlineuToolStripMenuItem, italiciToolStripMenuItem, listsToolStripMenuItem, functionToolStripMenuItem, textToolStripMenuItem1, alertBoxToolStripMenuItem, timeoutToolStripMenuItem, randomNumberToolStripMenuItem, cSSCustomizeTagToolStripMenuItem, cSSCustomTagPropertiesToolStripMenuItem, textToolStripMenuItem3, headingsToolStripMenuItem, boldbToolStripMenuItem, underlineuToolStripMenuItem, italiciToolStripMenuItem,
deleteddelToolStripMenuItem, subscriptedSubToolStripMenuItem, superscriptedsupToolStripMenuItem, tableFormatSetupToolStripMenuItem, tableHeadingthToolStripMenuItem, newHorizontalItemtdToolStripMenuItem, newRowtrToolStripMenuItem, orderedListSetupolToolStripMenuItem, unorderedListSetupulToolStripMenuItem, listItemliToolStripMenuItem, heading1h1ToolStripMenuItem, deleteddelToolStripMenuItem, subscriptedSubToolStripMenuItem, superscriptedsupToolStripMenuItem, tableFormatSetupToolStripMenuItem, tableHeadingthToolStripMenuItem, newHorizontalItemtdToolStripMenuItem, newRowtrToolStripMenuItem, orderedListSetupolToolStripMenuItem, unorderedListSetupulToolStripMenuItem, listItemliToolStripMenuItem, heading1h1ToolStripMenuItem,
@ -53,6 +55,9 @@ namespace cashew
metroToggle1_CheckedChanged(this, new EventArgs()); metroToggle1_CheckedChanged(this, new EventArgs());
languageTabControl.SelectedTab = infotab; languageTabControl.SelectedTab = infotab;
splash.Hide(); splash.Hide();
cseditCode.SetHighlighting("C#");
pythonCode.SetHighlighting("Python");
htmlText.SetHighlighting("HTML");
} }
private void MAIN_Load(object sender, EventArgs e) => BringToFront(); private void MAIN_Load(object sender, EventArgs e) => BringToFront();
@ -107,8 +112,7 @@ namespace cashew
#region CS #region CS
private MethodInfo script; Thread script;
private void metroLabel2_Click(object sender, EventArgs e) => MetroMessageBox.Show(this, csediterrors.Text, "Errors", MessageBoxButtons.OK, MessageBoxIcon.Error); private void metroLabel2_Click(object sender, EventArgs e) => MetroMessageBox.Show(this, csediterrors.Text, "Errors", MessageBoxButtons.OK, MessageBoxIcon.Error);
private void metroPanel1_Click(object sender, EventArgs e) => MetroMessageBox.Show(this, csediterrors.Text, "Errors", MessageBoxButtons.OK, MessageBoxIcon.Error); private void metroPanel1_Click(object sender, EventArgs e) => MetroMessageBox.Show(this, csediterrors.Text, "Errors", MessageBoxButtons.OK, MessageBoxIcon.Error);
@ -123,11 +127,11 @@ namespace cashew
{ {
if (cseditref.Text == "Code") if (cseditref.Text == "Code")
{ {
cseditrefl = cseditcode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None); cseditrefl = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
} }
else else
{ {
cseditcodel = cseditcode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None); cseditcodel = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
} }
Stream s = File.OpenWrite(csSaveFileDialog.FileName); Stream s = File.OpenWrite(csSaveFileDialog.FileName);
new BinaryFormatter().Serialize(s, new string[][] { cseditcodel, cseditrefl }); new BinaryFormatter().Serialize(s, new string[][] { cseditcodel, cseditrefl });
@ -138,11 +142,11 @@ namespace cashew
csediterrors.Text = ""; csediterrors.Text = "";
if (cseditref.Text == "Code") if (cseditref.Text == "Code")
{ {
cseditrefl = cseditcode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None); cseditrefl = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
} }
else else
{ {
cseditcodel = cseditcode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None); cseditcodel = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
} }
CSharpCodeProvider provider = new CSharpCodeProvider(); CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters CompilerParameters parameters = new CompilerParameters
@ -173,18 +177,22 @@ namespace cashew
private void cseditrun_Click(object sender, EventArgs e) private void cseditrun_Click(object sender, EventArgs e)
{ {
if (cseditrun.Text == "Run") if ((script != null) && script.ThreadState == System.Threading.ThreadState.Running)
{
script.Abort();
}
else
{ {
try try
{ {
csediterrors.Text = ""; csediterrors.Text = "";
if (cseditref.Text == "Code") if (cseditref.Text == "Code")
{ {
cseditrefl = cseditcode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None); cseditrefl = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
} }
else else
{ {
cseditcodel = cseditcode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None); cseditcodel = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
} }
CompilerParameters parameters = new CompilerParameters CompilerParameters parameters = new CompilerParameters
{ {
@ -195,9 +203,22 @@ namespace cashew
CompilerResults results = new CSharpCodeProvider().CompileAssemblyFromSource(parameters, string.Join("\r\n", cseditcodel)); CompilerResults results = new CSharpCodeProvider().CompileAssemblyFromSource(parameters, string.Join("\r\n", cseditcodel));
if (results.Errors.HasErrors) if (results.Errors.HasErrors)
throw new InvalidOperationException(string.Join("\r\n\r\n", results.Errors.OfType<CompilerError>().Select(s => "Error in line " + s.Line.ToString() + ": " + s.ErrorNumber + " - " + s.ErrorText).ToArray())); throw new InvalidOperationException(string.Join("\r\n\r\n", results.Errors.OfType<CompilerError>().Select(s => "Error in line " + s.Line.ToString() + ": " + s.ErrorNumber + " - " + s.ErrorText).ToArray()));
script = results.CompiledAssembly.EntryPoint;
cseditrun.Text = "Stop"; cseditrun.Text = "Stop";
cseditexecutor.RunWorkerAsync(); script = new Thread(() =>
{
try
{
_ = results.CompiledAssembly.EntryPoint.Invoke(null, null);
}
finally
{
Invoke((MethodInvoker)delegate ()
{
cseditrun.Text = "Run";
});
}
});
script.Start();
csediterrors.Text = "Ready"; csediterrors.Text = "Ready";
} }
catch (Exception e1) catch (Exception e1)
@ -205,10 +226,7 @@ namespace cashew
csediterrors.Text = e1.Message; csediterrors.Text = e1.Message;
} }
} }
else cseditrun.Text = script.ThreadState == System.Threading.ThreadState.Running ? "Stop" : "Run";
{
cseditexecutor.CancelAsync();
}
} }
private void cseditopen_Click(object sender, EventArgs e) private void cseditopen_Click(object sender, EventArgs e)
@ -225,9 +243,9 @@ namespace cashew
cseditcodel = tmp[0]; cseditcodel = tmp[0];
cseditrefl = tmp[1]; cseditrefl = tmp[1];
if (cseditref.Text == "References") if (cseditref.Text == "References")
cseditcode.Text = string.Join("\r\n", cseditcodel); cseditCode.Text = string.Join("\r\n", cseditcodel);
else else
cseditcode.Text = string.Join("\r\n", cseditrefl); cseditCode.Text = string.Join("\r\n", cseditrefl);
} }
else else
{ {
@ -235,9 +253,9 @@ namespace cashew
cseditcodel = decompiler.DecompileWholeModuleAsString().Split(new string[] { "\r\n" }, StringSplitOptions.None); cseditcodel = decompiler.DecompileWholeModuleAsString().Split(new string[] { "\r\n" }, StringSplitOptions.None);
cseditrefl = new string[] { }; cseditrefl = new string[] { };
if (cseditref.Text == "References") if (cseditref.Text == "References")
cseditcode.Text = string.Join("\r\n", cseditcodel); cseditCode.Text = string.Join("\r\n", cseditcodel);
else else
cseditcode.Text = string.Join("\r\n", cseditrefl); cseditCode.Text = string.Join("\r\n", cseditrefl);
} }
} }
catch (Exception e1) catch (Exception e1)
@ -251,28 +269,20 @@ namespace cashew
{ {
if (cseditref.Text == "References") if (cseditref.Text == "References")
{ {
cseditcodel = cseditcode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None); cseditcodel = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
cseditcode.Text = string.Join("\r\n", cseditrefl); cseditCode.Text = string.Join("\r\n", cseditrefl);
cseditcode.Refresh(); cseditCode.Refresh();
cseditref.Text = "Code"; cseditref.Text = "Code";
} }
else else
{ {
cseditrefl = cseditcode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None); cseditrefl = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
cseditcode.Text = string.Join("\r\n", cseditcodel); cseditCode.Text = string.Join("\r\n", cseditcodel);
cseditcode.Refresh(); cseditCode.Refresh();
cseditref.Text = "References"; cseditref.Text = "References";
} }
} }
private void cseditexecutor_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
if (!cseditexecutor.CancellationPending)
_ = script.Invoke(null, null);
}
private void cseditexecutor_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e) => cseditrun.Text = "Run";
#endregion CS #endregion CS
#region HTML #region HTML
@ -514,19 +524,23 @@ namespace cashew
private void pythonRun_Click(object sender, EventArgs e) private void pythonRun_Click(object sender, EventArgs e)
{ {
ScriptEngine engine = Python.CreateEngine(); new Thread(() =>
try
{ {
engine.Execute(pythonCode.Text); ScriptEngine engine = Python.CreateEngine();
} try
catch (Exception e1) {
{ engine.Execute(pythonCode.Text);
MetroMessageBox.Show(this, e1.Message, "Execution Failed", MessageBoxButtons.OK, MessageBoxIcon.Error); }
} catch (Exception e1)
{
Invoke((MethodInvoker)delegate ()
{
MetroMessageBox.Show(this, e1.Message, "Execution Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
});
}
}).Start();
} }
#endregion Python #endregion Python
} }
} }
//Fix HTML Tab; Add syntax tree to cs?

View File

@ -146,9 +146,6 @@ IF YOU WANT A PROFESSIONAL PROGRAM, DON'T USE THIS!</value>
<metadata name="csOpenFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="csOpenFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>153, 17</value> <value>153, 17</value>
</metadata> </metadata>
<metadata name="cseditexecutor.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>293, 17</value>
</metadata>
<metadata name="htmlOptionsMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="htmlOptionsMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>423, 17</value> <value>423, 17</value>
</metadata> </metadata>